summaryrefslogtreecommitdiffstats
path: root/kresources/remote
diff options
context:
space:
mode:
Diffstat (limited to 'kresources/remote')
-rw-r--r--kresources/remote/resourceremote.cpp20
1 files changed, 17 insertions, 3 deletions
diff --git a/kresources/remote/resourceremote.cpp b/kresources/remote/resourceremote.cpp
index 3c9db7695..68d484c01 100644
--- a/kresources/remote/resourceremote.cpp
+++ b/kresources/remote/resourceremote.cpp
@@ -30,6 +30,7 @@
#include <kurl.h>
#include <kio/job.h>
#include <klocale.h>
+#include <kmessagebox.h>
#include <kstandarddirs.h>
#include <libkcal/icalformat.h>
@@ -220,7 +221,20 @@ void ResourceRemote::slotPercent( KIO::Job *, unsigned long percent )
void ResourceRemote::slotLoadJobResult( KIO::Job *job )
{
if ( job->error() ) {
- job->showErrorDialog( 0 );
+ // TODO: Should detect 404, 401 etc. vs host not found and prompt to create new resource only when 404 is returned
+ QString warningString = QString("<b>") + i18n("Remote data access failure") + QString("</b><p>") + i18n("Detailed information") \
+ + QString(":<br>") + job->errorString() + QString("<p>") + i18n("What would you like to do?");
+ int rc = KMessageBox::warningContinueCancel(0,
+ warningString, i18n("Remote Data Access Failure"), i18n("&Continue with cached resource"));
+ if ( rc == KMessageBox::Continue ) {
+ mCalendar.close();
+ disableChangeNotification();
+ loadCache();
+ enableChangeNotification();
+
+ emit resourceChanged( this );
+ }
+ //job->showErrorDialog( 0 );
} else {
kdDebug(5800) << "ResourceRemote::slotLoadJobResult() success" << endl;
@@ -284,7 +298,7 @@ void ResourceRemote::slotSaveJobResult( KIO::Job *job )
job->showErrorDialog( 0 );
} else {
kdDebug(5800) << "ResourceRemote::slotSaveJobResult() success" << endl;
-
+
Incidence::List::ConstIterator it;
for( it = mChangedIncidences.begin(); it != mChangedIncidences.end();
++it ) {
@@ -292,7 +306,7 @@ void ResourceRemote::slotSaveJobResult( KIO::Job *job )
}
mChangedIncidences.clear();
}
-
+
mUploadJob = 0;
emit resourceSaved( this );