summaryrefslogtreecommitdiffabout
path: root/korganizer
authorzautrix <zautrix>2005-04-14 17:48:58 (UTC)
committer zautrix <zautrix>2005-04-14 17:48:58 (UTC)
commitbbdca90c599aaea557d31552c6bc33fc15e397cd (patch) (unidiff)
treee41b5eb16239664d2217e5436db61610099b60ef /korganizer
parent5ea16ef9058a21016402dd5affc0a7f82857e606 (diff)
downloadkdepimpi-bbdca90c599aaea557d31552c6bc33fc15e397cd.zip
kdepimpi-bbdca90c599aaea557d31552c6bc33fc15e397cd.tar.gz
kdepimpi-bbdca90c599aaea557d31552c6bc33fc15e397cd.tar.bz2
today added
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/koeditorgeneralevent.cpp3
-rw-r--r--korganizer/koeditorgeneraltodo.cpp5
2 files changed, 7 insertions, 1 deletions
diff --git a/korganizer/koeditorgeneralevent.cpp b/korganizer/koeditorgeneralevent.cpp
index d4aa78c..3b2a276 100644
--- a/korganizer/koeditorgeneralevent.cpp
+++ b/korganizer/koeditorgeneralevent.cpp
@@ -1,434 +1,437 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2001 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 <qlayout.h> 25#include <qlayout.h>
26#include <qvbox.h> 26#include <qvbox.h>
27#include <qbuttongroup.h> 27#include <qbuttongroup.h>
28#include <qvgroupbox.h> 28#include <qvgroupbox.h>
29#include <qwidgetstack.h> 29#include <qwidgetstack.h>
30#include <qdatetime.h> 30#include <qdatetime.h>
31 31
32#include <kdebug.h> 32#include <kdebug.h>
33#include <kglobal.h> 33#include <kglobal.h>
34#include <klocale.h> 34#include <klocale.h>
35#include <kiconloader.h> 35#include <kiconloader.h>
36#include <kmessagebox.h> 36#include <kmessagebox.h>
37#include <kfiledialog.h> 37#include <kfiledialog.h>
38#include <kstandarddirs.h> 38#include <kstandarddirs.h>
39 39
40#include <libkcal/event.h> 40#include <libkcal/event.h>
41 41
42#include <libkdepim/kdateedit.h> 42#include <libkdepim/kdateedit.h>
43 43
44#include "koprefs.h" 44#include "koprefs.h"
45 45
46#include "koeditorgeneralevent.h" 46#include "koeditorgeneralevent.h"
47#include "kolocationbox.h" 47#include "kolocationbox.h"
48 48
49KOEditorGeneralEvent::KOEditorGeneralEvent(QObject* parent, 49KOEditorGeneralEvent::KOEditorGeneralEvent(QObject* parent,
50 const char* name) : 50 const char* name) :
51 KOEditorGeneral( parent, name) 51 KOEditorGeneral( parent, name)
52{ 52{
53 mTemplate = false; 53 mTemplate = false;
54 connect(this,SIGNAL(dateTimesChanged(QDateTime,QDateTime)), 54 connect(this,SIGNAL(dateTimesChanged(QDateTime,QDateTime)),
55 SLOT(setDuration())); 55 SLOT(setDuration()));
56 connect(this,SIGNAL(dateTimesChanged(QDateTime,QDateTime)), 56 connect(this,SIGNAL(dateTimesChanged(QDateTime,QDateTime)),
57 SLOT(emitDateTimeStr())); 57 SLOT(emitDateTimeStr()));
58} 58}
59 59
60KOEditorGeneralEvent::~KOEditorGeneralEvent() 60KOEditorGeneralEvent::~KOEditorGeneralEvent()
61{ 61{
62} 62}
63 63
64void KOEditorGeneralEvent::finishSetup() 64void KOEditorGeneralEvent::finishSetup()
65{ 65{
66 66
67 //disabled 67 //disabled
68// QWidget::setTabOrder( mSummaryEdit, mLocationEdit ); 68// QWidget::setTabOrder( mSummaryEdit, mLocationEdit );
69// QWidget::setTabOrder( mLocationEdit, mStartDateEdit ); 69// QWidget::setTabOrder( mLocationEdit, mStartDateEdit );
70// QWidget::setTabOrder( mStartDateEdit, mStartTimeEdit ); 70// QWidget::setTabOrder( mStartDateEdit, mStartTimeEdit );
71// QWidget::setTabOrder( mStartTimeEdit, mEndDateEdit ); 71// QWidget::setTabOrder( mStartTimeEdit, mEndDateEdit );
72// QWidget::setTabOrder( mEndDateEdit, mEndTimeEdit ); 72// QWidget::setTabOrder( mEndDateEdit, mEndTimeEdit );
73// QWidget::setTabOrder( mEndTimeEdit, mNoTimeButton ); 73// QWidget::setTabOrder( mEndTimeEdit, mNoTimeButton );
74// QWidget::setTabOrder( mNoTimeButton, mAlarmButton ); 74// QWidget::setTabOrder( mNoTimeButton, mAlarmButton );
75// QWidget::setTabOrder( mAlarmButton, mAlarmTimeEdit ); 75// QWidget::setTabOrder( mAlarmButton, mAlarmTimeEdit );
76// QWidget::setTabOrder( mFreeTimeCombo, mCategoriesButton ); 76// QWidget::setTabOrder( mFreeTimeCombo, mCategoriesButton );
77// QWidget::setTabOrder( mCategoriesButton, mSecrecyCombo ); 77// QWidget::setTabOrder( mCategoriesButton, mSecrecyCombo );
78// QWidget::setTabOrder( mSecrecyCombo, mDescriptionEdit ); 78// QWidget::setTabOrder( mSecrecyCombo, mDescriptionEdit );
79 79
80 80
81 81
82 mSummaryEdit->load(KOLocationBox::SUMMARYEVENT); 82 mSummaryEdit->load(KOLocationBox::SUMMARYEVENT);
83 mSummaryEdit->setFocus(); 83 mSummaryEdit->setFocus();
84} 84}
85 85
86void KOEditorGeneralEvent::initTime(QWidget *parent,QBoxLayout *topLayout) 86void KOEditorGeneralEvent::initTime(QWidget *parent,QBoxLayout *topLayout)
87{ 87{
88 QBoxLayout *timeLayout = new QVBoxLayout(topLayout); 88 QBoxLayout *timeLayout = new QVBoxLayout(topLayout);
89 89
90 QGroupBox *timeGroupBox = new QGroupBox(1,QGroupBox::Horizontal, 90 QGroupBox *timeGroupBox = new QGroupBox(1,QGroupBox::Horizontal,
91 i18n("Date && Time"),parent); 91 i18n("Date && Time"),parent);
92 timeLayout->addWidget(timeGroupBox); 92 timeLayout->addWidget(timeGroupBox);
93 93
94 timeGroupBox->layout()->setSpacing( 0 ); 94 timeGroupBox->layout()->setSpacing( 0 );
95 timeGroupBox->layout()->setMargin( 5 ); 95 timeGroupBox->layout()->setMargin( 5 );
96 QFrame *timeBoxFrame = new QFrame(timeGroupBox); 96 QFrame *timeBoxFrame = new QFrame(timeGroupBox);
97 97
98 QGridLayout *layoutTimeBox = new QGridLayout(timeBoxFrame,2,3); 98 QGridLayout *layoutTimeBox = new QGridLayout(timeBoxFrame,2,3);
99 layoutTimeBox->setSpacing(topLayout->spacing()); 99 layoutTimeBox->setSpacing(topLayout->spacing());
100 100
101 mStartDateLabel = new QLabel(i18n("Start:"),timeBoxFrame); 101 mStartDateLabel = new QLabel(i18n("Start:"),timeBoxFrame);
102 layoutTimeBox->addWidget(mStartDateLabel,0,0); 102 layoutTimeBox->addWidget(mStartDateLabel,0,0);
103 103
104 mStartDateEdit = new KDateEdit(timeBoxFrame); 104 mStartDateEdit = new KDateEdit(timeBoxFrame);
105 layoutTimeBox->addWidget(mStartDateEdit,0,1); 105 layoutTimeBox->addWidget(mStartDateEdit,0,1);
106 106
107 mStartTimeEdit = new KOTimeEdit(timeBoxFrame); 107 mStartTimeEdit = new KOTimeEdit(timeBoxFrame);
108 layoutTimeBox->addWidget(mStartTimeEdit,0,2); 108 layoutTimeBox->addWidget(mStartTimeEdit,0,2);
109 109
110 110
111 mEndDateLabel = new QLabel(i18n("End:"),timeBoxFrame); 111 mEndDateLabel = new QLabel(i18n("End:"),timeBoxFrame);
112 layoutTimeBox->addWidget(mEndDateLabel,1,0); 112 layoutTimeBox->addWidget(mEndDateLabel,1,0);
113 113
114 mEndDateEdit = new KDateEdit(timeBoxFrame); 114 mEndDateEdit = new KDateEdit(timeBoxFrame);
115 layoutTimeBox->addWidget(mEndDateEdit,1,1); 115 layoutTimeBox->addWidget(mEndDateEdit,1,1);
116 116
117 mEndTimeEdit = new KOTimeEdit(timeBoxFrame); 117 mEndTimeEdit = new KOTimeEdit(timeBoxFrame);
118 layoutTimeBox->addWidget(mEndTimeEdit,1,2); 118 layoutTimeBox->addWidget(mEndTimeEdit,1,2);
119 QWidget* duration = new QWidget( timeBoxFrame ); 119 QWidget* duration = new QWidget( timeBoxFrame );
120 QHBoxLayout *flagsBox = new QHBoxLayout( duration ); 120 QHBoxLayout *flagsBox = new QHBoxLayout( duration );
121 mNoTimeButton = new QCheckBox(i18n("All day event"),duration); 121 mNoTimeButton = new QCheckBox(i18n("All day event"),duration);
122 flagsBox->addWidget(mNoTimeButton); 122 flagsBox->addWidget(mNoTimeButton);
123 connect(mNoTimeButton, SIGNAL(toggled(bool)),SLOT(dontAssociateTime(bool))); 123 connect(mNoTimeButton, SIGNAL(toggled(bool)),SLOT(dontAssociateTime(bool)));
124 mDurationLabel = new QLabel( duration ); 124 mDurationLabel = new QLabel( duration );
125 // if ( KOPrefs::instance()->mCompactDialogs ) { 125 // if ( KOPrefs::instance()->mCompactDialogs ) {
126 //layoutTimeBox->addMultiCellWidget( mDurationLabel, 3, 3, 0, 3 ); 126 //layoutTimeBox->addMultiCellWidget( mDurationLabel, 3, 3, 0, 3 );
127 //} else { 127 //} else {
128 flagsBox->addWidget( mDurationLabel ); 128 flagsBox->addWidget( mDurationLabel );
129 //} 129 //}
130 flagsBox->setStretchFactor(mDurationLabel, 10 ); 130 flagsBox->setStretchFactor(mDurationLabel, 10 );
131 mDurationLabel->setAlignment( AlignRight | AlignVCenter); 131 mDurationLabel->setAlignment( AlignRight | AlignVCenter);
132 layoutTimeBox->addMultiCellWidget( duration, 2, 2, 0, 3 ); 132 layoutTimeBox->addMultiCellWidget( duration, 2, 2, 0, 3 );
133 133
134 // time widgets are checked if they contain a valid time 134 // time widgets are checked if they contain a valid time
135 connect(mStartTimeEdit, SIGNAL(timeChanged(QTime)), 135 connect(mStartTimeEdit, SIGNAL(timeChanged(QTime)),
136 this, SLOT(startTimeChanged(QTime))); 136 this, SLOT(startTimeChanged(QTime)));
137 connect(mEndTimeEdit, SIGNAL(timeChanged(QTime)), 137 connect(mEndTimeEdit, SIGNAL(timeChanged(QTime)),
138 this, SLOT(endTimeChanged(QTime))); 138 this, SLOT(endTimeChanged(QTime)));
139 139
140 // date widgets are checked if they contain a valid date 140 // date widgets are checked if they contain a valid date
141 connect(mStartDateEdit, SIGNAL(dateChanged(QDate)), 141 connect(mStartDateEdit, SIGNAL(dateChanged(QDate)),
142 this, SLOT(startDateChanged(QDate))); 142 this, SLOT(startDateChanged(QDate)));
143 connect(mEndDateEdit, SIGNAL(dateChanged(QDate)), 143 connect(mEndDateEdit, SIGNAL(dateChanged(QDate)),
144 this, SLOT(endDateChanged(QDate))); 144 this, SLOT(endDateChanged(QDate)));
145 connect(mStartDateEdit,SIGNAL(setTimeTo(QTime)),mStartTimeEdit,SLOT(setTime(QTime)));
146 connect(mEndDateEdit,SIGNAL(setTimeTo(QTime)),mEndTimeEdit,SLOT(setTime(QTime)));
147
145} 148}
146 149
147void KOEditorGeneralEvent::initClass(QWidget *parent,QBoxLayout *topLayout) 150void KOEditorGeneralEvent::initClass(QWidget *parent,QBoxLayout *topLayout)
148{ 151{
149 QBoxLayout *classLayout = new QHBoxLayout(topLayout); 152 QBoxLayout *classLayout = new QHBoxLayout(topLayout);
150 153
151 QLabel *freeTimeLabel = new QLabel(i18n("Show time as:"),parent); 154 QLabel *freeTimeLabel = new QLabel(i18n("Show time as:"),parent);
152 classLayout->addWidget(freeTimeLabel); 155 classLayout->addWidget(freeTimeLabel);
153 156
154 mFreeTimeCombo = new QComboBox(false, parent); 157 mFreeTimeCombo = new QComboBox(false, parent);
155 mFreeTimeCombo->insertItem(i18n("Busy")); 158 mFreeTimeCombo->insertItem(i18n("Busy"));
156 mFreeTimeCombo->insertItem(i18n("Free")); 159 mFreeTimeCombo->insertItem(i18n("Free"));
157 classLayout->addWidget(mFreeTimeCombo); 160 classLayout->addWidget(mFreeTimeCombo);
158} 161}
159 162
160void KOEditorGeneralEvent::timeStuffDisable(bool disable) 163void KOEditorGeneralEvent::timeStuffDisable(bool disable)
161{ 164{
162 mStartTimeEdit->setEnabled( !disable ); 165 mStartTimeEdit->setEnabled( !disable );
163 mEndTimeEdit->setEnabled( !disable ); 166 mEndTimeEdit->setEnabled( !disable );
164 167
165 setDuration(); 168 setDuration();
166 emitDateTimeStr(); 169 emitDateTimeStr();
167} 170}
168 171
169void KOEditorGeneralEvent::dontAssociateTime(bool noTime) 172void KOEditorGeneralEvent::dontAssociateTime(bool noTime)
170{ 173{
171 timeStuffDisable(noTime); 174 timeStuffDisable(noTime);
172 //if(alarmButton->isChecked()) alarmStuffDisable(noTime); 175 //if(alarmButton->isChecked()) alarmStuffDisable(noTime);
173 allDayChanged(noTime); 176 allDayChanged(noTime);
174} 177}
175 178
176void KOEditorGeneralEvent::setDateTimes(QDateTime start, QDateTime end) 179void KOEditorGeneralEvent::setDateTimes(QDateTime start, QDateTime end)
177{ 180{
178// kdDebug() << "KOEditorGeneralEvent::setDateTimes(): Start DateTime: " << start.toString() << endl; 181// kdDebug() << "KOEditorGeneralEvent::setDateTimes(): Start DateTime: " << start.toString() << endl;
179 if ( !mTemplate ) 182 if ( !mTemplate )
180 mStartDateEdit->setDate(start.date()); 183 mStartDateEdit->setDate(start.date());
181 // KTimeEdit seems to emit some signals when setTime() is called. 184 // KTimeEdit seems to emit some signals when setTime() is called.
182 mStartTimeEdit->blockSignals( true ); 185 mStartTimeEdit->blockSignals( true );
183 mStartTimeEdit->setTime(start.time()); 186 mStartTimeEdit->setTime(start.time());
184 mStartTimeEdit->blockSignals( false ); 187 mStartTimeEdit->blockSignals( false );
185 if ( !mTemplate ) 188 if ( !mTemplate )
186 mEndDateEdit->setDate(end.date()); 189 mEndDateEdit->setDate(end.date());
187 mEndTimeEdit->setTime(end.time()); 190 mEndTimeEdit->setTime(end.time());
188 191
189 mCurrStartDateTime = start; 192 mCurrStartDateTime = start;
190 mCurrEndDateTime = end; 193 mCurrEndDateTime = end;
191 194
192 setDuration(); 195 setDuration();
193 emitDateTimeStr(); 196 emitDateTimeStr();
194} 197}
195 198
196void KOEditorGeneralEvent::startTimeChanged(QTime newtime) 199void KOEditorGeneralEvent::startTimeChanged(QTime newtime)
197{ 200{
198 kdDebug() << "KOEditorGeneralEvent::startTimeChanged() " << newtime.toString() << endl; 201 kdDebug() << "KOEditorGeneralEvent::startTimeChanged() " << newtime.toString() << endl;
199 202
200 int secsep = mCurrStartDateTime.secsTo(mCurrEndDateTime); 203 int secsep = mCurrStartDateTime.secsTo(mCurrEndDateTime);
201 204
202 mCurrStartDateTime.setTime(newtime); 205 mCurrStartDateTime.setTime(newtime);
203 206
204 // adjust end time so that the event has the same duration as before. 207 // adjust end time so that the event has the same duration as before.
205 mCurrEndDateTime = mCurrStartDateTime.addSecs(secsep); 208 mCurrEndDateTime = mCurrStartDateTime.addSecs(secsep);
206 mEndTimeEdit->setTime(mCurrEndDateTime.time()); 209 mEndTimeEdit->setTime(mCurrEndDateTime.time());
207 mEndDateEdit->setDate(mCurrEndDateTime.date()); 210 mEndDateEdit->setDate(mCurrEndDateTime.date());
208 211
209 emit dateTimesChanged(mCurrStartDateTime,mCurrEndDateTime); 212 emit dateTimesChanged(mCurrStartDateTime,mCurrEndDateTime);
210} 213}
211 214
212void KOEditorGeneralEvent::endTimeChanged(QTime newtime) 215void KOEditorGeneralEvent::endTimeChanged(QTime newtime)
213{ 216{
214// kdDebug() << "KOEditorGeneralEvent::endTimeChanged " << newtime.toString() << endl; 217// kdDebug() << "KOEditorGeneralEvent::endTimeChanged " << newtime.toString() << endl;
215 218
216 QDateTime newdt(mCurrEndDateTime.date(), newtime); 219 QDateTime newdt(mCurrEndDateTime.date(), newtime);
217 mCurrEndDateTime = newdt; 220 mCurrEndDateTime = newdt;
218 221
219 emit dateTimesChanged(mCurrStartDateTime,mCurrEndDateTime); 222 emit dateTimesChanged(mCurrStartDateTime,mCurrEndDateTime);
220} 223}
221 224
222void KOEditorGeneralEvent::startDateChanged(QDate newdate) 225void KOEditorGeneralEvent::startDateChanged(QDate newdate)
223{ 226{
224 int daysep = mCurrStartDateTime.daysTo(mCurrEndDateTime); 227 int daysep = mCurrStartDateTime.daysTo(mCurrEndDateTime);
225 228
226 mCurrStartDateTime.setDate(newdate); 229 mCurrStartDateTime.setDate(newdate);
227 230
228 // adjust end date so that the event has the same duration as before 231 // adjust end date so that the event has the same duration as before
229 mCurrEndDateTime.setDate(mCurrStartDateTime.date().addDays(daysep)); 232 mCurrEndDateTime.setDate(mCurrStartDateTime.date().addDays(daysep));
230 mEndDateEdit->setDate(mCurrEndDateTime.date()); 233 mEndDateEdit->setDate(mCurrEndDateTime.date());
231 234
232 emit dateTimesChanged(mCurrStartDateTime,mCurrEndDateTime); 235 emit dateTimesChanged(mCurrStartDateTime,mCurrEndDateTime);
233} 236}
234 237
235void KOEditorGeneralEvent::endDateChanged(QDate newdate) 238void KOEditorGeneralEvent::endDateChanged(QDate newdate)
236{ 239{
237 QDateTime newdt(newdate, mCurrEndDateTime.time()); 240 QDateTime newdt(newdate, mCurrEndDateTime.time());
238 241
239 if(newdt < mCurrStartDateTime) { 242 if(newdt < mCurrStartDateTime) {
240 // oops, we can't let that happen. 243 // oops, we can't let that happen.
241 newdt = mCurrStartDateTime; 244 newdt = mCurrStartDateTime;
242 mEndDateEdit->setDate(newdt.date()); 245 mEndDateEdit->setDate(newdt.date());
243 mEndTimeEdit->setTime(newdt.time()); 246 mEndTimeEdit->setTime(newdt.time());
244 } 247 }
245 mCurrEndDateTime = newdt; 248 mCurrEndDateTime = newdt;
246 249
247 emit dateTimesChanged(mCurrStartDateTime,mCurrEndDateTime); 250 emit dateTimesChanged(mCurrStartDateTime,mCurrEndDateTime);
248} 251}
249 252
250void KOEditorGeneralEvent::setDefaults(QDateTime from,QDateTime to,bool allDay) 253void KOEditorGeneralEvent::setDefaults(QDateTime from,QDateTime to,bool allDay)
251{ 254{
252 mSummaryEdit->load(KOLocationBox::SUMMARYEVENT); 255 mSummaryEdit->load(KOLocationBox::SUMMARYEVENT);
253 mLocationEdit->load(KOLocationBox::LOCATION); 256 mLocationEdit->load(KOLocationBox::LOCATION);
254 KOEditorGeneral::setDefaults(allDay); 257 KOEditorGeneral::setDefaults(allDay);
255 258
256 mNoTimeButton->setChecked(allDay); 259 mNoTimeButton->setChecked(allDay);
257 timeStuffDisable(allDay); 260 timeStuffDisable(allDay);
258 mFreeTimeCombo->setCurrentItem( 0 ); 261 mFreeTimeCombo->setCurrentItem( 0 );
259 setDateTimes(from,to); 262 setDateTimes(from,to);
260} 263}
261 264
262void KOEditorGeneralEvent::readEvent( Event *event, bool tmpl ) 265void KOEditorGeneralEvent::readEvent( Event *event, bool tmpl )
263{ 266{
264 QString tmpStr; 267 QString tmpStr;
265 268
266 mTemplate = tmpl; 269 mTemplate = tmpl;
267 // the rest is for the events only 270 // the rest is for the events only
268 mNoTimeButton->setChecked(event->doesFloat()); 271 mNoTimeButton->setChecked(event->doesFloat());
269 timeStuffDisable(event->doesFloat()); 272 timeStuffDisable(event->doesFloat());
270 273
271 setDateTimes(event->dtStart(),event->dtEnd()); 274 setDateTimes(event->dtStart(),event->dtEnd());
272 275
273 mTemplate = false; 276 mTemplate = false;
274 switch( event->transparency() ) { 277 switch( event->transparency() ) {
275 case Event::Transparent: 278 case Event::Transparent:
276 mFreeTimeCombo->setCurrentItem(1); 279 mFreeTimeCombo->setCurrentItem(1);
277 break; 280 break;
278 case Event::Opaque: 281 case Event::Opaque:
279 mFreeTimeCombo->setCurrentItem(0); 282 mFreeTimeCombo->setCurrentItem(0);
280 break; 283 break;
281 } 284 }
282 285
283 mSummaryEdit->load(KOLocationBox::SUMMARYEVENT); 286 mSummaryEdit->load(KOLocationBox::SUMMARYEVENT);
284 mLocationEdit->load(KOLocationBox::LOCATION); 287 mLocationEdit->load(KOLocationBox::LOCATION);
285 readIncidence(event); 288 readIncidence(event);
286} 289}
287 290
288void KOEditorGeneralEvent::writeEvent(Event *event) 291void KOEditorGeneralEvent::writeEvent(Event *event)
289{ 292{
290// kdDebug() << "KOEditorGeneralEvent::writeEvent()" << endl; 293// kdDebug() << "KOEditorGeneralEvent::writeEvent()" << endl;
291 294
292 writeIncidence(event); 295 writeIncidence(event);
293 296
294 QDate tmpDate; 297 QDate tmpDate;
295 QTime tmpTime; 298 QTime tmpTime;
296 QDateTime tmpDT; 299 QDateTime tmpDT;
297 300
298 // temp. until something better happens. 301 // temp. until something better happens.
299 QString tmpStr; 302 QString tmpStr;
300 303
301 if (mNoTimeButton->isChecked()) { 304 if (mNoTimeButton->isChecked()) {
302 event->setFloats(true); 305 event->setFloats(true);
303 // need to change this. 306 // need to change this.
304 tmpDate = mStartDateEdit->date(); 307 tmpDate = mStartDateEdit->date();
305 tmpTime.setHMS(0,0,0); 308 tmpTime.setHMS(0,0,0);
306 tmpDT.setDate(tmpDate); 309 tmpDT.setDate(tmpDate);
307 tmpDT.setTime(tmpTime); 310 tmpDT.setTime(tmpTime);
308 event->setDtStart(tmpDT); 311 event->setDtStart(tmpDT);
309 312
310 tmpDate = mEndDateEdit->date(); 313 tmpDate = mEndDateEdit->date();
311 tmpTime.setHMS(0,0,0); 314 tmpTime.setHMS(0,0,0);
312 tmpDT.setDate(tmpDate); 315 tmpDT.setDate(tmpDate);
313 tmpDT.setTime(tmpTime); 316 tmpDT.setTime(tmpTime);
314 event->setDtEnd(tmpDT); 317 event->setDtEnd(tmpDT);
315 } else { 318 } else {
316 event->setFloats(false); 319 event->setFloats(false);
317 320
318 // set date/time end 321 // set date/time end
319 tmpDate = mEndDateEdit->date(); 322 tmpDate = mEndDateEdit->date();
320 tmpTime = mEndTimeEdit->getTime(); 323 tmpTime = mEndTimeEdit->getTime();
321 tmpDT.setDate(tmpDate); 324 tmpDT.setDate(tmpDate);
322 tmpDT.setTime(tmpTime); 325 tmpDT.setTime(tmpTime);
323 event->setDtEnd(tmpDT); 326 event->setDtEnd(tmpDT);
324 327
325 // set date/time start 328 // set date/time start
326 tmpDate = mStartDateEdit->date(); 329 tmpDate = mStartDateEdit->date();
327 tmpTime = mStartTimeEdit->getTime(); 330 tmpTime = mStartTimeEdit->getTime();
328 tmpDT.setDate(tmpDate); 331 tmpDT.setDate(tmpDate);
329 tmpDT.setTime(tmpTime); 332 tmpDT.setTime(tmpTime);
330 event->setDtStart(tmpDT); 333 event->setDtStart(tmpDT);
331 } // check for float 334 } // check for float
332 mSummaryEdit->save(KOLocationBox::SUMMARYEVENT); 335 mSummaryEdit->save(KOLocationBox::SUMMARYEVENT);
333 336
334 event->setTransparency(mFreeTimeCombo->currentItem() > 0 337 event->setTransparency(mFreeTimeCombo->currentItem() > 0
335 ? KCal::Event::Transparent 338 ? KCal::Event::Transparent
336 : KCal::Event::Opaque); 339 : KCal::Event::Opaque);
337 340
338// kdDebug() << "KOEditorGeneralEvent::writeEvent() done" << endl; 341// kdDebug() << "KOEditorGeneralEvent::writeEvent() done" << endl;
339} 342}
340 343
341void KOEditorGeneralEvent::setDuration() 344void KOEditorGeneralEvent::setDuration()
342{ 345{
343 QString tmpStr = "", catStr; 346 QString tmpStr = "", catStr;
344 int hourdiff, minutediff; 347 int hourdiff, minutediff;
345 // end<date is an accepted temporary state while typing, but don't show 348 // end<date is an accepted temporary state while typing, but don't show
346 // any duration if this happens 349 // any duration if this happens
347 if(mCurrEndDateTime >= mCurrStartDateTime) { 350 if(mCurrEndDateTime >= mCurrStartDateTime) {
348 351
349 if (mNoTimeButton->isChecked()) { 352 if (mNoTimeButton->isChecked()) {
350 int daydiff = mCurrStartDateTime.date().daysTo(mCurrEndDateTime.date()) + 1; 353 int daydiff = mCurrStartDateTime.date().daysTo(mCurrEndDateTime.date()) + 1;
351 tmpStr = i18n("Duration: "); 354 tmpStr = i18n("Duration: ");
352 tmpStr.append(i18n("1 Day","%n Days",daydiff)); 355 tmpStr.append(i18n("1 Day","%n Days",daydiff));
353 } else { 356 } else {
354 int secto = mCurrStartDateTime.secsTo( mCurrEndDateTime ); 357 int secto = mCurrStartDateTime.secsTo( mCurrEndDateTime );
355 hourdiff = secto / 3600; 358 hourdiff = secto / 3600;
356 minutediff = (secto/60 ) % 60; 359 minutediff = (secto/60 ) % 60;
357 if (hourdiff || minutediff){ 360 if (hourdiff || minutediff){
358 tmpStr = i18n("Duration: "); 361 tmpStr = i18n("Duration: ");
359 if (hourdiff){ 362 if (hourdiff){
360 catStr = i18n("1 h","%n h",hourdiff); 363 catStr = i18n("1 h","%n h",hourdiff);
361 tmpStr.append(catStr); 364 tmpStr.append(catStr);
362 } 365 }
363 if (hourdiff && minutediff){ 366 if (hourdiff && minutediff){
364 tmpStr += i18n(", "); 367 tmpStr += i18n(", ");
365 } 368 }
366 if (minutediff){ 369 if (minutediff){
367 catStr = i18n("1 min","%n min",minutediff); 370 catStr = i18n("1 min","%n min",minutediff);
368 tmpStr += catStr; 371 tmpStr += catStr;
369 } 372 }
370 } else tmpStr = ""; 373 } else tmpStr = "";
371 } 374 }
372 } 375 }
373 mDurationLabel->setText(tmpStr); 376 mDurationLabel->setText(tmpStr);
374} 377}
375 378
376void KOEditorGeneralEvent::emitDateTimeStr() 379void KOEditorGeneralEvent::emitDateTimeStr()
377{ 380{
378 KLocale *l = KGlobal::locale(); 381 KLocale *l = KGlobal::locale();
379 QString startString = ""; 382 QString startString = "";
380 if ( mCurrStartDateTime.date() < mCurrEndDateTime.date() ) { 383 if ( mCurrStartDateTime.date() < mCurrEndDateTime.date() ) {
381 if ( mNoTimeButton->isChecked() ) { 384 if ( mNoTimeButton->isChecked() ) {
382 startString = i18n("From: ") + l->formatDate(mCurrStartDateTime.date() ); 385 startString = i18n("From: ") + l->formatDate(mCurrStartDateTime.date() );
383 startString += "\n"+i18n("To: ")+ l->formatDate(mCurrEndDateTime.date()); 386 startString += "\n"+i18n("To: ")+ l->formatDate(mCurrEndDateTime.date());
384 387
385 } else { 388 } else {
386 startString = i18n("From: ") +l->formatDateTime(mCurrStartDateTime, false); 389 startString = i18n("From: ") +l->formatDateTime(mCurrStartDateTime, false);
387 startString += "\n"+i18n("To: ")+l->formatDateTime(mCurrEndDateTime, false); 390 startString += "\n"+i18n("To: ")+l->formatDateTime(mCurrEndDateTime, false);
388 } 391 }
389 } else { 392 } else {
390 if ( mNoTimeButton->isChecked() ) { 393 if ( mNoTimeButton->isChecked() ) {
391 startString = i18n("On: ") + l->formatDate(mCurrStartDateTime.date() ); 394 startString = i18n("On: ") + l->formatDate(mCurrStartDateTime.date() );
392 } else { 395 } else {
393 startString = i18n("From: ") + KGlobal::locale()->formatTime(mCurrStartDateTime.time())+ 396 startString = i18n("From: ") + KGlobal::locale()->formatTime(mCurrStartDateTime.time())+
394 "-"+KGlobal::locale()->formatTime(mCurrEndDateTime.time()); 397 "-"+KGlobal::locale()->formatTime(mCurrEndDateTime.time());
395 startString += i18n(" on ")+KGlobal::locale()->formatDate( mCurrStartDateTime.date(), true); 398 startString += i18n(" on ")+KGlobal::locale()->formatDate( mCurrStartDateTime.date(), true);
396 } 399 }
397 } 400 }
398 startString +="\n"+mDurationLabel->text(); 401 startString +="\n"+mDurationLabel->text();
399 emit dateTimeStrChanged(startString); 402 emit dateTimeStrChanged(startString);
400} 403}
401 404
402bool KOEditorGeneralEvent::validateInput() 405bool KOEditorGeneralEvent::validateInput()
403{ 406{
404 407
405 if (!mStartDateEdit->inputIsValid()) { 408 if (!mStartDateEdit->inputIsValid()) {
406 KMessageBox::sorry( 0, 409 KMessageBox::sorry( 0,
407 i18n("Please specify a valid start date,\nfor example '%1'.") 410 i18n("Please specify a valid start date,\nfor example '%1'.")
408 .arg( KGlobal::locale()->formatDate( QDate::currentDate(), true ) ) ); 411 .arg( KGlobal::locale()->formatDate( QDate::currentDate(), true ) ) );
409 return false; 412 return false;
410 } 413 }
411 414
412 if (!mEndDateEdit->inputIsValid()) { 415 if (!mEndDateEdit->inputIsValid()) {
413 KMessageBox::sorry( 0, 416 KMessageBox::sorry( 0,
414 i18n("Please specify a valid end date,\nfor example '%1'.") 417 i18n("Please specify a valid end date,\nfor example '%1'.")
415 .arg( KGlobal::locale()->formatDate( QDate::currentDate(), true ) ) ); 418 .arg( KGlobal::locale()->formatDate( QDate::currentDate(), true ) ) );
416 return false; 419 return false;
417 } 420 }
418 421
419 QDateTime startDt,endDt; 422 QDateTime startDt,endDt;
420 startDt.setDate(mStartDateEdit->date()); 423 startDt.setDate(mStartDateEdit->date());
421 endDt.setDate(mEndDateEdit->date()); 424 endDt.setDate(mEndDateEdit->date());
422 if (!mNoTimeButton->isChecked()) { 425 if (!mNoTimeButton->isChecked()) {
423 startDt.setTime(mStartTimeEdit->getTime()); 426 startDt.setTime(mStartTimeEdit->getTime());
424 endDt.setTime(mEndTimeEdit->getTime()); 427 endDt.setTime(mEndTimeEdit->getTime());
425 } 428 }
426 429
427 if (startDt > endDt) { 430 if (startDt > endDt) {
428 KMessageBox::sorry(0,i18n("The event ends before it starts.\n" 431 KMessageBox::sorry(0,i18n("The event ends before it starts.\n"
429 "Please correct dates and times.")); 432 "Please correct dates and times."));
430 return false; 433 return false;
431 } 434 }
432 435
433 return KOEditorGeneral::validateInput(); 436 return KOEditorGeneral::validateInput();
434} 437}
diff --git a/korganizer/koeditorgeneraltodo.cpp b/korganizer/koeditorgeneraltodo.cpp
index a03ec52..4a1576a 100644
--- a/korganizer/koeditorgeneraltodo.cpp
+++ b/korganizer/koeditorgeneraltodo.cpp
@@ -1,500 +1,503 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2000,2001 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 <qfiledialog.h> 25#include <qfiledialog.h>
26#include <qlayout.h> 26#include <qlayout.h>
27#include <qvbox.h> 27#include <qvbox.h>
28#include <qbuttongroup.h> 28#include <qbuttongroup.h>
29#include <qvgroupbox.h> 29#include <qvgroupbox.h>
30#include <qwidgetstack.h> 30#include <qwidgetstack.h>
31#include <qdatetime.h> 31#include <qdatetime.h>
32#include <qapplication.h> 32#include <qapplication.h>
33 33
34#include <kglobal.h> 34#include <kglobal.h>
35#include <klocale.h> 35#include <klocale.h>
36#include <kiconloader.h> 36#include <kiconloader.h>
37#include <kmessagebox.h> 37#include <kmessagebox.h>
38#include <kdebug.h> 38#include <kdebug.h>
39#include <krestrictedline.h> 39#include <krestrictedline.h>
40#include <kstandarddirs.h> 40#include <kstandarddirs.h>
41#include <kfiledialog.h> 41#include <kfiledialog.h>
42 42
43#include <libkcal/todo.h> 43#include <libkcal/todo.h>
44 44
45#include <libkdepim/kdateedit.h> 45#include <libkdepim/kdateedit.h>
46 46
47#include "koprefs.h" 47#include "koprefs.h"
48#include "ktimeedit.h" 48#include "ktimeedit.h"
49 49
50#include "koeditorgeneraltodo.h" 50#include "koeditorgeneraltodo.h"
51#include "kolocationbox.h" 51#include "kolocationbox.h"
52 52
53KOEditorGeneralTodo::KOEditorGeneralTodo(QObject* parent, 53KOEditorGeneralTodo::KOEditorGeneralTodo(QObject* parent,
54 const char* name) 54 const char* name)
55 : KOEditorGeneral( parent, name) 55 : KOEditorGeneral( parent, name)
56{ 56{
57} 57}
58 58
59KOEditorGeneralTodo::~KOEditorGeneralTodo() 59KOEditorGeneralTodo::~KOEditorGeneralTodo()
60{ 60{
61} 61}
62 62
63void KOEditorGeneralTodo::finishSetup() 63void KOEditorGeneralTodo::finishSetup()
64{ 64{
65 65
66// QWidget::setTabOrder(mSummaryEdit, mLocationEdit); 66// QWidget::setTabOrder(mSummaryEdit, mLocationEdit);
67// QWidget::setTabOrder(mLocationEdit, mDueCheck); 67// QWidget::setTabOrder(mLocationEdit, mDueCheck);
68// QWidget::setTabOrder(mDueCheck, mDueDateEdit); 68// QWidget::setTabOrder(mDueCheck, mDueDateEdit);
69// QWidget::setTabOrder(mDueDateEdit, mDueTimeEdit); 69// QWidget::setTabOrder(mDueDateEdit, mDueTimeEdit);
70// QWidget::setTabOrder(mDueTimeEdit, mStartCheck); 70// QWidget::setTabOrder(mDueTimeEdit, mStartCheck);
71// QWidget::setTabOrder(mStartCheck, mStartDateEdit); 71// QWidget::setTabOrder(mStartCheck, mStartDateEdit);
72// QWidget::setTabOrder(mStartDateEdit, mStartTimeEdit); 72// QWidget::setTabOrder(mStartDateEdit, mStartTimeEdit);
73// QWidget::setTabOrder(mStartTimeEdit, mTimeButton); 73// QWidget::setTabOrder(mStartTimeEdit, mTimeButton);
74// QWidget::setTabOrder(mTimeButton, mCompletedCombo); 74// QWidget::setTabOrder(mTimeButton, mCompletedCombo);
75// QWidget::setTabOrder(mCompletedCombo, mPriorityCombo); 75// QWidget::setTabOrder(mCompletedCombo, mPriorityCombo);
76// QWidget::setTabOrder(mPriorityCombo, mAlarmButton); 76// QWidget::setTabOrder(mPriorityCombo, mAlarmButton);
77// QWidget::setTabOrder(mAlarmButton, mCategoriesButton); 77// QWidget::setTabOrder(mAlarmButton, mCategoriesButton);
78// QWidget::setTabOrder(mCategoriesButton, mSecrecyCombo); 78// QWidget::setTabOrder(mCategoriesButton, mSecrecyCombo);
79// QWidget::setTabOrder(mSecrecyCombo, mDescriptionEdit); 79// QWidget::setTabOrder(mSecrecyCombo, mDescriptionEdit);
80 mSummaryEdit->load(KOLocationBox::SUMMARYTODO); 80 mSummaryEdit->load(KOLocationBox::SUMMARYTODO);
81 mSummaryEdit->setFocus(); 81 mSummaryEdit->setFocus();
82} 82}
83 83
84void KOEditorGeneralTodo::initTime(QWidget *parent,QBoxLayout *topLayout) 84void KOEditorGeneralTodo::initTime(QWidget *parent,QBoxLayout *topLayout)
85{ 85{
86 QBoxLayout *timeLayout = new QVBoxLayout(topLayout); 86 QBoxLayout *timeLayout = new QVBoxLayout(topLayout);
87 87
88 QGroupBox *timeGroupBox = new QGroupBox(1,QGroupBox::Horizontal, 88 QGroupBox *timeGroupBox = new QGroupBox(1,QGroupBox::Horizontal,
89 i18n("Date && Time"),parent); 89 i18n("Date && Time"),parent);
90 timeLayout->addWidget(timeGroupBox); 90 timeLayout->addWidget(timeGroupBox);
91 timeGroupBox->layout()->setSpacing( 0 ); 91 timeGroupBox->layout()->setSpacing( 0 );
92 timeGroupBox->layout()->setMargin( 5 ); 92 timeGroupBox->layout()->setMargin( 5 );
93 QFrame *timeBoxFrame = new QFrame(timeGroupBox); 93 QFrame *timeBoxFrame = new QFrame(timeGroupBox);
94 94
95 QGridLayout *layoutTimeBox = new QGridLayout(timeBoxFrame,3,3); 95 QGridLayout *layoutTimeBox = new QGridLayout(timeBoxFrame,3,3);
96 layoutTimeBox->setSpacing(topLayout->spacing()); 96 layoutTimeBox->setSpacing(topLayout->spacing());
97 layoutTimeBox->setColStretch( 1, 1 ); 97 layoutTimeBox->setColStretch( 1, 1 );
98 98
99 mDueCheck = new QCheckBox(i18n("Due:"),timeBoxFrame); 99 mDueCheck = new QCheckBox(i18n("Due:"),timeBoxFrame);
100 layoutTimeBox->addWidget(mDueCheck,0,0); 100 layoutTimeBox->addWidget(mDueCheck,0,0);
101 connect(mDueCheck,SIGNAL(toggled(bool)),SLOT(enableDueEdit(bool))); 101 connect(mDueCheck,SIGNAL(toggled(bool)),SLOT(enableDueEdit(bool)));
102 connect(mDueCheck,SIGNAL(toggled(bool)),SLOT(showAlarm())); 102 connect(mDueCheck,SIGNAL(toggled(bool)),SLOT(showAlarm()));
103 103
104 104
105 mDueDateEdit = new KDateEdit(timeBoxFrame); 105 mDueDateEdit = new KDateEdit(timeBoxFrame);
106 layoutTimeBox->addWidget(mDueDateEdit,0,1); 106 layoutTimeBox->addWidget(mDueDateEdit,0,1);
107 107
108 mDueTimeEdit = new KOTimeEdit(timeBoxFrame); 108 mDueTimeEdit = new KOTimeEdit(timeBoxFrame);
109 layoutTimeBox->addWidget(mDueTimeEdit,0,2); 109 layoutTimeBox->addWidget(mDueTimeEdit,0,2);
110 110
111 111
112 mStartCheck = new QCheckBox(i18n("Start:"),timeBoxFrame); 112 mStartCheck = new QCheckBox(i18n("Start:"),timeBoxFrame);
113 layoutTimeBox->addWidget(mStartCheck,1,0); 113 layoutTimeBox->addWidget(mStartCheck,1,0);
114 connect(mStartCheck,SIGNAL(toggled(bool)),SLOT(enableStartEdit(bool))); 114 connect(mStartCheck,SIGNAL(toggled(bool)),SLOT(enableStartEdit(bool)));
115 115
116 mStartDateEdit = new KDateEdit(timeBoxFrame); 116 mStartDateEdit = new KDateEdit(timeBoxFrame);
117 layoutTimeBox->addWidget(mStartDateEdit,1,1); 117 layoutTimeBox->addWidget(mStartDateEdit,1,1);
118 118
119 mStartTimeEdit = new KOTimeEdit(timeBoxFrame); 119 mStartTimeEdit = new KOTimeEdit(timeBoxFrame);
120 layoutTimeBox->addWidget(mStartTimeEdit,1,2); 120 layoutTimeBox->addWidget(mStartTimeEdit,1,2);
121 121
122 122
123 mTimeButton = new QCheckBox(i18n("Time associated"),timeBoxFrame); 123 mTimeButton = new QCheckBox(i18n("Time associated"),timeBoxFrame);
124 layoutTimeBox->addMultiCellWidget(mTimeButton,2,2,0,1); 124 layoutTimeBox->addMultiCellWidget(mTimeButton,2,2,0,1);
125 125
126 connect(mTimeButton,SIGNAL(toggled(bool)),SLOT(enableTimeEdits(bool))); 126 connect(mTimeButton,SIGNAL(toggled(bool)),SLOT(enableTimeEdits(bool)));
127 connect(mDueDateEdit,SIGNAL(setTimeTo(QTime)),mDueTimeEdit,SLOT(setTime(QTime)));
128 connect(mStartDateEdit,SIGNAL(setTimeTo(QTime)),mStartTimeEdit,SLOT(setTime(QTime)));
127 129
128 // some more layouting 130 // some more layouting
129 //layoutTimeBox->setColStretch(3,1); 131 //layoutTimeBox->setColStretch(3,1);
130} 132}
131 133
132 134
133void KOEditorGeneralTodo::initCompletion(QWidget *parent, QBoxLayout *topLayout) 135void KOEditorGeneralTodo::initCompletion(QWidget *parent, QBoxLayout *topLayout)
134{ 136{
135 mCompletedCombo = new QComboBox(parent); 137 mCompletedCombo = new QComboBox(parent);
136 // xgettext:no-c-format 138 // xgettext:no-c-format
137 mCompletedCombo->insertItem(i18n(" 0 %")); 139 mCompletedCombo->insertItem(i18n(" 0 %"));
138 // xgettext:no-c-format 140 // xgettext:no-c-format
139 mCompletedCombo->insertItem(i18n(" 20 %")); 141 mCompletedCombo->insertItem(i18n(" 20 %"));
140 // xgettext:no-c-format 142 // xgettext:no-c-format
141 mCompletedCombo->insertItem(i18n(" 40 %")); 143 mCompletedCombo->insertItem(i18n(" 40 %"));
142 // xgettext:no-c-format 144 // xgettext:no-c-format
143 mCompletedCombo->insertItem(i18n(" 60 %")); 145 mCompletedCombo->insertItem(i18n(" 60 %"));
144 // xgettext:no-c-format 146 // xgettext:no-c-format
145 mCompletedCombo->insertItem(i18n(" 80 %")); 147 mCompletedCombo->insertItem(i18n(" 80 %"));
146 // xgettext:no-c-format 148 // xgettext:no-c-format
147 mCompletedCombo->insertItem(i18n("100 %")); 149 mCompletedCombo->insertItem(i18n("100 %"));
148 connect(mCompletedCombo,SIGNAL(activated(int)),SLOT(completedChanged(int))); 150 connect(mCompletedCombo,SIGNAL(activated(int)),SLOT(completedChanged(int)));
149 topLayout->addWidget(mCompletedCombo); 151 topLayout->addWidget(mCompletedCombo);
150 152
151 mCompletedLabel = new QLabel(i18n("completed"),parent); 153 mCompletedLabel = new QLabel(i18n("completed"),parent);
152 topLayout->addWidget(mCompletedLabel); 154 topLayout->addWidget(mCompletedLabel);
153 155
154 mCompleteDateEdit = new KDateEdit(parent); 156 mCompleteDateEdit = new KDateEdit(parent);
155 topLayout->addWidget(mCompleteDateEdit ); 157 topLayout->addWidget(mCompleteDateEdit );
156 158
157 mCompleteTimeEdit = new KOTimeEdit(parent); 159 mCompleteTimeEdit = new KOTimeEdit(parent);
158 topLayout->addWidget( mCompleteTimeEdit); 160 topLayout->addWidget( mCompleteTimeEdit);
159 161
160 mCompletedCombo->setSizePolicy( QSizePolicy( QSizePolicy::Preferred,QSizePolicy::Preferred) ); 162 mCompletedCombo->setSizePolicy( QSizePolicy( QSizePolicy::Preferred,QSizePolicy::Preferred) );
161 mCompletedLabel->setSizePolicy( QSizePolicy( QSizePolicy::Expanding,QSizePolicy::Preferred) ); 163 mCompletedLabel->setSizePolicy( QSizePolicy( QSizePolicy::Expanding,QSizePolicy::Preferred) );
164 connect(mCompleteDateEdit,SIGNAL(setTimeTo(QTime)),mCompleteTimeEdit,SLOT(setTime(QTime)));
162 165
163 if ( QApplication::desktop()->width() <= 480 ) { 166 if ( QApplication::desktop()->width() <= 480 ) {
164 if ( QApplication::desktop()->width() < 320 ) 167 if ( QApplication::desktop()->width() < 320 )
165 mCompleteDateEdit->setMaximumWidth( 85 ); 168 mCompleteDateEdit->setMaximumWidth( 85 );
166 else 169 else
167 mCompleteDateEdit->setMaximumWidth( 140 ); 170 mCompleteDateEdit->setMaximumWidth( 140 );
168 topLayout->setSpacing( 0 ); 171 topLayout->setSpacing( 0 );
169 } 172 }
170} 173}
171 174
172void KOEditorGeneralTodo::initPriority(QWidget *parent, QBoxLayout *topLayout) 175void KOEditorGeneralTodo::initPriority(QWidget *parent, QBoxLayout *topLayout)
173{ 176{
174 177
175 QHBox* h = new QHBox ( parent ); 178 QHBox* h = new QHBox ( parent );
176 topLayout->addWidget( h ); 179 topLayout->addWidget( h );
177 QLabel *priorityLabel = new QLabel(i18n("Priority:"), h); 180 QLabel *priorityLabel = new QLabel(i18n("Priority:"), h);
178 // topLayout->addWidget(priorityLabel); 181 // topLayout->addWidget(priorityLabel);
179 mPriorityCombo = new QComboBox( h ); 182 mPriorityCombo = new QComboBox( h );
180 mPriorityCombo->insertItem(i18n("1 (high)")); 183 mPriorityCombo->insertItem(i18n("1 (high)"));
181 mPriorityCombo->insertItem(i18n("2")); 184 mPriorityCombo->insertItem(i18n("2"));
182 mPriorityCombo->insertItem(i18n("3")); 185 mPriorityCombo->insertItem(i18n("3"));
183 mPriorityCombo->insertItem(i18n("4")); 186 mPriorityCombo->insertItem(i18n("4"));
184 mPriorityCombo->insertItem(i18n("5 (low)")); 187 mPriorityCombo->insertItem(i18n("5 (low)"));
185 //topLayout->addWidget(mPriorityCombo); 188 //topLayout->addWidget(mPriorityCombo);
186} 189}
187 190
188void KOEditorGeneralTodo::initStatus(QWidget *parent,QBoxLayout *topLayout) 191void KOEditorGeneralTodo::initStatus(QWidget *parent,QBoxLayout *topLayout)
189{ 192{
190 QBoxLayout *statusLayout = new QHBoxLayout(topLayout); 193 QBoxLayout *statusLayout = new QHBoxLayout(topLayout);
191 194
192 initCompletion( parent, statusLayout ); 195 initCompletion( parent, statusLayout );
193 196
194 statusLayout->addStretch( 1 ); 197 statusLayout->addStretch( 1 );
195 198
196 initPriority( parent, statusLayout ); 199 initPriority( parent, statusLayout );
197} 200}
198 201
199void KOEditorGeneralTodo::setDefaults(QDateTime due,bool allDay) 202void KOEditorGeneralTodo::setDefaults(QDateTime due,bool allDay)
200{ 203{
201 204
202 mSummaryEdit->load(KOLocationBox::SUMMARYTODO); 205 mSummaryEdit->load(KOLocationBox::SUMMARYTODO);
203 mLocationEdit->load(KOLocationBox::LOCATION); 206 mLocationEdit->load(KOLocationBox::LOCATION);
204 KOEditorGeneral::setDefaults(allDay); 207 KOEditorGeneral::setDefaults(allDay);
205 208
206 mTimeButton->setChecked( !allDay ); 209 mTimeButton->setChecked( !allDay );
207 if(mTimeButton->isChecked()) { 210 if(mTimeButton->isChecked()) {
208 mTimeButton->setEnabled(true); 211 mTimeButton->setEnabled(true);
209 } 212 }
210 else { 213 else {
211 mTimeButton->setEnabled(false); 214 mTimeButton->setEnabled(false);
212 } 215 }
213 216
214 enableTimeEdits( !allDay ); 217 enableTimeEdits( !allDay );
215 if ( due.isValid() ) { 218 if ( due.isValid() ) {
216 mDueCheck->setChecked(true); 219 mDueCheck->setChecked(true);
217 enableDueEdit(true); 220 enableDueEdit(true);
218 alarmDisable(false); 221 alarmDisable(false);
219 } else { 222 } else {
220 mDueCheck->setChecked(false); 223 mDueCheck->setChecked(false);
221 enableDueEdit(false); 224 enableDueEdit(false);
222 due = QDateTime::currentDateTime().addDays(7); 225 due = QDateTime::currentDateTime().addDays(7);
223 alarmDisable(true); 226 alarmDisable(true);
224 } 227 }
225 228
226 229
227 mStartCheck->setChecked(false); 230 mStartCheck->setChecked(false);
228 enableStartEdit(false); 231 enableStartEdit(false);
229 232
230 mDueDateEdit->setDate(due.date()); 233 mDueDateEdit->setDate(due.date());
231 mDueTimeEdit->setTime(due.time()); 234 mDueTimeEdit->setTime(due.time());
232 due = due.addDays(-7); 235 due = due.addDays(-7);
233 mStartDateEdit->setDate(due.date()); 236 mStartDateEdit->setDate(due.date());
234 mStartTimeEdit->setTime(due.time()); 237 mStartTimeEdit->setTime(due.time());
235 238
236 mPriorityCombo->setCurrentItem(2); 239 mPriorityCombo->setCurrentItem(2);
237 mCompletedLabel->setText(i18n(" completed"));; 240 mCompletedLabel->setText(i18n(" completed"));;
238 mCompletedCombo->setCurrentItem(0); 241 mCompletedCombo->setCurrentItem(0);
239 mCompleteDateEdit->hide(); 242 mCompleteDateEdit->hide();
240 mCompleteTimeEdit->hide(); 243 mCompleteTimeEdit->hide();
241} 244}
242 245
243void KOEditorGeneralTodo::readTodo(Todo *todo) 246void KOEditorGeneralTodo::readTodo(Todo *todo)
244{ 247{
245 248
246 mSummaryEdit->load(KOLocationBox::SUMMARYTODO); 249 mSummaryEdit->load(KOLocationBox::SUMMARYTODO);
247 mLocationEdit->load(KOLocationBox::LOCATION); 250 mLocationEdit->load(KOLocationBox::LOCATION);
248 KOEditorGeneral::readIncidence(todo); 251 KOEditorGeneral::readIncidence(todo);
249 252
250 QDateTime dueDT; 253 QDateTime dueDT;
251 254
252 if (todo->hasDueDate()) { 255 if (todo->hasDueDate()) {
253 enableAlarmEdit(true); 256 enableAlarmEdit(true);
254 dueDT = todo->dtDue(); 257 dueDT = todo->dtDue();
255 mDueDateEdit->setDate(todo->dtDue().date()); 258 mDueDateEdit->setDate(todo->dtDue().date());
256 mDueTimeEdit->setTime(todo->dtDue().time()); 259 mDueTimeEdit->setTime(todo->dtDue().time());
257 mDueCheck->setChecked(true); 260 mDueCheck->setChecked(true);
258 } else { 261 } else {
259 alarmDisable(true); 262 alarmDisable(true);
260 mDueDateEdit->setEnabled(false); 263 mDueDateEdit->setEnabled(false);
261 mDueTimeEdit->setEnabled(false); 264 mDueTimeEdit->setEnabled(false);
262 mDueDateEdit->setDate(QDate::currentDate()); 265 mDueDateEdit->setDate(QDate::currentDate());
263 mDueTimeEdit->setTime(QTime::currentTime()); 266 mDueTimeEdit->setTime(QTime::currentTime());
264 mDueCheck->setChecked(false); 267 mDueCheck->setChecked(false);
265 } 268 }
266 269
267 if (todo->hasStartDate()) { 270 if (todo->hasStartDate()) {
268 mStartDateEdit->setDate(todo->dtStart().date()); 271 mStartDateEdit->setDate(todo->dtStart().date());
269 mStartTimeEdit->setTime(todo->dtStart().time()); 272 mStartTimeEdit->setTime(todo->dtStart().time());
270 mStartCheck->setChecked(true); 273 mStartCheck->setChecked(true);
271 } else { 274 } else {
272 mStartDateEdit->setEnabled(false); 275 mStartDateEdit->setEnabled(false);
273 mStartTimeEdit->setEnabled(false); 276 mStartTimeEdit->setEnabled(false);
274 mStartDateEdit->setDate(QDate::currentDate()); 277 mStartDateEdit->setDate(QDate::currentDate());
275 mStartTimeEdit->setTime(QTime::currentTime()); 278 mStartTimeEdit->setTime(QTime::currentTime());
276 mStartCheck->setChecked(false); 279 mStartCheck->setChecked(false);
277 } 280 }
278 281
279 mTimeButton->setChecked( !todo->doesFloat() ); 282 mTimeButton->setChecked( !todo->doesFloat() );
280 283
281 mCompletedCombo->setCurrentItem(todo->percentComplete() / 20); 284 mCompletedCombo->setCurrentItem(todo->percentComplete() / 20);
282 if (todo->isCompleted() && todo->hasCompletedDate()) { 285 if (todo->isCompleted() && todo->hasCompletedDate()) {
283 mCompleted = todo->completed(); 286 mCompleted = todo->completed();
284 } 287 }
285 setCompletedDate(); 288 setCompletedDate();
286 289
287 mPriorityCombo->setCurrentItem(todo->priority()-1); 290 mPriorityCombo->setCurrentItem(todo->priority()-1);
288} 291}
289 292
290void KOEditorGeneralTodo::writeTodo(Todo *todo) 293void KOEditorGeneralTodo::writeTodo(Todo *todo)
291{ 294{
292 KOEditorGeneral::writeIncidence(todo); 295 KOEditorGeneral::writeIncidence(todo);
293 296
294 // temp. until something better happens. 297 // temp. until something better happens.
295 QString tmpStr; 298 QString tmpStr;
296 299
297 todo->setHasDueDate(mDueCheck->isChecked()); 300 todo->setHasDueDate(mDueCheck->isChecked());
298 todo->setHasStartDate(mStartCheck->isChecked()); 301 todo->setHasStartDate(mStartCheck->isChecked());
299 302
300 QDate tmpDate; 303 QDate tmpDate;
301 QTime tmpTime; 304 QTime tmpTime;
302 QDateTime tmpDT; 305 QDateTime tmpDT;
303 if ( mTimeButton->isChecked() ) { 306 if ( mTimeButton->isChecked() ) {
304 todo->setFloats(false); 307 todo->setFloats(false);
305 308
306 // set due date/time 309 // set due date/time
307 tmpDate = mDueDateEdit->date(); 310 tmpDate = mDueDateEdit->date();
308 tmpTime = mDueTimeEdit->getTime(); 311 tmpTime = mDueTimeEdit->getTime();
309 tmpDT.setDate(tmpDate); 312 tmpDT.setDate(tmpDate);
310 tmpDT.setTime(tmpTime); 313 tmpDT.setTime(tmpTime);
311 todo->setDtDue(tmpDT); 314 todo->setDtDue(tmpDT);
312 315
313 // set start date/time 316 // set start date/time
314 tmpDate = mStartDateEdit->date(); 317 tmpDate = mStartDateEdit->date();
315 tmpTime = mStartTimeEdit->getTime(); 318 tmpTime = mStartTimeEdit->getTime();
316 tmpDT.setDate(tmpDate); 319 tmpDT.setDate(tmpDate);
317 tmpDT.setTime(tmpTime); 320 tmpDT.setTime(tmpTime);
318 todo->setDtStart(tmpDT); 321 todo->setDtStart(tmpDT);
319 } else { 322 } else {
320 todo->setFloats(true); 323 todo->setFloats(true);
321 324
322 // need to change this. 325 // need to change this.
323 tmpDate = mDueDateEdit->date(); 326 tmpDate = mDueDateEdit->date();
324 tmpTime.setHMS(0,0,0); 327 tmpTime.setHMS(0,0,0);
325 tmpDT.setDate(tmpDate); 328 tmpDT.setDate(tmpDate);
326 tmpDT.setTime(tmpTime); 329 tmpDT.setTime(tmpTime);
327 todo->setDtDue(tmpDT); 330 todo->setDtDue(tmpDT);
328 331
329 tmpDate = mStartDateEdit->date(); 332 tmpDate = mStartDateEdit->date();
330 tmpTime.setHMS(0,0,0); 333 tmpTime.setHMS(0,0,0);
331 tmpDT.setDate(tmpDate); 334 tmpDT.setDate(tmpDate);
332 tmpDT.setTime(tmpTime); 335 tmpDT.setTime(tmpTime);
333 todo->setDtStart(tmpDT); 336 todo->setDtStart(tmpDT);
334 } 337 }
335 todo->setPriority(mPriorityCombo->currentItem()+1); 338 todo->setPriority(mPriorityCombo->currentItem()+1);
336 339
337 // set completion state 340 // set completion state
338 if ( mCompletedCombo->currentItem() == 5 ) { 341 if ( mCompletedCombo->currentItem() == 5 ) {
339 QDateTime comp ( mCompleteDateEdit->date(), mCompleteTimeEdit->getTime() ); 342 QDateTime comp ( mCompleteDateEdit->date(), mCompleteTimeEdit->getTime() );
340 if ( comp.isValid () ) { 343 if ( comp.isValid () ) {
341 todo->setPercentComplete(0); 344 todo->setPercentComplete(0);
342 todo->setPercentComplete(100); 345 todo->setPercentComplete(100);
343 todo->setCompleted(comp); 346 todo->setCompleted(comp);
344 } else { 347 } else {
345 todo->setPercentComplete( 100 ); 348 todo->setPercentComplete( 100 );
346 if ( mCompleted.isValid() ) 349 if ( mCompleted.isValid() )
347 todo->setCompleted(mCompleted); 350 todo->setCompleted(mCompleted);
348 } 351 }
349 } else { 352 } else {
350 todo->setPercentComplete(mCompletedCombo->currentItem() * 20); 353 todo->setPercentComplete(mCompletedCombo->currentItem() * 20);
351 } 354 }
352 355
353 mSummaryEdit->save(KOLocationBox::SUMMARYTODO); 356 mSummaryEdit->save(KOLocationBox::SUMMARYTODO);
354} 357}
355 358
356void KOEditorGeneralTodo::enableDueEdit(bool enable) 359void KOEditorGeneralTodo::enableDueEdit(bool enable)
357{ 360{
358 mDueDateEdit->setEnabled( enable ); 361 mDueDateEdit->setEnabled( enable );
359 362
360 if(mDueCheck->isChecked() || mStartCheck->isChecked()) { 363 if(mDueCheck->isChecked() || mStartCheck->isChecked()) {
361 mTimeButton->setEnabled(true); 364 mTimeButton->setEnabled(true);
362 } 365 }
363 else { 366 else {
364 mTimeButton->setEnabled(false); 367 mTimeButton->setEnabled(false);
365 mTimeButton->setChecked(false); 368 mTimeButton->setChecked(false);
366 } 369 }
367 370
368 if (enable) { 371 if (enable) {
369 mDueTimeEdit->setEnabled( mTimeButton->isChecked() ); 372 mDueTimeEdit->setEnabled( mTimeButton->isChecked() );
370 } else { 373 } else {
371 mDueTimeEdit->setEnabled( false ); 374 mDueTimeEdit->setEnabled( false );
372 } 375 }
373 emit datesChecked(); 376 emit datesChecked();
374} 377}
375 378
376void KOEditorGeneralTodo::enableStartEdit( bool enable ) 379void KOEditorGeneralTodo::enableStartEdit( bool enable )
377{ 380{
378 mStartDateEdit->setEnabled( enable ); 381 mStartDateEdit->setEnabled( enable );
379 382
380 if(mDueCheck->isChecked() || mStartCheck->isChecked()) { 383 if(mDueCheck->isChecked() || mStartCheck->isChecked()) {
381 mTimeButton->setEnabled(true); 384 mTimeButton->setEnabled(true);
382 } 385 }
383 else { 386 else {
384 mTimeButton->setEnabled(false); 387 mTimeButton->setEnabled(false);
385 mTimeButton->setChecked(false); 388 mTimeButton->setChecked(false);
386 } 389 }
387 390
388 if (enable) { 391 if (enable) {
389 mStartTimeEdit->setEnabled( mTimeButton->isChecked() ); 392 mStartTimeEdit->setEnabled( mTimeButton->isChecked() );
390 } else { 393 } else {
391 mStartTimeEdit->setEnabled( false ); 394 mStartTimeEdit->setEnabled( false );
392 } 395 }
393 emit datesChecked(); 396 emit datesChecked();
394} 397}
395 398
396void KOEditorGeneralTodo::enableTimeEdits(bool enable) 399void KOEditorGeneralTodo::enableTimeEdits(bool enable)
397{ 400{
398 if(mStartCheck->isChecked()) { 401 if(mStartCheck->isChecked()) {
399 mStartTimeEdit->setEnabled( enable ); 402 mStartTimeEdit->setEnabled( enable );
400 } 403 }
401 if(mDueCheck->isChecked()) { 404 if(mDueCheck->isChecked()) {
402 mDueTimeEdit->setEnabled( enable ); 405 mDueTimeEdit->setEnabled( enable );
403 } 406 }
404} 407}
405 408
406void KOEditorGeneralTodo::showAlarm() 409void KOEditorGeneralTodo::showAlarm()
407{ 410{
408 if ( mDueCheck->isChecked() ) { 411 if ( mDueCheck->isChecked() ) {
409 alarmDisable(false); 412 alarmDisable(false);
410 } 413 }
411 else { 414 else {
412 alarmDisable(true); 415 alarmDisable(true);
413 } 416 }
414} 417}
415 418
416bool KOEditorGeneralTodo::validateInput() 419bool KOEditorGeneralTodo::validateInput()
417{ 420{
418 if (mDueCheck->isChecked()) { 421 if (mDueCheck->isChecked()) {
419 if (!mDueDateEdit->inputIsValid()) { 422 if (!mDueDateEdit->inputIsValid()) {
420 KMessageBox::sorry(0,i18n("Please specify a valid due date.")); 423 KMessageBox::sorry(0,i18n("Please specify a valid due date."));
421 return false; 424 return false;
422 } 425 }
423 } 426 }
424 427
425 if (mStartCheck->isChecked()) { 428 if (mStartCheck->isChecked()) {
426 if (!mStartDateEdit->inputIsValid()) { 429 if (!mStartDateEdit->inputIsValid()) {
427 KMessageBox::sorry(0,i18n("Please specify a valid start date.")); 430 KMessageBox::sorry(0,i18n("Please specify a valid start date."));
428 return false; 431 return false;
429 } 432 }
430 } 433 }
431 434
432 if (mStartCheck->isChecked() && mDueCheck->isChecked()) { 435 if (mStartCheck->isChecked() && mDueCheck->isChecked()) {
433 QDateTime startDate; 436 QDateTime startDate;
434 QDateTime dueDate; 437 QDateTime dueDate;
435 startDate.setDate(mStartDateEdit->date()); 438 startDate.setDate(mStartDateEdit->date());
436 dueDate.setDate(mDueDateEdit->date()); 439 dueDate.setDate(mDueDateEdit->date());
437 if (mTimeButton->isChecked()) { 440 if (mTimeButton->isChecked()) {
438 startDate.setTime(mStartTimeEdit->getTime()); 441 startDate.setTime(mStartTimeEdit->getTime());
439 dueDate.setTime(mDueTimeEdit->getTime()); 442 dueDate.setTime(mDueTimeEdit->getTime());
440 } 443 }
441 if (startDate > dueDate) { 444 if (startDate > dueDate) {
442 KMessageBox::sorry(0, 445 KMessageBox::sorry(0,
443 i18n("The start date cannot be after the due date.")); 446 i18n("The start date cannot be after the due date."));
444 return false; 447 return false;
445 } 448 }
446 } 449 }
447 450
448 return KOEditorGeneral::validateInput(); 451 return KOEditorGeneral::validateInput();
449} 452}
450 453
451void KOEditorGeneralTodo::completedChanged(int index) 454void KOEditorGeneralTodo::completedChanged(int index)
452{ 455{
453 if (index == 5) { 456 if (index == 5) {
454 //get rid of milli sec 457 //get rid of milli sec
455 mCompleted = QDateTime::currentDateTime(); 458 mCompleted = QDateTime::currentDateTime();
456 } 459 }
457 setCompletedDate(); 460 setCompletedDate();
458} 461}
459 462
460void KOEditorGeneralTodo::setCompletedDate() 463void KOEditorGeneralTodo::setCompletedDate()
461{ 464{
462 if (mCompletedCombo->currentItem() == 5 && mCompleted.isValid()) { 465 if (mCompletedCombo->currentItem() == 5 && mCompleted.isValid()) {
463 if ( QApplication::desktop()->width() < 480 ) { 466 if ( QApplication::desktop()->width() < 480 ) {
464 mCompletedLabel->setText(i18n(" on")); 467 mCompletedLabel->setText(i18n(" on"));
465 } 468 }
466 else 469 else
467 mCompletedLabel->setText(i18n(" completed on ")); 470 mCompletedLabel->setText(i18n(" completed on "));
468 mCompleteDateEdit->show(); 471 mCompleteDateEdit->show();
469 mCompleteTimeEdit->show(); 472 mCompleteTimeEdit->show();
470 mCompleteTimeEdit->setTime( mCompleted.time() ); 473 mCompleteTimeEdit->setTime( mCompleted.time() );
471 mCompleteDateEdit->setDate( mCompleted.date() ); 474 mCompleteDateEdit->setDate( mCompleted.date() );
472 } else { 475 } else {
473 mCompletedLabel->setText(i18n(" completed")); 476 mCompletedLabel->setText(i18n(" completed"));
474 mCompleteDateEdit->hide(); 477 mCompleteDateEdit->hide();
475 mCompleteTimeEdit->hide(); 478 mCompleteTimeEdit->hide();
476 } 479 }
477} 480}
478 481
479void KOEditorGeneralTodo::modified (Todo* todo, int modification) 482void KOEditorGeneralTodo::modified (Todo* todo, int modification)
480{ 483{
481 switch (modification) { 484 switch (modification) {
482 case KOGlobals::PRIORITY_MODIFIED: 485 case KOGlobals::PRIORITY_MODIFIED:
483 mPriorityCombo->setCurrentItem(todo->priority()-1); 486 mPriorityCombo->setCurrentItem(todo->priority()-1);
484 break; 487 break;
485 case KOGlobals::COMPLETION_MODIFIED: 488 case KOGlobals::COMPLETION_MODIFIED:
486 mCompletedCombo->setCurrentItem(todo->percentComplete() / 20); 489 mCompletedCombo->setCurrentItem(todo->percentComplete() / 20);
487 if (todo->isCompleted() && todo->hasCompletedDate()) { 490 if (todo->isCompleted() && todo->hasCompletedDate()) {
488 mCompleted = todo->completed(); 491 mCompleted = todo->completed();
489 } 492 }
490 setCompletedDate(); 493 setCompletedDate();
491 break; 494 break;
492 case KOGlobals::CATEGORY_MODIFIED: 495 case KOGlobals::CATEGORY_MODIFIED:
493 setCategories (todo->categoriesStr ()); 496 setCategories (todo->categoriesStr ());
494 break; 497 break;
495 case KOGlobals::UNKNOWN_MODIFIED: // fall through 498 case KOGlobals::UNKNOWN_MODIFIED: // fall through
496 default: 499 default:
497 readTodo( todo ); 500 readTodo( todo );
498 break; 501 break;
499 } 502 }
500} 503}