summaryrefslogtreecommitdiffabout
path: root/korganizer/kotodoview.cpp
Unidiff
Diffstat (limited to 'korganizer/kotodoview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/kotodoview.cpp108
1 files changed, 85 insertions, 23 deletions
diff --git a/korganizer/kotodoview.cpp b/korganizer/kotodoview.cpp
index a87e6fc..c23a8ee 100644
--- a/korganizer/kotodoview.cpp
+++ b/korganizer/kotodoview.cpp
@@ -504,10 +504,44 @@ KOTodoView::KOTodoView(Calendar *calendar,QWidget* parent,const char* name) :
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);
@@ -1082,8 +1116,12 @@ void KOTodoView::newTodo()
1082 1116
1083void KOTodoView::newSubTodo() 1117void KOTodoView::newSubTodo()
1084{ 1118{
1119 mActiveItem = (KOTodoViewItem*)mTodoListView->currentItem();
1085 if (mActiveItem) { 1120 if (mActiveItem) {
1086 emit newSubTodoSignal(mActiveItem->todo()); 1121 if ( mQuickAdd->isVisible() && !mQuickAdd->text().isEmpty() && mQuickAdd->text() != i18n("Click to add a new Todo") ) {
1122 addQuickTodoPar( mActiveItem->todo());
1123 } else
1124 emit newSubTodoSignal(mActiveItem->todo());
1087 } 1125 }
1088} 1126}
1089void KOTodoView::unparentTodo() 1127void KOTodoView::unparentTodo()
@@ -1391,8 +1429,10 @@ void KOTodoView::processSelectionChange()
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
@@ -1480,12 +1520,12 @@ void KOTodoView::purgeCompleted()
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);
@@ -1498,6 +1538,10 @@ void KOTodoView::toggleRunning()
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()
@@ -1506,27 +1550,45 @@ void KOTodoView::toggleCompleted()
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{
1513 Todo *todo = new Todo(); 1561 addQuickTodoPar( 0 );
1514 todo->setSummary(mQuickAdd->text());
1515 todo->setOrganizer(KOPrefs::instance()->email());
1516 CalFilter * cf = mCalendar->filter();
1517 if ( cf ) {
1518 if ( cf->isEnabled()&& cf->showCategories()) {
1519 todo->setCategories(cf->categoryList());
1520 }
1521 if ( cf->isEnabled() )
1522 todo->setSecrecy( cf->getSecrecy());
1523 }
1524 mCalendar->addTodo(todo);
1525 mQuickAdd->setText("");
1526 todoModified (todo, KOGlobals::EVENTADDED );
1527 updateView();
1528} 1562}
1563void KOTodoView::addQuickTodoPar( Todo * parentTodo)
1564{
1565 Todo *todo = new Todo();
1566 todo->setSummary(mQuickAdd->text());
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 {
1577 CalFilter * cf = mCalendar->filter();
1578 if ( cf ) {
1579 if ( cf->isEnabled()&& cf->showCategories()) {
1580 todo->setCategories(cf->categoryList());
1581 }
1582 if ( cf->isEnabled() )
1583 todo->setSecrecy( cf->getSecrecy());
1584 }
1585 }
1586 mCalendar->addTodo(todo);
1587 mQuickAdd->setText("");
1588 todoModified (todo, KOGlobals::EVENTADDED );
1589 updateView();
1529 1590
1591}
1530void KOTodoView::keyPressEvent ( QKeyEvent * e ) 1592void KOTodoView::keyPressEvent ( QKeyEvent * e )
1531{ 1593{
1532 // e->ignore(); 1594 // e->ignore();