-rw-r--r-- | korganizer/kotodoview.cpp | 78 |
1 files changed, 70 insertions, 8 deletions
diff --git a/korganizer/kotodoview.cpp b/korganizer/kotodoview.cpp index a87e6fc..c23a8ee 100644 --- a/korganizer/kotodoview.cpp +++ b/korganizer/kotodoview.cpp @@ -499,20 +499,54 @@ KOTodoView::KOTodoView(Calendar *calendar,QWidget* parent,const char* name) : { mCategoryPopupMenu = 0; mPendingUpdateBeforeRepaint = false; isFlatDisplay = false; mNavigator = 0; QBoxLayout *topLayout = new QVBoxLayout(this); mName = QString ( name ); mBlockUpdate = false; - mQuickAdd = new KOQuickTodo(this); - topLayout->addWidget(mQuickAdd); - - if ( !KOPrefs::instance()->mEnableQuickTodo ) mQuickAdd->hide(); + mQuickBar = new QWidget( this ); + topLayout->addWidget(mQuickBar); + + mQuickAdd = new KOQuickTodo(mQuickBar); + QBoxLayout *quickLayout = new QHBoxLayout(mQuickBar); + quickLayout->addWidget( mQuickAdd ); + QPushButton * flat = new QPushButton( "F",mQuickBar ); + int fixwid = flat->sizeHint().height(); + if ( QApplication::desktop()->width() > 320 ) + fixwid *= 2; + flat->setFixedWidth( fixwid ); + connect ( flat, SIGNAL ( clicked()), SLOT ( setAllFlat())); + QPushButton * allopen = new QPushButton( "O",mQuickBar ); + allopen->setFixedWidth( fixwid ); + connect ( allopen, SIGNAL ( clicked()), SLOT ( setAllOpen())); + QPushButton * allclose = new QPushButton( "C",mQuickBar ); + allclose->setFixedWidth( fixwid ); + connect ( allclose, SIGNAL ( clicked()), SLOT ( setAllClose())); + QPushButton * s_done = new QPushButton( "D",mQuickBar ); + s_done->setFixedWidth( fixwid ); + connect ( s_done, SIGNAL ( clicked()), SLOT ( toggleCompleted())); + QPushButton * s_run = new QPushButton( "R",mQuickBar ); + s_run->setFixedWidth( fixwid ); + connect ( s_run, SIGNAL ( clicked()), SLOT ( toggleRunning())); + + mNewSubBut = new QPushButton( "sub",mQuickBar ); + mNewSubBut->setFixedWidth( fixwid*3/2 ); + connect ( mNewSubBut, SIGNAL ( clicked()), SLOT ( newSubTodo())); + mNewSubBut->setEnabled( false ); + quickLayout->addWidget( mNewSubBut ); + quickLayout->addWidget( s_done ); + quickLayout->addWidget( s_run ); + + quickLayout->addWidget( allopen ); + quickLayout->addWidget( allclose ); + quickLayout->addWidget( flat ); + + if ( !KOPrefs::instance()->mEnableQuickTodo ) mQuickBar->hide(); mTodoListView = new KOTodoListView(calendar,this, name ); topLayout->addWidget(mTodoListView); //mTodoListView->header()->setMaximumHeight(30); mTodoListView->setRootIsDecorated(true); mTodoListView->setAllColumnsShowFocus(true); mTodoListView->setShowSortIndicator(true); @@ -1077,17 +1111,21 @@ void KOTodoView::popupMenu(QListViewItem *item,const QPoint &p,int column) } void KOTodoView::newTodo() { emit newTodoSignal(); } void KOTodoView::newSubTodo() { + mActiveItem = (KOTodoViewItem*)mTodoListView->currentItem(); if (mActiveItem) { + if ( mQuickAdd->isVisible() && !mQuickAdd->text().isEmpty() && mQuickAdd->text() != i18n("Click to add a new Todo") ) { + addQuickTodoPar( mActiveItem->todo()); + } else emit newSubTodoSignal(mActiveItem->todo()); } } void KOTodoView::unparentTodo() { if (mActiveItem) { emit unparentTodoSignal(mActiveItem->todo()); } @@ -1386,18 +1424,20 @@ void KOTodoView::processSelectionChange() { // kdDebug() << "KOTodoView::processSelectionChange()" << endl; KOTodoViewItem *item = static_cast<KOTodoViewItem *>( mTodoListView->selectedItem() ); if ( !item ) { emit incidenceSelected( 0 ); + mNewSubBut->setEnabled( false ); } else { emit incidenceSelected( item->todo() ); + mNewSubBut->setEnabled( true ); } } void KOTodoView::modified(bool b) { emit isModified(b); } void KOTodoView::setTodoModified( Todo* todo ) @@ -1475,63 +1515,85 @@ void KOTodoView::setAllFlat() void KOTodoView::purgeCompleted() { emit purgeCompletedSignal(); } void KOTodoView::toggleQuickTodo() { - if ( mQuickAdd->isVisible() ) { - mQuickAdd->hide(); + if ( mQuickBar->isVisible() ) { + mQuickBar->hide(); KOPrefs::instance()->mEnableQuickTodo = false; } else { - mQuickAdd->show(); + mQuickBar->show(); KOPrefs::instance()->mEnableQuickTodo = true; } mPopupMenu->setItemChecked(4,KOPrefs::instance()->mEnableQuickTodo); mItemPopupMenu->setItemChecked( 34 , KOPrefs::instance()->mEnableQuickTodo ); } void KOTodoView::toggleRunning() { KOPrefs::instance()->mHideNonStartedTodos = !KOPrefs::instance()->mHideNonStartedTodos; mPopupMenu->setItemChecked(5,KOPrefs::instance()->mHideNonStartedTodos); mItemPopupMenu->setItemChecked( 35 , KOPrefs::instance()->mHideNonStartedTodos ); updateView(); + if ( KOPrefs::instance()->mHideNonStartedTodos ) + topLevelWidget()->setCaption(i18n("Hide not Running")); + else + topLevelWidget()->setCaption(i18n("Show not Running")); } void KOTodoView::toggleCompleted() { KOPrefs::instance()->mShowCompletedTodo = !KOPrefs::instance()->mShowCompletedTodo; mPopupMenu->setItemChecked( 3,KOPrefs::instance()->mShowCompletedTodo ); mItemPopupMenu->setItemChecked( 33 , KOPrefs::instance()->mShowCompletedTodo ); updateView(); + if ( KOPrefs::instance()->mShowCompletedTodo ) + topLevelWidget()->setCaption(i18n("Show Completed")); + else + topLevelWidget()->setCaption(i18n("Hide Completed")); } void KOTodoView::addQuickTodo() { + addQuickTodoPar( 0 ); +} +void KOTodoView::addQuickTodoPar( Todo * parentTodo) +{ Todo *todo = new Todo(); todo->setSummary(mQuickAdd->text()); todo->setOrganizer(KOPrefs::instance()->email()); + if ( parentTodo ) { + todo->setRelatedTo(parentTodo); + + todo->setCategories (parentTodo->categoriesStr ()); + todo->setSecrecy (parentTodo->secrecy ()); + if ( parentTodo->priority() < 3 ) + todo->setPriority( parentTodo->priority() ); + todo->setCalID( parentTodo->calID() ); + } else { CalFilter * cf = mCalendar->filter(); if ( cf ) { if ( cf->isEnabled()&& cf->showCategories()) { todo->setCategories(cf->categoryList()); } if ( cf->isEnabled() ) todo->setSecrecy( cf->getSecrecy()); } + } mCalendar->addTodo(todo); mQuickAdd->setText(""); todoModified (todo, KOGlobals::EVENTADDED ); updateView(); -} +} void KOTodoView::keyPressEvent ( QKeyEvent * e ) { // e->ignore(); //return; //qDebug("KOTodoView::keyPressEvent "); switch ( e->key() ) { case Qt::Key_Down: case Qt::Key_Up: |