summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-07-06 21:11:20 (UTC)
committer zautrix <zautrix>2005-07-06 21:11:20 (UTC)
commite1731d8790403a079613f291b4ac172d8f04c960 (patch) (unidiff)
tree75b13b2235fb6045b5c4b29f3d65d761c46ff746
parent984e2132871c79990f6d9eac5702f7f32186f235 (diff)
downloadkdepimpi-e1731d8790403a079613f291b4ac172d8f04c960.zip
kdepimpi-e1731d8790403a079613f291b4ac172d8f04c960.tar.gz
kdepimpi-e1731d8790403a079613f291b4ac172d8f04c960.tar.bz2
fixes
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--bin/kdepim/korganizer/germantranslation.txt9
-rw-r--r--korganizer/kotodoeditor.cpp1
-rw-r--r--korganizer/kotodoview.cpp78
-rw-r--r--korganizer/kotodoview.h3
4 files changed, 79 insertions, 12 deletions
diff --git a/bin/kdepim/korganizer/germantranslation.txt b/bin/kdepim/korganizer/germantranslation.txt
index a5e2597..cb92677 100644
--- a/bin/kdepim/korganizer/germantranslation.txt
+++ b/bin/kdepim/korganizer/germantranslation.txt
@@ -1447,59 +1447,60 @@
1447{ "Children","Kinder" }, 1447{ "Children","Kinder" },
1448{ "Department","Abteilung" }, 1448{ "Department","Abteilung" },
1449{ "Backup cancelled","Backup abgebrochen" }, 1449{ "Backup cancelled","Backup abgebrochen" },
1450{ "Backup globally disabled","Backup global abgeschaltet" }, 1450{ "Backup globally disabled","Backup global abgeschaltet" },
1451{ "Backup succesfully finished","Backup erfolgreich beendet" }, 1451{ "Backup succesfully finished","Backup erfolgreich beendet" },
1452{ "(Hint: You can enable automatic backup in the global settings!)","(Hinweis: Sie können ein automatisches Backup in den globalen Einstellungen konfigurieren!)" }, 1452{ "(Hint: You can enable automatic backup in the global settings!)","(Hinweis: Sie können ein automatisches Backup in den globalen Einstellungen konfigurieren!)" },
1453{ "This will <b>backup all calendar files</b> to the directory %1 %2","Das schreibt ein <b>Backup aller Kalenderdateien</b> in das Verzeichnis %1 %2" }, 1453{ "This will <b>backup all calendar files</b> to the directory %1 %2","Das schreibt ein <b>Backup aller Kalenderdateien</b> in das Verzeichnis %1 %2" },
1454{ "Birthdays","Geburtstage" }, 1454{ "Birthdays","Geburtstage" },
1455{ "KO/Pi import information!","KO/Pi Import Information!" }, 1455{ "KO/Pi import information!","KO/Pi Import Information!" },
1456{ "Start this todo\nand stop all running","Starte dieses Todo\nund stoppe alle Laufenden" }, 1456{ "Start this todo\nand stop all running","Starte dieses Todo\nund stoppe alle Laufenden" },
1457{ "Cancel - do not start"," Abbrechen - Todo nicht starten" }, 1457{ "Cancel - do not start"," Abbrechen - Todo nicht starten" },
1458{ "The timezone has changed!\nShould the calendar be reloaded\nto shift the time of the events?\nPlease read Menu: Help->FAQ:\n"How do I change the timezone?"\nas well!","Die Zeitzone wurde geändert!\nSollen die Kalender neu geladen\nwerden num die Zeiten\nder Termine zu ändern?\nBitte lesen Sie auch\nMenu: Help->FAQ:\n"How do I change the timezone?"" }, 1458{ "The timezone has changed!\nShould the calendar be reloaded\nto shift the time of the events?\nPlease read Menu: Help->FAQ:\n"How do I change the timezone?"\nas well!","Die Zeitzone wurde geändert!\nSollen die Kalender neu geladen\nwerden num die Zeiten\nder Termine zu ändern?\nBitte lesen Sie auch\nMenu: Help->FAQ:\n"How do I change the timezone?"" },
1459{ "Reload","Neu laden" }, 1459{ "Reload","Neu laden" },
1460{ "Timezone settings","Zeitzoneneinstellung" }, 1460{ "Timezone settings","Zeitzoneneinstellung" },
1461{ "Title: ","Titel: " }, 1461{ "Title: ","Titel: " },
1462{ "Journal from: ","Journal vom: " }, 1462{ "Journal from: ","Journal vom: " },
1463{ "Journal: %1 from ","Journal: %1 vom " }, 1463{ "Journal: %1 from ","Journal: %1 vom " },
1464{ "<b>Click here to edit categories: </b>","<b>Klicke hier um Kategorien zu ändern: </b>" }, 1464{ "<b>Click here to edit categories: </b>","<b>Klicke hier um Kategorien zu ändern: </b>" },
1465{ "Selected Item","Ausgewähltes Item" }, 1465{ "Selected Item","Ausgewähltes Item" },
1466{ "Select Date...","Wähle Datum..." }, 1466{ "Select Date...","Wähle Datum..." },
1467{ "After importing/loading/syncing there may be new categories in events or todos which are not added automatically to the category list. Please choose what to do <b>now</b>:","Nach dem Importieren/Laden/Syncen kann es neue Kategorien in den Terminen oder Todos geben, die nicht automatisch der Kategorieliste hinzugefügt werden. Bitte wählen Sie, was <b>jetzt</b> passieren soll:" }, 1467{ "After importing/loading/syncing there may be new categories in events or todos which are not added automatically to the category list. Please choose what to do <b>now</b>:","Nach dem Importieren/Laden/Syncen kann es neue Kategorien in den Terminen oder Todos geben, die nicht automatisch der Kategorieliste hinzugefügt werden. Bitte wählen Sie, was <b>jetzt</b> passieren soll:" },
1468{ "Change category list now!","Ändere Kategorieliste jetzt!" }, 1468{ "Change category list now!","Ändere Kategorieliste jetzt!" },
1469{ "Edit category list...","Ändere Kategorieliste..." }, 1469{ "Edit category list...","Ändere Kategorieliste..." },
1470{ "Toolbar changes needs a restart!","Neustart benötigt für Toolbaränderungen!" }, 1470{ "Toolbar changes needs a restart!","Neustart benötigt für Toolbaränderungen!" },
1471{ "Filepath: ","Dateipfad: " }, 1471{ "Filepath: ","Dateipfad: " },
1472{ "You can try to reload the calendar in the Resource View!","In der Resourcenansicht können Sie erneut versuchen den Kalender zu laden!" }, 1472{ "You can try to reload the calendar in the Resource View!","In der Resourcenansicht können Sie erneut versuchen den Kalender zu laden!" },
1473{ "<b>WARNING:</b> There is a pending suspended alarm!","<b>WARNUNG:</b> Es gibt einen laufenden Suspendalarm!" }, 1473{ "<b>WARNING:</b> There is a pending suspended alarm!","<b>WARNUNG:</b> Es gibt einen laufenden Suspendalarm!" },
1474{ "Pending Suspend Alarm","Laufender Suspend Alarm" }, 1474{ "Pending Suspend Alarm","Laufender Suspend Alarm" },
1475{ "Error loading calendar %1","Fehler beim Laden von Kalender %1" }, 1475{ "Error loading calendar %1","Fehler beim Laden von Kalender %1" },
1476{ "Calendar(s) not loaded:","Nicht geladene(r) Kalender:" }, 1476{ "Calendar(s) not loaded:","Nicht geladene(r) Kalender:" },
1477{ "Loding of calendar(s) failed","Laden von Kalendern fehlgeschlagen" }, 1477{ "Loding of calendar(s) failed","Laden von Kalendern fehlgeschlagen" },
1478{ "Alarm Options","Alarm Einstellungen" }, 1478{ "Alarm Options","Alarm Einstellungen" },
1479{ "Delete selected...","Lösche Ausgewählte..." }, 1479{ "Delete selected...","Lösche Ausgewählte..." },
1480{ "None","Nichts" }, 1480{ "None","Nichts" },
1481{ "Selection","Auswahl" }, 1481{ "Selection","Auswahl" },
1482{ "Set categories","Setze Kategorien" }, 1482{ "Set categories","Setze Kategorien" },
1483{ "This adds the selected\nitems to the calendar\n%1\nand removes them from\ntheir current calendar!","Das fügt die ausgewählten\nEinträge dem Kalender\n%1\nhinzu und entfernt sie von\nihrem aktuellen Kalender!" }, 1483{ "This adds the selected\nitems to the calendar\n%1\nand removes them from\ntheir current calendar!","Das fügt die ausgewählten\nEinträge dem Kalender\n%1\nhinzu und entfernt sie von\nihrem aktuellen Kalender!" },
1484{ "Reset","Neu setzen" }, 1484{ "Reset","Neu setzen" },
1485{ "Do you want to <b>add</b> categories to the selected items or <b>reset</b> the list (i.e. remove current categories)?","Möchten Sie Kategorien zu den ausgewählten Einträgen <b>hinzufügen</b> oder die Liste <b>neu setzen</b> (d.h. vorhandene Kategorien löschen)?" }, 1485{ "Do you want to <b>add</b> categories to the selected items or <b>reset</b> the list (i.e. remove current categories)?","Möchten Sie Kategorien zu den ausgewählten Einträgen <b>hinzufügen</b> oder die Liste <b>neu setzen</b> (d.h. vorhandene Kategorien löschen)?" },
1486{ "The file\n%1\ndoes not exist!\nShall I create it for you?","Die Datei\n%1\nexistiert nicht!\nSoll sie neu angelegt werden?" }, 1486{ "The file\n%1\ndoes not exist!\nShall I create it for you?","Die Datei\n%1\nexistiert nicht!\nSoll sie neu angelegt werden?" },
1487{ "Sorry, cannot create the file\n%1!\nNo calendar added!","Kann leider die Datei\n%1\nnicht anlegen!\nKein Kalender hinzugefügt!" }, 1487{ "Sorry, cannot create the file\n%1!\nNo calendar added!","Kann leider die Datei\n%1\nnicht anlegen!\nKein Kalender hinzugefügt!" },
1488{ "\nNO\n WRITEABLE\n CALENDAR\n FOUND!\n\nPlease fix your calendar settings!\n","\nKEIN\n SCHREIBBARER\n KALENDER\n GEFUNDEN!\n\nBitte korrigieren Sie\nihre Kalendereinstellungen!\n" }, 1488{ "\nNO\n WRITEABLE\n CALENDAR\n FOUND!\n\nPlease fix your calendar settings!\n","\nKEIN\n SCHREIBBARER\n KALENDER\n GEFUNDEN!\n\nBitte korrigieren Sie\nihre Kalendereinstellungen!\n" },
1489{ "\nThe file\n%1\non disk has changed!\nFile size: %2 bytes.\nLast modified: %3\nDo you want to:\n\n - Save and overwrite file?\n - Sync with file, then save?\n - Cancel without saving? \n","\nDie Datei\n%1\nwurde verändert!\nDatei Grösse: %2 Bytes.\nZuletzt geändert: %3\nMöchten Sie:\n\n - Speichern und die Datei überschreiben?\n - Mit Datei Synchronisieren, dann speichern?\n - Abbrechen ohne zu speichern? \n" }, 1489{ "\nThe file\n%1\non disk has changed!\nFile size: %2 bytes.\nLast modified: %3\nDo you want to:\n\n - Save and overwrite file?\n - Sync with file, then save?\n - Cancel without saving? \n","\nDie Datei\n%1\nwurde verändert!\nDatei Grösse: %2 Bytes.\nZuletzt geändert: %3\nMöchten Sie:\n\n - Speichern und die Datei überschreiben?\n - Mit Datei Synchronisieren, dann speichern?\n - Abbrechen ohne zu speichern? \n" },
1490{ "Edit","Edit" }, 1490{ "Edit","Edit" },
1491{ "Last Modified","Zuletzt geändert" }, 1491{ "Last Modified","Zuletzt geändert" },
1492{ "Journal viewer","Journal Anzeige" }, 1492{ "Journal viewer","Journal Anzeige" },
1493{ "Configure Calendar Files...","Konfiguriere Kalenderdateien..." }, 1493{ "Configure Calendar Files...","Konfiguriere Kalenderdateien..." },
1494{ "You can use and display <b>more than one</b> calendar file in KO/Pi. A calendar file is called a <b>resource</b>. To add a calendar or change calendar settings please use menu: <b>View -> Toggle Resource View</b>.","Sie können <b>mehr als eine</b> Kalenderdatei in KO/Pi darstellen und benutzen. Eine Kalenderdatei wird <b>Resource</b> genannt. Um einen Kalender hinzuzufügen oder die Kalendereinstellungen zu ändern benutzen Sie bitte das Menu: <b>Ansicht -> Resourcenansicht umschalten</b>." }, 1494{ "You can use and display <b>more than one</b> calendar file in KO/Pi. A calendar file is called a <b>resource</b>. To add a calendar or change calendar settings please use menu: <b>View -> Toggle Resource View</b>.","Sie können <b>mehr als eine</b> Kalenderdatei in KO/Pi darstellen und benutzen. Eine Kalenderdatei wird <b>Resource</b> genannt. Um einen Kalender hinzuzufügen oder die Kalendereinstellungen zu ändern benutzen Sie bitte das Menu: <b>Ansicht -> Resourcenansicht umschalten</b>." },
1495{ "Hide Completed","Verstecke erledigte Todos" },
1496{ "Show not Running","Zeige nicht Laufende" },
1495{ "","" }, 1497{ "","" },
1496{ "","" }, 1498{ "","" },
1497{ "","" }, 1499{ "","" },
1498{ "","" }, 1500{ "","" },
1499{ "","" }, 1501{ "","" },
1500{ "","" }, 1502{ "","" },
1501{ "","" }, 1503{ "","" },
1502{ "","" }, 1504
1503{ "","" }, 1505
1504{ "","" }, 1506
1505{ "","" },
diff --git a/korganizer/kotodoeditor.cpp b/korganizer/kotodoeditor.cpp
index 555c1b1..100a81b 100644
--- a/korganizer/kotodoeditor.cpp
+++ b/korganizer/kotodoeditor.cpp
@@ -253,96 +253,97 @@ bool KOTodoEditor::processInput( bool emitTime )
253 globalFlagBlockAgenda = 2; 253 globalFlagBlockAgenda = 2;
254 } 254 }
255 if (mTodo) { 255 if (mTodo) {
256 todo->setRevision(todo->revision()+1); 256 todo->setRevision(todo->revision()+1);
257 emit todoChanged(todo); 257 emit todoChanged(todo);
258 } else { 258 } else {
259 mCalendar->addTodo(todo); 259 mCalendar->addTodo(todo);
260 mTodo = todo; 260 mTodo = todo;
261 emit todoAdded(todo); 261 emit todoAdded(todo);
262 } 262 }
263 263
264 return true; 264 return true;
265} 265}
266 266
267void KOTodoEditor::deleteTodo() 267void KOTodoEditor::deleteTodo()
268{ 268{
269 if (mTodo) { 269 if (mTodo) {
270 if (KOPrefs::instance()->mConfirm) { 270 if (KOPrefs::instance()->mConfirm) {
271 switch (msgItemDelete()) { 271 switch (msgItemDelete()) {
272 case KMessageBox::Continue: // OK 272 case KMessageBox::Continue: // OK
273 emit todoToBeDeleted(mTodo); 273 emit todoToBeDeleted(mTodo);
274 emit dialogClose(mTodo); 274 emit dialogClose(mTodo);
275 mCalendar->deleteTodo(mTodo); 275 mCalendar->deleteTodo(mTodo);
276 emit todoDeleted(); 276 emit todoDeleted();
277 reject(); 277 reject();
278 break; 278 break;
279 } 279 }
280 } 280 }
281 else { 281 else {
282 emit todoToBeDeleted(mTodo); 282 emit todoToBeDeleted(mTodo);
283 emit dialogClose(mTodo); 283 emit dialogClose(mTodo);
284 mCalendar->deleteTodo(mTodo); 284 mCalendar->deleteTodo(mTodo);
285 emit todoDeleted(); 285 emit todoDeleted();
286 reject(); 286 reject();
287 } 287 }
288 } else { 288 } else {
289 reject(); 289 reject();
290 } 290 }
291} 291}
292 292
293void KOTodoEditor::setDefaults(QDateTime due,Todo *relatedEvent,bool allDay) 293void KOTodoEditor::setDefaults(QDateTime due,Todo *relatedEvent,bool allDay)
294{ 294{
295 mRelatedTodo = relatedEvent; 295 mRelatedTodo = relatedEvent;
296 296
297 mGeneral->setDefaults(due,allDay); 297 mGeneral->setDefaults(due,allDay);
298 mDetails->setDefaults(); 298 mDetails->setDefaults();
299 showPage( 0 ); 299 showPage( 0 );
300 if ( mRelatedTodo ) { 300 if ( mRelatedTodo ) {
301 mGeneral->fillCalCombo(mRelatedTodo->calID() );
301 mGeneral->setCategories (mRelatedTodo->categoriesStr ()); 302 mGeneral->setCategories (mRelatedTodo->categoriesStr ());
302 mGeneral->setSecrecy (mRelatedTodo->secrecy ()); 303 mGeneral->setSecrecy (mRelatedTodo->secrecy ());
303 if ( mRelatedTodo->priority() < 3 ) 304 if ( mRelatedTodo->priority() < 3 )
304 mGeneral->mPriorityCombo->setCurrentItem(mRelatedTodo->priority()-1); 305 mGeneral->mPriorityCombo->setCurrentItem(mRelatedTodo->priority()-1);
305 mGeneral->mSummaryEdit->lineEdit()->setText(mRelatedTodo->summary()+": "); 306 mGeneral->mSummaryEdit->lineEdit()->setText(mRelatedTodo->summary()+": ");
306 int len = mRelatedTodo->summary().length(); 307 int len = mRelatedTodo->summary().length();
307 mGeneral->mSummaryEdit->lineEdit()->setFocus(); 308 mGeneral->mSummaryEdit->lineEdit()->setFocus();
308 mGeneral->mSummaryEdit->lineEdit()->setCursorPosition ( len+2 ); 309 mGeneral->mSummaryEdit->lineEdit()->setCursorPosition ( len+2 );
309 mGeneral->mSummaryEdit->lineEdit()->setSelection ( 0, len+2 ); 310 mGeneral->mSummaryEdit->lineEdit()->setSelection ( 0, len+2 );
310 311
311 } else 312 } else
312 mGeneral->setFocusOn( 2 ); 313 mGeneral->setFocusOn( 2 );
313 tabWidget()->setTabEnabled ( mRecurrence->parentWidget(), false ); 314 tabWidget()->setTabEnabled ( mRecurrence->parentWidget(), false );
314 mRecurrence->setDefaults(QDateTime::currentDateTime(),QDateTime::currentDateTime().addSecs( 3600 )); 315 mRecurrence->setDefaults(QDateTime::currentDateTime(),QDateTime::currentDateTime().addSecs( 3600 ));
315} 316}
316void KOTodoEditor::checkRecurrence() 317void KOTodoEditor::checkRecurrence()
317{ 318{
318 if ( mGeneral->mDueCheck->isChecked() && mGeneral->mStartCheck->isChecked()) { 319 if ( mGeneral->mDueCheck->isChecked() && mGeneral->mStartCheck->isChecked()) {
319 tabWidget()->setTabEnabled ( mRecurrence->parentWidget(), true ); 320 tabWidget()->setTabEnabled ( mRecurrence->parentWidget(), true );
320 321
321 if ( mTodo ) 322 if ( mTodo )
322 mRecurrence->readEvent( mTodo ); 323 mRecurrence->readEvent( mTodo );
323 else { 324 else {
324 bool time = mGeneral->mTimeButton->isChecked(); 325 bool time = mGeneral->mTimeButton->isChecked();
325 QDateTime from,to; 326 QDateTime from,to;
326 if ( time ) { 327 if ( time ) {
327 to = QDateTime( mGeneral->mDueDateEdit->date(), mGeneral->mDueTimeEdit->getTime() ) ; 328 to = QDateTime( mGeneral->mDueDateEdit->date(), mGeneral->mDueTimeEdit->getTime() ) ;
328 from = QDateTime( mGeneral->mStartDateEdit->date(),mGeneral->mStartTimeEdit->getTime( )) ; 329 from = QDateTime( mGeneral->mStartDateEdit->date(),mGeneral->mStartTimeEdit->getTime( )) ;
329 } else { 330 } else {
330 to = QDateTime( mGeneral->mDueDateEdit->date(), QTime( 0,0,0) ) ; 331 to = QDateTime( mGeneral->mDueDateEdit->date(), QTime( 0,0,0) ) ;
331 from = QDateTime( mGeneral->mStartDateEdit->date(),QTime( 0,0,0) ) ; 332 from = QDateTime( mGeneral->mStartDateEdit->date(),QTime( 0,0,0) ) ;
332 } 333 }
333 if ( to < from ) 334 if ( to < from )
334 to = from; 335 to = from;
335 mRecurrence->setDefaults(from,to); 336 mRecurrence->setDefaults(from,to);
336 } 337 }
337 } else { 338 } else {
338 tabWidget()->setTabEnabled ( mRecurrence->parentWidget(), false ); 339 tabWidget()->setTabEnabled ( mRecurrence->parentWidget(), false );
339 mRecurrence->setDefaults(QDateTime::currentDateTime(),QDateTime::currentDateTime().addSecs( 3600 )); 340 mRecurrence->setDefaults(QDateTime::currentDateTime(),QDateTime::currentDateTime().addSecs( 3600 ));
340 } 341 }
341} 342}
342void KOTodoEditor::readTodo(Todo *todo) 343void KOTodoEditor::readTodo(Todo *todo)
343{ 344{
344 mGeneral->readTodo(todo); 345 mGeneral->readTodo(todo);
345 mDetails->readEvent(todo); 346 mDetails->readEvent(todo);
346 mRelatedTodo = 0;//todo->relatedTo(); 347 mRelatedTodo = 0;//todo->relatedTo();
347 // categories 348 // categories
348 // mCategoryDialog->setSelected(todo->categories()); 349 // mCategoryDialog->setSelected(todo->categories());
diff --git a/korganizer/kotodoview.cpp b/korganizer/kotodoview.cpp
index a87e6fc..c23a8ee 100644
--- a/korganizer/kotodoview.cpp
+++ b/korganizer/kotodoview.cpp
@@ -459,100 +459,134 @@ void KOTodoListView::contentsMouseReleaseEvent(QMouseEvent *e)
459 459
460void KOTodoListView::contentsMouseDoubleClickEvent(QMouseEvent *e) 460void KOTodoListView::contentsMouseDoubleClickEvent(QMouseEvent *e)
461{ 461{
462 if (!e) return; 462 if (!e) return;
463 463
464 QPoint vp = contentsToViewport(e->pos()); 464 QPoint vp = contentsToViewport(e->pos());
465 465
466 QListViewItem *item = itemAt(vp); 466 QListViewItem *item = itemAt(vp);
467 467
468 emit double_Clicked(item); 468 emit double_Clicked(item);
469 if (!item) return; 469 if (!item) return;
470 470
471 emit doubleClicked(item,vp,0); 471 emit doubleClicked(item,vp,0);
472} 472}
473 473
474///////////////////////////////////////////////////////////////////////////// 474/////////////////////////////////////////////////////////////////////////////
475 475
476KOQuickTodo::KOQuickTodo(QWidget *parent) : 476KOQuickTodo::KOQuickTodo(QWidget *parent) :
477 QLineEdit(parent) 477 QLineEdit(parent)
478{ 478{
479 setText(i18n("Click to add a new Todo")); 479 setText(i18n("Click to add a new Todo"));
480} 480}
481 481
482void KOQuickTodo::focusInEvent(QFocusEvent *ev) 482void KOQuickTodo::focusInEvent(QFocusEvent *ev)
483{ 483{
484 if ( text()==i18n("Click to add a new Todo") ) 484 if ( text()==i18n("Click to add a new Todo") )
485 setText(""); 485 setText("");
486 QLineEdit::focusInEvent(ev); 486 QLineEdit::focusInEvent(ev);
487} 487}
488 488
489void KOQuickTodo::focusOutEvent(QFocusEvent *ev) 489void KOQuickTodo::focusOutEvent(QFocusEvent *ev)
490{ 490{
491 setText(i18n("Click to add a new Todo")); 491 setText(i18n("Click to add a new Todo"));
492 QLineEdit::focusOutEvent(ev); 492 QLineEdit::focusOutEvent(ev);
493} 493}
494 494
495///////////////////////////////////////////////////////////////////////////// 495/////////////////////////////////////////////////////////////////////////////
496 496
497KOTodoView::KOTodoView(Calendar *calendar,QWidget* parent,const char* name) : 497KOTodoView::KOTodoView(Calendar *calendar,QWidget* parent,const char* name) :
498 KOrg::BaseView(calendar,parent,name) 498 KOrg::BaseView(calendar,parent,name)
499{ 499{
500 mCategoryPopupMenu = 0; 500 mCategoryPopupMenu = 0;
501 mPendingUpdateBeforeRepaint = false; 501 mPendingUpdateBeforeRepaint = false;
502 isFlatDisplay = false; 502 isFlatDisplay = false;
503 mNavigator = 0; 503 mNavigator = 0;
504 QBoxLayout *topLayout = new QVBoxLayout(this); 504 QBoxLayout *topLayout = new QVBoxLayout(this);
505 mName = QString ( name ); 505 mName = QString ( name );
506 mBlockUpdate = false; 506 mBlockUpdate = false;
507 mQuickAdd = new KOQuickTodo(this); 507 mQuickBar = new QWidget( this );
508 topLayout->addWidget(mQuickAdd); 508 topLayout->addWidget(mQuickBar);
509 509
510 if ( !KOPrefs::instance()->mEnableQuickTodo ) mQuickAdd->hide(); 510 mQuickAdd = new KOQuickTodo(mQuickBar);
511 QBoxLayout *quickLayout = new QHBoxLayout(mQuickBar);
512 quickLayout->addWidget( mQuickAdd );
513 QPushButton * flat = new QPushButton( "F",mQuickBar );
514 int fixwid = flat->sizeHint().height();
515 if ( QApplication::desktop()->width() > 320 )
516 fixwid *= 2;
517 flat->setFixedWidth( fixwid );
518 connect ( flat, SIGNAL ( clicked()), SLOT ( setAllFlat()));
519 QPushButton * allopen = new QPushButton( "O",mQuickBar );
520 allopen->setFixedWidth( fixwid );
521 connect ( allopen, SIGNAL ( clicked()), SLOT ( setAllOpen()));
522 QPushButton * allclose = new QPushButton( "C",mQuickBar );
523 allclose->setFixedWidth( fixwid );
524 connect ( allclose, SIGNAL ( clicked()), SLOT ( setAllClose()));
525 QPushButton * s_done = new QPushButton( "D",mQuickBar );
526 s_done->setFixedWidth( fixwid );
527 connect ( s_done, SIGNAL ( clicked()), SLOT ( toggleCompleted()));
528 QPushButton * s_run = new QPushButton( "R",mQuickBar );
529 s_run->setFixedWidth( fixwid );
530 connect ( s_run, SIGNAL ( clicked()), SLOT ( toggleRunning()));
531
532 mNewSubBut = new QPushButton( "sub",mQuickBar );
533 mNewSubBut->setFixedWidth( fixwid*3/2 );
534 connect ( mNewSubBut, SIGNAL ( clicked()), SLOT ( newSubTodo()));
535 mNewSubBut->setEnabled( false );
536 quickLayout->addWidget( mNewSubBut );
537 quickLayout->addWidget( s_done );
538 quickLayout->addWidget( s_run );
539
540 quickLayout->addWidget( allopen );
541 quickLayout->addWidget( allclose );
542 quickLayout->addWidget( flat );
543
544 if ( !KOPrefs::instance()->mEnableQuickTodo ) mQuickBar->hide();
511 545
512 mTodoListView = new KOTodoListView(calendar,this, name ); 546 mTodoListView = new KOTodoListView(calendar,this, name );
513 topLayout->addWidget(mTodoListView); 547 topLayout->addWidget(mTodoListView);
514 //mTodoListView->header()->setMaximumHeight(30); 548 //mTodoListView->header()->setMaximumHeight(30);
515 mTodoListView->setRootIsDecorated(true); 549 mTodoListView->setRootIsDecorated(true);
516 mTodoListView->setAllColumnsShowFocus(true); 550 mTodoListView->setAllColumnsShowFocus(true);
517 551
518 mTodoListView->setShowSortIndicator(true); 552 mTodoListView->setShowSortIndicator(true);
519 553
520 mTodoListView->addColumn(i18n("Todo")); 554 mTodoListView->addColumn(i18n("Todo"));
521 mTodoListView->addColumn(i18n("Prio")); 555 mTodoListView->addColumn(i18n("Prio"));
522 mTodoListView->setColumnAlignment(1,AlignHCenter); 556 mTodoListView->setColumnAlignment(1,AlignHCenter);
523 mTodoListView->addColumn(i18n("Complete")); 557 mTodoListView->addColumn(i18n("Complete"));
524 mTodoListView->setColumnAlignment(2,AlignCenter); 558 mTodoListView->setColumnAlignment(2,AlignCenter);
525 559
526 mTodoListView->addColumn(i18n("Due Date")); 560 mTodoListView->addColumn(i18n("Due Date"));
527 mTodoListView->setColumnAlignment(3,AlignLeft); 561 mTodoListView->setColumnAlignment(3,AlignLeft);
528 mTodoListView->addColumn(i18n("Due Time")); 562 mTodoListView->addColumn(i18n("Due Time"));
529 mTodoListView->setColumnAlignment(4,AlignHCenter); 563 mTodoListView->setColumnAlignment(4,AlignHCenter);
530 564
531 mTodoListView->addColumn(i18n("Start Date")); 565 mTodoListView->addColumn(i18n("Start Date"));
532 mTodoListView->setColumnAlignment(5,AlignLeft); 566 mTodoListView->setColumnAlignment(5,AlignLeft);
533 mTodoListView->addColumn(i18n("Start Time")); 567 mTodoListView->addColumn(i18n("Start Time"));
534 mTodoListView->setColumnAlignment(6,AlignHCenter); 568 mTodoListView->setColumnAlignment(6,AlignHCenter);
535 569
536 mTodoListView->addColumn(i18n("Cancelled")); 570 mTodoListView->addColumn(i18n("Cancelled"));
537 mTodoListView->addColumn(i18n("Categories")); 571 mTodoListView->addColumn(i18n("Categories"));
538 mTodoListView->addColumn(i18n("Calendar")); 572 mTodoListView->addColumn(i18n("Calendar"));
539#if 0 573#if 0
540 mTodoListView->addColumn(i18n("Sort Id")); 574 mTodoListView->addColumn(i18n("Sort Id"));
541 mTodoListView->setColumnAlignment(4,AlignHCenter); 575 mTodoListView->setColumnAlignment(4,AlignHCenter);
542#endif 576#endif
543 577
544 mTodoListView->setMinimumHeight( 60 ); 578 mTodoListView->setMinimumHeight( 60 );
545 mTodoListView->setItemsRenameable( true ); 579 mTodoListView->setItemsRenameable( true );
546 mTodoListView->setRenameable( 0 ); 580 mTodoListView->setRenameable( 0 );
547 mTodoListView->setColumnWidth( 0, 120 ); 581 mTodoListView->setColumnWidth( 0, 120 );
548 int iii = 0; 582 int iii = 0;
549 for ( iii = 0; iii< 10 ; ++iii ) 583 for ( iii = 0; iii< 10 ; ++iii )
550 mTodoListView->setColumnWidthMode( iii, QListView::Manual ); 584 mTodoListView->setColumnWidthMode( iii, QListView::Manual );
551 585
552 586
553 mKOTodoViewWhatsThis = new KOTodoViewWhatsThis(mTodoListView->viewport(),this); 587 mKOTodoViewWhatsThis = new KOTodoViewWhatsThis(mTodoListView->viewport(),this);
554 588
555 mPriorityPopupMenu = new QPopupMenu(this); 589 mPriorityPopupMenu = new QPopupMenu(this);
556 for (int i = 1; i <= 5; i++) { 590 for (int i = 1; i <= 5; i++) {
557 QString label = QString ("%1").arg (i); 591 QString label = QString ("%1").arg (i);
558 mPriority[mPriorityPopupMenu->insertItem (label)] = i; 592 mPriority[mPriorityPopupMenu->insertItem (label)] = i;
@@ -1037,97 +1071,101 @@ void KOTodoView::showEvents(QPtrList<Event>)
1037 1071
1038void KOTodoView::printPreview(CalPrinter *calPrinter, const QDate &fd, 1072void KOTodoView::printPreview(CalPrinter *calPrinter, const QDate &fd,
1039 const QDate &td) 1073 const QDate &td)
1040{ 1074{
1041#ifndef KORG_NOPRINTER 1075#ifndef KORG_NOPRINTER
1042 calPrinter->preview(CalPrinter::Todolist, fd, td); 1076 calPrinter->preview(CalPrinter::Todolist, fd, td);
1043#endif 1077#endif
1044} 1078}
1045 1079
1046void KOTodoView::editItem(QListViewItem *item ) 1080void KOTodoView::editItem(QListViewItem *item )
1047{ 1081{
1048 emit editTodoSignal(((KOTodoViewItem *)item)->todo()); 1082 emit editTodoSignal(((KOTodoViewItem *)item)->todo());
1049} 1083}
1050 1084
1051void KOTodoView::showItem(QListViewItem *item,const QPoint &,int) 1085void KOTodoView::showItem(QListViewItem *item,const QPoint &,int)
1052{ 1086{
1053 emit showTodoSignal(((KOTodoViewItem *)item)->todo()); 1087 emit showTodoSignal(((KOTodoViewItem *)item)->todo());
1054} 1088}
1055 1089
1056void KOTodoView::popupMenu(QListViewItem *item,const QPoint &p,int column) 1090void KOTodoView::popupMenu(QListViewItem *item,const QPoint &p,int column)
1057{ 1091{
1058 pendingSubtodo = 0; 1092 pendingSubtodo = 0;
1059 mActiveItem = (KOTodoViewItem *)item; 1093 mActiveItem = (KOTodoViewItem *)item;
1060 if (item) { 1094 if (item) {
1061 switch (column){ 1095 switch (column){
1062 case 1: 1096 case 1:
1063 mPriorityPopupMenu->popup(QCursor::pos ()); break; 1097 mPriorityPopupMenu->popup(QCursor::pos ()); break;
1064 case 2: 1098 case 2:
1065 mPercentageCompletedPopupMenu->popup(QCursor::pos ()); break; 1099 mPercentageCompletedPopupMenu->popup(QCursor::pos ()); break;
1066 case 3: 1100 case 3:
1067 moveTodo(); 1101 moveTodo();
1068 break; 1102 break;
1069 case 8: 1103 case 8:
1070 mCategoryPopupMenu->popup(QCursor::pos ()); break; 1104 mCategoryPopupMenu->popup(QCursor::pos ()); break;
1071 case 9: 1105 case 9:
1072 mCalPopupMenu->popup(QCursor::pos ()); break; 1106 mCalPopupMenu->popup(QCursor::pos ()); break;
1073 default: 1107 default:
1074 mItemPopupMenu->popup(QCursor::pos()); 1108 mItemPopupMenu->popup(QCursor::pos());
1075 } 1109 }
1076 } else mPopupMenu->popup(QCursor::pos()); 1110 } else mPopupMenu->popup(QCursor::pos());
1077} 1111}
1078void KOTodoView::newTodo() 1112void KOTodoView::newTodo()
1079{ 1113{
1080 emit newTodoSignal(); 1114 emit newTodoSignal();
1081} 1115}
1082 1116
1083void KOTodoView::newSubTodo() 1117void KOTodoView::newSubTodo()
1084{ 1118{
1119 mActiveItem = (KOTodoViewItem*)mTodoListView->currentItem();
1085 if (mActiveItem) { 1120 if (mActiveItem) {
1121 if ( mQuickAdd->isVisible() && !mQuickAdd->text().isEmpty() && mQuickAdd->text() != i18n("Click to add a new Todo") ) {
1122 addQuickTodoPar( mActiveItem->todo());
1123 } else
1086 emit newSubTodoSignal(mActiveItem->todo()); 1124 emit newSubTodoSignal(mActiveItem->todo());
1087 } 1125 }
1088} 1126}
1089void KOTodoView::unparentTodo() 1127void KOTodoView::unparentTodo()
1090{ 1128{
1091 if (mActiveItem) { 1129 if (mActiveItem) {
1092 emit unparentTodoSignal(mActiveItem->todo()); 1130 emit unparentTodoSignal(mActiveItem->todo());
1093 } 1131 }
1094} 1132}
1095 1133
1096void KOTodoView::reparentTodo() 1134void KOTodoView::reparentTodo()
1097{ 1135{
1098 if (mActiveItem) { 1136 if (mActiveItem) {
1099 topLevelWidget()->setCaption(i18n("Click on new parent item")); 1137 topLevelWidget()->setCaption(i18n("Click on new parent item"));
1100 pendingSubtodo = mActiveItem; 1138 pendingSubtodo = mActiveItem;
1101 } 1139 }
1102} 1140}
1103void KOTodoView::editTodo() 1141void KOTodoView::editTodo()
1104{ 1142{
1105 if (mActiveItem) { 1143 if (mActiveItem) {
1106 emit editTodoSignal(mActiveItem->todo()); 1144 emit editTodoSignal(mActiveItem->todo());
1107 } 1145 }
1108} 1146}
1109void KOTodoView::cloneTodo() 1147void KOTodoView::cloneTodo()
1110{ 1148{
1111 if (mActiveItem) { 1149 if (mActiveItem) {
1112 emit cloneTodoSignal((Incidence*)mActiveItem->todo()); 1150 emit cloneTodoSignal((Incidence*)mActiveItem->todo());
1113 } 1151 }
1114} 1152}
1115void KOTodoView::cancelTodo() 1153void KOTodoView::cancelTodo()
1116{ 1154{
1117 if (mActiveItem) { 1155 if (mActiveItem) {
1118 emit cancelTodoSignal((Incidence*)mActiveItem->todo()); 1156 emit cancelTodoSignal((Incidence*)mActiveItem->todo());
1119 } 1157 }
1120} 1158}
1121void KOTodoView::moveTodo() 1159void KOTodoView::moveTodo()
1122{ 1160{
1123 if (mActiveItem) { 1161 if (mActiveItem) {
1124 emit moveTodoSignal((Incidence*)mActiveItem->todo()); 1162 emit moveTodoSignal((Incidence*)mActiveItem->todo());
1125 } 1163 }
1126} 1164}
1127void KOTodoView::beamTodo() 1165void KOTodoView::beamTodo()
1128{ 1166{
1129 if (mActiveItem) { 1167 if (mActiveItem) {
1130 emit beamTodoSignal((Incidence*)mActiveItem->todo()); 1168 emit beamTodoSignal((Incidence*)mActiveItem->todo());
1131 } 1169 }
1132} 1170}
1133 1171
@@ -1346,232 +1384,256 @@ void KOTodoView::itemClicked(QListViewItem *item)
1346 pendingSubtodo = 0; 1384 pendingSubtodo = 0;
1347 } else { 1385 } else {
1348 Todo* newParent = todoItem->todo(); 1386 Todo* newParent = todoItem->todo();
1349 Todo* newSub = pendingSubtodo->todo(); 1387 Todo* newSub = pendingSubtodo->todo();
1350 pendingSubtodo = 0; 1388 pendingSubtodo = 0;
1351 emit reparentTodoSignal( newParent,newSub ); 1389 emit reparentTodoSignal( newParent,newSub );
1352 return; 1390 return;
1353 } 1391 }
1354 } 1392 }
1355 1393
1356} 1394}
1357 1395
1358void KOTodoView::setDocumentId( const QString &id ) 1396void KOTodoView::setDocumentId( const QString &id )
1359{ 1397{
1360 1398
1361 mDocPrefs->setDoc( id ); 1399 mDocPrefs->setDoc( id );
1362} 1400}
1363 1401
1364void KOTodoView::itemStateChanged( QListViewItem *item ) 1402void KOTodoView::itemStateChanged( QListViewItem *item )
1365{ 1403{
1366 if (!item) return; 1404 if (!item) return;
1367 1405
1368 KOTodoViewItem *todoItem = (KOTodoViewItem *)item; 1406 KOTodoViewItem *todoItem = (KOTodoViewItem *)item;
1369 1407
1370// kdDebug() << "KOTodoView::itemStateChanged(): " << todoItem->todo()->summary() << endl; 1408// kdDebug() << "KOTodoView::itemStateChanged(): " << todoItem->todo()->summary() << endl;
1371 1409
1372 if( mDocPrefs ) mDocPrefs->writeEntry( todoItem->todo()->uid(), todoItem->isOpen() ); 1410 if( mDocPrefs ) mDocPrefs->writeEntry( todoItem->todo()->uid(), todoItem->isOpen() );
1373} 1411}
1374 1412
1375void KOTodoView::saveLayout(KConfig *config, const QString &group) const 1413void KOTodoView::saveLayout(KConfig *config, const QString &group) const
1376{ 1414{
1377 mTodoListView->saveLayout(config,group); 1415 mTodoListView->saveLayout(config,group);
1378} 1416}
1379 1417
1380void KOTodoView::restoreLayout(KConfig *config, const QString &group) 1418void KOTodoView::restoreLayout(KConfig *config, const QString &group)
1381{ 1419{
1382 mTodoListView->restoreLayout(config,group); 1420 mTodoListView->restoreLayout(config,group);
1383} 1421}
1384 1422
1385void KOTodoView::processSelectionChange() 1423void KOTodoView::processSelectionChange()
1386{ 1424{
1387// kdDebug() << "KOTodoView::processSelectionChange()" << endl; 1425// kdDebug() << "KOTodoView::processSelectionChange()" << endl;
1388 1426
1389 KOTodoViewItem *item = 1427 KOTodoViewItem *item =
1390 static_cast<KOTodoViewItem *>( mTodoListView->selectedItem() ); 1428 static_cast<KOTodoViewItem *>( mTodoListView->selectedItem() );
1391 1429
1392 if ( !item ) { 1430 if ( !item ) {
1393 emit incidenceSelected( 0 ); 1431 emit incidenceSelected( 0 );
1432 mNewSubBut->setEnabled( false );
1394 } else { 1433 } else {
1395 emit incidenceSelected( item->todo() ); 1434 emit incidenceSelected( item->todo() );
1435 mNewSubBut->setEnabled( true );
1396 } 1436 }
1397} 1437}
1398 1438
1399void KOTodoView::modified(bool b) 1439void KOTodoView::modified(bool b)
1400{ 1440{
1401 emit isModified(b); 1441 emit isModified(b);
1402} 1442}
1403void KOTodoView::setTodoModified( Todo* todo ) 1443void KOTodoView::setTodoModified( Todo* todo )
1404{ 1444{
1405 todoModified( todo, KOGlobals::UNKNOWN_MODIFIED ); 1445 todoModified( todo, KOGlobals::UNKNOWN_MODIFIED );
1406} 1446}
1407void KOTodoView::clearSelection() 1447void KOTodoView::clearSelection()
1408{ 1448{
1409 mTodoListView->selectAll( false ); 1449 mTodoListView->selectAll( false );
1410} 1450}
1411void KOTodoView::setAllOpen() 1451void KOTodoView::setAllOpen()
1412{ 1452{
1413 if ( isFlatDisplay ) { 1453 if ( isFlatDisplay ) {
1414 isFlatDisplay = false; 1454 isFlatDisplay = false;
1415 mPopupMenu->setItemChecked( 8,false ); 1455 mPopupMenu->setItemChecked( 8,false );
1416 updateView(); 1456 updateView();
1417 } else { 1457 } else {
1418 storeCurrentItem(); 1458 storeCurrentItem();
1419 } 1459 }
1420 setOpen(mTodoListView->firstChild(), true); 1460 setOpen(mTodoListView->firstChild(), true);
1421 resetCurrentItem(); 1461 resetCurrentItem();
1422} 1462}
1423void KOTodoView::setAllClose() 1463void KOTodoView::setAllClose()
1424{ 1464{
1425 if ( isFlatDisplay ) { 1465 if ( isFlatDisplay ) {
1426 isFlatDisplay = false; 1466 isFlatDisplay = false;
1427 mPopupMenu->setItemChecked( 8,false ); 1467 mPopupMenu->setItemChecked( 8,false );
1428 updateView(); 1468 updateView();
1429 } else { 1469 } else {
1430 storeCurrentItem(); 1470 storeCurrentItem();
1431 } 1471 }
1432 setOpen(mTodoListView->firstChild(), false); 1472 setOpen(mTodoListView->firstChild(), false);
1433 resetCurrentItem(); 1473 resetCurrentItem();
1434} 1474}
1435void KOTodoView::setOpen( QListViewItem* item, bool setOpenI) 1475void KOTodoView::setOpen( QListViewItem* item, bool setOpenI)
1436{ 1476{
1437 1477
1438 while ( item ) { 1478 while ( item ) {
1439 setOpen( item->firstChild(), setOpenI ); 1479 setOpen( item->firstChild(), setOpenI );
1440 item->setOpen( setOpenI ); 1480 item->setOpen( setOpenI );
1441 item = item->nextSibling(); 1481 item = item->nextSibling();
1442 } 1482 }
1443} 1483}
1444 1484
1445void KOTodoView::displayAllFlat() 1485void KOTodoView::displayAllFlat()
1446{ 1486{
1447 storeCurrentItem(); 1487 storeCurrentItem();
1448 pendingSubtodo = 0; 1488 pendingSubtodo = 0;
1449 if ( mBlockUpdate ) { 1489 if ( mBlockUpdate ) {
1450 return; 1490 return;
1451 } 1491 }
1452 mPopupMenu->setItemChecked( 8,true ); 1492 mPopupMenu->setItemChecked( 8,true );
1453 isFlatDisplay = true; 1493 isFlatDisplay = true;
1454 QPtrList<Todo> todoList = calendar()->todos(); 1494 QPtrList<Todo> todoList = calendar()->todos();
1455 mTodoMap.clear(); 1495 mTodoMap.clear();
1456 mTodoListView->clear(); 1496 mTodoListView->clear();
1457 Todo *todo; 1497 Todo *todo;
1458 for(todo = todoList.first(); todo; todo = todoList.next()) { 1498 for(todo = todoList.first(); todo; todo = todoList.next()) {
1459 KOTodoViewItem *todoItem = new KOTodoViewItem(mTodoListView,todo,this); 1499 KOTodoViewItem *todoItem = new KOTodoViewItem(mTodoListView,todo,this);
1460 mTodoMap.insert(todo,todoItem); 1500 mTodoMap.insert(todo,todoItem);
1461 } 1501 }
1462 resetCurrentItem(); 1502 resetCurrentItem();
1463} 1503}
1464 1504
1465void KOTodoView::setAllFlat() 1505void KOTodoView::setAllFlat()
1466{ 1506{
1467 if ( isFlatDisplay ) { 1507 if ( isFlatDisplay ) {
1468 isFlatDisplay = false; 1508 isFlatDisplay = false;
1469 mPopupMenu->setItemChecked( 8,false ); 1509 mPopupMenu->setItemChecked( 8,false );
1470 updateView(); 1510 updateView();
1471 return; 1511 return;
1472 } 1512 }
1473 displayAllFlat(); 1513 displayAllFlat();
1474} 1514}
1475 1515
1476void KOTodoView::purgeCompleted() 1516void KOTodoView::purgeCompleted()
1477{ 1517{
1478 emit purgeCompletedSignal(); 1518 emit purgeCompletedSignal();
1479 1519
1480} 1520}
1481void KOTodoView::toggleQuickTodo() 1521void KOTodoView::toggleQuickTodo()
1482{ 1522{
1483 if ( mQuickAdd->isVisible() ) { 1523 if ( mQuickBar->isVisible() ) {
1484 mQuickAdd->hide(); 1524 mQuickBar->hide();
1485 KOPrefs::instance()->mEnableQuickTodo = false; 1525 KOPrefs::instance()->mEnableQuickTodo = false;
1486 } 1526 }
1487 else { 1527 else {
1488 mQuickAdd->show(); 1528 mQuickBar->show();
1489 KOPrefs::instance()->mEnableQuickTodo = true; 1529 KOPrefs::instance()->mEnableQuickTodo = true;
1490 } 1530 }
1491 mPopupMenu->setItemChecked(4,KOPrefs::instance()->mEnableQuickTodo); 1531 mPopupMenu->setItemChecked(4,KOPrefs::instance()->mEnableQuickTodo);
1492 mItemPopupMenu->setItemChecked( 34 , KOPrefs::instance()->mEnableQuickTodo ); 1532 mItemPopupMenu->setItemChecked( 34 , KOPrefs::instance()->mEnableQuickTodo );
1493} 1533}
1494 1534
1495void KOTodoView::toggleRunning() 1535void KOTodoView::toggleRunning()
1496{ 1536{
1497 KOPrefs::instance()->mHideNonStartedTodos = !KOPrefs::instance()->mHideNonStartedTodos; 1537 KOPrefs::instance()->mHideNonStartedTodos = !KOPrefs::instance()->mHideNonStartedTodos;
1498 mPopupMenu->setItemChecked(5,KOPrefs::instance()->mHideNonStartedTodos); 1538 mPopupMenu->setItemChecked(5,KOPrefs::instance()->mHideNonStartedTodos);
1499 mItemPopupMenu->setItemChecked( 35 , KOPrefs::instance()->mHideNonStartedTodos ); 1539 mItemPopupMenu->setItemChecked( 35 , KOPrefs::instance()->mHideNonStartedTodos );
1500 updateView(); 1540 updateView();
1541 if ( KOPrefs::instance()->mHideNonStartedTodos )
1542 topLevelWidget()->setCaption(i18n("Hide not Running"));
1543 else
1544 topLevelWidget()->setCaption(i18n("Show not Running"));
1501} 1545}
1502 1546
1503void KOTodoView::toggleCompleted() 1547void KOTodoView::toggleCompleted()
1504{ 1548{
1505 KOPrefs::instance()->mShowCompletedTodo = !KOPrefs::instance()->mShowCompletedTodo; 1549 KOPrefs::instance()->mShowCompletedTodo = !KOPrefs::instance()->mShowCompletedTodo;
1506 mPopupMenu->setItemChecked( 3,KOPrefs::instance()->mShowCompletedTodo ); 1550 mPopupMenu->setItemChecked( 3,KOPrefs::instance()->mShowCompletedTodo );
1507 mItemPopupMenu->setItemChecked( 33 , KOPrefs::instance()->mShowCompletedTodo ); 1551 mItemPopupMenu->setItemChecked( 33 , KOPrefs::instance()->mShowCompletedTodo );
1508 updateView(); 1552 updateView();
1553 if ( KOPrefs::instance()->mShowCompletedTodo )
1554 topLevelWidget()->setCaption(i18n("Show Completed"));
1555 else
1556 topLevelWidget()->setCaption(i18n("Hide Completed"));
1509} 1557}
1510 1558
1511void KOTodoView::addQuickTodo() 1559void KOTodoView::addQuickTodo()
1512{ 1560{
1561 addQuickTodoPar( 0 );
1562}
1563void KOTodoView::addQuickTodoPar( Todo * parentTodo)
1564{
1513 Todo *todo = new Todo(); 1565 Todo *todo = new Todo();
1514 todo->setSummary(mQuickAdd->text()); 1566 todo->setSummary(mQuickAdd->text());
1515 todo->setOrganizer(KOPrefs::instance()->email()); 1567 todo->setOrganizer(KOPrefs::instance()->email());
1568 if ( parentTodo ) {
1569 todo->setRelatedTo(parentTodo);
1570
1571 todo->setCategories (parentTodo->categoriesStr ());
1572 todo->setSecrecy (parentTodo->secrecy ());
1573 if ( parentTodo->priority() < 3 )
1574 todo->setPriority( parentTodo->priority() );
1575 todo->setCalID( parentTodo->calID() );
1576 } else {
1516 CalFilter * cf = mCalendar->filter(); 1577 CalFilter * cf = mCalendar->filter();
1517 if ( cf ) { 1578 if ( cf ) {
1518 if ( cf->isEnabled()&& cf->showCategories()) { 1579 if ( cf->isEnabled()&& cf->showCategories()) {
1519 todo->setCategories(cf->categoryList()); 1580 todo->setCategories(cf->categoryList());
1520 } 1581 }
1521 if ( cf->isEnabled() ) 1582 if ( cf->isEnabled() )
1522 todo->setSecrecy( cf->getSecrecy()); 1583 todo->setSecrecy( cf->getSecrecy());
1523 } 1584 }
1585 }
1524 mCalendar->addTodo(todo); 1586 mCalendar->addTodo(todo);
1525 mQuickAdd->setText(""); 1587 mQuickAdd->setText("");
1526 todoModified (todo, KOGlobals::EVENTADDED ); 1588 todoModified (todo, KOGlobals::EVENTADDED );
1527 updateView(); 1589 updateView();
1528}
1529 1590
1591}
1530void KOTodoView::keyPressEvent ( QKeyEvent * e ) 1592void KOTodoView::keyPressEvent ( QKeyEvent * e )
1531{ 1593{
1532 // e->ignore(); 1594 // e->ignore();
1533 //return; 1595 //return;
1534 //qDebug("KOTodoView::keyPressEvent "); 1596 //qDebug("KOTodoView::keyPressEvent ");
1535 switch ( e->key() ) { 1597 switch ( e->key() ) {
1536 case Qt::Key_Down: 1598 case Qt::Key_Down:
1537 case Qt::Key_Up: 1599 case Qt::Key_Up:
1538 QWidget::keyPressEvent ( e ); 1600 QWidget::keyPressEvent ( e );
1539 break; 1601 break;
1540 1602
1541 case Qt::Key_Q: 1603 case Qt::Key_Q:
1542 toggleQuickTodo(); 1604 toggleQuickTodo();
1543 break; 1605 break;
1544 case Qt::Key_U: 1606 case Qt::Key_U:
1545 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) { 1607 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) {
1546 mActiveItem = (KOTodoViewItem*)mTodoListView->currentItem(); 1608 mActiveItem = (KOTodoViewItem*)mTodoListView->currentItem();
1547 unparentTodo(); 1609 unparentTodo();
1548 e->accept(); 1610 e->accept();
1549 } else 1611 } else
1550 e->ignore(); 1612 e->ignore();
1551 break; 1613 break;
1552 case Qt::Key_S: 1614 case Qt::Key_S:
1553 if ( e->state() == Qt::ControlButton ) { 1615 if ( e->state() == Qt::ControlButton ) {
1554 e->ignore(); 1616 e->ignore();
1555 break; 1617 break;
1556 } 1618 }
1557 if ( e->state() == Qt::ShiftButton ) { 1619 if ( e->state() == Qt::ShiftButton ) {
1558 mActiveItem = (KOTodoViewItem*)mTodoListView->currentItem(); 1620 mActiveItem = (KOTodoViewItem*)mTodoListView->currentItem();
1559 reparentTodo(); 1621 reparentTodo();
1560 e->accept(); 1622 e->accept();
1561 } else 1623 } else
1562 e->ignore(); 1624 e->ignore();
1563 break; 1625 break;
1564 case Qt::Key_P: 1626 case Qt::Key_P:
1565 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) { 1627 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) {
1566 mActiveItem = (KOTodoViewItem*)mTodoListView->currentItem(); 1628 mActiveItem = (KOTodoViewItem*)mTodoListView->currentItem();
1567 if ( pendingSubtodo ) 1629 if ( pendingSubtodo )
1568 itemClicked(mActiveItem); 1630 itemClicked(mActiveItem);
1569 e->accept(); 1631 e->accept();
1570 } else 1632 } else
1571 e->ignore(); 1633 e->ignore();
1572 break; 1634 break;
1573 case Qt::Key_Escape: 1635 case Qt::Key_Escape:
1574 if ( pendingSubtodo ) { 1636 if ( pendingSubtodo ) {
1575 itemClicked(0); 1637 itemClicked(0);
1576 e->accept(); 1638 e->accept();
1577 } else 1639 } else
diff --git a/korganizer/kotodoview.h b/korganizer/kotodoview.h
index 79cc756..a8e90e2 100644
--- a/korganizer/kotodoview.h
+++ b/korganizer/kotodoview.h
@@ -209,97 +209,100 @@ class KOTodoView : public KOrg::BaseView
209 209
210 void setAllOpen(); 210 void setAllOpen();
211 void setAllClose(); 211 void setAllClose();
212 void setAllFlat(); 212 void setAllFlat();
213 void displayAllFlat(); 213 void displayAllFlat();
214 214
215 void purgeCompleted(); 215 void purgeCompleted();
216 void toggleCompleted(); 216 void toggleCompleted();
217 void toggleRunning(); 217 void toggleRunning();
218 void toggleQuickTodo(); 218 void toggleQuickTodo();
219 void updateTodo( Todo *, int ); 219 void updateTodo( Todo *, int );
220 220
221 void itemClicked(QListViewItem *); 221 void itemClicked(QListViewItem *);
222 void itemStateChanged(QListViewItem *); 222 void itemStateChanged(QListViewItem *);
223 void modified(bool); 223 void modified(bool);
224 void itemDoubleClicked(QListViewItem *item); 224 void itemDoubleClicked(QListViewItem *item);
225 void resetFocusToList(); 225 void resetFocusToList();
226 void fillCategories (); 226 void fillCategories ();
227 void fillCal (); 227 void fillCal ();
228 void changedCal (int); 228 void changedCal (int);
229 229
230 signals: 230 signals:
231 void newTodoSignal(); 231 void newTodoSignal();
232 void newSubTodoSignal(Todo *); 232 void newSubTodoSignal(Todo *);
233 void unparentTodoSignal(Todo *); 233 void unparentTodoSignal(Todo *);
234 void reparentTodoSignal( Todo *,Todo * ); 234 void reparentTodoSignal( Todo *,Todo * );
235 void showTodoSignal(Todo *); 235 void showTodoSignal(Todo *);
236 236
237 void editTodoSignal(Todo *); 237 void editTodoSignal(Todo *);
238 void deleteTodoSignal(Todo *); 238 void deleteTodoSignal(Todo *);
239 void todoModifiedSignal (Todo *, int); 239 void todoModifiedSignal (Todo *, int);
240 240
241 void isModified(bool); 241 void isModified(bool);
242 void cloneTodoSignal( Incidence * ); 242 void cloneTodoSignal( Incidence * );
243 void cancelTodoSignal( Incidence * ); 243 void cancelTodoSignal( Incidence * );
244 void moveTodoSignal( Incidence * ); 244 void moveTodoSignal( Incidence * );
245 void beamTodoSignal( Incidence * ); 245 void beamTodoSignal( Incidence * );
246 void purgeCompletedSignal(); 246 void purgeCompletedSignal();
247 247
248 protected slots: 248 protected slots:
249 void toggleRunningItem(); 249 void toggleRunningItem();
250 void paintNeeded(); 250 void paintNeeded();
251 void processSelectionChange(); 251 void processSelectionChange();
252 void addQuickTodo(); 252 void addQuickTodo();
253 void setTodoModified( Todo* ); 253 void setTodoModified( Todo* );
254 void todoModified(Todo *, int ); 254 void todoModified(Todo *, int );
255 255
256 private: 256 private:
257 void addQuickTodoPar( Todo * parentTodo);
257 /* 258 /*
258 * the TodoEditor approach is rather unscaling in the long 259 * the TodoEditor approach is rather unscaling in the long
259 * run. 260 * run.
260 * Korganizer keeps it in memory and we need to update 261 * Korganizer keeps it in memory and we need to update
261 * 1. make KOTodoViewItem a QObject again? 262 * 1. make KOTodoViewItem a QObject again?
262 * 2. add a public method for setting one todo modified? 263 * 2. add a public method for setting one todo modified?
263 * 3. add a private method for setting a todo modified + friend here? 264 * 3. add a private method for setting a todo modified + friend here?
264 * -- zecke 2002-07-08 265 * -- zecke 2002-07-08
265 */ 266 */
266 KOTodoViewWhatsThis* mKOTodoViewWhatsThis; 267 KOTodoViewWhatsThis* mKOTodoViewWhatsThis;
267 friend class KOTodoListView; 268 friend class KOTodoListView;
268 void paintEvent(QPaintEvent * pevent); 269 void paintEvent(QPaintEvent * pevent);
269 bool mPendingUpdateBeforeRepaint; 270 bool mPendingUpdateBeforeRepaint;
270 friend class KOTodoViewItem; 271 friend class KOTodoViewItem;
271 QMap<Todo *,KOTodoViewItem *>::ConstIterator insertTodoItem(Todo *todo); 272 QMap<Todo *,KOTodoViewItem *>::ConstIterator insertTodoItem(Todo *todo);
272 void restoreItemState( QListViewItem * ); 273 void restoreItemState( QListViewItem * );
273 274
274 bool checkTodo( Todo * ); 275 bool checkTodo( Todo * );
275 bool isFlatDisplay; 276 bool isFlatDisplay;
276 void setOpen( QListViewItem*, bool setOpen); 277 void setOpen( QListViewItem*, bool setOpen);
277 KOTodoListView *mTodoListView; 278 KOTodoListView *mTodoListView;
278 QPopupMenu *mItemPopupMenu; 279 QPopupMenu *mItemPopupMenu;
279 QPopupMenu *mPopupMenu; 280 QPopupMenu *mPopupMenu;
280 QPopupMenu *mPriorityPopupMenu; 281 QPopupMenu *mPriorityPopupMenu;
281 QPopupMenu *mPercentageCompletedPopupMenu; 282 QPopupMenu *mPercentageCompletedPopupMenu;
282 QPopupMenu *mCategoryPopupMenu; 283 QPopupMenu *mCategoryPopupMenu;
283 QPopupMenu *mCalPopupMenu; 284 QPopupMenu *mCalPopupMenu;
284 285
285 QMap<int, int> mPercentage; 286 QMap<int, int> mPercentage;
286 QMap<int, int> mPriority; 287 QMap<int, int> mPriority;
287 QMap<int, QString> mCategory; 288 QMap<int, QString> mCategory;
288 KOTodoViewItem *mActiveItem; 289 KOTodoViewItem *mActiveItem;
289 290
290 QMap<Todo *,KOTodoViewItem *> mTodoMap; 291 QMap<Todo *,KOTodoViewItem *> mTodoMap;
291 QString mName; 292 QString mName;
293 QWidget* mQuickBar;
292 294
293 DocPrefs *mDocPrefs; 295 DocPrefs *mDocPrefs;
294 QString mCurrentDoc; 296 QString mCurrentDoc;
295 KOQuickTodo *mQuickAdd; 297 KOQuickTodo *mQuickAdd;
296 bool mBlockUpdate; 298 bool mBlockUpdate;
297 void keyPressEvent ( QKeyEvent * ) ; 299 void keyPressEvent ( QKeyEvent * ) ;
298 KOTodoViewItem * pendingSubtodo; 300 KOTodoViewItem * pendingSubtodo;
299 DateNavigator* mNavigator; 301 DateNavigator* mNavigator;
300 void storeCurrentItem(); 302 void storeCurrentItem();
301 void resetCurrentItem(); 303 void resetCurrentItem();
302 Incidence * mCurItem, *mCurItemRootParent, *mCurItemParent,*mCurItemAbove; 304 Incidence * mCurItem, *mCurItemRootParent, *mCurItemParent,*mCurItemAbove;
305 QPushButton * mNewSubBut;
303}; 306};
304 307
305#endif 308#endif