author | zautrix <zautrix> | 2005-11-30 08:30:24 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2005-11-30 08:30:24 (UTC) |
commit | 042f35a481acf6c4e711e98184abb6c9f6542429 (patch) (unidiff) | |
tree | 47622f89ebfb6c677797d7906f167ba80976ab7d /korganizer | |
parent | 14bd7cc7412ffdbca09e1cd63a230222a3fbfd53 (diff) | |
download | kdepimpi-042f35a481acf6c4e711e98184abb6c9f6542429.zip kdepimpi-042f35a481acf6c4e711e98184abb6c9f6542429.tar.gz kdepimpi-042f35a481acf6c4e711e98184abb6c9f6542429.tar.bz2 |
commit
-rw-r--r-- | korganizer/koeditorgeneral.cpp | 7 | ||||
-rw-r--r-- | korganizer/koeditorgeneral.h | 2 | ||||
-rw-r--r-- | korganizer/koeventeditor.cpp | 4 | ||||
-rw-r--r-- | korganizer/koeventviewer.cpp | 8 | ||||
-rw-r--r-- | korganizer/koincidenceeditor.cpp | 5 | ||||
-rw-r--r-- | korganizer/koincidenceeditor.h | 3 | ||||
-rw-r--r-- | korganizer/kotodoeditor.cpp | 4 |
7 files changed, 28 insertions, 5 deletions
diff --git a/korganizer/koeditorgeneral.cpp b/korganizer/koeditorgeneral.cpp index 92e5a0f..21f220c 100644 --- a/korganizer/koeditorgeneral.cpp +++ b/korganizer/koeditorgeneral.cpp | |||
@@ -114,65 +114,64 @@ void KOEditorGeneral::initHeader(QWidget *parent,QBoxLayout *topLayout) | |||
114 | connect ( mLocationEdit->lineEdit(), SIGNAL ( returnPressed() ), this, SIGNAL (allAccepted () ) ); | 114 | connect ( mLocationEdit->lineEdit(), SIGNAL ( returnPressed() ), this, SIGNAL (allAccepted () ) ); |
115 | 115 | ||
116 | mCalendarBox = new QComboBox ( parent ); | 116 | mCalendarBox = new QComboBox ( parent ); |
117 | mCalendarBox->setSizePolicy( QSizePolicy( QSizePolicy::Preferred ,QSizePolicy::MinimumExpanding ,FALSE) ); | 117 | mCalendarBox->setSizePolicy( QSizePolicy( QSizePolicy::Preferred ,QSizePolicy::MinimumExpanding ,FALSE) ); |
118 | if ( QApplication::desktop()->height() < 320 ) { | 118 | if ( QApplication::desktop()->height() < 320 ) { |
119 | headerLayout->addWidget(mLocationEdit,0,3); | 119 | headerLayout->addWidget(mLocationEdit,0,3); |
120 | headerLayout->addWidget(mCalendarBox,0,4); | 120 | headerLayout->addWidget(mCalendarBox,0,4); |
121 | headerLayout->setColStretch( 1, 10); | 121 | headerLayout->setColStretch( 1, 10); |
122 | headerLayout->setColStretch( 3, 10); | 122 | headerLayout->setColStretch( 3, 10); |
123 | mCalendarBox->setMaximumWidth( 64 ); | 123 | mCalendarBox->setMaximumWidth( 64 ); |
124 | } | 124 | } |
125 | else { | 125 | else { |
126 | headerLayout->addWidget(mLocationEdit,1,1); | 126 | headerLayout->addWidget(mLocationEdit,1,1); |
127 | headerLayout->addWidget(mCalendarBox,1,2); | 127 | headerLayout->addWidget(mCalendarBox,1,2); |
128 | int str = 3; | 128 | int str = 3; |
129 | if ( QApplication::desktop()->width() < 640 ) { | 129 | if ( QApplication::desktop()->width() < 640 ) { |
130 | --str; | 130 | --str; |
131 | if ( QApplication::desktop()->width() < 320 ) | 131 | if ( QApplication::desktop()->width() < 320 ) |
132 | --str; | 132 | --str; |
133 | } | 133 | } |
134 | headerLayout->setColStretch( 1, str); | 134 | headerLayout->setColStretch( 1, str); |
135 | headerLayout->setColStretch( 2, 1); | 135 | headerLayout->setColStretch( 2, 1); |
136 | } | 136 | } |
137 | 137 | ||
138 | } | 138 | } |
139 | void KOEditorGeneral::setFocusOn( int i ) | 139 | void KOEditorGeneral::setFocusOn( int i ) |
140 | { | 140 | { |
141 | mNextFocus = i; | 141 | mNextFocus = i; |
142 | QTimer::singleShot( 0, this, SLOT ( slotSetFocusOn() )); | 142 | QTimer::singleShot( 0, this, SLOT ( slotSetFocusOn() )); |
143 | } | 143 | } |
144 | void KOEditorGeneral::slotSetFocusOn() | 144 | void KOEditorGeneral::slotSetFocusOn() |
145 | { | 145 | { |
146 | mNextFocus; | ||
147 | if ( mNextFocus == 1 ) { | 146 | if ( mNextFocus == 1 ) { |
148 | mDescriptionEdit->setFocus(); | 147 | mDescriptionEdit->setFocus(); |
149 | mDescriptionEdit->setCursorPosition( mDescriptionEdit->numLines (), 333); | 148 | mDescriptionEdit->setCursorPosition( mDescriptionEdit->numLines (), 333); |
150 | } | 149 | } |
151 | if ( mNextFocus == 2 ) { | 150 | if ( mNextFocus == 2 ) { |
152 | mSummaryEdit->setFocus(); | 151 | mSummaryEdit->setFocus(); |
153 | } | 152 | } |
154 | } | 153 | } |
155 | void KOEditorGeneral::editCategories() | 154 | void KOEditorGeneral::editCategories() |
156 | { | 155 | { |
157 | // qDebug("KOEditorGeneral::editCategories() "); | 156 | // qDebug("KOEditorGeneral::editCategories() "); |
158 | KPIM::CategorySelectDialog* csd = new KPIM::CategorySelectDialog( KOPrefs::instance(), 0 ); | 157 | KPIM::CategorySelectDialog* csd = new KPIM::CategorySelectDialog( KOPrefs::instance(), 0 ); |
159 | connect(csd,SIGNAL(categoriesSelected(const QString &)), this ,SLOT(setCategories(const QString &))); | 158 | connect(csd,SIGNAL(categoriesSelected(const QString &)), this ,SLOT(setCategories(const QString &))); |
160 | //KOGlobals::fitDialogToScreen( csd ); | 159 | //KOGlobals::fitDialogToScreen( csd ); |
161 | csd->setColorEnabled(); | 160 | csd->setColorEnabled(); |
162 | csd->setSelected( QStringList::split (",", mCategoriesLabel->text()) ); | 161 | csd->setSelected( QStringList::split (",", mCategoriesLabel->text()) ); |
163 | csd->exec(); | 162 | csd->exec(); |
164 | delete csd; | 163 | delete csd; |
165 | } | 164 | } |
166 | 165 | ||
167 | void KOEditorGeneral::showCatPopup() | 166 | void KOEditorGeneral::showCatPopup() |
168 | { | 167 | { |
169 | mCatPopup->clear(); | 168 | mCatPopup->clear(); |
170 | QStringList checkedCategories = QStringList::split (",", mCategoriesLabel->text()); | 169 | QStringList checkedCategories = QStringList::split (",", mCategoriesLabel->text()); |
171 | int index = 0; | 170 | int index = 0; |
172 | for (QStringList::Iterator it = KOPrefs::instance()->mCustomCategories.begin (); | 171 | for (QStringList::Iterator it = KOPrefs::instance()->mCustomCategories.begin (); |
173 | it != KOPrefs::instance()->mCustomCategories.end (); | 172 | it != KOPrefs::instance()->mCustomCategories.end (); |
174 | ++it) { | 173 | ++it) { |
175 | mCatPopup->insertItem (*it, index ); | 174 | mCatPopup->insertItem (*it, index ); |
176 | //mCategory[index] = *it; | 175 | //mCategory[index] = *it; |
177 | if (checkedCategories.find (*it) != checkedCategories.end ()) mCatPopup->setItemChecked (index, true); | 176 | if (checkedCategories.find (*it) != checkedCategories.end ()) mCatPopup->setItemChecked (index, true); |
178 | ++index; | 177 | ++index; |
@@ -326,65 +325,65 @@ void KOEditorGeneral::pickAlarmSound() | |||
326 | ((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Proc.Al.: ") + getFittingPath(mAlarmProgram) ); | 325 | ((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Proc.Al.: ") + getFittingPath(mAlarmProgram) ); |
327 | if ( mAlarmSoundButton->isOn()) | 326 | if ( mAlarmSoundButton->isOn()) |
328 | ((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Audio Al.: ") + getFittingPath(mAlarmSound) ); | 327 | ((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Audio Al.: ") + getFittingPath(mAlarmSound) ); |
329 | 328 | ||
330 | } | 329 | } |
331 | 330 | ||
332 | void KOEditorGeneral::pickAlarmProgram() | 331 | void KOEditorGeneral::pickAlarmProgram() |
333 | { | 332 | { |
334 | bool oldState = mAlarmProgramButton->isOn(); | 333 | bool oldState = mAlarmProgramButton->isOn(); |
335 | 334 | ||
336 | QString fileName(KFileDialog::getOpenFileName(mAlarmProgram,i18n("Procedure Alarm: ") , 0)); | 335 | QString fileName(KFileDialog::getOpenFileName(mAlarmProgram,i18n("Procedure Alarm: ") , 0)); |
337 | if (!fileName.isEmpty()) { | 336 | if (!fileName.isEmpty()) { |
338 | mAlarmProgram = fileName; | 337 | mAlarmProgram = fileName; |
339 | QToolTip::remove(mAlarmProgramButton); | 338 | QToolTip::remove(mAlarmProgramButton); |
340 | QString dispStr = i18n("Running '%1'").arg(fileName); | 339 | QString dispStr = i18n("Running '%1'").arg(fileName); |
341 | QToolTip::add(mAlarmProgramButton, dispStr); | 340 | QToolTip::add(mAlarmProgramButton, dispStr); |
342 | mAlarmSoundButton->setOn(false); | 341 | mAlarmSoundButton->setOn(false); |
343 | mAlarmProgramButton->setOn(true); | 342 | mAlarmProgramButton->setOn(true); |
344 | QToolTip::add(mAlarmSoundButton, i18n("No sound set")); | 343 | QToolTip::add(mAlarmSoundButton, i18n("No sound set")); |
345 | } else { | 344 | } else { |
346 | mAlarmProgramButton->setOn(!oldState); | 345 | mAlarmProgramButton->setOn(!oldState); |
347 | mAlarmSoundButton->setOn(oldState); | 346 | mAlarmSoundButton->setOn(oldState); |
348 | } | 347 | } |
349 | 348 | ||
350 | if (mAlarmProgramButton->isOn()) | 349 | if (mAlarmProgramButton->isOn()) |
351 | ((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Proc.Al.: ") + getFittingPath(mAlarmProgram) ); | 350 | ((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Proc.Al.: ") + getFittingPath(mAlarmProgram) ); |
352 | if ( mAlarmSoundButton->isOn()) | 351 | if ( mAlarmSoundButton->isOn()) |
353 | ((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Audio Al.: ") + getFittingPath(mAlarmSound) ); | 352 | ((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Audio Al.: ") + getFittingPath(mAlarmSound) ); |
354 | 353 | ||
355 | } | 354 | } |
356 | 355 | ||
357 | 356 | ||
358 | QString KOEditorGeneral::getFittingPath( const QString s ) | 357 | QString KOEditorGeneral::getFittingPath( const QString & s ) |
359 | { | 358 | { |
360 | int maxlen = 50; | 359 | int maxlen = 50; |
361 | if ( QApplication::desktop()->width() < 640 ) { | 360 | if ( QApplication::desktop()->width() < 640 ) { |
362 | if ( QApplication::desktop()->width() < 320 ) | 361 | if ( QApplication::desktop()->width() < 320 ) |
363 | maxlen = 22; | 362 | maxlen = 22; |
364 | else | 363 | else |
365 | maxlen = 35; | 364 | maxlen = 35; |
366 | } | 365 | } |
367 | if ( s.length() > maxlen ) { | 366 | if ( s.length() > maxlen ) { |
368 | return "..."+s.right(maxlen -3); | 367 | return "..."+s.right(maxlen -3); |
369 | } | 368 | } |
370 | return s; | 369 | return s; |
371 | } | 370 | } |
372 | 371 | ||
373 | void KOEditorGeneral::enableAlarmEdit(bool enable) | 372 | void KOEditorGeneral::enableAlarmEdit(bool enable) |
374 | { | 373 | { |
375 | if ( enable ) { | 374 | if ( enable ) { |
376 | if (!mAlarmProgramButton->isOn() && !mAlarmSoundButton->isOn()) { | 375 | if (!mAlarmProgramButton->isOn() && !mAlarmSoundButton->isOn()) { |
377 | mAlarmSoundButton->setOn( true ); | 376 | mAlarmSoundButton->setOn( true ); |
378 | if ( mAlarmSound.isEmpty() ) | 377 | if ( mAlarmSound.isEmpty() ) |
379 | mAlarmSound = KOPrefs::instance()->mDefaultAlarmFile; | 378 | mAlarmSound = KOPrefs::instance()->mDefaultAlarmFile; |
380 | else { | 379 | else { |
381 | if ( ! QFile::exists( mAlarmSound ) ) | 380 | if ( ! QFile::exists( mAlarmSound ) ) |
382 | mAlarmSound = KOPrefs::instance()->mDefaultAlarmFile; | 381 | mAlarmSound = KOPrefs::instance()->mDefaultAlarmFile; |
383 | } | 382 | } |
384 | } | 383 | } |
385 | } | 384 | } |
386 | ((QWidget*)parent())->topLevelWidget()->setCaption(mAlarmMessage); | 385 | ((QWidget*)parent())->topLevelWidget()->setCaption(mAlarmMessage); |
387 | mAlarmTimeEdit->setEnabled(enable); | 386 | mAlarmTimeEdit->setEnabled(enable); |
388 | mAlarmSoundButton->setEnabled(enable); | 387 | mAlarmSoundButton->setEnabled(enable); |
389 | mAlarmProgramButton->setEnabled(enable); | 388 | mAlarmProgramButton->setEnabled(enable); |
390 | mAlarmIncrCombo->setEnabled(enable); | 389 | mAlarmIncrCombo->setEnabled(enable); |
@@ -591,34 +590,36 @@ void KOEditorGeneral::writeIncidence(Incidence *event) | |||
591 | if (mAlarmButton->isChecked()) { | 590 | if (mAlarmButton->isChecked()) { |
592 | if (event->alarms().count() == 0) | 591 | if (event->alarms().count() == 0) |
593 | event->newAlarm(); | 592 | event->newAlarm(); |
594 | QPtrList<Alarm> alarms = event->alarms(); | 593 | QPtrList<Alarm> alarms = event->alarms(); |
595 | Alarm *alarm; | 594 | Alarm *alarm; |
596 | for (alarm = alarms.first(); alarm; alarm = alarms.next() ) { | 595 | for (alarm = alarms.first(); alarm; alarm = alarms.next() ) { |
597 | alarm->setEnabled(true); | 596 | alarm->setEnabled(true); |
598 | int j = mAlarmTimeEdit->value()* -60; | 597 | int j = mAlarmTimeEdit->value()* -60; |
599 | if (mAlarmIncrCombo->currentItem() == 1) | 598 | if (mAlarmIncrCombo->currentItem() == 1) |
600 | j = j * 60; | 599 | j = j * 60; |
601 | else if (mAlarmIncrCombo->currentItem() == 2) | 600 | else if (mAlarmIncrCombo->currentItem() == 2) |
602 | j = j * (60 * 24); | 601 | j = j * (60 * 24); |
603 | alarm->setStartOffset( j ); | 602 | alarm->setStartOffset( j ); |
604 | 603 | ||
605 | if (!mAlarmProgram.isEmpty() && mAlarmProgramButton->isOn()) { | 604 | if (!mAlarmProgram.isEmpty() && mAlarmProgramButton->isOn()) { |
606 | alarm->setProcedureAlarm(mAlarmProgram); | 605 | alarm->setProcedureAlarm(mAlarmProgram); |
607 | } | 606 | } |
608 | else if (!mAlarmSound.isEmpty() && mAlarmSoundButton->isOn()) | 607 | else if (!mAlarmSound.isEmpty() && mAlarmSoundButton->isOn()) |
609 | alarm->setAudioAlarm(mAlarmSound); | 608 | alarm->setAudioAlarm(mAlarmSound); |
610 | else | 609 | else |
611 | alarm->setType(Alarm::Invalid); | 610 | alarm->setType(Alarm::Invalid); |
612 | //alarm->setAudioAlarm("default"); | 611 | //alarm->setAudioAlarm("default"); |
613 | // TODO: Deal with multiple alarms | 612 | // TODO: Deal with multiple alarms |
614 | break; // For now, stop after the first alarm | 613 | break; // For now, stop after the first alarm |
615 | } | 614 | } |
616 | } else { | 615 | } else { |
617 | Alarm* alarm = event->alarms().first(); | 616 | Alarm* alarm = event->alarms().first(); |
618 | if ( alarm ) { | 617 | if ( alarm ) { |
619 | alarm->setEnabled(false); | 618 | alarm->setEnabled(false); |
620 | alarm->setType(Alarm::Invalid); | 619 | alarm->setType(Alarm::Invalid); |
621 | } | 620 | } |
622 | } | 621 | } |
623 | event->setCalID( getCalendarID() ); | 622 | int id = getCalendarID(); |
623 | event->setCalID( id ); | ||
624 | event->setAlarmEnabled( KOPrefs::instance()->getCalendar( id )->isAlarmEnabled ); | ||
624 | } | 625 | } |
diff --git a/korganizer/koeditorgeneral.h b/korganizer/koeditorgeneral.h index d8b15af..b10a5d4 100644 --- a/korganizer/koeditorgeneral.h +++ b/korganizer/koeditorgeneral.h | |||
@@ -87,39 +87,39 @@ class KOEditorGeneral : public QObject | |||
87 | void slotSetFocusOn(); | 87 | void slotSetFocusOn(); |
88 | void showCatPopup(); | 88 | void showCatPopup(); |
89 | void selectedCatPopup( int ); | 89 | void selectedCatPopup( int ); |
90 | 90 | ||
91 | signals: | 91 | signals: |
92 | void openCategoryDialog(); | 92 | void openCategoryDialog(); |
93 | void allAccepted(); | 93 | void allAccepted(); |
94 | void dateTimesChanged(QDateTime,QDateTime); | 94 | void dateTimesChanged(QDateTime,QDateTime); |
95 | 95 | ||
96 | protected: | 96 | protected: |
97 | void fillCalCombo( int setToID = 0 ); | 97 | void fillCalCombo( int setToID = 0 ); |
98 | int mNextFocus; | 98 | int mNextFocus; |
99 | //QLineEdit *mSummaryEdit; | 99 | //QLineEdit *mSummaryEdit; |
100 | //QLineEdit *mLocationEdit; | 100 | //QLineEdit *mLocationEdit; |
101 | KOLocationBox *mSummaryEdit; | 101 | KOLocationBox *mSummaryEdit; |
102 | KOLocationBox *mLocationEdit; | 102 | KOLocationBox *mLocationEdit; |
103 | QComboBox *mCalendarBox; | 103 | QComboBox *mCalendarBox; |
104 | QLabel *mAlarmBell; | 104 | QLabel *mAlarmBell; |
105 | QCheckBox *mAlarmButton; | 105 | QCheckBox *mAlarmButton; |
106 | QSpinBox *mAlarmTimeEdit; | 106 | QSpinBox *mAlarmTimeEdit; |
107 | QPushButton *mAlarmSoundButton; | 107 | QPushButton *mAlarmSoundButton; |
108 | QPushButton *mAlarmProgramButton; | 108 | QPushButton *mAlarmProgramButton; |
109 | QComboBox *mAlarmIncrCombo; | 109 | QComboBox *mAlarmIncrCombo; |
110 | KTextEdit *mDescriptionEdit; | 110 | KTextEdit *mDescriptionEdit; |
111 | QLabel *mOwnerLabel; | 111 | QLabel *mOwnerLabel; |
112 | QComboBox *mSecrecyCombo; | 112 | QComboBox *mSecrecyCombo; |
113 | QCheckBox *mCancelBox; | 113 | QCheckBox *mCancelBox; |
114 | QPushButton *mCategoriesButton; | 114 | QPushButton *mCategoriesButton; |
115 | QPushButton *mCategoriesLabel; | 115 | QPushButton *mCategoriesLabel; |
116 | 116 | ||
117 | private: | 117 | private: |
118 | QPopupMenu * mCatPopup; | 118 | QPopupMenu * mCatPopup; |
119 | QString getFittingPath( const QString ) ; | 119 | QString getFittingPath( const QString &) ; |
120 | QString mAlarmSound; | 120 | QString mAlarmSound; |
121 | QString mAlarmProgram; | 121 | QString mAlarmProgram; |
122 | QString mAlarmMessage; | 122 | QString mAlarmMessage; |
123 | }; | 123 | }; |
124 | 124 | ||
125 | #endif | 125 | #endif |
diff --git a/korganizer/koeventeditor.cpp b/korganizer/koeventeditor.cpp index 9ede543..3e87197 100644 --- a/korganizer/koeventeditor.cpp +++ b/korganizer/koeventeditor.cpp | |||
@@ -1,59 +1,60 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of KOrganizer. | 2 | This file is part of KOrganizer. |
3 | Copyright (c) 2001,2002 Cornelius Schumacher <schumacher@kde.org> | 3 | Copyright (c) 2001,2002 Cornelius Schumacher <schumacher@kde.org> |
4 | 4 | ||
5 | This program is free software; you can redistribute it and/or modify | 5 | This program is free software; you can redistribute it and/or modify |
6 | it under the terms of the GNU General Public License as published by | 6 | it under the terms of the GNU General Public License as published by |
7 | the Free Software Foundation; either version 2 of the License, or | 7 | the Free Software Foundation; either version 2 of the License, or |
8 | (at your option) any later version. | 8 | (at your option) any later version. |
9 | 9 | ||
10 | This program is distributed in the hope that it will be useful, | 10 | This program is distributed in the hope that it will be useful, |
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
13 | GNU General Public License for more details. | 13 | GNU General Public License for more details. |
14 | 14 | ||
15 | You should have received a copy of the GNU General Public License | 15 | You should have received a copy of the GNU General Public License |
16 | along with this program; if not, write to the Free Software | 16 | along with this program; if not, write to the Free Software |
17 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 17 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
18 | 18 | ||
19 | As a special exception, permission is given to link this program | 19 | As a special exception, permission is given to link this program |
20 | with any edition of Qt, and distribute the resulting executable, | 20 | with any edition of Qt, and distribute the resulting executable, |
21 | without including the source code for Qt in the source distribution. | 21 | without including the source code for Qt in the source distribution. |
22 | */ | 22 | */ |
23 | 23 | ||
24 | #include <qtooltip.h> | 24 | #include <qtooltip.h> |
25 | #include <qframe.h> | 25 | #include <qframe.h> |
26 | #include <qpixmap.h> | 26 | #include <qpixmap.h> |
27 | #include <qhbox.h> | 27 | #include <qhbox.h> |
28 | #include <qtimer.h> | ||
28 | #include <qdir.h> | 29 | #include <qdir.h> |
29 | #include <qlayout.h> | 30 | #include <qlayout.h> |
30 | #include <qwidgetstack.h> | 31 | #include <qwidgetstack.h> |
31 | #include <qapplication.h> | 32 | #include <qapplication.h> |
32 | 33 | ||
33 | #include <kiconloader.h> | 34 | #include <kiconloader.h> |
34 | #include <kstandarddirs.h> | 35 | #include <kstandarddirs.h> |
35 | #include <kdebug.h> | 36 | #include <kdebug.h> |
36 | #include <klocale.h> | 37 | #include <klocale.h> |
37 | #include <kfiledialog.h> | 38 | #include <kfiledialog.h> |
38 | #include <kmessagebox.h> | 39 | #include <kmessagebox.h> |
39 | #include <libkcal/calendarresources.h> | 40 | #include <libkcal/calendarresources.h> |
40 | #include <libkcal/resourcecalendar.h> | 41 | #include <libkcal/resourcecalendar.h> |
41 | #include <kresources/resourceselectdialog.h> | 42 | #include <kresources/resourceselectdialog.h> |
42 | 43 | ||
43 | #include <libkdepim/categoryselectdialog.h> | 44 | #include <libkdepim/categoryselectdialog.h> |
44 | #include <libkcal/calendarlocal.h> | 45 | #include <libkcal/calendarlocal.h> |
45 | #include <libkcal/icalformat.h> | 46 | #include <libkcal/icalformat.h> |
46 | 47 | ||
47 | #include "koprefs.h" | 48 | #include "koprefs.h" |
48 | 49 | ||
49 | #include "koeventeditor.h" | 50 | #include "koeventeditor.h" |
50 | extern int globalFlagBlockAgenda; | 51 | extern int globalFlagBlockAgenda; |
51 | 52 | ||
52 | KOEventEditor::KOEventEditor( Calendar *calendar, QWidget *parent ) : | 53 | KOEventEditor::KOEventEditor( Calendar *calendar, QWidget *parent ) : |
53 | KOIncidenceEditor( i18n("Edit Event"), calendar, parent ) | 54 | KOIncidenceEditor( i18n("Edit Event"), calendar, parent ) |
54 | { | 55 | { |
55 | mEvent = 0; | 56 | mEvent = 0; |
56 | init(); | 57 | init(); |
57 | if ( QApplication::desktop()->height() <= 240 ) | 58 | if ( QApplication::desktop()->height() <= 240 ) |
58 | hideButtons(); | 59 | hideButtons(); |
59 | } | 60 | } |
@@ -220,64 +221,67 @@ void KOEventEditor::loadDefaults() | |||
220 | QTime(fmt+KOPrefs::instance()->mDefaultDuration,0,0)); | 221 | QTime(fmt+KOPrefs::instance()->mDefaultDuration,0,0)); |
221 | 222 | ||
222 | setDefaults(from,to,false); | 223 | setDefaults(from,to,false); |
223 | } | 224 | } |
224 | 225 | ||
225 | bool KOEventEditor::processInput( bool emitTime ) | 226 | bool KOEventEditor::processInput( bool emitTime ) |
226 | { | 227 | { |
227 | if (!validateInput()) return false; | 228 | if (!validateInput()) return false; |
228 | 229 | ||
229 | Event *event = 0; | 230 | Event *event = 0; |
230 | 231 | ||
231 | if (mEvent) event = mEvent; | 232 | if (mEvent) event = mEvent; |
232 | else { | 233 | else { |
233 | event = new Event; | 234 | event = new Event; |
234 | event->setOrganizer(KOPrefs::instance()->email()); | 235 | event->setOrganizer(KOPrefs::instance()->email()); |
235 | } | 236 | } |
236 | 237 | ||
237 | writeEvent(event); | 238 | writeEvent(event); |
238 | if ( emitTime ) { | 239 | if ( emitTime ) { |
239 | globalFlagBlockAgenda = 1; | 240 | globalFlagBlockAgenda = 1; |
240 | emit showAgendaView( false ); | 241 | emit showAgendaView( false ); |
241 | emit jumpToTime( event->dtStart().date() ); | 242 | emit jumpToTime( event->dtStart().date() ); |
242 | globalFlagBlockAgenda = 2; | 243 | globalFlagBlockAgenda = 2; |
243 | 244 | ||
244 | } | 245 | } |
245 | if (mEvent) { | 246 | if (mEvent) { |
246 | event->setRevision(event->revision()+1); | 247 | event->setRevision(event->revision()+1); |
247 | emit eventChanged(event); | 248 | emit eventChanged(event); |
248 | } else { | 249 | } else { |
249 | mCalendar->addEvent(event); | 250 | mCalendar->addEvent(event); |
250 | mEvent = event; | 251 | mEvent = event; |
251 | emit eventAdded(event); | 252 | emit eventAdded(event); |
253 | if ( event->isAlarmEnabled () && !event->alarmEnabled () ) { | ||
254 | QTimer::singleShot( 0, this, SLOT ( alarmWarning() ) ); | ||
255 | } | ||
252 | } | 256 | } |
253 | 257 | ||
254 | return true; | 258 | return true; |
255 | } | 259 | } |
256 | 260 | ||
257 | void KOEventEditor::deleteEvent() | 261 | void KOEventEditor::deleteEvent() |
258 | { | 262 | { |
259 | kdDebug() << "Delete event" << endl; | 263 | kdDebug() << "Delete event" << endl; |
260 | 264 | ||
261 | if (mEvent) { | 265 | if (mEvent) { |
262 | if (KOPrefs::instance()->mConfirm) { | 266 | if (KOPrefs::instance()->mConfirm) { |
263 | switch (msgItemDelete()) { | 267 | switch (msgItemDelete()) { |
264 | case KMessageBox::Continue: // OK | 268 | case KMessageBox::Continue: // OK |
265 | emit eventToBeDeleted(mEvent); | 269 | emit eventToBeDeleted(mEvent); |
266 | emit dialogClose(mEvent); | 270 | emit dialogClose(mEvent); |
267 | mCalendar->deleteEvent(mEvent); | 271 | mCalendar->deleteEvent(mEvent); |
268 | emit eventDeleted(); | 272 | emit eventDeleted(); |
269 | reject(); | 273 | reject(); |
270 | break; | 274 | break; |
271 | } | 275 | } |
272 | } | 276 | } |
273 | else { | 277 | else { |
274 | emit eventToBeDeleted(mEvent); | 278 | emit eventToBeDeleted(mEvent); |
275 | emit dialogClose(mEvent); | 279 | emit dialogClose(mEvent); |
276 | mCalendar->deleteEvent(mEvent); | 280 | mCalendar->deleteEvent(mEvent); |
277 | emit eventDeleted(); | 281 | emit eventDeleted(); |
278 | reject(); | 282 | reject(); |
279 | } | 283 | } |
280 | } else { | 284 | } else { |
281 | reject(); | 285 | reject(); |
282 | } | 286 | } |
283 | } | 287 | } |
diff --git a/korganizer/koeventviewer.cpp b/korganizer/koeventviewer.cpp index 02b54da..607e549 100644 --- a/korganizer/koeventviewer.cpp +++ b/korganizer/koeventviewer.cpp | |||
@@ -375,64 +375,68 @@ void KOEventViewer::appendEvent(Event *event, int mode ) | |||
375 | mMailSubject += i18n(" - " )+ KGlobal::locale()->formatDateTime( next, true ); | 375 | mMailSubject += i18n(" - " )+ KGlobal::locale()->formatDateTime( next, true ); |
376 | 376 | ||
377 | } else { | 377 | } else { |
378 | bool last; | 378 | bool last; |
379 | QDate nextd; | 379 | QDate nextd; |
380 | nextd = event->recurrence()->getPreviousDate( QDate::currentDate() , &last ); | 380 | nextd = event->recurrence()->getPreviousDate( QDate::currentDate() , &last ); |
381 | if ( last ) { | 381 | if ( last ) { |
382 | if ( wideScreen ){ | 382 | if ( wideScreen ){ |
383 | addTag("p",i18n("<b>Last recurrence was on:</b>") +" " + KGlobal::locale()->formatDate( nextd, shortDate )); | 383 | addTag("p",i18n("<b>Last recurrence was on:</b>") +" " + KGlobal::locale()->formatDate( nextd, shortDate )); |
384 | } else{ | 384 | } else{ |
385 | addTag("p",i18n("<b>Last recurrence was on:</b>") ); | 385 | addTag("p",i18n("<b>Last recurrence was on:</b>") ); |
386 | addTag("p", KGlobal::locale()->formatDate( nextd, shortDate )); | 386 | addTag("p", KGlobal::locale()->formatDate( nextd, shortDate )); |
387 | } | 387 | } |
388 | } | 388 | } |
389 | } | 389 | } |
390 | } else { | 390 | } else { |
391 | mMailSubject += i18n(" - " )+event->dtStartStr( true ); | 391 | mMailSubject += i18n(" - " )+event->dtStartStr( true ); |
392 | 392 | ||
393 | } | 393 | } |
394 | 394 | ||
395 | 395 | ||
396 | if (event->isAlarmEnabled()) { | 396 | if (event->isAlarmEnabled()) { |
397 | Alarm *alarm =event->alarms().first() ; | 397 | Alarm *alarm =event->alarms().first() ; |
398 | QDateTime t = alarm->time(); | 398 | QDateTime t = alarm->time(); |
399 | QString s =i18n("( %1 before )").arg( alarm->offsetText() ); | 399 | QString s =i18n("( %1 before )").arg( alarm->offsetText() ); |
400 | if(wideScreen ){ | 400 | if(wideScreen ){ |
401 | addTag("p",i18n("<b>Alarm on: ") + s +" </b>"+ KGlobal::locale()->formatDateTime( t, shortDate )); | 401 | addTag("p",i18n("<b>Alarm on: ") + s +" </b>"+ KGlobal::locale()->formatDateTime( t, shortDate )); |
402 | }else{ | 402 | }else{ |
403 | addTag("p",i18n("<b>Alarm on: ") + s +" </b>"); | 403 | addTag("p",i18n("<b>Alarm on: ") + s +" </b>"); |
404 | addTag("p", KGlobal::locale()->formatDateTime( t, shortDate )); | 404 | addTag("p", KGlobal::locale()->formatDateTime( t, shortDate )); |
405 | } | 405 | } |
406 | //addTag("p",s); | 406 | //addTag("p",s); |
407 | if ( !(event->alarmEnabled() ) ) { | ||
408 | addTag("p", "<em>("+i18n("Enable alarm in resource settings") + ")</em>"); | ||
409 | |||
410 | } | ||
407 | } | 411 | } |
408 | 412 | ||
409 | addTag("p","<b>"+i18n("Access: ") + "</b>" + event->secrecyStr()); | 413 | addTag("p","<b>"+i18n("Access: ") + "</b>" + event->secrecyStr()); |
410 | 414 | ||
411 | formatCategories(event); | 415 | formatCategories(event); |
412 | 416 | ||
413 | formatAttendees(event); | 417 | formatAttendees(event); |
414 | 418 | ||
415 | if ( KOPrefs::instance()->mEVshowCreated ) { | 419 | if ( KOPrefs::instance()->mEVshowCreated ) { |
416 | if(wideScreen ){ | 420 | if(wideScreen ){ |
417 | addTag("p",i18n("<b>Created: ") +" </b>"+KGlobal::locale()->formatDateTime( event->created(), shortDate )); | 421 | addTag("p",i18n("<b>Created: ") +" </b>"+KGlobal::locale()->formatDateTime( event->created(), shortDate )); |
418 | }else{ | 422 | }else{ |
419 | addTag("p",i18n("<b>Created: ") +" </b>"); | 423 | addTag("p",i18n("<b>Created: ") +" </b>"); |
420 | addTag("p", KGlobal::locale()->formatDateTime( event->created(), shortDate )); | 424 | addTag("p", KGlobal::locale()->formatDateTime( event->created(), shortDate )); |
421 | } | 425 | } |
422 | 426 | ||
423 | 427 | ||
424 | } | 428 | } |
425 | if ( KOPrefs::instance()->mEVshowChanged ) { | 429 | if ( KOPrefs::instance()->mEVshowChanged ) { |
426 | if(wideScreen ){ | 430 | if(wideScreen ){ |
427 | addTag("p",i18n("<b>Last modified: ") +" </b>" + KGlobal::locale()->formatDateTime( event->lastModified(), shortDate ) ); | 431 | addTag("p",i18n("<b>Last modified: ") +" </b>" + KGlobal::locale()->formatDateTime( event->lastModified(), shortDate ) ); |
428 | }else{ | 432 | }else{ |
429 | addTag("p",i18n("<b>Last modified: ") +" </b>"); | 433 | addTag("p",i18n("<b>Last modified: ") +" </b>"); |
430 | addTag("p", KGlobal::locale()->formatDateTime( event->lastModified(), shortDate )); | 434 | addTag("p", KGlobal::locale()->formatDateTime( event->lastModified(), shortDate )); |
431 | } | 435 | } |
432 | 436 | ||
433 | } | 437 | } |
434 | if ( KOPrefs::instance()->mEVshowDetails ) { | 438 | if ( KOPrefs::instance()->mEVshowDetails ) { |
435 | if (!event->description().isEmpty()) { | 439 | if (!event->description().isEmpty()) { |
436 | addTag("p",i18n("<b>Details: </b>")); | 440 | addTag("p",i18n("<b>Details: </b>")); |
437 | addTag("p",deTag(event->description())); | 441 | addTag("p",deTag(event->description())); |
438 | } | 442 | } |
@@ -492,64 +496,68 @@ void KOEventViewer::appendTodo(Todo *event, int mode ) | |||
492 | 496 | ||
493 | 497 | ||
494 | if (event->doesRecur()) { | 498 | if (event->doesRecur()) { |
495 | 499 | ||
496 | QString recurText = event->recurrence()->recurrenceText(); | 500 | QString recurText = event->recurrence()->recurrenceText(); |
497 | addTag("p","<em>" + i18n("This is a %1 recurring todo.").arg(recurText ) + "</em>"); | 501 | addTag("p","<em>" + i18n("This is a %1 recurring todo.").arg(recurText ) + "</em>"); |
498 | 502 | ||
499 | } | 503 | } |
500 | if (event->hasStartDate()) { | 504 | if (event->hasStartDate()) { |
501 | mText.append(i18n("<p><b>Start on:</b> %1</p>").arg(event->dtStartStr(KOPrefs::instance()->mShortDateInViewer))); | 505 | mText.append(i18n("<p><b>Start on:</b> %1</p>").arg(event->dtStartStr(KOPrefs::instance()->mShortDateInViewer))); |
502 | } | 506 | } |
503 | if (event->hasDueDate()) { | 507 | if (event->hasDueDate()) { |
504 | mText.append(i18n("<p><b>Due on:</b> %1</p>").arg(event->dtDueStr(KOPrefs::instance()->mShortDateInViewer))); | 508 | mText.append(i18n("<p><b>Due on:</b> %1</p>").arg(event->dtDueStr(KOPrefs::instance()->mShortDateInViewer))); |
505 | mMailSubject += i18n(" - " )+event->dtDueStr( true ); | 509 | mMailSubject += i18n(" - " )+event->dtDueStr( true ); |
506 | } | 510 | } |
507 | if (!event->location().isEmpty()) { | 511 | if (!event->location().isEmpty()) { |
508 | addTag("p","<b>"+i18n("Location: ")+"</b>"+ deTag(event->location() ) ); | 512 | addTag("p","<b>"+i18n("Location: ")+"</b>"+ deTag(event->location() ) ); |
509 | mMailSubject += i18n(" at ") + event->location(); | 513 | mMailSubject += i18n(" at ") + event->location(); |
510 | } | 514 | } |
511 | mText.append(i18n("<p><b>Priority:</b> %2</p>") | 515 | mText.append(i18n("<p><b>Priority:</b> %2</p>") |
512 | .arg(QString::number(event->priority()))); | 516 | .arg(QString::number(event->priority()))); |
513 | 517 | ||
514 | if (event->isAlarmEnabled()) { | 518 | if (event->isAlarmEnabled()) { |
515 | Alarm *alarm =event->alarms().first() ; | 519 | Alarm *alarm =event->alarms().first() ; |
516 | QDateTime t = alarm->time(); | 520 | QDateTime t = alarm->time(); |
517 | QString s =i18n("( %1 before )").arg( alarm->offsetText() ); | 521 | QString s =i18n("( %1 before )").arg( alarm->offsetText() ); |
518 | if ( wideScreen ) { | 522 | if ( wideScreen ) { |
519 | addTag("p",i18n("<b>Alarm on: ") + s +" </b>"+ KGlobal::locale()->formatDateTime( t, shortDate )); | 523 | addTag("p",i18n("<b>Alarm on: ") + s +" </b>"+ KGlobal::locale()->formatDateTime( t, shortDate )); |
520 | } else { | 524 | } else { |
521 | addTag("p",i18n("<b>Alarm on: ") + s +" </b>"); | 525 | addTag("p",i18n("<b>Alarm on: ") + s +" </b>"); |
522 | addTag("p", KGlobal::locale()->formatDateTime( t, shortDate )); | 526 | addTag("p", KGlobal::locale()->formatDateTime( t, shortDate )); |
523 | } | 527 | } |
528 | if ( !(event->alarmEnabled() ) ) { | ||
529 | addTag("p", "<em>("+i18n("Enable alarm in resource settings") + ")</em>"); | ||
530 | |||
531 | } | ||
524 | } | 532 | } |
525 | 533 | ||
526 | addTag("p","<b>"+i18n("Access: ") + "</b>" + event->secrecyStr()); | 534 | addTag("p","<b>"+i18n("Access: ") + "</b>" + event->secrecyStr()); |
527 | 535 | ||
528 | formatCategories(event); | 536 | formatCategories(event); |
529 | 537 | ||
530 | formatAttendees(event); | 538 | formatAttendees(event); |
531 | 539 | ||
532 | if ( KOPrefs::instance()->mEVshowCreated ) { | 540 | if ( KOPrefs::instance()->mEVshowCreated ) { |
533 | if(wideScreen ){ | 541 | if(wideScreen ){ |
534 | 542 | ||
535 | addTag("p",i18n("<b>Created: ") +" </b>"+KGlobal::locale()->formatDateTime( event->created(), shortDate )); | 543 | addTag("p",i18n("<b>Created: ") +" </b>"+KGlobal::locale()->formatDateTime( event->created(), shortDate )); |
536 | 544 | ||
537 | } else { | 545 | } else { |
538 | addTag("p",i18n("<b>Created: ") +" </b>"); | 546 | addTag("p",i18n("<b>Created: ") +" </b>"); |
539 | addTag("p", KGlobal::locale()->formatDateTime( event->created(), shortDate )); | 547 | addTag("p", KGlobal::locale()->formatDateTime( event->created(), shortDate )); |
540 | } | 548 | } |
541 | } | 549 | } |
542 | if ( KOPrefs::instance()->mEVshowChanged ) { | 550 | if ( KOPrefs::instance()->mEVshowChanged ) { |
543 | if(wideScreen ){ | 551 | if(wideScreen ){ |
544 | addTag("p",i18n("<b>Last modified: ") +" </b>" +KGlobal::locale()->formatDateTime( event->lastModified(), shortDate ) ); | 552 | addTag("p",i18n("<b>Last modified: ") +" </b>" +KGlobal::locale()->formatDateTime( event->lastModified(), shortDate ) ); |
545 | 553 | ||
546 | } else { | 554 | } else { |
547 | addTag("p",i18n("<b>Last modified: ") +" </b>"); | 555 | addTag("p",i18n("<b>Last modified: ") +" </b>"); |
548 | addTag("p", KGlobal::locale()->formatDateTime( event->lastModified(), shortDate )); | 556 | addTag("p", KGlobal::locale()->formatDateTime( event->lastModified(), shortDate )); |
549 | } | 557 | } |
550 | } | 558 | } |
551 | if ( event->relatedTo() ) { | 559 | if ( event->relatedTo() ) { |
552 | addTag("b",i18n("Parent todo:<br>")); | 560 | addTag("b",i18n("Parent todo:<br>")); |
553 | 561 | ||
554 | QString t_name = "[" +QString::number(event->relatedTo()->priority()) + "/" + QString::number(((Todo*)event->relatedTo())->percentComplete())+"%] ";// +event->relatedTo()->summary()); | 562 | QString t_name = "[" +QString::number(event->relatedTo()->priority()) + "/" + QString::number(((Todo*)event->relatedTo())->percentComplete())+"%] ";// +event->relatedTo()->summary()); |
555 | 563 | ||
diff --git a/korganizer/koincidenceeditor.cpp b/korganizer/koincidenceeditor.cpp index 9bc0302..236f6f9 100644 --- a/korganizer/koincidenceeditor.cpp +++ b/korganizer/koincidenceeditor.cpp | |||
@@ -61,64 +61,69 @@ KOIncidenceEditor::KOIncidenceEditor( const QString &caption, | |||
61 | // showButton( Apply, false ); | 61 | // showButton( Apply, false ); |
62 | // } else { | 62 | // } else { |
63 | showButton( Apply, false ); | 63 | showButton( Apply, false ); |
64 | saveTemplateText = i18n("Ok+Agenda"); | 64 | saveTemplateText = i18n("Ok+Agenda"); |
65 | // } | 65 | // } |
66 | setButtonText( User1, saveTemplateText ); | 66 | setButtonText( User1, saveTemplateText ); |
67 | 67 | ||
68 | //mCategoryDialog = new KPIM::CategorySelectDialog( KOPrefs::instance(), this ); | 68 | //mCategoryDialog = new KPIM::CategorySelectDialog( KOPrefs::instance(), this ); |
69 | // KOGlobals::fitDialogToScreen( mCategoryDialog ); | 69 | // KOGlobals::fitDialogToScreen( mCategoryDialog ); |
70 | 70 | ||
71 | //connect(mCategoryDialog,SIGNAL(editCategories()),SIGNAL(editCategories())); | 71 | //connect(mCategoryDialog,SIGNAL(editCategories()),SIGNAL(editCategories())); |
72 | 72 | ||
73 | //connect( this, SIGNAL( defaultClicked() ), SLOT( slotLoadTemplate() ) ); | 73 | //connect( this, SIGNAL( defaultClicked() ), SLOT( slotLoadTemplate() ) ); |
74 | // connect( this, SIGNAL( user1Clicked() ), SLOT( slotSaveTemplate() ) ); | 74 | // connect( this, SIGNAL( user1Clicked() ), SLOT( slotSaveTemplate() ) ); |
75 | connect( this, SIGNAL( user1Clicked() ), SLOT( slotShowIncidence() ) ); | 75 | connect( this, SIGNAL( user1Clicked() ), SLOT( slotShowIncidence() ) ); |
76 | } | 76 | } |
77 | 77 | ||
78 | KOIncidenceEditor::~KOIncidenceEditor() | 78 | KOIncidenceEditor::~KOIncidenceEditor() |
79 | { | 79 | { |
80 | //delete mCategoryDialog; | 80 | //delete mCategoryDialog; |
81 | } | 81 | } |
82 | 82 | ||
83 | void KOIncidenceEditor::setupAttendeesTab() | 83 | void KOIncidenceEditor::setupAttendeesTab() |
84 | { | 84 | { |
85 | QFrame *topFrame = addPage(i18n("Attendees")); | 85 | QFrame *topFrame = addPage(i18n("Attendees")); |
86 | 86 | ||
87 | QBoxLayout *topLayout = new QVBoxLayout(topFrame); | 87 | QBoxLayout *topLayout = new QVBoxLayout(topFrame); |
88 | 88 | ||
89 | mDetails = new KOEditorDetails(spacingHint()-2,topFrame); | 89 | mDetails = new KOEditorDetails(spacingHint()-2,topFrame); |
90 | topLayout->addWidget(mDetails); | 90 | topLayout->addWidget(mDetails); |
91 | } | 91 | } |
92 | 92 | ||
93 | void KOIncidenceEditor::alarmWarning() | ||
94 | { | ||
95 | KMessageBox::information( 0, i18n("The alarm for this calendar\nis currently disabled!\nEnable it in resource settings."), i18n("Alarm disabled warning")); | ||
96 | |||
97 | } | ||
93 | 98 | ||
94 | void KOIncidenceEditor::slotApply() | 99 | void KOIncidenceEditor::slotApply() |
95 | { | 100 | { |
96 | processInput( false ); | 101 | processInput( false ); |
97 | } | 102 | } |
98 | void KOIncidenceEditor::accept() | 103 | void KOIncidenceEditor::accept() |
99 | { | 104 | { |
100 | slotOk(); | 105 | slotOk(); |
101 | } | 106 | } |
102 | void KOIncidenceEditor::slotOk() | 107 | void KOIncidenceEditor::slotOk() |
103 | { | 108 | { |
104 | if ( processInput( false ) ) QDialog::accept(); | 109 | if ( processInput( false ) ) QDialog::accept(); |
105 | } | 110 | } |
106 | 111 | ||
107 | void KOIncidenceEditor::updateCategoryConfig() | 112 | void KOIncidenceEditor::updateCategoryConfig() |
108 | { | 113 | { |
109 | qDebug("KOIncidenceEditor::updateCategoryConfig() is dead! "); | 114 | qDebug("KOIncidenceEditor::updateCategoryConfig() is dead! "); |
110 | //mCategoryDialog->updateCategoryConfig(); | 115 | //mCategoryDialog->updateCategoryConfig(); |
111 | } | 116 | } |
112 | 117 | ||
113 | void KOIncidenceEditor::slotCancel() | 118 | void KOIncidenceEditor::slotCancel() |
114 | { | 119 | { |
115 | reject(); | 120 | reject(); |
116 | } | 121 | } |
117 | 122 | ||
118 | void KOIncidenceEditor::slotLoadTemplate() | 123 | void KOIncidenceEditor::slotLoadTemplate() |
119 | { | 124 | { |
120 | kdDebug() << "KOIncidenceEditor::loadTemplate()" << endl; | 125 | kdDebug() << "KOIncidenceEditor::loadTemplate()" << endl; |
121 | } | 126 | } |
122 | void KOIncidenceEditor::slotShowIncidence() | 127 | void KOIncidenceEditor::slotShowIncidence() |
123 | { | 128 | { |
124 | 129 | ||
diff --git a/korganizer/koincidenceeditor.h b/korganizer/koincidenceeditor.h index bfd6cc6..2e4bbf8 100644 --- a/korganizer/koincidenceeditor.h +++ b/korganizer/koincidenceeditor.h | |||
@@ -36,65 +36,66 @@ namespace KPIM { class CategorySelectDialog; } | |||
36 | using namespace KCal; | 36 | using namespace KCal; |
37 | 37 | ||
38 | /** | 38 | /** |
39 | This is the base class for the calendar component editors. | 39 | This is the base class for the calendar component editors. |
40 | */ | 40 | */ |
41 | class KOIncidenceEditor : public KDialogBase | 41 | class KOIncidenceEditor : public KDialogBase |
42 | { | 42 | { |
43 | Q_OBJECT | 43 | Q_OBJECT |
44 | public: | 44 | public: |
45 | /** | 45 | /** |
46 | Construct new IncidenceEditor. | 46 | Construct new IncidenceEditor. |
47 | */ | 47 | */ |
48 | KOIncidenceEditor( const QString &caption, Calendar *calendar, | 48 | KOIncidenceEditor( const QString &caption, Calendar *calendar, |
49 | QWidget *parent ); | 49 | QWidget *parent ); |
50 | virtual ~KOIncidenceEditor(); | 50 | virtual ~KOIncidenceEditor(); |
51 | 51 | ||
52 | /** Initialize editor. This function creates the tab widgets. */ | 52 | /** Initialize editor. This function creates the tab widgets. */ |
53 | virtual void init() = 0; | 53 | virtual void init() = 0; |
54 | void accept(); | 54 | void accept(); |
55 | virtual void setCategories( QString )= 0; | 55 | virtual void setCategories( QString )= 0; |
56 | 56 | ||
57 | virtual void reload() = 0; | 57 | virtual void reload() = 0; |
58 | 58 | ||
59 | public slots: | 59 | public slots: |
60 | void updateCategoryConfig(); | 60 | void updateCategoryConfig(); |
61 | 61 | ||
62 | signals: | 62 | signals: |
63 | void editCategories(); | 63 | void editCategories(); |
64 | void showAgendaView( bool ); | 64 | void showAgendaView( bool ); |
65 | void dialogClose( Incidence * ); | 65 | void dialogClose( Incidence * ); |
66 | void jumpToTime( const QDate & ); | 66 | void jumpToTime( const QDate & ); |
67 | 67 | ||
68 | protected slots: | 68 | protected slots: |
69 | void alarmWarning(); | ||
69 | void slotApply(); | 70 | void slotApply(); |
70 | void slotOk(); | 71 | void slotOk(); |
71 | void slotCancel(); | 72 | void slotCancel(); |
72 | void slotShowIncidence(); | 73 | void slotShowIncidence(); |
73 | 74 | ||
74 | virtual void slotLoadTemplate(); | 75 | virtual void slotLoadTemplate(); |
75 | virtual void slotSaveTemplate(); | 76 | virtual void slotSaveTemplate(); |
76 | 77 | ||
77 | virtual void saveTemplate( const QString & ) = 0; | 78 | virtual void saveTemplate( const QString & ) = 0; |
78 | 79 | ||
79 | protected: | 80 | protected: |
80 | void setupAttendeesTab(); | 81 | void setupAttendeesTab(); |
81 | 82 | ||
82 | void createSaveTemplateDialog( SaveTemplateDialog::IncidenceType ); | 83 | void createSaveTemplateDialog( SaveTemplateDialog::IncidenceType ); |
83 | 84 | ||
84 | QString loadTemplate( Calendar *cal, const QString &type, | 85 | QString loadTemplate( Calendar *cal, const QString &type, |
85 | const QStringList &templates ); | 86 | const QStringList &templates ); |
86 | void saveAsTemplate( Incidence *, const QString &name ); | 87 | void saveAsTemplate( Incidence *, const QString &name ); |
87 | 88 | ||
88 | /** | 89 | /** |
89 | Process user input and create or update event. Returns false if input is invalid. | 90 | Process user input and create or update event. Returns false if input is invalid. |
90 | */ | 91 | */ |
91 | virtual bool processInput( bool emitTime ) { return false; } | 92 | virtual bool processInput( bool emitTime ) { return false; } |
92 | 93 | ||
93 | Calendar *mCalendar; | 94 | Calendar *mCalendar; |
94 | 95 | ||
95 | //KPIM::CategorySelectDialog *mCategoryDialog; | 96 | //KPIM::CategorySelectDialog *mCategoryDialog; |
96 | 97 | ||
97 | KOEditorDetails *mDetails; | 98 | KOEditorDetails *mDetails; |
98 | 99 | ||
99 | private: | 100 | private: |
100 | SaveTemplateDialog *mSaveTemplateDialog; | 101 | SaveTemplateDialog *mSaveTemplateDialog; |
diff --git a/korganizer/kotodoeditor.cpp b/korganizer/kotodoeditor.cpp index 682f83b..20a35d2 100644 --- a/korganizer/kotodoeditor.cpp +++ b/korganizer/kotodoeditor.cpp | |||
@@ -1,61 +1,62 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of KOrganizer. | 2 | This file is part of KOrganizer. |
3 | Copyright (c) 1997, 1998 Preston Brown | 3 | Copyright (c) 1997, 1998 Preston Brown |
4 | Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org> | 4 | Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org> |
5 | 5 | ||
6 | This program is free software; you can redistribute it and/or modify | 6 | This program is free software; you can redistribute it and/or modify |
7 | it under the terms of the GNU General Public License as published by | 7 | it under the terms of the GNU General Public License as published by |
8 | the Free Software Foundation; either version 2 of the License, or | 8 | the Free Software Foundation; either version 2 of the License, or |
9 | (at your option) any later version. | 9 | (at your option) any later version. |
10 | 10 | ||
11 | This program is distributed in the hope that it will be useful, | 11 | This program is distributed in the hope that it will be useful, |
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | GNU General Public License for more details. | 14 | GNU General Public License for more details. |
15 | 15 | ||
16 | You should have received a copy of the GNU General Public License | 16 | You should have received a copy of the GNU General Public License |
17 | along with this program; if not, write to the Free Software | 17 | along with this program; if not, write to the Free Software |
18 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 18 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
19 | 19 | ||
20 | As a special exception, permission is given to link this program | 20 | As a special exception, permission is given to link this program |
21 | with any edition of Qt, and distribute the resulting executable, | 21 | with any edition of Qt, and distribute the resulting executable, |
22 | without including the source code for Qt in the source distribution. | 22 | without including the source code for Qt in the source distribution. |
23 | */ | 23 | */ |
24 | 24 | ||
25 | #include <qtooltip.h> | 25 | #include <qtooltip.h> |
26 | #include <qframe.h> | 26 | #include <qframe.h> |
27 | #include <qpixmap.h> | 27 | #include <qpixmap.h> |
28 | #include <qlayout.h> | 28 | #include <qlayout.h> |
29 | #include <qhbox.h> | 29 | #include <qhbox.h> |
30 | #include <qtimer.h> | ||
30 | #include <qdir.h> | 31 | #include <qdir.h> |
31 | #include <qdatetime.h> | 32 | #include <qdatetime.h> |
32 | #include <qapplication.h> | 33 | #include <qapplication.h> |
33 | #include <qtabwidget.h> | 34 | #include <qtabwidget.h> |
34 | 35 | ||
35 | #include <kiconloader.h> | 36 | #include <kiconloader.h> |
36 | #include <klocale.h> | 37 | #include <klocale.h> |
37 | #include <kfiledialog.h> | 38 | #include <kfiledialog.h> |
38 | #include <kstandarddirs.h> | 39 | #include <kstandarddirs.h> |
39 | #include <kmessagebox.h> | 40 | #include <kmessagebox.h> |
40 | 41 | ||
41 | #include <libkdepim/categoryselectdialog.h> | 42 | #include <libkdepim/categoryselectdialog.h> |
42 | #include <libkcal/calendarlocal.h> | 43 | #include <libkcal/calendarlocal.h> |
43 | #include <libkcal/calendarresources.h> | 44 | #include <libkcal/calendarresources.h> |
44 | #include <libkcal/resourcecalendar.h> | 45 | #include <libkcal/resourcecalendar.h> |
45 | #include <libkcal/icalformat.h> | 46 | #include <libkcal/icalformat.h> |
46 | #include <kresources/resourceselectdialog.h> | 47 | #include <kresources/resourceselectdialog.h> |
47 | #include <libkdepim/kdateedit.h> | 48 | #include <libkdepim/kdateedit.h> |
48 | 49 | ||
49 | #include "koprefs.h" | 50 | #include "koprefs.h" |
50 | #include "kolocationbox.h" | 51 | #include "kolocationbox.h" |
51 | 52 | ||
52 | #include "kotodoeditor.h" | 53 | #include "kotodoeditor.h" |
53 | extern int globalFlagBlockAgenda; | 54 | extern int globalFlagBlockAgenda; |
54 | 55 | ||
55 | KOTodoEditor::KOTodoEditor( Calendar *calendar, QWidget *parent ) : | 56 | KOTodoEditor::KOTodoEditor( Calendar *calendar, QWidget *parent ) : |
56 | KOIncidenceEditor( i18n("Edit To-Do"), calendar, parent ) | 57 | KOIncidenceEditor( i18n("Edit To-Do"), calendar, parent ) |
57 | { | 58 | { |
58 | mTodo = 0; | 59 | mTodo = 0; |
59 | mRelatedTodo = 0; | 60 | mRelatedTodo = 0; |
60 | findButton(User1)->hide(); | 61 | findButton(User1)->hide(); |
61 | init(); | 62 | init(); |
@@ -230,64 +231,67 @@ void KOTodoEditor::newTodo(QDateTime due,Todo *relatedTodo,bool allDay) | |||
230 | void KOTodoEditor::loadDefaults() | 231 | void KOTodoEditor::loadDefaults() |
231 | { | 232 | { |
232 | setDefaults(QDateTime::currentDateTime().addDays(7),0,false); | 233 | setDefaults(QDateTime::currentDateTime().addDays(7),0,false); |
233 | } | 234 | } |
234 | 235 | ||
235 | bool KOTodoEditor::processInput( bool emitTime ) | 236 | bool KOTodoEditor::processInput( bool emitTime ) |
236 | { | 237 | { |
237 | if (!validateInput()) return false; | 238 | if (!validateInput()) return false; |
238 | 239 | ||
239 | Todo *todo = 0; | 240 | Todo *todo = 0; |
240 | 241 | ||
241 | if (mTodo) todo = mTodo; | 242 | if (mTodo) todo = mTodo; |
242 | else { | 243 | else { |
243 | todo = new Todo; | 244 | todo = new Todo; |
244 | todo->setOrganizer(KOPrefs::instance()->email()); | 245 | todo->setOrganizer(KOPrefs::instance()->email()); |
245 | } | 246 | } |
246 | 247 | ||
247 | writeTodo(todo); | 248 | writeTodo(todo); |
248 | if ( emitTime ) { | 249 | if ( emitTime ) { |
249 | globalFlagBlockAgenda = 1; | 250 | globalFlagBlockAgenda = 1; |
250 | emit showAgendaView( false ); | 251 | emit showAgendaView( false ); |
251 | if ( todo->hasDueDate() ) | 252 | if ( todo->hasDueDate() ) |
252 | emit jumpToTime( todo->dtDue().date() ); | 253 | emit jumpToTime( todo->dtDue().date() ); |
253 | globalFlagBlockAgenda = 2; | 254 | globalFlagBlockAgenda = 2; |
254 | } | 255 | } |
255 | if (mTodo) { | 256 | if (mTodo) { |
256 | todo->setRevision(todo->revision()+1); | 257 | todo->setRevision(todo->revision()+1); |
257 | emit todoChanged(todo); | 258 | emit todoChanged(todo); |
258 | } else { | 259 | } else { |
259 | mCalendar->addTodo(todo); | 260 | mCalendar->addTodo(todo); |
260 | mTodo = todo; | 261 | mTodo = todo; |
261 | emit todoAdded(todo); | 262 | emit todoAdded(todo); |
263 | if ( todo->isAlarmEnabled () && !todo->alarmEnabled () ) { | ||
264 | QTimer::singleShot( 0, this, SLOT ( alarmWarning() ) ); | ||
265 | } | ||
262 | } | 266 | } |
263 | 267 | ||
264 | return true; | 268 | return true; |
265 | } | 269 | } |
266 | 270 | ||
267 | void KOTodoEditor::deleteTodo() | 271 | void KOTodoEditor::deleteTodo() |
268 | { | 272 | { |
269 | if (mTodo) { | 273 | if (mTodo) { |
270 | if (KOPrefs::instance()->mConfirm) { | 274 | if (KOPrefs::instance()->mConfirm) { |
271 | switch (msgItemDelete()) { | 275 | switch (msgItemDelete()) { |
272 | case KMessageBox::Continue: // OK | 276 | case KMessageBox::Continue: // OK |
273 | emit todoToBeDeleted(mTodo); | 277 | emit todoToBeDeleted(mTodo); |
274 | emit dialogClose(mTodo); | 278 | emit dialogClose(mTodo); |
275 | mCalendar->deleteTodo(mTodo); | 279 | mCalendar->deleteTodo(mTodo); |
276 | emit todoDeleted(); | 280 | emit todoDeleted(); |
277 | reject(); | 281 | reject(); |
278 | break; | 282 | break; |
279 | } | 283 | } |
280 | } | 284 | } |
281 | else { | 285 | else { |
282 | emit todoToBeDeleted(mTodo); | 286 | emit todoToBeDeleted(mTodo); |
283 | emit dialogClose(mTodo); | 287 | emit dialogClose(mTodo); |
284 | mCalendar->deleteTodo(mTodo); | 288 | mCalendar->deleteTodo(mTodo); |
285 | emit todoDeleted(); | 289 | emit todoDeleted(); |
286 | reject(); | 290 | reject(); |
287 | } | 291 | } |
288 | } else { | 292 | } else { |
289 | reject(); | 293 | reject(); |
290 | } | 294 | } |
291 | } | 295 | } |
292 | 296 | ||
293 | void KOTodoEditor::setDefaults(QDateTime due,Todo *relatedEvent,bool allDay) | 297 | void KOTodoEditor::setDefaults(QDateTime due,Todo *relatedEvent,bool allDay) |