From 95f299f865d88e5faacd3154029d71d036fc0f6e Mon Sep 17 00:00:00 2001 From: Christian Kamm Date: Thu, 12 Mar 2015 15:59:59 +0100 Subject: [PATCH 01/19] Remote folder wizard: Add optional manual entry #2613 --- src/gui/folderwizard.cpp | 120 ++++++++++++++++++++++++------ src/gui/folderwizard.h | 6 ++ src/gui/folderwizardtargetpage.ui | 7 +- 3 files changed, 110 insertions(+), 23 deletions(-) diff --git a/src/gui/folderwizard.cpp b/src/gui/folderwizard.cpp index d67608489..6326194cd 100644 --- a/src/gui/folderwizard.cpp +++ b/src/gui/folderwizard.cpp @@ -239,10 +239,13 @@ FolderWizardRemotePath::FolderWizardRemotePath(AccountPtr account) connect(_ui.addFolderButton, SIGNAL(clicked()), SLOT(slotAddRemoteFolder())); connect(_ui.refreshButton, SIGNAL(clicked()), SLOT(slotRefreshFolders())); - connect(_ui.folderTreeWidget, SIGNAL(itemClicked(QTreeWidgetItem*,int)), SIGNAL(completeChanged())); - connect(_ui.folderTreeWidget, SIGNAL(itemActivated(QTreeWidgetItem*,int)), SIGNAL(completeChanged())); connect(_ui.folderTreeWidget, SIGNAL(itemExpanded(QTreeWidgetItem*)), SLOT(slotItemExpanded(QTreeWidgetItem*))); + connect(_ui.folderTreeWidget, SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)), SLOT(slotCurrentItemChanged(QTreeWidgetItem*))); + connect(_ui.folderEntry, SIGNAL(textEdited(QString)), SLOT(slotFolderEntryEdited(QString))); + _lscolTimer.setInterval(500); + _lscolTimer.setSingleShot(true); + connect(&_lscolTimer, SIGNAL(timeout()), SLOT(slotLsColFolderEntry())); } void FolderWizardRemotePath::slotAddRemoteFolder() @@ -315,27 +318,58 @@ static QTreeWidgetItem* findFirstChild(QTreeWidgetItem *parent, const QString& t void FolderWizardRemotePath::recursiveInsert(QTreeWidgetItem *parent, QStringList pathTrail, QString path) { - QFileIconProvider prov; - QIcon folderIcon = prov.icon(QFileIconProvider::Folder); - if (pathTrail.size() == 0) { - if (path.endsWith('/')) { - path.chop(1); - } - parent->setToolTip(0, path); - parent->setData(0, Qt::UserRole, path); - } else { - QTreeWidgetItem *item = findFirstChild(parent, pathTrail.first()); - if (!item) { - item = new QTreeWidgetItem(parent); - item->setIcon(0, folderIcon); - item->setText(0, pathTrail.first()); - item->setData(0, Qt::UserRole, pathTrail.first()); - item->setChildIndicatorPolicy(QTreeWidgetItem::ShowIndicator); - } + if (pathTrail.isEmpty()) + return; - pathTrail.removeFirst(); - recursiveInsert(item, pathTrail, path); + const QString parentPath = parent->data(0, Qt::UserRole).toString(); + const QString folderName = pathTrail.first(); + QString folderPath; + if (parentPath == QLatin1String("/")) { + folderPath = folderName; + } else { + folderPath = parentPath + "/" + folderName; } + QTreeWidgetItem *item = findFirstChild(parent, folderName); + if (!item) { + item = new QTreeWidgetItem(parent); + QFileIconProvider prov; + QIcon folderIcon = prov.icon(QFileIconProvider::Folder); + item->setIcon(0, folderIcon); + item->setText(0, folderName); + item->setData(0, Qt::UserRole, folderPath); + item->setToolTip(0, folderPath); + item->setChildIndicatorPolicy(QTreeWidgetItem::ShowIndicator); + } + + pathTrail.removeFirst(); + recursiveInsert(item, pathTrail, path); +} + +bool FolderWizardRemotePath::selectByPath(QString path) +{ + if (path.startsWith(QLatin1Char('/'))) { + path = path.mid(1); + } + if (path.endsWith(QLatin1Char('/'))) { + path.chop(1); + } + + QTreeWidgetItem *it = _ui.folderTreeWidget->topLevelItem(0); + if (!path.isEmpty()) { + const QStringList pathTrail = path.split(QLatin1Char('/')); + foreach (const QString& path, pathTrail) { + if (!it) { + return false; + } + it = findFirstChild(it, path); + } + } + if (!it) { + return false; + } + + _ui.folderTreeWidget->setCurrentItem(it); + return true; } void FolderWizardRemotePath::slotUpdateDirectories(const QStringList &list) @@ -367,6 +401,7 @@ void FolderWizardRemotePath::slotRefreshFolders() SLOT(slotUpdateDirectories(QStringList))); job->start(); _ui.folderTreeWidget->clear(); + _ui.folderEntry->clear(); } void FolderWizardRemotePath::slotItemExpanded(QTreeWidgetItem *item) @@ -379,6 +414,49 @@ void FolderWizardRemotePath::slotItemExpanded(QTreeWidgetItem *item) job->start(); } +void FolderWizardRemotePath::slotCurrentItemChanged(QTreeWidgetItem *item) +{ + if (item) { + QString dir = item->data(0, Qt::UserRole).toString(); + if (!dir.startsWith(QLatin1Char('/'))) { + dir.prepend(QLatin1Char('/')); + } + _ui.folderEntry->setText(dir); + } + + emit completeChanged(); +} + +void FolderWizardRemotePath::slotFolderEntryEdited(const QString& text) +{ + if (selectByPath(text)) { + _lscolTimer.stop(); + return; + } + + _ui.folderTreeWidget->setCurrentItem(0); + _lscolTimer.start(); // avoid sending a request on each keystroke +} + +void FolderWizardRemotePath::slotLsColFolderEntry() +{ + QString path = _ui.folderEntry->text(); + if (path.startsWith(QLatin1Char('/'))) + path = path.mid(1); + + LsColJob *job = new LsColJob(_account, path, this); + job->setProperties(QList() << "resourcetype"); + connect(job, SIGNAL(directoryListingSubfolders(QStringList)), + SLOT(slotTypedPathFound(QStringList))); + job->start(); +} + +void FolderWizardRemotePath::slotTypedPathFound(const QStringList& subpaths) +{ + slotUpdateDirectories(subpaths); + selectByPath(_ui.folderEntry->text()); +} + FolderWizardRemotePath::~FolderWizardRemotePath() { } diff --git a/src/gui/folderwizard.h b/src/gui/folderwizard.h index 88b86409b..06a3476ba 100644 --- a/src/gui/folderwizard.h +++ b/src/gui/folderwizard.h @@ -86,11 +86,17 @@ protected slots: void slotUpdateDirectories(const QStringList&); void slotRefreshFolders(); void slotItemExpanded(QTreeWidgetItem*); + void slotCurrentItemChanged(QTreeWidgetItem*); + void slotFolderEntryEdited(const QString& text); + void slotLsColFolderEntry(); + void slotTypedPathFound(const QStringList& subpaths); private: void recursiveInsert(QTreeWidgetItem *parent, QStringList pathTrail, QString path); + bool selectByPath(QString path); Ui_FolderWizardTargetPage _ui; bool _warnWasVisible; AccountPtr _account; + QTimer _lscolTimer; }; diff --git a/src/gui/folderwizardtargetpage.ui b/src/gui/folderwizardtargetpage.ui index 0f242e1a7..97850ee64 100644 --- a/src/gui/folderwizardtargetpage.ui +++ b/src/gui/folderwizardtargetpage.ui @@ -14,7 +14,10 @@ Form - + + + + @@ -179,7 +182,7 @@ - + Qt::Vertical From c42c9f00020c31b4ab148f4e9aaad602e9c50176 Mon Sep 17 00:00:00 2001 From: Markus Goetz Date: Fri, 13 Mar 2015 15:48:35 +0100 Subject: [PATCH 02/19] Propagator: Add comment --- src/libsync/propagateupload.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libsync/propagateupload.cpp b/src/libsync/propagateupload.cpp index b16507c98..9ca097fee 100644 --- a/src/libsync/propagateupload.cpp +++ b/src/libsync/propagateupload.cpp @@ -402,6 +402,7 @@ void PropagateUploadFileQNAM::startNextChunk() return; } + // job takes ownership of device via a QScopedPointer. Job deletes itself when finishing PUTFileJob* job = new PUTFileJob(_propagator->account(), _propagator->_remoteFolder + path, device, headers, _currentChunk); _jobs.append(job); connect(job, SIGNAL(finishedSignal()), this, SLOT(slotPutFinished())); From 6c4b7f1479eff4b4c90bab0c82d3e6a7c1bfc8ed Mon Sep 17 00:00:00 2001 From: Markus Goetz Date: Fri, 13 Mar 2015 16:35:44 +0100 Subject: [PATCH 03/19] OS X: Always return 0 from pre_install.sh --- admin/osx/pre_install.sh.cmake | 1 + 1 file changed, 1 insertion(+) diff --git a/admin/osx/pre_install.sh.cmake b/admin/osx/pre_install.sh.cmake index e2b9e46b1..094a283de 100644 --- a/admin/osx/pre_install.sh.cmake +++ b/admin/osx/pre_install.sh.cmake @@ -6,3 +6,4 @@ killall @APPLICATION_EXECUTABLE@ # Unload the Finder plugin. see issue #2105 killall Finder +exit 0 From 5264a8c7f6182ff530332bce62a0aba777d93fc1 Mon Sep 17 00:00:00 2001 From: Jocelyn Turcotte Date: Fri, 13 Mar 2015 18:30:45 +0100 Subject: [PATCH 04/19] shell_integration: Fix disappearing context menus on Windows #2898 Since each new connection to the socket API would trigger a broadcast of REGISTER_PATH to all existing connections, opening the context menu would trigger a SHChangeNotify call of the root directory through the overlay icon extension, which is currently also connected to the socket API, waiting for changes. Fix the issue by sending the initial REGISTER_PATH automatic response only to the connecting socket. --- src/gui/socketapi.cpp | 18 +++++++++++++++--- src/gui/socketapi.h | 1 + 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/gui/socketapi.cpp b/src/gui/socketapi.cpp index fa8244f85..6bd86cc62 100644 --- a/src/gui/socketapi.cpp +++ b/src/gui/socketapi.cpp @@ -185,8 +185,9 @@ void SocketApi::slotNewConnection() broadcastMessage(QLatin1String("ICON_PATH"), iconPath ); #endif - foreach( QString alias, FolderMan::instance()->map().keys() ) { - slotRegisterPath(alias); + foreach( Folder *f, FolderMan::instance()->map() ) { + QString message = buildRegisterPathMessage(f->path()); + sendMessage(socket, message); } } @@ -226,7 +227,10 @@ void SocketApi::slotRegisterPath( const QString& alias ) { Folder *f = FolderMan::instance()->folder(alias); if (f) { - broadcastMessage(QLatin1String("REGISTER_PATH"), f->path() ); + QString message = buildRegisterPathMessage(f->path()); + foreach(SocketType *socket, _listeners) { + sendMessage(socket, message); + } } } @@ -449,6 +453,14 @@ void SocketApi::command_SHARE_MENU_TITLE(const QString &, SocketType* socket) sendMessage(socket, QLatin1String("SHARE_MENU_TITLE:") + tr("Share with %1", "parameter is ownCloud").arg(Theme::instance()->appNameGUI())); } +QString SocketApi::buildRegisterPathMessage(const QString& path) +{ + QFileInfo fi(path); + QString message = QLatin1String("REGISTER_PATH:"); + message.append(QDir::toNativeSeparators(fi.absoluteFilePath())); + return message; +} + SqlQuery* SocketApi::getSqlQuery( Folder *folder ) { if( !folder ) { diff --git a/src/gui/socketapi.h b/src/gui/socketapi.h index b6c82d925..9a383292b 100644 --- a/src/gui/socketapi.h +++ b/src/gui/socketapi.h @@ -82,6 +82,7 @@ private: Q_INVOKABLE void command_VERSION(const QString& argument, SocketType* socket); Q_INVOKABLE void command_SHARE_MENU_TITLE(const QString& argument, SocketType* socket); + QString buildRegisterPathMessage(const QString& path); #ifdef SOCKETAPI_TCP QTcpServer _localServer; From f5c930968e8da53ae3e98c2e25144b98aee18370 Mon Sep 17 00:00:00 2001 From: Jenkins for ownCloud Date: Sat, 14 Mar 2015 02:18:44 -0400 Subject: [PATCH 05/19] [tx-robot] updated from transifex --- translations/mirall_en.ts | 46 +++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/translations/mirall_en.ts b/translations/mirall_en.ts index da7dfdaef..2ee6d9826 100644 --- a/translations/mirall_en.ts +++ b/translations/mirall_en.ts @@ -32,27 +32,27 @@ - + TextLabel - + Select a remote destination folder - + Create Folder - + Refresh - + Folders @@ -558,8 +558,8 @@ Are you sure you want to perform this operation? OCC::FolderWizard - - + + Add Folder @@ -635,47 +635,47 @@ Are you sure you want to perform this operation? OCC::FolderWizardRemotePath - + Create Remote Folder - + Enter the name of the new folder to be created below '%1': - + Folder was successfully created on %1. - + Authentication failed accessing %1 - + Failed to create the folder on %1. Please check manually. - + Choose this to sync the entire account - + This folder is already being synced. - + You are already syncing <i>%1</i>, which is a parent folder of <i>%2</i>. - + You are already syncing all your files. Syncing another folder is <b>not</b> supported. If you want to sync multiple folders, please remove the currently configured root folder sync. @@ -683,7 +683,7 @@ Are you sure you want to perform this operation? OCC::FolderWizardSelectiveSync - + Choose What to Sync: You can optionally deselect remote subfolders you do not wish to synchronize. @@ -1561,27 +1561,27 @@ It is not advisable to use it. - + Local file changed during sync. - + The file was edited locally but is part of a read only share. It is restored and your edit is in the conflict file. - + Poll URL missing - + The local file was removed during sync. - + The server did not acknowledge the last chunk. (No e-tag were present) @@ -1975,7 +1975,7 @@ It is not advisable to use it. OCC::SocketApi - + Share with %1 parameter is ownCloud From 367b1fcc33c03773c3ebeecfadc91fdc49fa216e Mon Sep 17 00:00:00 2001 From: Jenkins for ownCloud Date: Mon, 16 Mar 2015 02:18:44 -0400 Subject: [PATCH 06/19] [tx-robot] updated from transifex --- translations/client_el.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/translations/client_el.ts b/translations/client_el.ts index d09adeee9..7d5665c5c 100644 --- a/translations/client_el.ts +++ b/translations/client_el.ts @@ -1783,7 +1783,7 @@ It is not advisable to use it. OwnCloud Path: - + Διαδρομή ownCloud: @@ -1909,7 +1909,7 @@ It is not advisable to use it. Share with %1 parameter is ownCloud - + Διαμοιρασμός με %1 @@ -2218,7 +2218,7 @@ It is not advisable to use it. The mounted directory is temporarily not available on the server - + Ο προσαρτημένος κατάλογος δεν είναι προσωρινά διαθέσιμος στον δικομιστή From 38ef525d5ecde86c7899fbd6197ac95c3619b979 Mon Sep 17 00:00:00 2001 From: Klaas Freitag Date: Mon, 16 Mar 2015 15:28:58 +0100 Subject: [PATCH 07/19] Push version to final 1.8.0 --- VERSION.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION.cmake b/VERSION.cmake index a99f141be..1b409e51f 100644 --- a/VERSION.cmake +++ b/VERSION.cmake @@ -4,7 +4,7 @@ set( MIRALL_VERSION_PATCH 0 ) set( MIRALL_SOVERSION 0 ) if ( NOT DEFINED MIRALL_VERSION_SUFFIX ) - set( MIRALL_VERSION_SUFFIX "rc1") #e.g. beta1, beta2, rc1 + set( MIRALL_VERSION_SUFFIX "") #e.g. beta1, beta2, rc1 endif( NOT DEFINED MIRALL_VERSION_SUFFIX ) if( NOT DEFINED MIRALL_VERSION_BUILD ) From b87d55758b90229377893eeed42bb024219675d1 Mon Sep 17 00:00:00 2001 From: Jenkins for ownCloud Date: Tue, 17 Mar 2015 02:18:44 -0400 Subject: [PATCH 08/19] [tx-robot] updated from transifex --- translations/client_gl.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/client_gl.ts b/translations/client_gl.ts index 18c298881..eae918a22 100644 --- a/translations/client_gl.ts +++ b/translations/client_gl.ts @@ -2265,7 +2265,7 @@ Recomendámoslle que non o use. Unable to initialize a sync journal. - Non é posíbel iniciar un rexistro de sincronización. + Non é posíbel preparar un rexistro de sincronización. From 06a2f58c5121597b2f29c2e4780e3680689e8d1f Mon Sep 17 00:00:00 2001 From: Markus Goetz Date: Tue, 17 Mar 2015 23:31:30 +0100 Subject: [PATCH 09/19] Propagator: Introduce custom property to make error soft This can be set by a custom credential QNAM. --- src/libsync/propagatedownload.cpp | 12 ++++++++++++ src/libsync/propagatedownload.h | 2 ++ 2 files changed, 14 insertions(+) diff --git a/src/libsync/propagatedownload.cpp b/src/libsync/propagatedownload.cpp index 9084d97d3..85b8fab71 100644 --- a/src/libsync/propagatedownload.cpp +++ b/src/libsync/propagatedownload.cpp @@ -368,6 +368,7 @@ void PropagateDownloadFileQNAM::start() _job->start(); } +const char owncloudCustomSoftErrorStringC[] = "owncloud-custom-soft-error-string"; void PropagateDownloadFileQNAM::slotGetFinished() { _propagator->_activeJobs--; @@ -407,7 +408,18 @@ void PropagateDownloadFileQNAM::slotGetFinished() return; } + // This gives a custom QNAM (by the user of libowncloudsync) to abort() a QNetworkReply in its metaDataChanged() slot and + // set a custom error string to make this a soft error. In contrast to the default hard error this won't bring down + // the whole sync and allows for a custom error message. + QNetworkReply *reply = job->reply(); + if (err == QNetworkReply::OperationCanceledError && reply->property(owncloudCustomSoftErrorStringC).isValid()) { + job->setErrorString(reply->property(owncloudCustomSoftErrorStringC).toString()); + job->setErrorStatus(SyncFileItem::SoftError); + } + SyncFileItem::Status status = job->errorStatus(); + + if (status == SyncFileItem::NoStatus) { status = classifyError(err, _item._httpErrorCode); } diff --git a/src/libsync/propagatedownload.h b/src/libsync/propagatedownload.h index ad71f743a..47c60702a 100644 --- a/src/libsync/propagatedownload.h +++ b/src/libsync/propagatedownload.h @@ -78,8 +78,10 @@ public: qint64 currentDownloadPosition(); QString errorString() const; + void setErrorString(const QString& s) { _errorString = s; } SyncFileItem::Status errorStatus() { return _errorStatus; } + void setErrorStatus(const SyncFileItem::Status & s) { _errorStatus = s; } virtual void slotTimeout() Q_DECL_OVERRIDE; From 04db33205122dd15b6e874c15ae26cbb75e1a87c Mon Sep 17 00:00:00 2001 From: Jenkins for ownCloud Date: Wed, 18 Mar 2015 01:15:17 -0400 Subject: [PATCH 10/19] [tx-robot] updated from transifex --- admin/win/nsi/l10n/Catalan.nsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/admin/win/nsi/l10n/Catalan.nsh b/admin/win/nsi/l10n/Catalan.nsh index c97e6ecd3..86576893b 100644 --- a/admin/win/nsi/l10n/Catalan.nsh +++ b/admin/win/nsi/l10n/Catalan.nsh @@ -15,6 +15,8 @@ StrCpy $PageReinstall_SAME_Field_3 "Desinstal.lar ${APPLICATION_NAME}" StrCpy $UNINSTALLER_APPDATA_TITLE "Desinstal.lar ${APPLICATION_NAME}" StrCpy $PageReinstall_SAME_MUI_HEADER_TEXT_SUBTITLE "Escolliu l'opció de manteniment per executar-ho." StrCpy $SEC_APPLICATION_DETAILS "Instal·lant ${APPLICATION_NAME} essencial." +StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Integració per Windows Explorer" +StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Instal·lant integració per Windows Explorer" StrCpy $OPTION_SECTION_SC_START_MENU_SECTION "Accés directe del programa al menú d'inici" StrCpy $OPTION_SECTION_SC_START_MENU_DetailPrint "Afegint la drecera per ${APPLICATION_NAME} al menú d'inici." StrCpy $OPTION_SECTION_SC_DESKTOP_SECTION "Drecera a l'escriptori" @@ -42,5 +44,3 @@ StrCpy $INIT_INSTALLER_RUNNING "L'instal·lador ja s'està executant." StrCpy $UAC_UNINSTALLER_REQUIRE_ADMIN "Aquest desinstal·lador requereix accés d'administrador, intenteu-ho de nou." StrCpy $INIT_UNINSTALLER_RUNNING "El desinstal·lador ja s'està executant." StrCpy $SectionGroup_Shortcuts "Dreceres" -StrCpy $OPTION_SECTION_SC_SHELL_EXT_SECTION "Integration for Windows Explorer" -StrCpy $OPTION_SECTION_SC_SHELL_EXT_DetailPrint "Installing Integration for Windows Explorer" From 86fd39e3a93d7ae2fc69c3b48afa9d0c7e364a72 Mon Sep 17 00:00:00 2001 From: Jenkins for ownCloud Date: Wed, 18 Mar 2015 02:18:42 -0400 Subject: [PATCH 11/19] [tx-robot] updated from transifex --- translations/client_ja.ts | 4 ++-- translations/mirall_en.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/translations/client_ja.ts b/translations/client_ja.ts index 3f0864eb6..f5c871c34 100644 --- a/translations/client_ja.ts +++ b/translations/client_ja.ts @@ -1926,7 +1926,7 @@ It is not advisable to use it. Subject Alternative Names: - Subject Alternative Names(サブジェクトの別名): + サブジェクトの別名: @@ -1971,7 +1971,7 @@ It is not advisable to use it. Expires on: - 期限切れ期日: + 有効期限: diff --git a/translations/mirall_en.ts b/translations/mirall_en.ts index 2ee6d9826..827218836 100644 --- a/translations/mirall_en.ts +++ b/translations/mirall_en.ts @@ -1422,12 +1422,12 @@ It is not advisable to use it. - + The file could not be downloaded completely. - + File %1 cannot be saved because of a local file name clash! From 917b8409ae04a022d2ef6fc58be4ced70d7bdfc1 Mon Sep 17 00:00:00 2001 From: Jenkins for ownCloud Date: Thu, 19 Mar 2015 02:18:50 -0400 Subject: [PATCH 12/19] [tx-robot] updated from transifex --- translations/client_uk.ts | 92 +++++++++++++++++++++------------------ 1 file changed, 49 insertions(+), 43 deletions(-) diff --git a/translations/client_uk.ts b/translations/client_uk.ts index 6cbe4755e..6915c3261 100644 --- a/translations/client_uk.ts +++ b/translations/client_uk.ts @@ -733,7 +733,7 @@ Are you sure you want to perform this operation? Show crash reporter - + Показати звіти про помилки @@ -1202,7 +1202,7 @@ It is not advisable to use it. Timeout while trying to connect to %1 at %2. - + Перевищено час очікування з'єднання до %1 на %2. @@ -1212,7 +1212,7 @@ It is not advisable to use it. Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. - + Доступ заборонений сервером. Щоб довести, що у Вас є права доступу, <a href="%1">клікніть тут</a> для входу через Ваш браузер. @@ -1361,7 +1361,7 @@ It is not advisable to use it. Invalid JSON reply from the poll URL - + Неправильна JSON відповідь на сформований URL @@ -1420,7 +1420,7 @@ It is not advisable to use it. Continue blacklisting: - + Продовжити занесення до чорного списку: @@ -1477,7 +1477,7 @@ It is not advisable to use it. Wrong HTTP code returned by server. Expected 204, but recieved "%1 %2". - + Сервер відповів неправильним HTTP кодом. Очікувався 204, але отриманий "%1 %2". @@ -1485,7 +1485,7 @@ It is not advisable to use it. Wrong HTTP code returned by server. Expected 201, but recieved "%1 %2". - + Сервер відповів неправильним HTTP кодом. Очікувався 201, але отриманий "%1 %2". @@ -1508,7 +1508,7 @@ It is not advisable to use it. Wrong HTTP code returned by server. Expected 201, but recieved "%1 %2". - + Сервер відповів неправильним HTTP кодом. Очікувався 201, але отриманий "%1 %2". @@ -1551,7 +1551,7 @@ It is not advisable to use it. Poll URL missing - + Не вистачає сформованого URL @@ -1645,13 +1645,19 @@ It is not advisable to use it. %n files are ignored because of previous errors. - + %n файл пропущено через попередні помилки. +%n файлів пропущено через попередні помилки. +%n файлів пропущено через попередні помилки. + %n files are partially downloaded. - + %n файлів частково завантажений. +%n файлів частково завантажені. +%n файлів частково завантажено. + @@ -1669,12 +1675,12 @@ It is not advisable to use it. Choose What to Sync: Select remote subfolders you wish to synchronize. - + Виберіть Що Синхронізувати: Виберіть папки на віддаленому сервері, які Ви хотіли б синхронізувати. Choose What to Sync: Deselect remote subfolders you do not wish to synchronize. - + Виберіть Що Синхронізувати: Зніміть вибір папок на віддаленому сервері, які Ви не хочете синхронізувати. @@ -1761,12 +1767,12 @@ It is not advisable to use it. Share NewDocument.odt - + Поділитися NewDocument.odt Share Info - + Поділитися Інформацією @@ -1777,12 +1783,12 @@ It is not advisable to use it. share label - + поділитися міткою OwnCloud Path: - + Шлях до OwnCloud: @@ -1803,12 +1809,12 @@ It is not advisable to use it. %1 path: %2 - + %1 шлях: %2 %1 Sharing - + Ви поділилися %1 @@ -1823,27 +1829,27 @@ It is not advisable to use it. OCS API error code: %1 - + OCS API код помилки: %1 There is no sync folder configured. - + Немає папок налаштованих для синхронізації. Can not find an folder to upload to. - + Неможливо знайти папку для завантаження в неї. Sharing of external directories is not yet working. - + Функція відкриття доступу до зовнішніх папок поки не працює. A sync file with the same name exists. The file can not be registered to sync. - + Існує файл з ім'ям як у синхронізованого. Файл не може бути прийнятий до синхронізації. @@ -1853,17 +1859,17 @@ It is not advisable to use it. Unable to register in sync space. - + Неможливо зареєструватися в синхронізованому просторі. The file can not be synced. - + Файл не може бути синхронізований. Sync of registered file was not successful yet. - + Синхронізація зареєстрованого файлу поки не була успішною. @@ -1908,7 +1914,7 @@ It is not advisable to use it. Share with %1 parameter is ownCloud - + Поділитися з %1 @@ -2122,7 +2128,7 @@ It is not advisable to use it. CSync failed to load the journal file. The journal file is corrupted. - + CSync не вдалося завантажити файл журналу. Файл журналу пошкоджений. @@ -2217,12 +2223,12 @@ It is not advisable to use it. The mounted directory is temporarily not available on the server - + Приєднана тека тимчасово недоступна на сервері An error opening a directory happened - + Сталася помилка при відкритті теки @@ -2345,7 +2351,7 @@ It is not advisable to use it. <p>Copyright ownCloud, Incorporated</p> - + <p> Права належать ownCloud, Incorporated </p> @@ -2453,7 +2459,7 @@ It is not advisable to use it. Crash now - + Критична помилка @@ -2501,7 +2507,7 @@ It is not advisable to use it. <p>Version %2. For more information visit <a href="%3">%4</a></p><p><small>By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.</small></p><p>Copyright ownCloud, Inc.</p><p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.</p> - + <p>Версія %2. Для більш детальної інформації відвідайте <a href="%3">%4</a></p> <p><small> Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz та інші.</ small></p> <p> Права належать ownCloud, Inc. </p> <p> Під ліцензією GNU General Public License (GPL) Version 2.0 <br/> ownCloud і логотип ownCloud є зареєстрованими товарними знаками ownCloud, Inc. в США та інших країнах. </p> @@ -2560,7 +2566,7 @@ It is not advisable to use it. S&ync everything from server - + Синхронізувати все з сервером @@ -2578,7 +2584,7 @@ It is not advisable to use it. <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> - + <html><head/><body><p> Не вдалося підключитися до безпечного серверу за наданною адресою. Як Ви хочете продовжити? </p></body></html> @@ -2588,17 +2594,17 @@ It is not advisable to use it. Retry unencrypted over HTTP (insecure) - + Спробувати без шифрування через HTTP (небезпечно) Configure client-side TLS certificate - + Налаштувати TLS сертифікат клієнта <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> - + <html><head/><body><p>Не вдалося підключитися до безпечного серверу за адресою <em>%1</em>. Як Ви хочете продовжити?</p></body></html> @@ -2747,22 +2753,22 @@ It is not advisable to use it. %L1 TiB - + %L1 Тіб %L1 GiB - + %L1 ГіБ %L1 MiB - + %L1 МіБ %L1 KiB - + %L1 КіБ From 89f831e7d4fa6f27c48d34fba54583d3edb7f50d Mon Sep 17 00:00:00 2001 From: Christian Kamm Date: Fri, 13 Mar 2015 10:55:53 +0100 Subject: [PATCH 13/19] Remote delete: Consider 404 a success. #2919 --- src/libsync/propagateremotedelete.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/libsync/propagateremotedelete.cpp b/src/libsync/propagateremotedelete.cpp index 8cbcf7251..15f1c887b 100644 --- a/src/libsync/propagateremotedelete.cpp +++ b/src/libsync/propagateremotedelete.cpp @@ -85,9 +85,10 @@ void PropagateRemoteDelete::slotDeleteJobFinished() << (_job->reply()->error() == QNetworkReply::NoError ? QLatin1String("") : _job->reply()->errorString()); QNetworkReply::NetworkError err = _job->reply()->error(); - _item._httpErrorCode = _job->reply()->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); + const int httpStatus = _job->reply()->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); + _item._httpErrorCode = httpStatus; - if (err != QNetworkReply::NoError) { + if (err != QNetworkReply::NoError && err != QNetworkReply::ContentNotFoundError) { if( checkForProblemsWithShared(_item._httpErrorCode, tr("The file has been removed from a read only share. It was restored.")) ) { @@ -102,7 +103,11 @@ void PropagateRemoteDelete::slotDeleteJobFinished() _item._requestDuration = _job->duration(); _item._responseTimeStamp = _job->responseTimestamp(); - if (_item._httpErrorCode != 204 ) { + // A 404 reply is also considered a success here: We want to make sure + // a file is gone from the server. It not being there in the first place + // is ok. This will happen for files that are in the DB but not on + // the server or the local file system. + if (httpStatus != 204 && httpStatus != 404) { // Normaly we expect "204 No Content" // If it is not the case, it might be because of a proxy or gateway intercepting the request, so we must // throw an error. From 57c14a0ebab56c322fe2b42e33e557cc42a70781 Mon Sep 17 00:00:00 2001 From: Christian Kamm Date: Thu, 19 Mar 2015 11:40:47 +0100 Subject: [PATCH 14/19] Windows: Reset QNAM as a workaround. #2899 #2895 #2973 The QNetworkAccessManager is reset when we are disconnected, just before attempting to fetch the server's status.php. This may help fix the problem described in various issues where we get 'Connection closed' or timeout errors after the OS has woken from sleep. --- src/gui/accountstate.cpp | 9 +++++++++ src/libsync/account.cpp | 15 +++++++++++++++ src/libsync/account.h | 1 + 3 files changed, 25 insertions(+) diff --git a/src/gui/accountstate.cpp b/src/gui/accountstate.cpp index 600650fa5..289717f4b 100644 --- a/src/gui/accountstate.cpp +++ b/src/gui/accountstate.cpp @@ -179,6 +179,15 @@ void AccountState::checkConnectivity() conValidator->checkAuthentication(); } else { // Check the server and then the auth. + +#ifdef Q_OS_WIN + // There seems to be a bug in Qt on Windows where QNAM sometimes stops + // working correctly after the computer woke up from sleep. See #2895 #2899 + // and #2973. + // As an attempted workaround, reset the QNAM regularly if the account is + // disconnected. + account()->resetNetworkAccessManager(); +#endif conValidator->checkServerAndAuth(); } } diff --git a/src/libsync/account.cpp b/src/libsync/account.cpp index 5d2db3475..990b482d2 100644 --- a/src/libsync/account.cpp +++ b/src/libsync/account.cpp @@ -271,6 +271,21 @@ void Account::clearCookieJar() _am->setCookieJar(new CookieJar); } +void Account::resetNetworkAccessManager() +{ + if (!_credentials || !_am) { + return; + } + + qDebug() << "Resetting QNAM"; + QNetworkCookieJar* jar = _am->cookieJar(); + _am->deleteLater(); + _am = _credentials->getQNAM(); + _am->setCookieJar(jar); // takes ownership of the old cookie jar + connect(_am, SIGNAL(sslErrors(QNetworkReply*,QList)), + SLOT(slotHandleErrors(QNetworkReply*,QList))); +} + QNetworkAccessManager *Account::networkAccessManager() { return _am; diff --git a/src/libsync/account.h b/src/libsync/account.h index 1397195dc..3d8604f2b 100644 --- a/src/libsync/account.h +++ b/src/libsync/account.h @@ -156,6 +156,7 @@ public: void clearCookieJar(); + void resetNetworkAccessManager(); QNetworkAccessManager* networkAccessManager(); /// Called by network jobs on credential errors. From 4ef0ce112c495984b9ff3d96b51887103b692035 Mon Sep 17 00:00:00 2001 From: Christian Kamm Date: Thu, 19 Mar 2015 11:57:25 +0100 Subject: [PATCH 15/19] CookieJar: Session cookies should *not* be stored in cookies.db. --- src/libsync/cookiejar.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libsync/cookiejar.cpp b/src/libsync/cookiejar.cpp index cf0ff5c56..62aa2ccbf 100644 --- a/src/libsync/cookiejar.cpp +++ b/src/libsync/cookiejar.cpp @@ -103,7 +103,7 @@ void CookieJar::save() qDebug() << storagePath(); file.open(QIODevice::WriteOnly); QDataStream stream(&file); - stream << allCookies(); + stream << removeExpired(allCookies()); file.close(); } From 8f728ddfb252fc9e685ab153ba2e46ee316f3c1b Mon Sep 17 00:00:00 2001 From: Jenkins for ownCloud Date: Fri, 20 Mar 2015 02:18:41 -0400 Subject: [PATCH 16/19] [tx-robot] updated from transifex --- translations/client_fr.ts | 6 +++--- translations/mirall_en.ts | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/translations/client_fr.ts b/translations/client_fr.ts index 2dc230dd7..debbefb66 100644 --- a/translations/client_fr.ts +++ b/translations/client_fr.ts @@ -916,7 +916,7 @@ Les items cochés seront également supprimés s'ils empêchent la suppress Skip this version - Ignorer cette version. + Ignorer cette version @@ -1007,7 +1007,7 @@ Les items cochés seront également supprimés s'ils empêchent la suppress Hostname of proxy server - Nom d'hôte ou serveur mandataire + Nom d'hôte du serveur mandataire @@ -2389,7 +2389,7 @@ Il est déconseillé de l'utiliser. None. - Aucun. + Aucune diff --git a/translations/mirall_en.ts b/translations/mirall_en.ts index 827218836..a6f1f3a0a 100644 --- a/translations/mirall_en.ts +++ b/translations/mirall_en.ts @@ -1492,12 +1492,12 @@ It is not advisable to use it. OCC::PropagateRemoteDelete - + The file has been removed from a read only share. It was restored. - + Wrong HTTP code returned by server. Expected 204, but received "%1 %2". From b1100cd9e5cf7748b953e6ccecca8f6e90644f7e Mon Sep 17 00:00:00 2001 From: Hefee Date: Sun, 22 Mar 2015 17:49:09 +0100 Subject: [PATCH 17/19] fix python3 syntax errors --- shell_integration/nautilus/syncstate.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/shell_integration/nautilus/syncstate.py b/shell_integration/nautilus/syncstate.py index 0b5e37dff..bfa18ee55 100755 --- a/shell_integration/nautilus/syncstate.py +++ b/shell_integration/nautilus/syncstate.py @@ -67,7 +67,7 @@ class SocketConnect(GObject.GObject): print("Sending failed.") self.reconnect() else: - print "Cannot send, not connected!" + print("Cannot send, not connected!") def addListener(self, listener): self._listeners.append(listener) @@ -85,7 +85,7 @@ class SocketConnect(GObject.GObject): self.connected = True print("Setting connected to %r" % self.connected ) self._watch_id = GObject.io_add_watch(self._sock, GObject.IO_IN, self._handle_notify) - print "Socket watch id: "+str(self._watch_id) + print("Socket watch id: "+str(self._watch_id)) return False # don't run again except Exception as e: print("Could not connect to unix socket." + str(e)) @@ -175,7 +175,7 @@ class MenuExtension(GObject.GObject, Nautilus.MenuProvider): def menu_share(self, menu, file): filename = get_local_path(file.get_uri()) - print "Share file "+filename + print("Share file "+filename) socketConnect.sendCommand("SHARE:"+filename+"\n") From c9eccd729d550e996b5b3db8dfab55afd0034155 Mon Sep 17 00:00:00 2001 From: Hefee Date: Sun, 22 Mar 2015 18:01:25 +0100 Subject: [PATCH 18/19] Remove forgotten file. --- translations/mirall_en.ts | 3006 ------------------------------------- 1 file changed, 3006 deletions(-) delete mode 100644 translations/mirall_en.ts diff --git a/translations/mirall_en.ts b/translations/mirall_en.ts deleted file mode 100644 index a6f1f3a0a..000000000 --- a/translations/mirall_en.ts +++ /dev/null @@ -1,3006 +0,0 @@ - - - - - FolderWizardSourcePage - - - Form - - - - - Pick a local folder on your computer to sync - - - - - &Choose... - - - - - &Directory alias name: - - - - - FolderWizardTargetPage - - - Form - - - - - TextLabel - - - - - Select a remote destination folder - - - - - Create Folder - - - - - Refresh - - - - - Folders - - - - - OCC::AccountSettings - - - Form - - - - - Account to Synchronize - - - - - Connected with <server> as <user> - - - - - Add Folder... - - - - - - Pause - - - - - Remove - - - - - Choose What to Sync - - - - - Storage Usage - - - - - Retrieving usage information... - - - - - <b>Note:</b> Some folders, including network mounted or shared folders, might have different limits. - - - - - Account Maintenance - - - - - Edit Ignored Files - - - - - Modify Account - - - - - No account configured. - - - - - Resume - - - - - Confirm Folder Remove - - - - - <p>Do you really want to stop syncing the folder <i>%1</i>?</p><p><b>Note:</b> This will not remove the files from your client.</p> - - - - - Confirm Folder Reset - - - - - <p>Do you really want to reset folder <i>%1</i> and rebuild your client database?</p><p><b>Note:</b> This function is designed for maintenance purposes only. No files will be removed, but this can cause significant data traffic and take several minutes or hours to complete, depending on the size of the folder. Only use this option if advised by your administrator.</p> - - - - - Sync Running - - - - - The syncing operation is running.<br/>Do you want to terminate it? - - - - - Discovering '%1' - - - - - %1 %2 (%3 of %4) %5 left at a rate of %6/s - Example text: "uploading foobar.png (1MB of 2MB) time left 2 minutes at a rate of 24Kb/s" - - - - - %1 %2 (%3 of %4) - Example text: "uploading foobar.png (2MB of 2MB)" - - - - - %1 %2 - Example text: "uploading foobar.png" - - - - - %1 of %2, file %3 of %4 -Total time left %5 - - - - - file %1 of %2 - - - - - %1 (%3%) of %2 server space in use. - - - - - Currently there is no storage usage information available. - - - - - Connected to <a href="%1">%2</a>. - - - - - Connected to <a href="%1">%2</a> as <i>%3</i>. - - - - - No connection to %1 at <a href="%2">%3</a>. - - - - - No %1 connection configured. - - - - - OCC::AddCertificateDialog - - - SSL client certificate authentication - - - - - This server probably requires a SSL client certificate. - - - - - Certificate : - - - - - Browse... - - - - - Certificate password : - - - - - Select a certificate - - - - - Certificate files (*.p12 *.pfx) - - - - - OCC::AuthenticationDialog - - - Authentication Required - - - - - Enter username and password for '%1' at %2. - - - - - &User: - - - - - &Password: - - - - - OCC::ConnectionValidator - - - No ownCloud account configured - - - - - The configured server for this client is too old - - - - - Please update to the latest server and restart the client. - - - - - Authentication error: Either username or password are wrong. - - - - - - Unable to connect to %1 - - - - - timeout - - - - - The provided credentials are not correct - - - - - OCC::DeleteJob - - - Connection timed out - - - - - OCC::DiscoveryMainThread - - - Aborted by the user - - - - - OCC::Folder - - - Unable to create csync-context - - - - - Local folder %1 does not exist. - - - - - %1 should be a directory but is not. - - - - - %1 is not readable. - - - - - %1: %2 - - - - - %1 and %2 other files have been removed. - %1 names a file. - - - - - %1 has been removed. - %1 names a file. - - - - - %1 and %2 other files have been downloaded. - %1 names a file. - - - - - %1 has been downloaded. - %1 names a file. - - - - - %1 and %2 other files have been updated. - - - - - %1 has been updated. - %1 names a file. - - - - - %1 has been renamed to %2 and %3 other files have been renamed. - - - - - %1 has been renamed to %2. - %1 and %2 name files. - - - - - %1 has been moved to %2 and %3 other files have been moved. - - - - - %1 has been moved to %2. - - - - - %1 and %2 other files could not be synced due to errors. See the log for details. - %1 names a file. - - - - - %1 could not be synced due to an error. See the log for details. - - - - - Sync Activity - - - - - Could not read system exclude file - - - - - This sync would remove all the files in the sync folder '%1'. -This might be because the folder was silently reconfigured, or that all the file were manually removed. -Are you sure you want to perform this operation? - - - - - Remove All Files? - - - - - Remove all files - - - - - Keep files - - - - - OCC::FolderMan - - - Could not reset folder state - - - - - An old sync journal '%1' was found, but could not be removed. Please make sure that no application is currently using it. - - - - - Undefined State. - - - - - Waits to start syncing. - - - - - Preparing for sync. - - - - - Sync is running. - - - - - Last Sync was successful. - - - - - Last Sync was successful, but with warnings on individual files. - - - - - Setup Error. - - - - - User Abort. - - - - - Sync is paused. - - - - - %1 (Sync is paused) - - - - - OCC::FolderStatusDelegate - - - - File - - - - - Syncing all files in your account with - - - - - Remote path: %1 - - - - - OCC::FolderWizard - - - - Add Folder - - - - - OCC::FolderWizardLocalPath - - - Click to select a local folder to sync. - - - - - Enter the path to the local folder. - - - - - The directory alias is a descriptive name for this sync connection. - - - - - No valid local folder selected! - - - - - You have no permission to write to the selected folder! - - - - - The local path %1 is already an upload folder. Please pick another one! - - - - - An already configured folder is contained in the current entry. - - - - - The selected folder is a symbolic link. An already configured folder is contained in the folder this link is pointing to. - - - - - An already configured folder contains the currently entered folder. - - - - - The selected folder is a symbolic link. An already configured folder is the parent of the current selected contains the folder this link is pointing to. - - - - - The alias can not be empty. Please provide a descriptive alias word. - - - - - The alias <i>%1</i> is already in use. Please pick another alias. - - - - - Select the source folder - - - - - OCC::FolderWizardRemotePath - - - Create Remote Folder - - - - - Enter the name of the new folder to be created below '%1': - - - - - Folder was successfully created on %1. - - - - - Authentication failed accessing %1 - - - - - Failed to create the folder on %1. Please check manually. - - - - - Choose this to sync the entire account - - - - - This folder is already being synced. - - - - - You are already syncing <i>%1</i>, which is a parent folder of <i>%2</i>. - - - - - You are already syncing all your files. Syncing another folder is <b>not</b> supported. If you want to sync multiple folders, please remove the currently configured root folder sync. - - - - - OCC::FolderWizardSelectiveSync - - - Choose What to Sync: You can optionally deselect remote subfolders you do not wish to synchronize. - - - - - OCC::FormatWarningsWizardPage - - - <b>Warning:</b> %1 - - - - - <b>Warning:</b> - - - - - OCC::GETFileJob - - - No E-Tag received from server, check Proxy/Gateway - - - - - We received a different E-Tag for resuming. Retrying next time. - - - - - Server returned wrong content-range - - - - - Connection Timeout - - - - - OCC::GeneralSettings - - - Form - - - - - General Settings - - - - - Launch on System Startup - - - - - Show Desktop Notifications - - - - - Use Monochrome Icons - - - - - Show crash reporter - - - - - - About - - - - - Updates - - - - - &Restart && Update - - - - - OCC::HttpCredentialsGui - - - Enter Password - - - - - Please enter %1 password for user '%2': - - - - - OCC::IgnoreListEditor - - - Ignored Files Editor - - - - - Add - - - - - Remove - - - - - Files or directories matching a pattern will not be synchronized. - -Checked items will also be deleted if they prevent a directory from being removed. This is useful for meta data. - - - - - Could not open file - - - - - Cannot write changes to '%1'. - - - - - Add Ignore Pattern - - - - - Add a new ignore pattern: - - - - - Edit Ignore Pattern - - - - - Edit ignore pattern: - - - - - This entry is provided by the system at '%1' and cannot be modified in this view. - - - - - OCC::LogBrowser - - - Log Output - - - - - &Search: - - - - - &Find - - - - - Clear - - - - - Clear the log display. - - - - - S&ave - - - - - Save the log file to a file on disk for debugging. - - - - - Save log file - - - - - Error - - - - - Could not write to log file %1 - - - - - OCC::Logger - - - Error - - - - - <nobr>File '%1'<br/>cannot be opened for writing.<br/><br/>The log output can <b>not</b> be saved!</nobr> - - - - - OCC::MoveJob - - - Connection timed out - - - - - OCC::NSISUpdater - - - New Version Available - - - - - <p>A new version of the %1 Client is available.</p><p><b>%2</b> is available for download. The installed version is %3.</p> - - - - - Skip this version - - - - - Skip this time - - - - - Get update - - - - - OCC::NetworkSettings - - - Form - - - - - Proxy Settings - - - - - No Proxy - - - - - Use system proxy - - - - - Specify proxy manually as - - - - - Host - - - - - : - - - - - Proxy server requires authentication - - - - - Download Bandwidth - - - - - - Limit to - - - - - - KBytes/s - - - - - - No limit - - - - - Upload Bandwidth - - - - - Limit automatically - - - - - Hostname of proxy server - - - - - Username for proxy server - - - - - Password for proxy server - - - - - HTTP(S) proxy - - - - - SOCKS5 proxy - - - - - OCC::OCUpdater - - - New Update Ready - - - - - A new update is about to be installed. The updater may ask -for additional privileges during the process. - - - - - Downloading version %1. Please wait... - - - - - Version %1 available. Restart application to start the update. - - - - - Could not download update. Please click <a href='%1'>here</a> to download the update manually. - - - - - Could not check for new updates. - - - - - New version %1 available. Please use the system's update tool to install it. - - - - - Checking update server... - - - - - Update status is unknown: Did not check for new updates. - - - - - No updates available. Your installation is at the latest version. - - - - - OCC::OwncloudAdvancedSetupPage - - - Connect to %1 - - - - - Setup local folder options - - - - - Connect... - - - - - %1 folder '%2' is synced to local folder '%3' - - - - - Sync the directory '%1' - - - - - <p><small><strong>Warning:</strong> You currently have multiple folders configured. If you continue with the current settings, the folder configurations will be discarded and a single root folder sync will be created!</small></p> - - - - - <p><small><strong>Warning:</strong> The local directory is not empty. Pick a resolution!</small></p> - - - - - Local Sync Folder - - - - - Update advanced setup - - - - - - (%1) - - - - - OCC::OwncloudHttpCredsPage - - - Connect to %1 - - - - - Enter user credentials - - - - - Update user credentials - - - - - OCC::OwncloudSetupPage - - - Connect to %1 - - - - - Setup %1 server - - - - - This url is NOT secure as it is not encrypted. -It is not advisable to use it. - - - - - This url is secure. You can use it. - - - - - &Next > - - - - - Update %1 server - - - - - OCC::OwncloudSetupWizard - - - <font color="green">Successfully connected to %1: %2 version %3 (%4)</font><br/><br/> - - - - - Failed to connect to %1 at %2:<br/>%3 - - - - - Timeout while trying to connect to %1 at %2. - - - - - Trying to connect to %1 at %2... - - - - - Access forbidden by server. To verify that you have proper access, <a href="%1">click here</a> to access the service with your browser. - - - - - Local sync folder %1 already exists, setting it up for sync.<br/><br/> - - - - - Creating local sync folder %1... - - - - - ok - - - - - failed. - - - - - Could not create local folder %1 - - - - - No remote folder specified! - - - - - Error: %1 - - - - - creating folder on ownCloud: %1 - - - - - Remote folder %1 created successfully. - - - - - The remote folder %1 already exists. Connecting it for syncing. - - - - - - The folder creation resulted in HTTP error code %1 - - - - - The remote folder creation failed because the provided credentials are wrong!<br/>Please go back and check your credentials.</p> - - - - - <p><font color="red">Remote folder creation failed probably because the provided credentials are wrong.</font><br/>Please go back and check your credentials.</p> - - - - - - Remote folder %1 creation failed with error <tt>%2</tt>. - - - - - A sync connection from %1 to remote directory %2 was set up. - - - - - Successfully connected to %1! - - - - - Connection to %1 could not be established. Please check again. - - - - - Folder rename failed - - - - - Can't remove and back up the folder because the folder or a file in it is open in another program. Please close the folder or file and hit retry or cancel the setup. - - - - - <font color="green"><b>Local sync folder %1 successfully created!</b></font> - - - - - OCC::OwncloudWizard - - - %1 Connection Wizard - - - - - Skip folders configuration - - - - - OCC::OwncloudWizardResultPage - - - Everything set up! - - - - - Open Local Folder - - - - - Open %1 in Browser - - - - - OCC::PUTFileJob - - - Connection Timeout - - - - - OCC::PollJob - - - Invalid JSON reply from the poll URL - - - - - OCC::PropagateDownloadFileLegacy - - - Sync was aborted by user. - - - - - No E-Tag received from server, check Proxy/Gateway - - - - - We received a different E-Tag for resuming. Retrying next time. - - - - - Server returned wrong content-range - - - - - File %1 can not be downloaded because of a local file name clash! - - - - - OCC::PropagateDownloadFileQNAM - - - File %1 can not be downloaded because of a local file name clash! - - - - - The file could not be downloaded completely. - - - - - File %1 cannot be saved because of a local file name clash! - - - - - OCC::PropagateItemJob - - - ; Restoration Failed: %1 - - - - - Continue blacklisting: - - - - - A file or directory was removed from a read only share, but restoring failed: %1 - - - - - OCC::PropagateLocalMkdir - - - Attention, possible case sensitivity clash with %1 - - - - - could not create directory %1 - - - - - OCC::PropagateLocalRemove - - - Error removing '%1': %2; - - - - - Could not remove directory '%1'; - - - - - Could not remove %1 because of a local file name clash - - - - - OCC::PropagateLocalRename - - - File %1 can not be renamed to %2 because of a local file name clash - - - - - OCC::PropagateRemoteDelete - - - The file has been removed from a read only share. It was restored. - - - - - Wrong HTTP code returned by server. Expected 204, but received "%1 %2". - - - - - OCC::PropagateRemoteMkdir - - - Wrong HTTP code returned by server. Expected 201, but received "%1 %2". - - - - - OCC::PropagateRemoteMove - - - This folder must not be renamed. It is renamed back to its original name. - - - - - This folder must not be renamed. Please name it back to Shared. - - - - - The file was renamed but is part of a read only share. The original file was restored. - - - - - Wrong HTTP code returned by server. Expected 201, but received "%1 %2". - - - - - OCC::PropagateUploadFileLegacy - - - - Local file changed during sync, syncing once it arrived completely - - - - - Sync was aborted by user. - - - - - The file was edited locally but is part of a read only share. It is restored and your edit is in the conflict file. - - - - - OCC::PropagateUploadFileQNAM - - - File Removed - - - - - - Local file changed during sync. - - - - - The file was edited locally but is part of a read only share. It is restored and your edit is in the conflict file. - - - - - Poll URL missing - - - - - The local file was removed during sync. - - - - - The server did not acknowledge the last chunk. (No e-tag were present) - - - - - OCC::ProtocolWidget - - - Form - - - - - Sync Activity - - - - - Time - - - - - File - - - - - Folder - - - - - Action - - - - - Size - - - - - Retry Sync - - - - - Copy - - - - - Copy the activity list to the clipboard. - - - - - Copied to clipboard - - - - - The sync status has been copied to the clipboard. - - - - - Currently no files are ignored because of previous errors and no downloads are in progress. - - - - - %n files are ignored because of previous errors. - - - - - - - - - %n files are partially downloaded. - - - - - - - - - Try to sync these again. - - - - - OCC::SelectiveSyncDialog - - - Unchecked folders will be <b>removed</b> from your local file system and will not be synchronized to this computer anymore - - - - - Choose What to Sync: Select remote subfolders you wish to synchronize. - - - - - Choose What to Sync: Deselect remote subfolders you do not wish to synchronize. - - - - - Choose What to Sync - - - - - OCC::SelectiveSyncTreeView - - - Loading ... - - - - - Name - - - - - Size - - - - - - No subfolders currently on the server. - - - - - An error occured while loading the list of sub folders. - - - - - OCC::SettingsDialog - - - Settings - - - - - Account - - - - - Activity - - - - - General - - - - - Network - - - - - OCC::SettingsDialogMac - - - %1 - - - - - Account - - - - - Activity - - - - - General - - - - - Network - - - - - OCC::ShareDialog - - - Share NewDocument.odt - - - - - Share Info - - - - - - TextLabel - - - - - Copy &Link - - - - - - Set p&assword - - - - - Set &Password - - - - - Set &expiration date - - - - - share label - - - - - ownCloud Path: - - - - - Share link - - - - - - %1 path: %2 - - - - - %1 Sharing - - - - - Password Protected - - - - - Choose a password for the public link - - - - - OCS API error code: %1 - - - - - There is no sync folder configured. - - - - - Cannot find an folder to upload to. - - - - - A sync file with the same name exists. The file cannot be registered to sync. - - - - - The file cannot be synced. - - - - - Sharing of external directories is not yet working. - - - - - Share Directory - - - - - Share File - - - - - Local path: %1 - - - - - The file can not be shared because it was shared without sharing permission. - - - - - Public sh&aring requires a password: - - - - - Check to &share by public link - - - - - &Shared by public link (uncheck to delete share) - - - - - Waiting to upload... - - - - - Unable to register in sync space. - - - - - Sync of registered file was not successful yet. - - - - - OCC::ShibbolethCredentials - - - Login Error - - - - - You must sign in as user %1 - - - - - OCC::ShibbolethWebView - - - %1 - Authenticate - - - - - Reauthentication required - - - - - Your session has expired. You need to re-login to continue to use the client. - - - - - OCC::SocketApi - - - Share with %1 - parameter is ownCloud - - - - - OCC::SslButton - - - <h3>Certificate Details</h3> - - - - - Common Name (CN): - - - - - Subject Alternative Names: - - - - - Organization (O): - - - - - Organizational Unit (OU): - - - - - State/Province: - - - - - Country: - - - - - Serial: - - - - - <h3>Issuer</h3> - - - - - Issuer: - - - - - Issued on: - - - - - Expires on: - - - - - <h3>Fingerprints</h3> - - - - - MD 5: - - - - - SHA-256: - - - - - SHA-1: - - - - - <p><b>Note:</b> This certificate was manually approved</p> - - - - - %1 (self-signed) - - - - - %1 - - - - - This connection is encrypted using %1 bit %2. - - - - - - Certificate information: - - - - - This connection is NOT secure as it is not encrypted. - - - - - - OCC::SslErrorDialog - - - Form - - - - - Trust this certificate anyway - - - - - - SSL Connection - - - - - Warnings about current SSL Connection: - - - - - with Certificate %1 - - - - - - - &lt;not specified&gt; - - - - - - Organization: %1 - - - - - - Unit: %1 - - - - - - Country: %1 - - - - - Fingerprint (MD5): <tt>%1</tt> - - - - - Fingerprint (SHA1): <tt>%1</tt> - - - - - Effective Date: %1 - - - - - Expiration Date: %1 - - - - - Issuer: %1 - - - - - OCC::SyncEngine - - - Success. - - - - - CSync failed to load or create the journal file. Make sure you have read and write permissions in the local sync directory. - - - - - CSync failed to load the journal file. The journal file is corrupted. - - - - - <p>The %1 plugin for csync could not be loaded.<br/>Please verify the installation!</p> - - - - - CSync got an error while processing internal trees. - - - - - CSync failed to reserve memory. - - - - - CSync fatal parameter error. - - - - - CSync processing step update failed. - - - - - CSync processing step reconcile failed. - - - - - CSync could not authenticate at the proxy. - - - - - CSync failed to lookup proxy or server. - - - - - CSync failed to authenticate at the %1 server. - - - - - CSync failed to connect to the network. - - - - - A network connection timeout happened. - - - - - A HTTP transmission error happened. - - - - - CSync failed due to not handled permission deniend. - - - - - CSync tried to create a directory that already exists. - - - - - CSync: No space on %1 server available. - - - - - CSync unspecified error. - - - - - Aborted by the user - - - - - The mounted directory is temporarily not available on the server - - - - - CSync failed to access - - - - - The service is temporarily unavailable - - - - - An error occurred while opening a directory - - - - - An internal error number %1 occurred. - - - - - The item is not synced because of previous errors: %1 - - - - - Symbolic links are not supported in syncing. - - - - - Hard links are not supported in syncing. - - - - - File is listed on the ignore list. - - - - - File contains invalid characters that can not be synced cross platform. - - - - - Filename is too long. - - - - - Filename encoding is not valid - - - - - Unable to initialize a sync journal. - - - - - Cannot open the sync journal - - - - - - Ignored because of the "choose what to sync" blacklist - - - - - Not allowed because you don't have permission to add sub-directories in that directory - - - - - Not allowed because you don't have permission to add parent directory - - - - - Not allowed because you don't have permission to add files in that directory - - - - - Not allowed to upload this file because it is read-only on the server, restoring - - - - - - Not allowed to remove, restoring - - - - - Local files and share folder removed. - - - - - Move not allowed, item restored - - - - - Move not allowed because %1 is read-only - - - - - the destination - - - - - the source - - - - - OCC::Systray - - - %1: %2 - - - - - OCC::Theme - - - <p>Version %1. For more information please visit <a href='%2'>%3</a>.</p> - - - - - <p>Copyright ownCloud, Incorporated</p> - - - - - <p>Distributed by %1 and licensed under the GNU General Public License (GPL) Version 2.0.<br/>%2 and the %2 logo are registered trademarks of %1 in the United States, other countries, or both.</p> - - - - - OCC::ownCloudGui - - - Please sign in - - - - - Disconnected from server - - - - - Folder %1: %2 - - - - - No sync folders configured. - - - - - There are no sync folders configured. - - - - - None. - - - - - Recent Changes - - - - - Open %1 folder - - - - - Managed Folders: - - - - - Open folder '%1' - - - - - Open %1 in browser - - - - - Calculating quota... - - - - - Unknown status - - - - - Settings... - - - - - Details... - - - - - Help - - - - - Quit %1 - - - - - Sign in... - - - - - Sign out - - - - - Crash now - Only shows in debug mode to allow testing the crash handler - - - - - Quota n/a - - - - - %1% of %2 in use - - - - - No items synced recently - - - - - Discovering '%1' - - - - - Syncing %1 of %2 (%3 left) - - - - - Syncing %1 (%2 left) - - - - - %1 (%2, %3) - - - - - Up to date - - - - - OCC::ownCloudTheme - - - <p>Version %2. For more information visit <a href="%3">%4</a></p><p><small>By Klaas Freitag, Daniel Molkentin, Jan-Christoph Borchardt, Olivier Goffart, Markus Götz and others.</small></p><p>Copyright ownCloud, Inc.</p><p>Licensed under the GNU General Public License (GPL) Version 2.0<br/>ownCloud and the ownCloud Logo are registered trademarks of ownCloud, Inc. in the United States, other countries, or both.</p> - - - - - OwncloudAdvancedSetupPage - - - Form - - - - - - - - - - - TextLabel - - - - - Server - - - - - &Local Folder - - - - - &Keep local data - - - - - <html><head/><body><p>If this box is checked, existing content in the local directory will be erased to start a clean sync from the server.</p><p>Do not check this if the local content should be uploaded to the servers directory.</p></body></html> - - - - - &Start a clean sync (Erases the local folder!) - - - - - pbSelectLocalFolder - - - - - S&ync everything from server - - - - - Choose what to sync - - - - - Status message - - - - - OwncloudConnectionMethodDialog - - - Connection failed - - - - - <html><head/><body><p>Failed to connect to the secure server address specified. How do you wish to proceed?</p></body></html> - - - - - Select a different URL - - - - - Retry unencrypted over HTTP (insecure) - - - - - Configure client-side TLS certificate - - - - - <html><head/><body><p>Failed to connect to the secure server address <em>%1</em>. How do you wish to proceed?</p></body></html> - - - - - OwncloudHttpCredsPage - - - Form - - - - - &Username - - - - - &Password - - - - - Error Label - - - - - - TextLabel - - - - - OwncloudSetupPage - - - - Form - - - - - Server &address: - - - - - - - - - TextLabel - - - - - Use &secure connection - - - - - CheckBox - - - - - &Username: - - - - - Enter the ownCloud username. - - - - - &Password: - - - - - Enter the ownCloud password. - - - - - Do not allow the local storage of the password. - - - - - &Do not store password on local machine - - - - - https:// - - - - - Enter the url of the ownCloud you want to connect to (without http or https). - - - - - Server &Address - - - - - https://... - - - - - Error Label - - - - - OwncloudWizardResultPage - - - Form - - - - - TextLabel - - - - - - PushButton - - - - - Your entire account is synced to the local folder - - - - - Utility - - - %L1 TiB - - - - - %L1 GiB - - - - - %L1 MiB - - - - - %L1 KiB - - - - - %L1 B - - - - - main.cpp - - - System Tray not available - - - - - %1 requires on a working system tray. If you are running XFCE, please follow <a href="http://docs.xfce.org/xfce/xfce4-panel/systray">these instructions</a>. Otherwise, please install a system tray application such as 'trayer' and try again. - - - - - ownCloudTheme::about() - - - <p><small>Built from Git revision <a href="%1">%2</a> on %3, %4 using Qt %5, %6</small></p> - - - - - progress - - - Downloaded - - - - - Uploaded - - - - - Downloaded, renamed conflicting file - - - - - Deleted - - - - - Moved to %1 - - - - - Ignored - - - - - Filesystem access error - - - - - Error - - - - - - Unknown - - - - - downloading - - - - - uploading - - - - - deleting - - - - - moving - - - - - ignoring - - - - - - error - - - - - theme - - - Status undefined - - - - - Waiting to start sync - - - - - Sync is running - - - - - Sync Success - - - - - Sync Success, some files were ignored. - - - - - Sync Error - - - - - Setup Error - - - - - Preparing to sync - - - - - Aborting... - - - - - Sync is paused - - - - From ad5620efb5dbd2d78e39d1bf31abb7eea16557f8 Mon Sep 17 00:00:00 2001 From: Jocelyn Turcotte Date: Mon, 23 Mar 2015 13:43:59 +0100 Subject: [PATCH 19/19] Disable asserts in official builds Make sure that we define NDEBUG in all configurations. Also remove inconsistent defines: WIN32: We don't use _DEBUG;_WINDOWS;_USRDLL: Should be defined by the compiler if necessary OCCONTEXTMENU_EXPORTS: We currently don't use dllimport anyway This also update the binary submodule with an updated build. --- binary | 2 +- shell_integration/windows/OCContextMenu/OCContextMenu.vcxproj | 4 ++-- shell_integration/windows/OCOverlays/OCOverlays.vcxproj | 2 ++ shell_integration/windows/OCUtil/OCUtil.vcxproj | 2 ++ 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/binary b/binary index 01d73965d..1fb9ddfa9 160000 --- a/binary +++ b/binary @@ -1 +1 @@ -Subproject commit 01d73965dc8b862d1b2310d3ef801c297b697ec7 +Subproject commit 1fb9ddfa9a9a1b4dbc447eee10dbed89172d968a diff --git a/shell_integration/windows/OCContextMenu/OCContextMenu.vcxproj b/shell_integration/windows/OCContextMenu/OCContextMenu.vcxproj index 3fce7dbec..023d2d0ca 100644 --- a/shell_integration/windows/OCContextMenu/OCContextMenu.vcxproj +++ b/shell_integration/windows/OCContextMenu/OCContextMenu.vcxproj @@ -83,7 +83,6 @@ Use Level3 Disabled - WIN32;_DEBUG;_WINDOWS;_USRDLL;OCCONTEXTMENU_EXPORTS;%(PreprocessorDefinitions) true ..\OCUtil;%(AdditionalIncludeDirectories) @@ -101,8 +100,8 @@ MaxSpeed true true - WIN32;NDEBUG;_WINDOWS;_USRDLL;OCCONTEXTMENU_EXPORTS;%(PreprocessorDefinitions) ..\OCUtil;%(AdditionalIncludeDirectories) + NDEBUG;_USING_V110_SDK71_;%(PreprocessorDefinitions) Windows @@ -132,6 +131,7 @@ ..\OCUtil;%(AdditionalIncludeDirectories) + NDEBUG;_USING_V110_SDK71_;%(PreprocessorDefinitions) ..\$(Configuration)\$(Platform); diff --git a/shell_integration/windows/OCOverlays/OCOverlays.vcxproj b/shell_integration/windows/OCOverlays/OCOverlays.vcxproj index ca38c38cb..a96754c07 100644 --- a/shell_integration/windows/OCOverlays/OCOverlays.vcxproj +++ b/shell_integration/windows/OCOverlays/OCOverlays.vcxproj @@ -127,6 +127,7 @@ true true ..\OCUtil;%(AdditionalIncludeDirectories) + NDEBUG;_USING_V110_SDK71_;%(PreprocessorDefinitions) true @@ -145,6 +146,7 @@ true true ..\OCUtil;%(AdditionalIncludeDirectories) + NDEBUG;_USING_V110_SDK71_;%(PreprocessorDefinitions) true diff --git a/shell_integration/windows/OCUtil/OCUtil.vcxproj b/shell_integration/windows/OCUtil/OCUtil.vcxproj index cd5db9a87..d1c07588c 100644 --- a/shell_integration/windows/OCUtil/OCUtil.vcxproj +++ b/shell_integration/windows/OCUtil/OCUtil.vcxproj @@ -120,6 +120,7 @@ true true Use + NDEBUG;_USING_V110_SDK71_;%(PreprocessorDefinitions) true @@ -136,6 +137,7 @@ true true Use + NDEBUG;_USING_V110_SDK71_;%(PreprocessorDefinitions) true