-rw-r--r-- | bin/kdepim/WhatsNew.txt | 2 | ||||
-rw-r--r-- | korganizer/koeditorgeneral.cpp | 65 | ||||
-rw-r--r-- | korganizer/koeditorgeneral.h | 4 | ||||
-rw-r--r-- | korganizer/koeventpopupmenu.cpp | 1 | ||||
-rw-r--r-- | libkcal/calendarlocal.cpp | 7 |
5 files changed, 69 insertions, 10 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt index 71d7208..27d37c4 100644 --- a/bin/kdepim/WhatsNew.txt +++ b/bin/kdepim/WhatsNew.txt @@ -3,6 +3,8 @@ Info about the changes in new versions of KDE-Pim/Pi ********** VERSION 2.1.13 ************ Fixed a problem in KA/Pi search. +Fixed some minor problems in KO/Pi. +Added calendar selection possibility to the todo view popup and to the event/todo editor. ********** VERSION 2.1.12 ************ diff --git a/korganizer/koeditorgeneral.cpp b/korganizer/koeditorgeneral.cpp index 29e68b3..753630b 100644 --- a/korganizer/koeditorgeneral.cpp +++ b/korganizer/koeditorgeneral.cpp @@ -81,7 +81,7 @@ void KOEditorGeneral::initHeader(QWidget *parent,QBoxLayout *topLayout) // 11 on desktop headerLayout->setSpacing( (KDialog::spacingHint()-3)*2+1 ); QLabel *summaryLabel = new QLabel(i18n("Summary:"),parent); - headerLayout->addWidget(summaryLabel,1,0); + headerLayout->addWidget(summaryLabel,0,0); mSummaryEdit = new KOLocationBox(TRUE,parent, 10); mSummaryEdit->setSizePolicy( QSizePolicy( QSizePolicy::Preferred ,QSizePolicy::MinimumExpanding ,FALSE) ); @@ -93,14 +93,17 @@ void KOEditorGeneral::initHeader(QWidget *parent,QBoxLayout *topLayout) //qDebug("%d %d %d %d %d %d ", QSizePolicy::Fixed , QSizePolicy::Minimum , QSizePolicy:: Maximum , QSizePolicy:: Preferred , QSizePolicy:: MinimumExpanding , QSizePolicy::Expanding ); // SizeType { Fixed = 0, Minimum = MayGrow, Maximum = MayShrink, Preferred = MayGrow|MayShrink, MinimumExpanding = Minimum|ExpMask, Expanding = MinimumExpanding|MayShrink } // mSummaryEdit = new QLineEdit(parent); - headerLayout->addWidget(mSummaryEdit,1,1); + if ( QApplication::desktop()->height() < 320 ) + headerLayout->addWidget(mSummaryEdit,0,1); + else + headerLayout->addMultiCellWidget(mSummaryEdit,0,0,1,2); connect ( mSummaryEdit->lineEdit(), SIGNAL ( returnPressed() ), this, SIGNAL (allAccepted () ) ); QLabel *locationLabel = new QLabel(i18n("Location:"),parent); if ( QApplication::desktop()->height() < 320 ) - headerLayout->addWidget(locationLabel,1,2); + headerLayout->addWidget(locationLabel,0,2); else - headerLayout->addWidget(locationLabel,2,0); + headerLayout->addWidget(locationLabel,1,0); mLocationEdit = new KOLocationBox(TRUE,parent,10); mLocationEdit->setSizePolicy( QSizePolicy( QSizePolicy::Preferred ,QSizePolicy::MinimumExpanding ,FALSE) ); @@ -109,15 +112,22 @@ void KOEditorGeneral::initHeader(QWidget *parent,QBoxLayout *topLayout) // mLocationEdit = new QLineEdit(parent); connect ( mLocationEdit->lineEdit(), SIGNAL ( returnPressed() ), this, SIGNAL (allAccepted () ) ); + + mCalendarBox = new QComboBox ( parent ); + mCalendarBox->setSizePolicy( QSizePolicy( QSizePolicy::Preferred ,QSizePolicy::MinimumExpanding ,FALSE) ); if ( QApplication::desktop()->height() < 320 ) { - headerLayout->addWidget(mLocationEdit,1,3); + headerLayout->addWidget(mLocationEdit,0,3); + headerLayout->addWidget(mCalendarBox,0,4); headerLayout->setColStretch( 1, 10); headerLayout->setColStretch( 3, 10); + mCalendarBox->setMaximumWidth( 64 ); } else { - headerLayout->addWidget(mLocationEdit,2,1); + headerLayout->addWidget(mLocationEdit,1,1); + headerLayout->addWidget(mCalendarBox,1,2); headerLayout->setColStretch( 1, 10); } + } void KOEditorGeneral::setFocusOn( int i ) { @@ -436,14 +446,54 @@ void KOEditorGeneral::setDefaults(bool allDay) mDescriptionEdit->setText(""); mAlarmSound = KOPrefs::instance()->mDefaultAlarmFile; setCategories(""); + fillCalCombo(); } void KOEditorGeneral::setSecrecy( int num ) { mSecrecyCombo->setCurrentItem(num); } -void KOEditorGeneral::readIncidence(Incidence *event) +void KOEditorGeneral::fillCalCombo( int setToID ) { + mCalendarBox->clear(); + KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first(); + int std = 0; + int count = 0; + while ( kkf ) { + if ( !kkf->mErrorOnLoad &&! kkf->isReadOnly ) { + if ( setToID ) { + if ( kkf->mCalNumber == setToID ) + std = count; + } else { + if ( kkf->isStandard ) { + std = count; + } + } + ++count; + mCalendarBox->insertItem( kkf->mName ); + } + kkf = KOPrefs::instance()->mCalendars.next(); + } + mCalendarBox->setCurrentItem( std ); + if ( KOPrefs::instance()->mCalendars.count() == 1 ) + mCalendarBox->hide(); + else + mCalendarBox->show(); + +} +int KOEditorGeneral::getCalendarID() +{ + KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first(); + while ( kkf ) { + if ( mCalendarBox->currentText() == kkf->mName) + return kkf->mCalNumber; + kkf = KOPrefs::instance()->mCalendars.next(); + } + return 1; +} +void KOEditorGeneral::readIncidence(Incidence *event) +{ + fillCalCombo( event->calID() ); mAlarmMessage = event->summary(); if ( ! event->location().isEmpty() ) mAlarmMessage += " ("+event->location()+")"; @@ -569,4 +619,5 @@ void KOEditorGeneral::writeIncidence(Incidence *event) alarm->setType(Alarm::Invalid); } } + event->setCalID( getCalendarID() ); } diff --git a/korganizer/koeditorgeneral.h b/korganizer/koeditorgeneral.h index c463403..d8b15af 100644 --- a/korganizer/koeditorgeneral.h +++ b/korganizer/koeditorgeneral.h @@ -35,6 +35,7 @@ #include <qradiobutton.h> #include <qlayout.h> #include <qspinbox.h> +#include <qcombobox.h> #include <ktextedit.h> #include <krestrictedline.h> @@ -72,6 +73,7 @@ class KOEditorGeneral : public QObject void enableAlarm( bool enable ); void setSecrecy( int num ); + int getCalendarID(); public slots: void setCategories(const QString &); void editCategories(); @@ -92,11 +94,13 @@ class KOEditorGeneral : public QObject void dateTimesChanged(QDateTime,QDateTime); protected: + void fillCalCombo( int setToID = 0 ); int mNextFocus; //QLineEdit *mSummaryEdit; //QLineEdit *mLocationEdit; KOLocationBox *mSummaryEdit; KOLocationBox *mLocationEdit; + QComboBox *mCalendarBox; QLabel *mAlarmBell; QCheckBox *mAlarmButton; QSpinBox *mAlarmTimeEdit; diff --git a/korganizer/koeventpopupmenu.cpp b/korganizer/koeventpopupmenu.cpp index 77322e7..fc4d9a4 100644 --- a/korganizer/koeventpopupmenu.cpp +++ b/korganizer/koeventpopupmenu.cpp @@ -78,7 +78,6 @@ void KOEventPopupMenu::enableDefault( bool enable ) for( it = mSingleOnlyItems.begin(); it != mSingleOnlyItems.end(); ++it ) { setItemEnabled(*it,enable); } - } void KOEventPopupMenu::fillCalPopup() // CAL diff --git a/libkcal/calendarlocal.cpp b/libkcal/calendarlocal.cpp index ca64e66..cce798f 100644 --- a/libkcal/calendarlocal.cpp +++ b/libkcal/calendarlocal.cpp @@ -223,7 +223,8 @@ bool CalendarLocal::addEvent( Event *event ) event->registerObserver( this ); setModified( true ); - event->setCalID( mDefaultCalendar ); + if ( event->calID() == 0 ) + event->setCalID( mDefaultCalendar ); event->setCalEnabled( true ); return true; @@ -277,6 +278,7 @@ bool CalendarLocal::addTodo( Todo *todo ) setupRelations( todo ); setModified( true ); + if ( todo->calID() == 0 ) todo->setCalID( mDefaultCalendar ); todo->setCalEnabled( true ); return true; @@ -781,7 +783,8 @@ bool CalendarLocal::addJournal(Journal *journal) journal->registerObserver( this ); setModified( true ); - journal->setCalID( mDefaultCalendar ); + if ( journal->calID() == 0 ) + journal->setCalID( mDefaultCalendar ); journal->setCalEnabled( true ); return true; } |