From e74483434835ad799b1a6880ae4576aacb14624a Mon Sep 17 00:00:00 2001 From: zautrix Date: Wed, 15 Jun 2005 20:45:30 +0000 Subject: fixes --- (limited to 'korganizer') diff --git a/korganizer/kofilterview.cpp b/korganizer/kofilterview.cpp index 105028a..36ee2eb 100644 --- a/korganizer/kofilterview.cpp +++ b/korganizer/kofilterview.cpp @@ -27,6 +27,8 @@ #include #include #include +#include +#include #include @@ -39,43 +41,8 @@ #include -#include -#include - -class KONewCalPrefs : public QDialog -{ - public: - KONewCalPrefs( QWidget *parent=0, const char *name=0 ) : - QDialog( parent, name, true ) - { - setCaption( i18n("Add new Calendar") ); - QVBoxLayout* lay = new QVBoxLayout( this ); - lay->setSpacing( 3 ); - lay->setMargin( 3 ); - QLabel * lab = new QLabel( i18n("Name of new calendar:"), this ); - lay->addWidget( lab ); - nameE = new KLineEdit( this ); - lay->addWidget( nameE ); - lab = new QLabel( i18n("Local ical (*.ics) file:"), this ); - lay->addWidget( lab ); - url = new KURLRequester ( this ); - lay->addWidget( url ); - QPushButton * ok = new QPushButton( i18n("OK"), this ); - lay->addWidget( ok ); - QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); - lay->addWidget( cancel ); - connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); - connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); - //resize( 200, 200 ); - } - - QString calName() { return nameE->text(); } - QString calFileName() { return url->url(); } -private: - KLineEdit* nameE; - KURLRequester *url; -}; + KOFilterView::KOFilterView(QPtrList *filterList,QWidget* parent, const char* name,WFlags fl ) @@ -242,7 +209,7 @@ void KOCalEditView::infoCal( int id ) QString name = KOPrefs::instance()->getCalendar( id )->mName; QString file = KOPrefs::instance()->getCalendar( id )->mFileName; if ( KOPrefs::instance()->getCalendar( id )->mErrorOnLoad ) { - if ( KMessageBox::Yes == KMessageBox::questionYesNo( this, i18n("The calendar %1 is not loaded! Loading of file %2 failed! Try again to load the calendar?").arg(name).arg(file) ) ) { + if ( KMessageBox::Yes == KMessageBox::questionYesNo( this, i18n("The calendar %1 is not loaded! Loading of file %2failed!Try again to load the calendar?").arg(name).arg(file) ) ) { emit calendarAdded( id ); emit needsUpdate(); QTimer::singleShot( 0, this, SLOT ( readConfig() ) ); @@ -373,15 +340,46 @@ void KOCalEditView::readConfig() } void KOCalEditView::addCal() { - KONewCalPrefs prefs ( this ); - if ( ! prefs.exec() ) - return; - QString name = prefs.calName(); - QString file = prefs.calFileName(); + bool tryagain = true; + QString name, file; + while ( tryagain ) { + KONewCalPrefs prefs ( this ); + if ( !name.isEmpty() ) prefs.nameE->setText( name ); + if ( !file.isEmpty() ) prefs.url->setURL( file ); + if ( ! prefs.exec() ) + return; + name = prefs.calName(); + file = prefs.calFileName(); + tryagain = false; + KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first(); + while ( kkf ) { + if ( kkf->mName == name ) { + KMessageBox::information( this, i18n("Sorry, the calendar name already exists!\nPlease choose another name!") ); + name = ""; + break; + tryagain = true; + } + if ( kkf->mFileName == file ) { + + break; + tryagain = true; + } + kkf = KOPrefs::instance()->mCalendars.next(); + } + } QFileInfo fi ( file ); if (!fi.exists() ) { - KMessageBox::information( this, i18n("File does not exist!\nNo calendar added!")); - return; + if ( KMessageBox::questionYesNo(this, i18n("The file does not exist!\nShall I create it for you?")) == KMessageBox::No ) + return; + QFile fileIn( file ); + if (!fileIn.open( IO_WriteOnly ) ) { + KMessageBox::sorry( this, i18n("Sorry, cannot create the file!\nNo calendar added!") ); + return; + } + QTextStream tsIn( &fileIn ); + tsIn.setCodec( QTextCodec::codecForName("utf8") ); + tsIn << "BEGIN:VCALENDAR\nPRODID:-//KDE-Pim//Platform-independent 2.1.0\nVERSION:2.0\nEND:VCALENDAR\n"; + fileIn.close(); } KopiCalendarFile * kkf = KOPrefs::instance()->getNewCalendar(); kkf->mName = name; diff --git a/korganizer/kofilterview.h b/korganizer/kofilterview.h index 3ab316f..945947a 100644 --- a/korganizer/kofilterview.h +++ b/korganizer/kofilterview.h @@ -25,6 +25,8 @@ #include #include +#include +#include #include #include #include @@ -32,9 +34,66 @@ #include +#include +#include +#include +#include + class QGridLayout; using namespace KCal; + +class KONewCalPrefs : public QDialog +{ + Q_OBJECT + public: + KONewCalPrefs( QWidget *parent=0, const char *name=0 ) : + QDialog( parent, name, true ) + { + setCaption( i18n("Add new Calendar") ); + QVBoxLayout* lay = new QVBoxLayout( this ); + lay->setSpacing( 3 ); + lay->setMargin( 3 ); + QLabel * lab = new QLabel( i18n("Name of new calendar:"), this ); + lay->addWidget( lab ); + nameE = new KLineEdit( this ); + lay->addWidget( nameE ); + lab = new QLabel( i18n("Local ical (*.ics) file:"), this ); + lay->addWidget( lab ); + url = new KURLRequester ( this ); + lay->addWidget( url ); + QPushButton * ok = new QPushButton( i18n("OK"), this ); + lay->addWidget( ok ); + QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); + lay->addWidget( cancel ); + connect ( ok,SIGNAL(clicked() ),this , SLOT ( checkValid() ) ); + connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); + setMinimumWidth( 220 ); + resize(sizeHint() ); + } + + QString calName() { return nameE->text(); } + QString calFileName() { return url->url(); } + +public slots: +void checkValid() { + if ( nameE->text().isEmpty() ) { + KMessageBox::information( this, i18n("Sorry, the calendar name is empty!") ); + nameE->setText( "LPQJ_"+ QString::number( QTime::currentTime().msec () )); + return; + } + if ( url->url().isEmpty() ) { + KMessageBox::information( this, i18n("Sorry, the file name is empty!") ); + return; + } + accept(); +} + +public: + KLineEdit* nameE; + KURLRequester *url; +}; + class KOCalButton : public QPushButton { Q_OBJECT -- cgit v0.9.0.2