-rw-r--r-- | korganizer/kotodoview.cpp | 49 |
1 files changed, 37 insertions, 12 deletions
diff --git a/korganizer/kotodoview.cpp b/korganizer/kotodoview.cpp index c5fae17..13e88ef 100644 --- a/korganizer/kotodoview.cpp +++ b/korganizer/kotodoview.cpp @@ -27,24 +27,26 @@ #include <qwhatsthis.h> #include <qdialog.h> #include <qlabel.h> #include <qpushbutton.h> #include <qinputdialog.h> #include <qvbox.h> #include <kdebug.h> #include "koprefs.h" #include <klocale.h> #include <kglobal.h> +#include <kdateedit.h> +#include "ktimeedit.h" #include <kiconloader.h> #include <kmessagebox.h> #include <libkcal/icaldrag.h> #include <libkcal/vcaldrag.h> #include <libkcal/calfilter.h> #include <libkcal/dndfactory.h> #include <libkcal/calendarresources.h> #include <libkcal/resourcecalendar.h> #include <kresources/resourceselectdialog.h> #include <libkcal/kincidenceformatter.h> #ifndef DESKTOP_VERSION @@ -63,48 +65,71 @@ using namespace KOrg; KOStopTodoPrefs::KOStopTodoPrefs( Todo* todo, QWidget *parent, const char *name ) : QDialog( parent, name, true ) { mTodo = todo; setCaption( i18n("Stop todo") ); QVBoxLayout* lay = new QVBoxLayout( this ); lay->setSpacing( 3 ); lay->setMargin( 3 ); QLabel * lab = new QLabel( i18n("%1\nis running!").arg( todo->summary() ), this ); lay->addWidget( lab ); lab->setAlignment( AlignHCenter ); - + lab = new QLabel( i18n("Additional Comment:"), this ); + lay->addWidget( lab ); + mComment = new QLineEdit( this ); + lay->addWidget( mComment ); + QHBox * start = new QHBox ( this ); + lay->addWidget( start ); + lab = new QLabel( i18n("Start:"), start ); + QHBox * end = new QHBox ( this ); + lay->addWidget( end ); + lab = new QLabel( i18n("End:"), end ); + sde = new KDateEdit( start ); + ste = new KOTimeEdit( start ); + connect ( sde,SIGNAL(setTimeTo( QTime ) ),ste , SLOT ( setTime(QTime ) ) ); + ede = new KDateEdit( end ); + ete = new KOTimeEdit(end ); + connect ( ede,SIGNAL(setTimeTo( QTime ) ),ete , SLOT ( setTime(QTime ) ) ); + sde->setDate( mTodo->runStart().date() ); + ste->setTime( mTodo->runStart().time() ); + ede->setDate( QDate::currentDate()); + ete->setTime( QTime::currentTime() ); QPushButton * ok = new QPushButton( i18n("Stop and save"), this ); lay->addWidget( ok ); QPushButton * cancel = new QPushButton( i18n("Continue running"), this ); lay->addWidget( cancel ); connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); ok = new QPushButton( i18n("Stop - do not save"), this ); connect ( ok,SIGNAL(clicked() ),this , SLOT ( doNotSave() ) ); lay->addWidget( ok ); - resize( 200, 200 ); + if (QApplication::desktop()->width() < 320 ) + resize( 240, 200 ); + else + resize( 320, 200 ); + } void KOStopTodoPrefs::accept() { - qDebug("KOStopTodoPrefs::accept() "); - - -#if 0 - t->setRunningFalse( comment ); - - t->setRunning( false ); -#endif - + QDateTime start = QDateTime( sde->date(), ste->getTime() ); + QDateTime stop = QDateTime( ede->date(), ete->getTime() ); + if ( start > stop ) { + KMessageBox::sorry(this, + i18n("The start time is\nafter the end time!"), + i18n("Time mismatch!")); + return; + } + mTodo->saveRunningInfo( mComment->text(), start, stop ); QDialog::accept(); } void KOStopTodoPrefs::doNotSave() { int result = KMessageBox::warningContinueCancel(this, i18n("Do you really want to set\nthe state to stopped\nwithout saving the data?"),mTodo->summary() ); if (result != KMessageBox::Continue) return; mTodo->stopRunning(); QDialog::accept(); } @@ -1190,25 +1215,25 @@ void KOTodoView::toggleRunningItem() if ( result == KMessageBox::No ) { QString comment = QInputDialog::getText(mActiveItem->text(0).left( 25 ),i18n("Comment for todo:") ); t->setRunningFalse( comment ); } else { t->setRunning( false ); } mActiveItem->construct(); #endif } else { int result = KMessageBox::warningContinueCancel(this, - i18n("The todo\n%1\nis stopped.\nDo you want to set\nthe state to started?").arg(mActiveItem->text(0).left( 25 ) ),i18n("Todo is stopped"),i18n("Start todo"),i18n("Cancel"), true); + i18n("<center>%1</center> <center>is not running. Do you want to set\nthe state to running?</center>").arg(mActiveItem->text(0).left( 25 ) ),i18n("Start todo"),i18n("Start todo"),i18n("Cancel"), true); if (result != KMessageBox::Continue) return; t->setRunning( true ); mActiveItem->construct(); } } void KOTodoView::itemClicked(QListViewItem *item) { //qDebug("KOTodoView::itemClicked %d", item); if (!item) { if ( pendingSubtodo != 0 ) { topLevelWidget()->setCaption(i18n("Reparenting aborted!")); |