summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-02-22 22:28:12 (UTC)
committer zautrix <zautrix>2005-02-22 22:28:12 (UTC)
commit87a2f1a301beae2a8550c340348741c69f0ac1dd (patch) (unidiff)
tree5fd29a75f50da5ef37a01097c12997a18c56543d
parent688723b6cd545ad1fa390d98a74680e912578fe8 (diff)
downloadkdepimpi-87a2f1a301beae2a8550c340348741c69f0ac1dd.zip
kdepimpi-87a2f1a301beae2a8550c340348741c69f0ac1dd.tar.gz
kdepimpi-87a2f1a301beae2a8550c340348741c69f0ac1dd.tar.bz2
todo fixes
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--bin/kdepim/WhatsNew.txt5
-rw-r--r--desktop/rpm/kdepim_rpm2
-rw-r--r--korganizer/koagendaview.cpp10
-rw-r--r--korganizer/kotodoeditor.cpp25
-rw-r--r--version2
5 files changed, 12 insertions, 32 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt
index beeaf60..05c1afd 100644
--- a/bin/kdepim/WhatsNew.txt
+++ b/bin/kdepim/WhatsNew.txt
@@ -1,26 +1,31 @@
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.0.12 ************
4
5Fixed a bug in todo start/due date handling for non recurring todos with a start and due date.
6
7
3********** VERSION 2.0.11 ************ 8********** VERSION 2.0.11 ************
4 9
5Fixed some problems in pi-sync mode 10Fixed some problems in pi-sync mode
6(e.g. details of events were not synced properly) 11(e.g. details of events were not synced properly)
7 12
8********** VERSION 2.0.10 ************ 13********** VERSION 2.0.10 ************
9 14
10KO/Pi: 15KO/Pi:
11In the desktop versions the context menu in the search dialog was broken after introducing the What'sThis info for the list view. 16In the desktop versions the context menu in the search dialog was broken after introducing the What'sThis info for the list view.
12This is fixed. 17This is fixed.
13Changed the search dialog a bit to make it more user friendly. 18Changed the search dialog a bit to make it more user friendly.
14(E.g.: Removed message box about "no items found" and set key focus to search line edit after search). 19(E.g.: Removed message box about "no items found" and set key focus to search line edit after search).
15 20
16Added config option to hide the week number in KO/Pi toolbar. 21Added config option to hide the week number in KO/Pi toolbar.
17 22
18********** VERSION 2.0.9 ************ 23********** VERSION 2.0.9 ************
19 24
20Made month view icons for multiday events a bit nicer. 25Made month view icons for multiday events a bit nicer.
21Some minor fixes in KO/Pi 26Some minor fixes in KO/Pi
22(e.g. go to today did not work for new week view properly). 27(e.g. go to today did not work for new week view properly).
23 28
24 29
25********** VERSION 2.0.8 ************ 30********** VERSION 2.0.8 ************
26 31
diff --git a/desktop/rpm/kdepim_rpm b/desktop/rpm/kdepim_rpm
index b6a8491..0d4c9d6 100644
--- a/desktop/rpm/kdepim_rpm
+++ b/desktop/rpm/kdepim_rpm
@@ -1,27 +1,27 @@
1Summary: A collection of PIM programs 1Summary: A collection of PIM programs
2Name: KDE-Pim-Pi 2Name: KDE-Pim-Pi
3Version: 2.0.11 3Version: 2.0.12
4Release: SuSE_9.2 4Release: SuSE_9.2
5Copyright:GPL 5Copyright:GPL
6Group: Productivity/Pim 6Group: Productivity/Pim
7Source:http://sourceforge.net/projects/kdepimpi/ 7Source:http://sourceforge.net/projects/kdepimpi/
8URL:http://sourceforge.net/projects/kdepimpi/ 8URL:http://sourceforge.net/projects/kdepimpi/
9Packager: zautrix 9Packager: zautrix
10 10
11%description 11%description
12This package contains the platform-independent PIM programs from 12This package contains the platform-independent PIM programs from
13www.pi-sync.net, compiled for SuSE 9.2: 13www.pi-sync.net, compiled for SuSE 9.2:
14KTimeTacker/Pi 14KTimeTacker/Pi
15KPhone/Pi 15KPhone/Pi
16KAddressbook/Pi 16KAddressbook/Pi
17KOrganizer/Pi 17KOrganizer/Pi
18PasswordManager/Pi 18PasswordManager/Pi
19KOPieMail/Pi 19KOPieMail/Pi
20 20
21These applications do not need anything from the KDE-desktop 21These applications do not need anything from the KDE-desktop
22at all to run on Linux. However, there is a dependency from 22at all to run on Linux. However, there is a dependency from
23two KDE libs, because a small command line program is included 23two KDE libs, because a small command line program is included
24to make it possible to sync with the KDE-desktop applications. 24to make it possible to sync with the KDE-desktop applications.
25 25
26These applications are independent from the KDE-desktop 26These applications are independent from the KDE-desktop
27environment. That means, nothing of your existing 27environment. That means, nothing of your existing
diff --git a/korganizer/koagendaview.cpp b/korganizer/koagendaview.cpp
index 4ff6899..db66413 100644
--- a/korganizer/koagendaview.cpp
+++ b/korganizer/koagendaview.cpp
@@ -980,58 +980,52 @@ void KOAgendaView::updateEventDates(KOAgendaItem *item, int type)
980 } 980 }
981 } 981 }
982 } else { 982 } else {
983 // todo 983 // todo
984 if (item->lastMultiItem()) { 984 if (item->lastMultiItem()) {
985 endDt.setTime(mAgenda->gyToTime(item->lastMultiItem()->cellYBottom()+1)); 985 endDt.setTime(mAgenda->gyToTime(item->lastMultiItem()->cellYBottom()+1));
986 endDt.setDate(startDate. 986 endDt.setDate(startDate.
987 addDays(item->lastMultiItem()->cellX() - item->cellX())); 987 addDays(item->lastMultiItem()->cellX() - item->cellX()));
988 } else { 988 } else {
989 //qDebug("tem->cellYBottom() %d",item->cellYBottom() ); 989 //qDebug("tem->cellYBottom() %d",item->cellYBottom() );
990 if ( item->cellYBottom() > 0 ) 990 if ( item->cellYBottom() > 0 )
991 endDt.setTime(mAgenda->gyToTime(item->cellYBottom()+1)); 991 endDt.setTime(mAgenda->gyToTime(item->cellYBottom()+1));
992 else 992 else
993 endDt.setTime((static_cast<Todo*>(item->incidence()))->dtDue().time()); 993 endDt.setTime((static_cast<Todo*>(item->incidence()))->dtDue().time());
994 endDt.setDate(startDate); 994 endDt.setDate(startDate);
995 } 995 }
996 } 996 }
997 } 997 }
998 if ( item->incidence()->type() == "Event" ) { 998 if ( item->incidence()->type() == "Event" ) {
999 item->incidence()->setDtStart(startDt); 999 item->incidence()->setDtStart(startDt);
1000 (static_cast<Event*>(item->incidence()))->setDtEnd(endDt); 1000 (static_cast<Event*>(item->incidence()))->setDtEnd(endDt);
1001 } else if ( item->incidence()->type() == "Todo" ) { 1001 } else if ( item->incidence()->type() == "Todo" ) {
1002 Todo* to = static_cast<Todo*>(item->incidence()); 1002 Todo* to = static_cast<Todo*>(item->incidence());
1003 1003
1004 int len = 0;
1005 if ( to->hasStartDate() && to->hasDueDate() )
1006 len = to->dtStart().secsTo( to->dtDue());
1007 to->setDtDue(endDt); 1004 to->setDtDue(endDt);
1008 if ( to->hasStartDate() ) { 1005 if ( to->hasStartDate() ) {
1009 if ( len>0 ) 1006 if (to->dtStart() >= to->dtDue() )
1010 to->setDtStart(to->dtDue().addSecs( -len )); 1007 to->setDtStart(to->dtDue().addDays( -2 ));
1011 else
1012 if (to->dtStart() > to->dtDue() )
1013 to->setDtStart(to->dtDue().addDays( -3 ));
1014 } 1008 }
1015 1009
1016 } 1010 }
1017 //qDebug("KOAgendaView::updateEventDates stsart %s end %s ", startDt.toString().latin1(), endDt.toString().latin1() ); 1011 //qDebug("KOAgendaView::updateEventDates stsart %s end %s ", startDt.toString().latin1(), endDt.toString().latin1() );
1018 item->incidence()->setRevision(item->incidence()->revision()+1); 1012 item->incidence()->setRevision(item->incidence()->revision()+1);
1019 item->setItemDate(startDt.date()); 1013 item->setItemDate(startDt.date());
1020 //item->updateItem(); 1014 //item->updateItem();
1021 if ( item->incidence()->type() == "Todo" ) { 1015 if ( item->incidence()->type() == "Todo" ) {
1022 emit todoMoved((Todo*)item->incidence(), KOGlobals::EVENTEDITED ); 1016 emit todoMoved((Todo*)item->incidence(), KOGlobals::EVENTEDITED );
1023 1017
1024 } 1018 }
1025 else 1019 else
1026 emit incidenceChanged(item->incidence(), KOGlobals::EVENTEDITED); 1020 emit incidenceChanged(item->incidence(), KOGlobals::EVENTEDITED);
1027 item->updateItem(); 1021 item->updateItem();
1028} 1022}
1029 1023
1030void KOAgendaView::showDates( const QDate &start, const QDate &end ) 1024void KOAgendaView::showDates( const QDate &start, const QDate &end )
1031{ 1025{
1032 // kdDebug() << "KOAgendaView::selectDates" << endl; 1026 // kdDebug() << "KOAgendaView::selectDates" << endl;
1033 1027
1034 mSelectedDates.clear(); 1028 mSelectedDates.clear();
1035 // qDebug("KOAgendaView::showDates "); 1029 // qDebug("KOAgendaView::showDates ");
1036 QDate d = start; 1030 QDate d = start;
1037 while (d <= end) { 1031 while (d <= end) {
diff --git a/korganizer/kotodoeditor.cpp b/korganizer/kotodoeditor.cpp
index f9f037a..51e2524 100644
--- a/korganizer/kotodoeditor.cpp
+++ b/korganizer/kotodoeditor.cpp
@@ -331,77 +331,58 @@ void KOTodoEditor::checkRecurrence()
331 } 331 }
332} 332}
333void KOTodoEditor::readTodo(Todo *todo) 333void KOTodoEditor::readTodo(Todo *todo)
334{ 334{
335 mGeneral->readTodo(todo); 335 mGeneral->readTodo(todo);
336 mDetails->readEvent(todo); 336 mDetails->readEvent(todo);
337 mRelatedTodo = 0;//todo->relatedTo(); 337 mRelatedTodo = 0;//todo->relatedTo();
338 // categories 338 // categories
339 // mCategoryDialog->setSelected(todo->categories()); 339 // mCategoryDialog->setSelected(todo->categories());
340 340
341 // We should handle read-only events here. 341 // We should handle read-only events here.
342} 342}
343 343
344void KOTodoEditor::writeTodo(Todo *event) 344void KOTodoEditor::writeTodo(Todo *event)
345{ 345{
346 mGeneral->writeTodo(event); 346 mGeneral->writeTodo(event);
347 mDetails->writeEvent(event); 347 mDetails->writeEvent(event);
348 348
349 // set related event, i.e. parent to-do in this case. 349 // set related event, i.e. parent to-do in this case.
350 if (mRelatedTodo) { 350 if (mRelatedTodo) {
351 event->setRelatedTo(mRelatedTodo); 351 event->setRelatedTo(mRelatedTodo);
352 } 352 }
353 if ( mGeneral->mDueCheck->isChecked() && mGeneral->mStartCheck->isChecked()) { 353 if ( mGeneral->mDueCheck->isChecked() && mGeneral->mStartCheck->isChecked()) {
354 mRecurrence->writeEvent(event); 354 mRecurrence->writeEvent(event);
355 if ( event->doesRecur() ) {
355 event->setRecurrenceID( event->dtStart().addSecs(-1) ); 356 event->setRecurrenceID( event->dtStart().addSecs(-1) );
356 event->setRecurDates(); 357 event->setRecurDates();
357#if 0
358 bool ok;
359 QDateTime next = event->getNextOccurence( event->dtStart().addSecs(-1), &ok );
360 if ( ok ) {
361 QDateTime from,to;
362 bool time = mGeneral->mTimeButton->isChecked();
363 if ( time ) {
364 to = QDateTime( mGeneral->mDueDateEdit->date(), mGeneral->mDueTimeEdit->getTime() ) ;
365 from = QDateTime( mGeneral->mStartDateEdit->date(),mGeneral->mStartTimeEdit->getTime( )) ;
366 } else { 358 } else {
367 to = QDateTime( mGeneral->mDueDateEdit->date(), QTime( 0,0,0) ) ; 359 event->setHasRecurrenceID( false );
368 from = QDateTime( mGeneral->mStartDateEdit->date(),QTime( 0,0,0) ) ;
369 }
370 if ( to < from )
371 to = from;
372 int secs = from.secsTo( to );
373 event->setRecurrenceID( next );
374 event->setDtStart( next );
375 event->setDtDue( next.addSecs( secs ) );
376 } 360 }
377 else { 361 } else {
378 event->setHasRecurrenceID( false ); 362 event->setHasRecurrenceID( false );
379 event->recurrence()->unsetRecurs(); 363 event->recurrence()->unsetRecurs();
380 } 364 }
381#endif
382 } else
383 event->recurrence()->unsetRecurs();
384} 365}
385 366
386bool KOTodoEditor::validateInput() 367bool KOTodoEditor::validateInput()
387{ 368{
388 if (!mGeneral->validateInput()) return false; 369 if (!mGeneral->validateInput()) return false;
389 if (!mDetails->validateInput()) return false; 370 if (!mDetails->validateInput()) return false;
390 return true; 371 return true;
391} 372}
392 373
393int KOTodoEditor::msgItemDelete() 374int KOTodoEditor::msgItemDelete()
394{ 375{
395 return KMessageBox::warningContinueCancel(this, 376 return KMessageBox::warningContinueCancel(this,
396 i18n("This item will be permanently deleted."), 377 i18n("This item will be permanently deleted."),
397 i18n("KOrganizer Confirmation"),i18n("Delete")); 378 i18n("KOrganizer Confirmation"),i18n("Delete"));
398} 379}
399 380
400void KOTodoEditor::modified (int modification) 381void KOTodoEditor::modified (int modification)
401{ 382{
402 if (modification == KOGlobals::CATEGORY_MODIFIED || 383 if (modification == KOGlobals::CATEGORY_MODIFIED ||
403 KOGlobals::UNKNOWN_MODIFIED == modification ) 384 KOGlobals::UNKNOWN_MODIFIED == modification )
404 // mCategoryDialog->setSelected (mTodo->categories ()); 385 // mCategoryDialog->setSelected (mTodo->categories ());
405 mGeneral->modified (mTodo, modification); 386 mGeneral->modified (mTodo, modification);
406 387
407} 388}
diff --git a/version b/version
index 3a336e3..e90e80d 100644
--- a/version
+++ b/version
@@ -1 +1 @@
version = "2.0.11"; version = "2.0.12";