-rw-r--r-- | korganizer/kofilterview.cpp | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/korganizer/kofilterview.cpp b/korganizer/kofilterview.cpp index ff80afc..7ce3f1f 100644 --- a/korganizer/kofilterview.cpp +++ b/korganizer/kofilterview.cpp | |||
@@ -38,4 +38,5 @@ | |||
38 | #include <kiconloader.h> | 38 | #include <kiconloader.h> |
39 | #include <kglobal.h> | 39 | #include <kglobal.h> |
40 | #include <kglobalsettings.h> | ||
40 | #include <kcolorbutton.h> | 41 | #include <kcolorbutton.h> |
41 | #include <kmessagebox.h> | 42 | #include <kmessagebox.h> |
@@ -399,9 +400,23 @@ int KOCalEditView::addCalendar( QString name, QString file, bool ask ) | |||
399 | 400 | ||
400 | QFileInfo fi ( file ); | 401 | QFileInfo fi ( file ); |
402 | QString absFile = file; | ||
403 | bool isRelative = false; | ||
404 | if ( fi.isRelative() ) { | ||
405 | isRelative = true; | ||
406 | absFile = KGlobalSettings::calendarDir()+file; | ||
407 | fi.setFile( absFile ); | ||
408 | } else { | ||
409 | QString cd = KGlobalSettings::calendarDir(); | ||
410 | if ( file.left( cd.length() ) == cd ) { | ||
411 | isRelative = true; | ||
412 | file = fi.fileName (); | ||
413 | fi.setFile( absFile ); | ||
414 | } | ||
415 | } | ||
401 | if (!fi.exists() ) { | 416 | if (!fi.exists() ) { |
402 | if ( ask ) | 417 | if ( ask ) |
403 | if ( KMessageBox::questionYesNo(this, i18n("The file\n%1\ndoes not exist!\nShall I create it for you?").arg( file ) )== KMessageBox::No ) | 418 | if ( KMessageBox::questionYesNo(this, i18n("The file\n%1\ndoes not exist!\nShall I create it for you?").arg( KGlobal::formatMessage (absFile,0) ) )== KMessageBox::No ) |
404 | return 0; | 419 | return 0; |
405 | QFile fileIn( file ); | 420 | QFile fileIn( absFile ); |
406 | if (!fileIn.open( IO_WriteOnly ) ) { | 421 | if (!fileIn.open( IO_WriteOnly ) ) { |
407 | KMessageBox::sorry( this, i18n("Sorry, cannot create the file\n%1!\nNo calendar added!").arg( file ) ); | 422 | KMessageBox::sorry( this, i18n("Sorry, cannot create the file\n%1!\nNo calendar added!").arg( file ) ); |
@@ -415,5 +430,7 @@ int KOCalEditView::addCalendar( QString name, QString file, bool ask ) | |||
415 | KopiCalendarFile * kkf = KOPrefs::instance()->getNewCalendar(); | 430 | KopiCalendarFile * kkf = KOPrefs::instance()->getNewCalendar(); |
416 | kkf->mName = name; | 431 | kkf->mName = name; |
417 | kkf->mFileName = file; | 432 | kkf->mFileName = absFile; |
433 | kkf->mSavedFileName = file; | ||
434 | kkf->isRelative = isRelative; | ||
418 | emit calendarAdded( kkf->mCalNumber ); | 435 | emit calendarAdded( kkf->mCalNumber ); |
419 | if ( ask ) | 436 | if ( ask ) |