summaryrefslogtreecommitdiffabout
path: root/korganizer
Unidiff
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/kotodoeditor.cpp1
-rw-r--r--korganizer/kotodoview.cpp108
-rw-r--r--korganizer/kotodoview.h3
3 files changed, 89 insertions, 23 deletions
diff --git a/korganizer/kotodoeditor.cpp b/korganizer/kotodoeditor.cpp
index 555c1b1..100a81b 100644
--- a/korganizer/kotodoeditor.cpp
+++ b/korganizer/kotodoeditor.cpp
@@ -295,12 +295,13 @@ void KOTodoEditor::setDefaults(QDateTime due,Todo *relatedEvent,bool allDay)
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();
diff --git a/korganizer/kotodoview.cpp b/korganizer/kotodoview.cpp
index a87e6fc..c23a8ee 100644
--- a/korganizer/kotodoview.cpp
+++ b/korganizer/kotodoview.cpp
@@ -501,16 +501,50 @@ KOTodoView::KOTodoView(Calendar *calendar,QWidget* parent,const char* name) :
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);
@@ -1079,14 +1113,18 @@ void 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) {
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()
1090{ 1128{
1091 if (mActiveItem) { 1129 if (mActiveItem) {
1092 emit unparentTodoSignal(mActiveItem->todo()); 1130 emit unparentTodoSignal(mActiveItem->todo());
@@ -1388,14 +1426,16 @@ void KOTodoView::processSelectionChange()
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);
@@ -1477,59 +1517,81 @@ void 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{
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();
1533 //return; 1595 //return;
1534 //qDebug("KOTodoView::keyPressEvent "); 1596 //qDebug("KOTodoView::keyPressEvent ");
1535 switch ( e->key() ) { 1597 switch ( e->key() ) {
diff --git a/korganizer/kotodoview.h b/korganizer/kotodoview.h
index 79cc756..a8e90e2 100644
--- a/korganizer/kotodoview.h
+++ b/korganizer/kotodoview.h
@@ -251,12 +251,13 @@ class KOTodoView : public KOrg::BaseView
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?
@@ -286,20 +287,22 @@ class KOTodoView : public KOrg::BaseView
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