mirror of
https://github.com/chylex/Nextcloud-Desktop.git
synced 2026-04-03 09:11:33 +02:00
Compare commits
14 Commits
master
...
v2.6.0-fix
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
286e45bafe | ||
|
|
aa1bb470e6 | ||
|
|
3be9adde4b | ||
|
|
41d97abd08 | ||
|
|
6bc232c9b4 | ||
|
|
d4a0be92ae | ||
|
|
75bf41fba1 | ||
|
|
a2bfd5039c | ||
|
|
a9ee7472b9 | ||
|
|
211d6cb162 | ||
|
|
501c353291 | ||
|
|
aeba2e4de6 | ||
|
|
2f9f84c1f2 | ||
|
|
33646b1775 |
@@ -344,10 +344,9 @@ steps:
|
||||
from_secret: DEBIAN_SECRET_IV
|
||||
trigger:
|
||||
branch:
|
||||
- master
|
||||
- stable-2.6
|
||||
event:
|
||||
- pull_request
|
||||
- push
|
||||
- tag
|
||||
---
|
||||
kind: pipeline
|
||||
name: Documentation
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
set( MIRALL_VERSION_MAJOR 2 )
|
||||
set( MIRALL_VERSION_MINOR 5 )
|
||||
set( MIRALL_VERSION_PATCH 3 )
|
||||
set( MIRALL_VERSION_MINOR 6 )
|
||||
set( MIRALL_VERSION_PATCH 0 )
|
||||
set( MIRALL_VERSION_YEAR 2019 )
|
||||
set( MIRALL_SOVERSION 0 )
|
||||
|
||||
|
||||
@@ -7,7 +7,6 @@ Build-Depends: cmake,
|
||||
cdbs,
|
||||
dh-python,
|
||||
extra-cmake-modules (>= 5.16),
|
||||
kdelibs5-dev,
|
||||
libkf5kio-dev,
|
||||
libcmocka-dev,
|
||||
libhttp-dav-perl,
|
||||
|
||||
@@ -1075,17 +1075,17 @@ void Folder::slotAboutToRemoveAllFiles(SyncFileItem::Direction dir, bool *cancel
|
||||
QString msg = dir == SyncFileItem::Down ? tr("All files in the sync folder '%1' folder were deleted on the server.\n"
|
||||
"These deletes will be synchronized to your local sync folder, making such files "
|
||||
"unavailable unless you have a right to restore. \n"
|
||||
"If you decide to keep the files, they will be re-synced with the server if you have rights to do so.\n"
|
||||
"If you decide to restore the files, they will be re-synced with the server if you have rights to do so.\n"
|
||||
"If you decide to delete the files, they will be unavailable to you, unless you are the owner.")
|
||||
: tr("All the files in your local sync folder '%1' were deleted. These deletes will be "
|
||||
"synchronized with your server, making such files unavailable unless restored.\n"
|
||||
"Are you sure you want to sync those actions with the server?\n"
|
||||
"If this was an accident and you decide to keep your files, they will be re-synced from the server.");
|
||||
QMessageBox msgBox(QMessageBox::Warning, tr("Download new files?"),
|
||||
: tr("All files got deleted from your local sync folder '%1'.\n"
|
||||
"These files will be deleted from the server and will not be available on your other devices if they "
|
||||
"will not be restored.\n"
|
||||
"If this action was unintended you can restore the lost data now.");
|
||||
QMessageBox msgBox(QMessageBox::Warning, tr("Delete all files?"),
|
||||
msg.arg(shortGuiLocalPath()));
|
||||
msgBox.setWindowFlags(msgBox.windowFlags() | Qt::WindowStaysOnTopHint);
|
||||
msgBox.addButton(tr("Download new files"), QMessageBox::DestructiveRole);
|
||||
QPushButton *keepBtn = msgBox.addButton(tr("Keep local files"), QMessageBox::AcceptRole);
|
||||
msgBox.addButton(tr("Delete all files"), QMessageBox::DestructiveRole);
|
||||
QPushButton *keepBtn = msgBox.addButton(tr("Restore deleted files"), QMessageBox::AcceptRole);
|
||||
if (msgBox.exec() == -1) {
|
||||
*cancel = true;
|
||||
return;
|
||||
|
||||
@@ -466,7 +466,41 @@ void OwncloudSetupWizard::slotCreateLocalAndRemoteFolders(const QString &localFo
|
||||
_ocWizard->appendToConfigurationLog(res);
|
||||
}
|
||||
if (nextStep) {
|
||||
EntityExistsJob *job = new EntityExistsJob(_ocWizard->account(), _ocWizard->account()->davPath() + remoteFolder, this);
|
||||
/*
|
||||
* BEGIN - Sanitize URL paths to eliminate double-slashes
|
||||
*
|
||||
* Purpose: Don't rely on unsafe paths, be extra careful.
|
||||
*
|
||||
* Example: https://cloud.example.com/remote.php/webdav//
|
||||
*
|
||||
*/
|
||||
qCInfo(lcWizard) << "Sanitize got URL path:" << QString(_ocWizard->account()->url().toString() + '/' + _ocWizard->account()->davPath() + remoteFolder);
|
||||
|
||||
QString newDavPath = _ocWizard->account()->davPath(),
|
||||
newRemoteFolder = remoteFolder;
|
||||
|
||||
while (newDavPath.startsWith('/')) {
|
||||
newDavPath.remove(0, 1);
|
||||
}
|
||||
while (newDavPath.endsWith('/')) {
|
||||
newDavPath.chop(1);
|
||||
}
|
||||
|
||||
while (newRemoteFolder.startsWith('/')) {
|
||||
newRemoteFolder.remove(0, 1);
|
||||
}
|
||||
while (newRemoteFolder.endsWith('/')) {
|
||||
newRemoteFolder.chop(1);
|
||||
}
|
||||
|
||||
QString newUrlPath = newDavPath + '/' + newRemoteFolder;
|
||||
|
||||
qCInfo(lcWizard) << "Sanitized to URL path:" << _ocWizard->account()->url().toString() + '/' + newUrlPath;
|
||||
/*
|
||||
* END - Sanitize URL paths to eliminate double-slashes
|
||||
*/
|
||||
|
||||
EntityExistsJob *job = new EntityExistsJob(_ocWizard->account(), newUrlPath, this);
|
||||
connect(job, &EntityExistsJob::exists, this, &OwncloudSetupWizard::slotRemoteFolderExists);
|
||||
job->start();
|
||||
} else {
|
||||
|
||||
@@ -622,8 +622,8 @@ void OCC::SocketApi::openPrivateLink(const QString &link)
|
||||
void SocketApi::command_GET_STRINGS(const QString &argument, SocketListener *listener)
|
||||
{
|
||||
static std::array<std::pair<const char *, QString>, 5> strings { {
|
||||
{ "SHARE_MENU_TITLE", tr("Share...") },
|
||||
{ "CONTEXT_MENU_TITLE", Theme::instance()->appNameGUI() },
|
||||
{ "SHARE_MENU_TITLE", tr("Share options") },
|
||||
{ "CONTEXT_MENU_TITLE", tr("Share via ") + Theme::instance()->appNameGUI()},
|
||||
{ "COPY_PRIVATE_LINK_MENU_TITLE", tr("Copy private link to clipboard") },
|
||||
{ "EMAIL_PRIVATE_LINK_MENU_TITLE", tr("Send private link by email...") },
|
||||
} };
|
||||
@@ -652,7 +652,7 @@ void SocketApi::sendSharingContextMenuOptions(const FileData &fileData, SocketLi
|
||||
if (isOnTheServer && !record._remotePerm.isNull() && !record._remotePerm.hasPermission(RemotePermissions::CanReshare)) {
|
||||
listener->sendMessage(QLatin1String("MENU_ITEM:DISABLED:d:") + tr("Resharing this file is not allowed"));
|
||||
} else {
|
||||
listener->sendMessage(QLatin1String("MENU_ITEM:SHARE") + flagString + tr("Share..."));
|
||||
listener->sendMessage(QLatin1String("MENU_ITEM:SHARE") + flagString + tr("Share options"));
|
||||
|
||||
// Do we have public links?
|
||||
bool publicLinksEnabled = theme->linkSharing() && capabilities.sharePublicLink();
|
||||
@@ -663,13 +663,13 @@ void SocketApi::sendSharingContextMenuOptions(const FileData &fileData, SocketLi
|
||||
&& !capabilities.sharePublicLinkEnforcePassword();
|
||||
|
||||
if (canCreateDefaultPublicLink) {
|
||||
listener->sendMessage(QLatin1String("MENU_ITEM:COPY_PUBLIC_LINK") + flagString + tr("Copy public link to clipboard"));
|
||||
listener->sendMessage(QLatin1String("MENU_ITEM:COPY_PUBLIC_LINK") + flagString + tr("Copy public link"));
|
||||
} else if (publicLinksEnabled) {
|
||||
listener->sendMessage(QLatin1String("MENU_ITEM:MANAGE_PUBLIC_LINKS") + flagString + tr("Copy public link to clipboard"));
|
||||
listener->sendMessage(QLatin1String("MENU_ITEM:MANAGE_PUBLIC_LINKS") + flagString + tr("Copy public link"));
|
||||
}
|
||||
}
|
||||
|
||||
listener->sendMessage(QLatin1String("MENU_ITEM:COPY_PRIVATE_LINK") + flagString + tr("Copy private link to clipboard"));
|
||||
listener->sendMessage(QLatin1String("MENU_ITEM:COPY_PRIVATE_LINK") + flagString + tr("Copy internal link"));
|
||||
|
||||
// Disabled: only providing email option for private links would look odd,
|
||||
// and the copy option is more general.
|
||||
|
||||
@@ -346,6 +346,7 @@ void PropagateUploadFileCommon::slotStartUpload(const QByteArray &transmissionCh
|
||||
}
|
||||
qDebug() << "prevModtime" << prevModtime << "Curr" << _item->_modtime;
|
||||
done(SyncFileItem::SoftError, tr("Local file changed during syncing. It will be resumed."));
|
||||
return;
|
||||
}
|
||||
|
||||
quint64 fileSize = FileSystem::getSize(fullFilePath);
|
||||
|
||||
Reference in New Issue
Block a user