summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--bin/kdepim/WhatsNew.txt1
-rw-r--r--korganizer/koeditorgeneraltodo.cpp12
-rw-r--r--libkcal/todo.cpp1
3 files changed, 7 insertions, 7 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt
index 18e94a7..15caf9e 100644
--- a/bin/kdepim/WhatsNew.txt
+++ b/bin/kdepim/WhatsNew.txt
@@ -1,28 +1,29 @@
1Info about the changes in new versions of KDE-Pim/Pi 1Info about the changes in new versions of KDE-Pim/Pi
2 2
3********** VERSION 2.2.1 ************ 3********** VERSION 2.2.1 ************
4 4
5KO/Pi: 5KO/Pi:
6Fixed a problem displaying very long allday events in agenda view in single day mode. 6Fixed a problem displaying very long allday events in agenda view in single day mode.
7Fixed a problem with the default settings for new todos.
7 8
8KA/Pi: 9KA/Pi:
9Added a config option to turn on asking before a contact is deleted. 10Added a config option to turn on asking before a contact is deleted.
10Fixed a problem with the default view and view selection at startup. 11Fixed a problem with the default view and view selection at startup.
11 12
12********** VERSION 2.2.0 ************ 13********** VERSION 2.2.0 ************
13 14
14New stable release! 15New stable release!
15Fixed some minor usability problems. 16Fixed some minor usability problems.
16Added writing of next alarm to a file for usage on pdaXrom. 17Added writing of next alarm to a file for usage on pdaXrom.
17 18
18 19
19************************************* 20*************************************
20 21
21You can find the complete changelog 22You can find the complete changelog
22from version 1.7.7 to 2.2.0 23from version 1.7.7 to 2.2.0
23in the source package or on 24in the source package or on
24 25
25http://www.pi-sync.net/html/changelog.html 26http://www.pi-sync.net/html/changelog.html
26 27
27 28
28 29
diff --git a/korganizer/koeditorgeneraltodo.cpp b/korganizer/koeditorgeneraltodo.cpp
index 10d9a8c..d32d5a5 100644
--- a/korganizer/koeditorgeneraltodo.cpp
+++ b/korganizer/koeditorgeneraltodo.cpp
@@ -163,169 +163,167 @@ void KOEditorGeneralTodo::initCompletion(QWidget *parent, QBoxLayout *topLayout)
163 mCompletedCombo->setSizePolicy( QSizePolicy( QSizePolicy::Preferred,QSizePolicy::Preferred) ); 163 mCompletedCombo->setSizePolicy( QSizePolicy( QSizePolicy::Preferred,QSizePolicy::Preferred) );
164 mCompletedLabel->setSizePolicy( QSizePolicy( QSizePolicy::Expanding,QSizePolicy::Preferred) ); 164 mCompletedLabel->setSizePolicy( QSizePolicy( QSizePolicy::Expanding,QSizePolicy::Preferred) );
165 connect(mCompleteDateEdit,SIGNAL(setTimeTo(QTime)),mCompleteTimeEdit,SLOT(setTime(QTime))); 165 connect(mCompleteDateEdit,SIGNAL(setTimeTo(QTime)),mCompleteTimeEdit,SLOT(setTime(QTime)));
166 166
167 if ( QApplication::desktop()->width() <= 480 ) { 167 if ( QApplication::desktop()->width() <= 480 ) {
168 if ( QApplication::desktop()->width() < 320 ) 168 if ( QApplication::desktop()->width() < 320 )
169 mCompleteDateEdit->setMaximumWidth( 85 ); 169 mCompleteDateEdit->setMaximumWidth( 85 );
170 else 170 else
171 mCompleteDateEdit->setMaximumWidth( 140 ); 171 mCompleteDateEdit->setMaximumWidth( 140 );
172 topLayout->setSpacing( 0 ); 172 topLayout->setSpacing( 0 );
173 } 173 }
174} 174}
175 175
176void KOEditorGeneralTodo::initPriority(QWidget *parent, QBoxLayout *topLayout) 176void KOEditorGeneralTodo::initPriority(QWidget *parent, QBoxLayout *topLayout)
177{ 177{
178 178
179 QHBox* h = new QHBox ( parent ); 179 QHBox* h = new QHBox ( parent );
180 topLayout->addWidget( h ); 180 topLayout->addWidget( h );
181 QLabel *priorityLabel = new QLabel(i18n("Priority:"), h); 181 QLabel *priorityLabel = new QLabel(i18n("Priority:"), h);
182 // topLayout->addWidget(priorityLabel); 182 // topLayout->addWidget(priorityLabel);
183 mPriorityCombo = new QComboBox( h ); 183 mPriorityCombo = new QComboBox( h );
184 mPriorityCombo->insertItem(i18n("1 (high)")); 184 mPriorityCombo->insertItem(i18n("1 (high)"));
185 mPriorityCombo->insertItem(i18n("2")); 185 mPriorityCombo->insertItem(i18n("2"));
186 mPriorityCombo->insertItem(i18n("3")); 186 mPriorityCombo->insertItem(i18n("3"));
187 mPriorityCombo->insertItem(i18n("4")); 187 mPriorityCombo->insertItem(i18n("4"));
188 mPriorityCombo->insertItem(i18n("5 (low)")); 188 mPriorityCombo->insertItem(i18n("5 (low)"));
189 //topLayout->addWidget(mPriorityCombo); 189 //topLayout->addWidget(mPriorityCombo);
190} 190}
191 191
192void KOEditorGeneralTodo::initStatus(QWidget *parent,QBoxLayout *topLayout) 192void KOEditorGeneralTodo::initStatus(QWidget *parent,QBoxLayout *topLayout)
193{ 193{
194 QBoxLayout *statusLayout = new QHBoxLayout(topLayout); 194 QBoxLayout *statusLayout = new QHBoxLayout(topLayout);
195 195
196 initCompletion( parent, statusLayout ); 196 initCompletion( parent, statusLayout );
197 197
198 statusLayout->addStretch( 1 ); 198 statusLayout->addStretch( 1 );
199 199
200 initPriority( parent, statusLayout ); 200 initPriority( parent, statusLayout );
201} 201}
202 202
203void KOEditorGeneralTodo::setDefaults(QDateTime due,bool allDay) 203void KOEditorGeneralTodo::setDefaults(QDateTime due,bool allDay)
204{ 204{
205 205
206 mSummaryEdit->load(KOLocationBox::SUMMARYTODO); 206 mSummaryEdit->load(KOLocationBox::SUMMARYTODO);
207 mLocationEdit->load(KOLocationBox::LOCATION); 207 mLocationEdit->load(KOLocationBox::LOCATION);
208 KOEditorGeneral::setDefaults(allDay); 208 KOEditorGeneral::setDefaults(allDay);
209 209
210 mTimeButton->setChecked( !allDay ); 210 mTimeButton->setChecked( !allDay );
211 if(mTimeButton->isChecked()) { 211 mTimeButton->setEnabled( !allDay );
212 mTimeButton->setEnabled(true);
213 }
214 else {
215 mTimeButton->setEnabled(false);
216 }
217 212
218 enableTimeEdits( !allDay ); 213 enableTimeEdits( !allDay );
219 if ( due.isValid() ) { 214 if ( due.isValid() ) {
220 mDueCheck->setChecked(true); 215 mDueCheck->setChecked(true);
221 enableDueEdit(true); 216 enableDueEdit(true);
222 alarmDisable(false); 217 alarmDisable(false);
223 } else { 218 } else {
224 mDueCheck->setChecked(false); 219 mDueCheck->setChecked(false);
225 enableDueEdit(false); 220 enableDueEdit(false);
226 due = QDateTime::currentDateTime().addDays(7); 221 due = QDateTime::currentDateTime().addDays(7);
227 alarmDisable(true); 222 alarmDisable(true);
228 } 223 }
229 224
230 225
231 mStartCheck->setChecked(false); 226 mStartCheck->setChecked(false);
232 enableStartEdit(false); 227 enableStartEdit(false);
233 228
234 mDueDateEdit->setDate(due.date()); 229 mDueDateEdit->setDate(due.date());
235 mDueTimeEdit->setTime(due.time()); 230 mDueTimeEdit->setTime(due.time());
236 due = due.addDays(-7); 231 due = due.addDays(-7);
237 mStartDateEdit->setDate(due.date()); 232 mStartDateEdit->setDate(due.date());
238 mStartTimeEdit->setTime(due.time()); 233 mStartTimeEdit->setTime(due.time());
239 234
240 mPriorityCombo->setCurrentItem(2); 235 mPriorityCombo->setCurrentItem(2);
241 mCompletedLabel->setText(i18n(" completed"));; 236 mCompletedLabel->setText(i18n(" completed"));;
242 mCompletedCombo->setCurrentItem(0); 237 mCompletedCombo->setCurrentItem(0);
243 mCompleteDateEdit->hide(); 238 mCompleteDateEdit->hide();
244 mCompleteTimeEdit->hide(); 239 mCompleteTimeEdit->hide();
245} 240}
246 241
247void KOEditorGeneralTodo::readTodo(Todo *todo) 242void KOEditorGeneralTodo::readTodo(Todo *todo)
248{ 243{
249 244
250 mSummaryEdit->load(KOLocationBox::SUMMARYTODO); 245 mSummaryEdit->load(KOLocationBox::SUMMARYTODO);
251 mLocationEdit->load(KOLocationBox::LOCATION); 246 mLocationEdit->load(KOLocationBox::LOCATION);
252 KOEditorGeneral::readIncidence(todo); 247 KOEditorGeneral::readIncidence(todo);
253 248
254 QDateTime dueDT; 249 QDateTime dueDT;
250 mTimeButton->setChecked( !todo->doesFloat() );
251 mTimeButton->setEnabled( !todo->doesFloat() );
255 252
256 if (todo->hasDueDate()) { 253 if (todo->hasDueDate()) {
257 enableAlarmEdit(true); 254 enableAlarmEdit(true);
258 dueDT = todo->dtDue(); 255 dueDT = todo->dtDue();
259 mDueDateEdit->setDate(todo->dtDue().date()); 256 mDueDateEdit->setDate(todo->dtDue().date());
260 mDueTimeEdit->setTime(todo->dtDue().time()); 257 mDueTimeEdit->setTime(todo->dtDue().time());
261 mDueCheck->setChecked(true); 258 mDueCheck->setChecked(true);
259 mTimeButton->setEnabled( true );
262 } else { 260 } else {
263 alarmDisable(true); 261 alarmDisable(true);
264 mDueDateEdit->setEnabled(false); 262 mDueDateEdit->setEnabled(false);
265 mDueTimeEdit->setEnabled(false); 263 mDueTimeEdit->setEnabled(false);
266 mDueDateEdit->setDate(QDate::currentDate()); 264 mDueDateEdit->setDate(QDate::currentDate());
267 mDueTimeEdit->setTime(QTime::currentTime()); 265 mDueTimeEdit->setTime(QTime::currentTime());
268 mDueCheck->setChecked(false); 266 mDueCheck->setChecked(false);
269 } 267 }
270 268
271 if (todo->hasStartDate()) { 269 if (todo->hasStartDate()) {
272 mStartDateEdit->setDate(todo->dtStart().date()); 270 mStartDateEdit->setDate(todo->dtStart().date());
273 mStartTimeEdit->setTime(todo->dtStart().time()); 271 mStartTimeEdit->setTime(todo->dtStart().time());
274 mStartCheck->setChecked(true); 272 mStartCheck->setChecked(true);
273 mTimeButton->setEnabled( true );
275 } else { 274 } else {
276 mStartDateEdit->setEnabled(false); 275 mStartDateEdit->setEnabled(false);
277 mStartTimeEdit->setEnabled(false); 276 mStartTimeEdit->setEnabled(false);
278 mStartDateEdit->setDate(QDate::currentDate()); 277 mStartDateEdit->setDate(QDate::currentDate());
279 mStartTimeEdit->setTime(QTime::currentTime()); 278 mStartTimeEdit->setTime(QTime::currentTime());
280 mStartCheck->setChecked(false); 279 mStartCheck->setChecked(false);
281 } 280 }
282 281
283 mTimeButton->setChecked( !todo->doesFloat() );
284 282
285 mCompletedCombo->setCurrentItem(todo->percentComplete() / 20); 283 mCompletedCombo->setCurrentItem(todo->percentComplete() / 20);
286 if (todo->isCompleted() && todo->hasCompletedDate()) { 284 if (todo->isCompleted() && todo->hasCompletedDate()) {
287 mCompleted = todo->completed(); 285 mCompleted = todo->completed();
288 } 286 }
289 setCompletedDate(); 287 setCompletedDate();
290 288
291 mPriorityCombo->setCurrentItem(todo->priority()-1); 289 mPriorityCombo->setCurrentItem(todo->priority()-1);
292} 290}
293 291
294void KOEditorGeneralTodo::writeTodo(Todo *todo) 292void KOEditorGeneralTodo::writeTodo(Todo *todo)
295{ 293{
296 KOEditorGeneral::writeIncidence(todo); 294 KOEditorGeneral::writeIncidence(todo);
297 295
298 // temp. until something better happens. 296 // temp. until something better happens.
299 QString tmpStr; 297 QString tmpStr;
300 298
301 todo->setHasDueDate(mDueCheck->isChecked()); 299 todo->setHasDueDate(mDueCheck->isChecked());
302 todo->setHasStartDate(mStartCheck->isChecked()); 300 todo->setHasStartDate(mStartCheck->isChecked());
303 301
304 QDate tmpDate; 302 QDate tmpDate;
305 QTime tmpTime; 303 QTime tmpTime;
306 QDateTime tmpDT; 304 QDateTime tmpDT;
307 if ( mTimeButton->isChecked() ) { 305 if ( mTimeButton->isChecked() ) {
308 todo->setFloats(false); 306 todo->setFloats(false);
309 307
310 // set due date/time 308 // set due date/time
311 tmpDate = mDueDateEdit->date(); 309 tmpDate = mDueDateEdit->date();
312 tmpTime = mDueTimeEdit->getTime(); 310 tmpTime = mDueTimeEdit->getTime();
313 tmpDT.setDate(tmpDate); 311 tmpDT.setDate(tmpDate);
314 tmpDT.setTime(tmpTime); 312 tmpDT.setTime(tmpTime);
315 todo->setDtDue(tmpDT); 313 todo->setDtDue(tmpDT);
316 314
317 // set start date/time 315 // set start date/time
318 tmpDate = mStartDateEdit->date(); 316 tmpDate = mStartDateEdit->date();
319 tmpTime = mStartTimeEdit->getTime(); 317 tmpTime = mStartTimeEdit->getTime();
320 tmpDT.setDate(tmpDate); 318 tmpDT.setDate(tmpDate);
321 tmpDT.setTime(tmpTime); 319 tmpDT.setTime(tmpTime);
322 todo->setDtStart(tmpDT); 320 todo->setDtStart(tmpDT);
323 } else { 321 } else {
324 todo->setFloats(true); 322 todo->setFloats(true);
325 323
326 // need to change this. 324 // need to change this.
327 tmpDate = mDueDateEdit->date(); 325 tmpDate = mDueDateEdit->date();
328 tmpTime.setHMS(0,0,0); 326 tmpTime.setHMS(0,0,0);
329 tmpDT.setDate(tmpDate); 327 tmpDT.setDate(tmpDate);
330 tmpDT.setTime(tmpTime); 328 tmpDT.setTime(tmpTime);
331 todo->setDtDue(tmpDT); 329 todo->setDtDue(tmpDT);
diff --git a/libkcal/todo.cpp b/libkcal/todo.cpp
index e4508a0..48d37d5 100644
--- a/libkcal/todo.cpp
+++ b/libkcal/todo.cpp
@@ -1,92 +1,93 @@
1/* 1/*
2 This file is part of libkcal. 2 This file is part of libkcal.
3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This library is free software; you can redistribute it and/or 5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public 6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either 7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version. 8 version 2 of the License, or (at your option) any later version.
9 9
10 This library is distributed in the hope that it will be useful, 10 This library 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 GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details. 13 Library General Public License for more details.
14 14
15 You should have received a copy of the GNU Library General Public License 15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to 16 along with this library; see the file COPYING.LIB. If not, write to
17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA. 18 Boston, MA 02111-1307, USA.
19*/ 19*/
20 20
21#include <kglobal.h> 21#include <kglobal.h>
22#include <kglobalsettings.h> 22#include <kglobalsettings.h>
23#include <klocale.h> 23#include <klocale.h>
24#include <kdebug.h> 24#include <kdebug.h>
25#include <qregexp.h> 25#include <qregexp.h>
26#include <qfileinfo.h> 26#include <qfileinfo.h>
27 27
28#include "calendarlocal.h" 28#include "calendarlocal.h"
29#include "icalformat.h" 29#include "icalformat.h"
30#include "todo.h" 30#include "todo.h"
31 31
32using namespace KCal; 32using namespace KCal;
33 33
34Todo::Todo(): QObject(), Incidence() 34Todo::Todo(): QObject(), Incidence()
35{ 35{
36// mStatus = TENTATIVE; 36// mStatus = TENTATIVE;
37 37
38 mHasDueDate = false; 38 mHasDueDate = false;
39 setHasStartDate( false ); 39 setHasStartDate( false );
40 mCompleted = getEvenTime(QDateTime::currentDateTime()); 40 mCompleted = getEvenTime(QDateTime::currentDateTime());
41 mHasCompletedDate = false; 41 mHasCompletedDate = false;
42 mPercentComplete = 0; 42 mPercentComplete = 0;
43 mRunning = false; 43 mRunning = false;
44 mRunSaveTimer = 0; 44 mRunSaveTimer = 0;
45 setFloats( true );
45} 46}
46 47
47Todo::Todo(const Todo &t) : QObject(),Incidence(t) 48Todo::Todo(const Todo &t) : QObject(),Incidence(t)
48{ 49{
49 mDtDue = t.mDtDue; 50 mDtDue = t.mDtDue;
50 mHasDueDate = t.mHasDueDate; 51 mHasDueDate = t.mHasDueDate;
51 mCompleted = t.mCompleted; 52 mCompleted = t.mCompleted;
52 mHasCompletedDate = t.mHasCompletedDate; 53 mHasCompletedDate = t.mHasCompletedDate;
53 mPercentComplete = t.mPercentComplete; 54 mPercentComplete = t.mPercentComplete;
54 mRunning = false; 55 mRunning = false;
55 mRunSaveTimer = 0; 56 mRunSaveTimer = 0;
56} 57}
57 58
58Todo::~Todo() 59Todo::~Todo()
59{ 60{
60 setRunning( false ); 61 setRunning( false );
61 //qDebug("Todo::~Todo() "); 62 //qDebug("Todo::~Todo() ");
62} 63}
63 64
64void Todo::setRunningFalse( QString s ) 65void Todo::setRunningFalse( QString s )
65{ 66{
66 if ( ! mRunning ) 67 if ( ! mRunning )
67 return; 68 return;
68 mRunning = false; 69 mRunning = false;
69 if ( mRunSaveTimer ) 70 if ( mRunSaveTimer )
70 mRunSaveTimer->stop(); 71 mRunSaveTimer->stop();
71 saveRunningInfoToFile( s ); 72 saveRunningInfoToFile( s );
72} 73}
73void Todo::stopRunning() 74void Todo::stopRunning()
74{ 75{
75 if ( !mRunning ) 76 if ( !mRunning )
76 return; 77 return;
77 if ( mRunSaveTimer ) 78 if ( mRunSaveTimer )
78 mRunSaveTimer->stop(); 79 mRunSaveTimer->stop();
79 mRunning = false; 80 mRunning = false;
80} 81}
81void Todo::setRunning( bool run ) 82void Todo::setRunning( bool run )
82{ 83{
83 if ( run == mRunning ) 84 if ( run == mRunning )
84 return; 85 return;
85 //qDebug("Todo::setRunning %d ", run); 86 //qDebug("Todo::setRunning %d ", run);
86 if ( !mRunSaveTimer ) { 87 if ( !mRunSaveTimer ) {
87 mRunSaveTimer = new QTimer ( this ); 88 mRunSaveTimer = new QTimer ( this );
88 connect ( mRunSaveTimer, SIGNAL( timeout() ), this , SLOT ( saveRunningInfoToFile() ) ); 89 connect ( mRunSaveTimer, SIGNAL( timeout() ), this , SLOT ( saveRunningInfoToFile() ) );
89 } 90 }
90 mRunning = run; 91 mRunning = run;
91 if ( mRunning ) { 92 if ( mRunning ) {
92 mRunSaveTimer->start( 1000 * 60 * 5 ); // 5 min 93 mRunSaveTimer->start( 1000 * 60 * 5 ); // 5 min