diff options
author | Klaas Freitag <freitag@owncloud.com> | 2016-03-09 17:21:52 +0300 |
---|---|---|
committer | Klaas Freitag <freitag@owncloud.com> | 2016-03-10 19:46:00 +0300 |
commit | 4a4dac22e2611b5abd53cc27fafa1b11f8218254 (patch) | |
tree | 8ac53c5da9fe1287d423350b61424a1f6774db65 /src/gui/notificationconfirmjob.cpp | |
parent | 32e16b323c24f4b90da8cf31831a1b875675b676 (diff) |
Notifications: Add a Progress indicator and handle job results.
Parse the replyCode from the button action calls and disable
buttons accordingly.
Diffstat (limited to 'src/gui/notificationconfirmjob.cpp')
-rw-r--r-- | src/gui/notificationconfirmjob.cpp | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/src/gui/notificationconfirmjob.cpp b/src/gui/notificationconfirmjob.cpp index f243656fc..8bcbbea3e 100644 --- a/src/gui/notificationconfirmjob.cpp +++ b/src/gui/notificationconfirmjob.cpp @@ -21,7 +21,8 @@ namespace OCC { NotificationConfirmJob::NotificationConfirmJob(AccountPtr account) -: AbstractNetworkJob(account, "") +: AbstractNetworkJob(account, ""), + _widget(0) { setIgnoreCredentialFailure(true); } @@ -32,6 +33,16 @@ void NotificationConfirmJob::setLinkAndVerb(const QUrl& link, const QString &ver _verb = verb; } +void NotificationConfirmJob::setWidget( NotificationWidget *widget ) +{ + _widget = widget; +} + +NotificationWidget *NotificationConfirmJob::widget() +{ + return _widget; +} + void NotificationConfirmJob::start() { if( !_link.isValid() ) { @@ -52,9 +63,16 @@ bool NotificationConfirmJob::finished() { int replyCode = 0; // FIXME: check for the reply code! - const QString replyData = reply()->readAll(); + const QString replyStr = reply()->readAll(); - emit jobFinished(replyData, replyCode); + if( replyStr.contains( "<?xml version=\"1.0\"?>") ) { + QRegExp rex("<statuscode>(\\d+)</statuscode>"); + if( replyStr.contains(rex) ) { + // this is a error message coming back from ocs. + replyCode = rex.cap(1).toInt(); + } + } + emit jobFinished(replyStr, replyCode); return true; |