From 0a33f91e166747406ca2ccb5819881feeecfdb40 Mon Sep 17 00:00:00 2001 From: zautrix Date: Sun, 13 Feb 2005 11:55:52 +0000 Subject: todo recurchanges --- (limited to 'korganizer/kotodoeditor.cpp') diff --git a/korganizer/kotodoeditor.cpp b/korganizer/kotodoeditor.cpp index 70dfbd1..069dda8 100644 --- a/korganizer/kotodoeditor.cpp +++ b/korganizer/kotodoeditor.cpp @@ -30,6 +30,7 @@ #include #include #include +#include #include #include @@ -43,6 +44,7 @@ #include #include #include +#include #include "koprefs.h" #include "kolocationbox.h" @@ -68,7 +70,18 @@ void KOTodoEditor::init() { setupGeneral(); setupAttendeesTab(); + setupRecurrence(); + connect(mGeneral,SIGNAL(datesChecked()),this ,SLOT(checkRecurrence())); } +void KOTodoEditor::setupRecurrence() +{ + QFrame *topFrame = addPage( i18n("Recurrence") ); + QBoxLayout *topLayout = new QVBoxLayout( topFrame ); + + mRecurrence = new KOEditorRecurrence( topFrame ); + topLayout->addWidget( mRecurrence ); +} + void KOTodoEditor::setCategories( QString s ) { mGeneral->setCategories(s); @@ -194,6 +207,7 @@ void KOTodoEditor::editTodo(Todo *todo, bool editDescription) showPage( 0 ); mGeneral->setFocusOn( 2 ); } + checkRecurrence(); } void KOTodoEditor::newTodo(QDateTime due,Todo *relatedTodo,bool allDay) @@ -287,8 +301,33 @@ void KOTodoEditor::setDefaults(QDateTime due,Todo *relatedEvent,bool allDay) } else mGeneral->setFocusOn( 2 ); + tabWidget()->setTabEnabled ( mRecurrence->parentWidget(), false ); + mRecurrence->setDefaults(QDateTime::currentDateTime(),QDateTime::currentDateTime().addSecs( 3600 ),true); +} +void KOTodoEditor::checkRecurrence() +{ + if ( mGeneral->mDueCheck->isChecked() && mGeneral->mStartCheck->isChecked()) { + tabWidget()->setTabEnabled ( mRecurrence->parentWidget(), true ); + + if ( mTodo ) + mRecurrence->readEvent( mTodo ); + else { + bool time = mGeneral->mTimeButton->isChecked(); + QDateTime from,to; + if ( time ) { + to = QDateTime( mGeneral->mDueDateEdit->date(), mGeneral->mDueTimeEdit->getTime() ) ; + from = QDateTime( mGeneral->mStartDateEdit->date(),mGeneral->mStartTimeEdit->getTime( )) ; + } else { + to = QDateTime( mGeneral->mDueDateEdit->date(), QTime( 0,0,0) ) ; + from = QDateTime( mGeneral->mStartDateEdit->date(),QTime( 0,0,0) ) ; + } + mRecurrence->setDefaults(from,to,!time); + } + } else { + tabWidget()->setTabEnabled ( mRecurrence->parentWidget(), false ); + mRecurrence->setDefaults(QDateTime::currentDateTime(),QDateTime::currentDateTime().addSecs( 3600 ),true); + } } - void KOTodoEditor::readTodo(Todo *todo) { mGeneral->readTodo(todo); @@ -308,7 +347,11 @@ void KOTodoEditor::writeTodo(Todo *event) // set related event, i.e. parent to-do in this case. if (mRelatedTodo) { event->setRelatedTo(mRelatedTodo); - } + } + if ( mGeneral->mDueCheck->isChecked() && mGeneral->mStartCheck->isChecked()) { + mRecurrence->writeEvent(event); + } else + event->recurrence()->unsetRecurs(); } bool KOTodoEditor::validateInput() -- cgit v0.9.0.2