-rw-r--r-- | korganizer/kotodoview.cpp | 56 | ||||
-rw-r--r-- | korganizer/kotodoview.h | 18 | ||||
-rw-r--r-- | korganizer/kotodoviewitem.cpp | 2 |
3 files changed, 71 insertions, 5 deletions
diff --git a/korganizer/kotodoview.cpp b/korganizer/kotodoview.cpp index b2ff33b..99e6a3a 100644 --- a/korganizer/kotodoview.cpp +++ b/korganizer/kotodoview.cpp @@ -16,24 +16,27 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. As a special exception, permission is given to link this program with any edition of Qt, and distribute the resulting executable, without including the source code for Qt in the source distribution. */ #include <qlayout.h> #include <qheader.h> #include <qcursor.h> #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 <kiconloader.h> #include <kmessagebox.h> #include <libkcal/icaldrag.h> @@ -49,24 +52,64 @@ #else #include <qapplication.h> #endif #ifndef KORG_NOPRINTER #include "calprinter.h" #endif #include "docprefs.h" #include "kotodoview.h" 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 ); + + 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 ); +} + +void KOStopTodoPrefs::accept() +{ + qDebug("KOStopTodoPrefs::accept() "); + 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(); +} + + class KOTodoViewWhatsThis :public QWhatsThis { public: KOTodoViewWhatsThis( QWidget *wid, KOTodoView* view ) : QWhatsThis( wid ), _wid(wid),_view (view) { }; protected: virtual QString text( const QPoint& p) { return _view->getWhatsThisText(p) ; } private: QWidget* _wid; @@ -1118,39 +1161,44 @@ void KOTodoView::itemDoubleClicked(QListViewItem *item) if ( KOPrefs::instance()->mEditOnDoubleClick ) editItem( item ); else showItem( item , QPoint(), 0 ); } void KOTodoView::toggleRunningItem() { // qDebug("KOTodoView::toggleRunning() "); if ( ! mActiveItem ) return; Todo * t = mActiveItem->todo(); if ( t->isRunning() ) { -#if 0 - int result = KMessageBox::warningContinueCancel(this, - i18n("The todo\n%1\nis started.\nDo you want to set\nthe state to stopped?").arg(mActiveItem->text(0).left( 25 ) ),i18n("Todo is started"),i18n("Stop todo"),i18n("Cancel"), true); -#endif + + KOStopTodoPrefs tp ( t, this ); + tp.exec(); + + +#if 0 int result = KMessageBox::warningYesNoCancel(this, i18n("The todo\n%1\nis started.\nDo you want to set\nthe state to stopped?").arg(mActiveItem->text(0).left( 25 ) ),i18n("Todo is started"),i18n("Stop"),i18n("Stop+note")); if (result == KMessageBox::Cancel) return; 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); if (result != KMessageBox::Continue) return; t->setRunning( true ); mActiveItem->construct(); } } void KOTodoView::itemClicked(QListViewItem *item) { //qDebug("KOTodoView::itemClicked %d", item); diff --git a/korganizer/kotodoview.h b/korganizer/kotodoview.h index 1ffc34a..ceabdba 100644 --- a/korganizer/kotodoview.h +++ b/korganizer/kotodoview.h @@ -23,45 +23,63 @@ #ifndef KOTODOVIEW_H #define KOTODOVIEW_H #include <qfont.h> #include <qfontmetrics.h> #include <qlineedit.h> #include <qptrlist.h> #include <qstrlist.h> #include <qlistbox.h> #include <qpopupmenu.h> #include <qlabel.h> #include <qmap.h> +#include <qdialog.h> +#include <qlabel.h> #include <qlistview.h> #include <klistview.h> #include <libkcal/calendar.h> #include <libkcal/todo.h> #include <korganizer/baseview.h> #include "kotodoviewitem.h" #include "koprefs.h" #include "koglobals.h" #include "datenavigator.h" class QDragEnterEvent; class QDragMoveEvent; class QDragLeaveEvent; class QDropEvent; class KOTodoViewWhatsThis; class DocPrefs; + +class KOStopTodoPrefs : public QDialog +{ + Q_OBJECT + public: + KOStopTodoPrefs( Todo* todo, QWidget *parent=0, const char *name=0 ) ; + + +private slots: + void doNotSave(); + void accept(); +private: + Todo* mTodo; + +}; + class KOTodoListView : public KListView { Q_OBJECT public: KOTodoListView(Calendar *,QWidget *parent=0,const char *name=0); virtual ~KOTodoListView() {} signals: void paintNeeded(); void todoDropped(Todo *, int); void double_Clicked(QListViewItem *item); void reparentTodoSignal( Todo *,Todo * ); diff --git a/korganizer/kotodoviewitem.cpp b/korganizer/kotodoviewitem.cpp index f62aab8..0cf6e4c 100644 --- a/korganizer/kotodoviewitem.cpp +++ b/korganizer/kotodoviewitem.cpp @@ -351,25 +351,25 @@ bool KOTodoViewItem::isAlternate() item = static_cast<KOTodoViewItem *>(item->nextSibling()); } } return m_odd; } return false; } void KOTodoViewItem::paintCell(QPainter *p, const QColorGroup &cg, int column, int width, int alignment) { QColorGroup _cg = cg; QColorGroup::ColorRole role; - if ( KOPrefs::instance()->mTodoViewUsesForegroundColor ) + if ( KOPrefs::instance()->mTodoViewUsesForegroundColor && !mTodo->isRunning()) role = QColorGroup::Text; else role = QColorGroup::Base; //#ifndef KORG_NOLVALTERNATION if (isAlternate()) _cg.setColor(QColorGroup::Base, static_cast< KOTodoListView* >(listView())->alternateBackground()); bool setColor = KOPrefs::instance()->mTodoViewUsesCatColors; QColor colorToSet; if ( column == 0 && mTodo->calID() > 1 ) { setColor = true; colorToSet = KOPrefs::instance()->defaultColor( mTodo->calID() ); } else if ( setColor ) { |