[Pkg-owncloud-commits] [owncloud-client] 07/218: AddFolder: Improve remote path selection error handling #3573
Sandro Knauß
hefee-guest at moszumanska.debian.org
Sat Oct 17 14:30:30 UTC 2015
This is an automated email from the git hooks/post-receive script.
hefee-guest pushed a commit to branch master
in repository owncloud-client.
commit 035e57cf37e4218ee1196e6f6c00a0803b8d8d88
Author: Christian Kamm <mail at ckamm.de>
Date: Fri Aug 21 11:46:38 2015 +0200
AddFolder: Improve remote path selection error handling #3573
---
src/gui/folderwizard.cpp | 41 ++++++++++++++++++++++++++---------------
src/gui/folderwizard.h | 4 +++-
2 files changed, 29 insertions(+), 16 deletions(-)
diff --git a/src/gui/folderwizard.cpp b/src/gui/folderwizard.cpp
index cd39c6c..998632a 100644
--- a/src/gui/folderwizard.cpp
+++ b/src/gui/folderwizard.cpp
@@ -240,7 +240,7 @@ void FolderWizardRemotePath::slotCreateRemoteFolder(const QString &folder)
/* check the owncloud configuration file and query the ownCloud */
connect(job, SIGNAL(finished(QNetworkReply::NetworkError)),
SLOT(slotCreateRemoteFolderFinished(QNetworkReply::NetworkError)));
- connect(job, SIGNAL(networkError(QNetworkReply*)), SLOT(slotHandleNetworkError(QNetworkReply*)));
+ connect(job, SIGNAL(networkError(QNetworkReply*)), SLOT(slotHandleMkdirNetworkError(QNetworkReply*)));
job->start();
}
@@ -255,7 +255,7 @@ void FolderWizardRemotePath::slotCreateRemoteFolderFinished(QNetworkReply::Netwo
}
}
-void FolderWizardRemotePath::slotHandleNetworkError(QNetworkReply *reply)
+void FolderWizardRemotePath::slotHandleMkdirNetworkError(QNetworkReply *reply)
{
qDebug() << "** webdav mkdir request failed:" << reply->error();
if( reply && !_account->credentials()->stillValid(reply) ) {
@@ -266,6 +266,12 @@ void FolderWizardRemotePath::slotHandleNetworkError(QNetworkReply *reply)
}
}
+void FolderWizardRemotePath::slotHandleLsColNetworkError(QNetworkReply *reply)
+{
+ showWarn(tr("Failed to list a folder. Error: %1")
+ .arg(errorMessage(reply->errorString(), reply->readAll())));
+}
+
static QTreeWidgetItem* findFirstChild(QTreeWidgetItem *parent, const QString& text)
{
for (int i = 0; i < parent->childCount(); ++i) {
@@ -356,11 +362,7 @@ void FolderWizardRemotePath::slotUpdateDirectories(const QStringList &list)
void FolderWizardRemotePath::slotRefreshFolders()
{
- LsColJob *job = new LsColJob(_account, "/", this);
- job->setProperties(QList<QByteArray>() << "resourcetype");
- connect(job, SIGNAL(directoryListingSubfolders(QStringList)),
- SLOT(slotUpdateDirectories(QStringList)));
- job->start();
+ runLsColJob("/");
_ui.folderTreeWidget->clear();
_ui.folderEntry->clear();
}
@@ -368,11 +370,7 @@ void FolderWizardRemotePath::slotRefreshFolders()
void FolderWizardRemotePath::slotItemExpanded(QTreeWidgetItem *item)
{
QString dir = item->data(0, Qt::UserRole).toString();
- LsColJob *job = new LsColJob(_account, dir, this);
- job->setProperties(QList<QByteArray>() << "resourcetype");
- connect(job, SIGNAL(directoryListingSubfolders(QStringList)),
- SLOT(slotUpdateDirectories(QStringList)));
- job->start();
+ runLsColJob(dir);
}
void FolderWizardRemotePath::slotCurrentItemChanged(QTreeWidgetItem *item)
@@ -405,11 +403,11 @@ void FolderWizardRemotePath::slotLsColFolderEntry()
if (path.startsWith(QLatin1Char('/')))
path = path.mid(1);
- LsColJob *job = new LsColJob(_account, path, this);
- job->setProperties(QList<QByteArray>() << "resourcetype");
+ LsColJob *job = runLsColJob(path);
+ // no error handling, no updating, we do this manually
+ disconnect(job, 0, this, 0);
connect(job, SIGNAL(directoryListingSubfolders(QStringList)),
SLOT(slotTypedPathFound(QStringList)));
- job->start();
}
void FolderWizardRemotePath::slotTypedPathFound(const QStringList& subpaths)
@@ -418,6 +416,19 @@ void FolderWizardRemotePath::slotTypedPathFound(const QStringList& subpaths)
selectByPath(_ui.folderEntry->text());
}
+LsColJob* FolderWizardRemotePath::runLsColJob(const QString& path)
+{
+ LsColJob *job = new LsColJob(_account, path, this);
+ job->setProperties(QList<QByteArray>() << "resourcetype");
+ connect(job, SIGNAL(directoryListingSubfolders(QStringList)),
+ SLOT(slotUpdateDirectories(QStringList)));
+ connect(job, SIGNAL(finishedWithError(QNetworkReply*)),
+ SLOT(slotHandleLsColNetworkError(QNetworkReply*)));
+ job->start();
+
+ return job;
+}
+
FolderWizardRemotePath::~FolderWizardRemotePath()
{
}
diff --git a/src/gui/folderwizard.h b/src/gui/folderwizard.h
index 945a95f..1796555 100644
--- a/src/gui/folderwizard.h
+++ b/src/gui/folderwizard.h
@@ -89,7 +89,8 @@ protected slots:
void slotAddRemoteFolder();
void slotCreateRemoteFolder(const QString&);
void slotCreateRemoteFolderFinished(QNetworkReply::NetworkError error);
- void slotHandleNetworkError(QNetworkReply*);
+ void slotHandleMkdirNetworkError(QNetworkReply*);
+ void slotHandleLsColNetworkError(QNetworkReply*);
void slotUpdateDirectories(const QStringList&);
void slotRefreshFolders();
void slotItemExpanded(QTreeWidgetItem*);
@@ -98,6 +99,7 @@ protected slots:
void slotLsColFolderEntry();
void slotTypedPathFound(const QStringList& subpaths);
private:
+ LsColJob* runLsColJob(const QString& path);
void recursiveInsert(QTreeWidgetItem *parent, QStringList pathTrail, QString path);
bool selectByPath(QString path);
Ui_FolderWizardTargetPage _ui;
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud-client.git
More information about the Pkg-owncloud-commits
mailing list