-rw-r--r-- | korganizer/kotodoview.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/korganizer/kotodoview.cpp b/korganizer/kotodoview.cpp index 07bfdbf..a12c43e 100644 --- a/korganizer/kotodoview.cpp +++ b/korganizer/kotodoview.cpp | |||
@@ -29,221 +29,230 @@ | |||
29 | #include <qlabel.h> | 29 | #include <qlabel.h> |
30 | #include <qpushbutton.h> | 30 | #include <qpushbutton.h> |
31 | 31 | ||
32 | #include <qinputdialog.h> | 32 | #include <qinputdialog.h> |
33 | 33 | ||
34 | #include <qvbox.h> | 34 | #include <qvbox.h> |
35 | #include <kdebug.h> | 35 | #include <kdebug.h> |
36 | #include "koprefs.h" | 36 | #include "koprefs.h" |
37 | #include <klocale.h> | 37 | #include <klocale.h> |
38 | #include <kglobal.h> | 38 | #include <kglobal.h> |
39 | #include <kdateedit.h> | 39 | #include <kdateedit.h> |
40 | #include "ktimeedit.h" | 40 | #include "ktimeedit.h" |
41 | #include <kiconloader.h> | 41 | #include <kiconloader.h> |
42 | #include <kmessagebox.h> | 42 | #include <kmessagebox.h> |
43 | 43 | ||
44 | #include <libkcal/icaldrag.h> | 44 | #include <libkcal/icaldrag.h> |
45 | #include <libkcal/vcaldrag.h> | 45 | #include <libkcal/vcaldrag.h> |
46 | #include <libkcal/calfilter.h> | 46 | #include <libkcal/calfilter.h> |
47 | #include <libkcal/dndfactory.h> | 47 | #include <libkcal/dndfactory.h> |
48 | #include <libkcal/calendarresources.h> | 48 | #include <libkcal/calendarresources.h> |
49 | #include <libkcal/resourcecalendar.h> | 49 | #include <libkcal/resourcecalendar.h> |
50 | #include <kresources/resourceselectdialog.h> | 50 | #include <kresources/resourceselectdialog.h> |
51 | #include <libkcal/kincidenceformatter.h> | 51 | #include <libkcal/kincidenceformatter.h> |
52 | #ifndef DESKTOP_VERSION | 52 | #ifndef DESKTOP_VERSION |
53 | #include <qpe/qpeapplication.h> | 53 | #include <qpe/qpeapplication.h> |
54 | #else | 54 | #else |
55 | #include <qapplication.h> | 55 | #include <qapplication.h> |
56 | #endif | 56 | #endif |
57 | #ifndef KORG_NOPRINTER | 57 | #ifndef KORG_NOPRINTER |
58 | #include "calprinter.h" | 58 | #include "calprinter.h" |
59 | #endif | 59 | #endif |
60 | #include "docprefs.h" | 60 | #include "docprefs.h" |
61 | 61 | ||
62 | #include "kotodoview.h" | 62 | #include "kotodoview.h" |
63 | using namespace KOrg; | 63 | using namespace KOrg; |
64 | 64 | ||
65 | 65 | ||
66 | KOStartTodoPrefs::KOStartTodoPrefs( QString sum, QWidget *parent, const char *name ) : | 66 | KOStartTodoPrefs::KOStartTodoPrefs( QString sum, QWidget *parent, const char *name ) : |
67 | QDialog( parent, name, true ) | 67 | QDialog( parent, name, true ) |
68 | { | 68 | { |
69 | mStopAll = true; | 69 | mStopAll = true; |
70 | setCaption( i18n("Start todo") ); | 70 | setCaption( i18n("Start todo") ); |
71 | QVBoxLayout* lay = new QVBoxLayout( this ); | 71 | QVBoxLayout* lay = new QVBoxLayout( this ); |
72 | lay->setSpacing( 3 ); | 72 | lay->setSpacing( 3 ); |
73 | lay->setMargin( 3 ); | 73 | lay->setMargin( 3 ); |
74 | QLabel * lab = new QLabel( i18n("<b>%1\n</b>").arg( sum ), this ); | 74 | QLabel * lab = new QLabel( i18n("<b>%1\n</b>").arg( sum ), this ); |
75 | lay->addWidget( lab ); | 75 | lay->addWidget( lab ); |
76 | lab->setAlignment( AlignCenter ); | 76 | lab->setAlignment( AlignCenter ); |
77 | 77 | ||
78 | QPushButton * ok = new QPushButton( i18n("Start this todo\nand stop all running"), this ); | 78 | QPushButton * ok = new QPushButton( i18n("Start this todo\nand stop all running"), this ); |
79 | lay->addWidget( ok ); | 79 | lay->addWidget( ok ); |
80 | ok->setDefault( true ); | 80 | ok->setDefault( true ); |
81 | QPushButton * start = new QPushButton( i18n("Start todo"), this ); | 81 | QPushButton * start = new QPushButton( i18n("Start todo"), this ); |
82 | lay->addWidget( start ); | 82 | lay->addWidget( start ); |
83 | QPushButton * cancel = new QPushButton( i18n("Cancel - do not start"), this ); | 83 | QPushButton * cancel = new QPushButton( i18n("Cancel - do not start"), this ); |
84 | lay->addWidget( cancel ); | 84 | lay->addWidget( cancel ); |
85 | connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); | 85 | connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); |
86 | connect ( start,SIGNAL(clicked() ),this , SLOT ( doStop() ) ); | 86 | connect ( start,SIGNAL(clicked() ),this , SLOT ( doStop() ) ); |
87 | connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); | 87 | connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); |
88 | resize( sizeHint() ); | 88 | resize( sizeHint() ); |
89 | 89 | ||
90 | } | 90 | } |
91 | void KOStartTodoPrefs::doStop() | 91 | void KOStartTodoPrefs::doStop() |
92 | { | 92 | { |
93 | mStopAll = false; | 93 | mStopAll = false; |
94 | accept(); | 94 | accept(); |
95 | } | 95 | } |
96 | KOStopTodoPrefs::KOStopTodoPrefs( Todo* todo, QWidget *parent, const char *name ) : | 96 | KOStopTodoPrefs::KOStopTodoPrefs( Todo* todo, QWidget *parent, const char *name ) : |
97 | QDialog( parent, name, true ) | 97 | QDialog( parent, name, true ) |
98 | { | 98 | { |
99 | mTodo = todo; | 99 | mTodo = todo; |
100 | setCaption( i18n("Stop todo") ); | 100 | setCaption( i18n("Stop todo") ); |
101 | QVBoxLayout* lay = new QVBoxLayout( this ); | 101 | QVBoxLayout* lay = new QVBoxLayout( this ); |
102 | lay->setSpacing( 3 ); | 102 | lay->setSpacing( 3 ); |
103 | lay->setMargin( 3 ); | 103 | lay->setMargin( 3 ); |
104 | QLabel * lab = new QLabel( i18n("<b>%1\n</b>").arg( todo->summary() ), this ); | 104 | QLabel * lab = new QLabel( i18n("<b>%1\n</b>").arg( todo->summary() ), this ); |
105 | lay->addWidget( lab ); | 105 | lay->addWidget( lab ); |
106 | lab->setAlignment( AlignHCenter ); | 106 | lab->setAlignment( AlignHCenter ); |
107 | lab = new QLabel( i18n("Additional Comment:"), this ); | 107 | lab = new QLabel( i18n("Additional Comment:"), this ); |
108 | lay->addWidget( lab ); | 108 | lay->addWidget( lab ); |
109 | mComment = new QLineEdit( this ); | 109 | mComment = new QLineEdit( this ); |
110 | lay->addWidget( mComment ); | 110 | lay->addWidget( mComment ); |
111 | QHBox * start = new QHBox ( this ); | 111 | QHBox * start = new QHBox ( this ); |
112 | lay->addWidget( start ); | 112 | lay->addWidget( start ); |
113 | lab = new QLabel( i18n("Start:"), start ); | 113 | lab = new QLabel( i18n("Start:"), start ); |
114 | QHBox * end = new QHBox ( this ); | 114 | QHBox * end = new QHBox ( this ); |
115 | lay->addWidget( end ); | 115 | lay->addWidget( end ); |
116 | lab = new QLabel( i18n("End:"), end ); | 116 | lab = new QLabel( i18n("End:"), end ); |
117 | sde = new KDateEdit( start ); | 117 | sde = new KDateEdit( start ); |
118 | ste = new KOTimeEdit( start ); | 118 | ste = new KOTimeEdit( start ); |
119 | connect ( sde,SIGNAL(setTimeTo( QTime ) ),ste , SLOT ( setTime(QTime ) ) ); | 119 | connect ( sde,SIGNAL(setTimeTo( QTime ) ),ste , SLOT ( setTime(QTime ) ) ); |
120 | ede = new KDateEdit( end ); | 120 | ede = new KDateEdit( end ); |
121 | ete = new KOTimeEdit(end ); | 121 | ete = new KOTimeEdit(end ); |
122 | connect ( ede,SIGNAL(setTimeTo( QTime ) ),ete , SLOT ( setTime(QTime ) ) ); | 122 | connect ( ede,SIGNAL(setTimeTo( QTime ) ),ete , SLOT ( setTime(QTime ) ) ); |
123 | sde->setDate( mTodo->runStart().date() ); | 123 | sde->setDate( mTodo->runStart().date() ); |
124 | ste->setTime( mTodo->runStart().time() ); | 124 | ste->setTime( mTodo->runStart().time() ); |
125 | ede->setDate( QDate::currentDate()); | 125 | mStop = QDateTime::currentDateTime(); |
126 | ete->setTime( QTime::currentTime() ); | 126 | ede->setDate( mStop.date()); |
127 | ete->setTime( mStop.time() ); | ||
127 | QPushButton * ok = new QPushButton( i18n("Stop and save"), this ); | 128 | QPushButton * ok = new QPushButton( i18n("Stop and save"), this ); |
128 | lay->addWidget( ok ); | 129 | lay->addWidget( ok ); |
129 | ok->setDefault( true ); | 130 | ok->setDefault( true ); |
130 | QPushButton * cancel = new QPushButton( i18n("Continue running"), this ); | 131 | QPushButton * cancel = new QPushButton( i18n("Continue running"), this ); |
131 | lay->addWidget( cancel ); | 132 | lay->addWidget( cancel ); |
132 | connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); | 133 | connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); |
133 | connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); | 134 | connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); |
134 | ok = new QPushButton( i18n("Stop - do not save"), this ); | 135 | ok = new QPushButton( i18n("Stop - do not save"), this ); |
135 | connect ( ok,SIGNAL(clicked() ),this , SLOT ( doNotSave() ) ); | 136 | connect ( ok,SIGNAL(clicked() ),this , SLOT ( doNotSave() ) ); |
136 | lay->addWidget( ok ); | 137 | lay->addWidget( ok ); |
137 | if (QApplication::desktop()->width() < 320 ) | 138 | if (QApplication::desktop()->width() < 320 ) |
138 | resize( 240, sizeHint().height() ); | 139 | resize( 240, sizeHint().height() ); |
139 | else | 140 | else |
140 | resize( 320, sizeHint().height() ); | 141 | resize( 320, sizeHint().height() ); |
141 | 142 | ||
142 | } | 143 | } |
143 | 144 | ||
144 | void KOStopTodoPrefs::accept() | 145 | void KOStopTodoPrefs::accept() |
145 | { | 146 | { |
146 | QDateTime start = QDateTime( sde->date(), ste->getTime() ); | 147 | QDateTime start = QDateTime( sde->date(), ste->getTime() ); |
147 | QDateTime stop = QDateTime( ede->date(), ete->getTime() ); | 148 | QDateTime stop = QDateTime( ede->date(), ete->getTime() ); |
148 | if ( start > stop ) { | 149 | if ( start > stop ) { |
149 | KMessageBox::sorry(this, | 150 | KMessageBox::sorry(this, |
150 | i18n("The start time is\nafter the end time!"), | 151 | i18n("The start time is\nafter the end time!"), |
151 | i18n("Time mismatch!")); | 152 | i18n("Time mismatch!")); |
152 | return; | 153 | return; |
153 | } | 154 | } |
155 | // restoring the seconds | ||
156 | if ( start == QDateTime( mTodo->runStart().date(), | ||
157 | QTime(mTodo->runStart().time().hour() , mTodo->runStart().time().minute() ) ) ) | ||
158 | start = mTodo->runStart(); | ||
159 | if ( stop == QDateTime( mStop.date(), | ||
160 | QTime( mStop.time().hour() , mStop.time().minute() ) ) ) | ||
161 | stop = mStop; | ||
162 | |||
154 | mTodo->saveRunningInfo( mComment->text(), start, stop ); | 163 | mTodo->saveRunningInfo( mComment->text(), start, stop ); |
155 | QDialog::accept(); | 164 | QDialog::accept(); |
156 | } | 165 | } |
157 | void KOStopTodoPrefs::doNotSave() | 166 | void KOStopTodoPrefs::doNotSave() |
158 | { | 167 | { |
159 | int result = KMessageBox::warningContinueCancel(this, | 168 | int result = KMessageBox::warningContinueCancel(this, |
160 | i18n("Do you really want to set\nthe state to stopped\nwithout saving the data?"),mTodo->summary(),i18n("Yes, stop todo") ); | 169 | i18n("Do you really want to set\nthe state to stopped\nwithout saving the data?"),mTodo->summary(),i18n("Yes, stop todo") ); |
161 | if (result != KMessageBox::Continue) return; | 170 | if (result != KMessageBox::Continue) return; |
162 | mTodo->stopRunning(); | 171 | mTodo->stopRunning(); |
163 | QDialog::accept(); | 172 | QDialog::accept(); |
164 | } | 173 | } |
165 | 174 | ||
166 | 175 | ||
167 | class KOTodoViewWhatsThis :public QWhatsThis | 176 | class KOTodoViewWhatsThis :public QWhatsThis |
168 | { | 177 | { |
169 | public: | 178 | public: |
170 | KOTodoViewWhatsThis( QWidget *wid, KOTodoView* view ) : QWhatsThis( wid ), _wid(wid),_view (view) { }; | 179 | KOTodoViewWhatsThis( QWidget *wid, KOTodoView* view ) : QWhatsThis( wid ), _wid(wid),_view (view) { }; |
171 | 180 | ||
172 | protected: | 181 | protected: |
173 | virtual QString text( const QPoint& p) | 182 | virtual QString text( const QPoint& p) |
174 | { | 183 | { |
175 | return _view->getWhatsThisText(p) ; | 184 | return _view->getWhatsThisText(p) ; |
176 | } | 185 | } |
177 | private: | 186 | private: |
178 | QWidget* _wid; | 187 | QWidget* _wid; |
179 | KOTodoView * _view; | 188 | KOTodoView * _view; |
180 | }; | 189 | }; |
181 | 190 | ||
182 | KOTodoListView::KOTodoListView(Calendar *calendar,QWidget *parent, | 191 | KOTodoListView::KOTodoListView(Calendar *calendar,QWidget *parent, |
183 | const char *name) : | 192 | const char *name) : |
184 | KListView(parent,name) | 193 | KListView(parent,name) |
185 | { | 194 | { |
186 | mName = QString ( name ); | 195 | mName = QString ( name ); |
187 | mCalendar = calendar; | 196 | mCalendar = calendar; |
188 | #ifndef DESKTOP_VERSION | 197 | #ifndef DESKTOP_VERSION |
189 | QPEApplication::setStylusOperation(viewport(), QPEApplication::RightOnHold ); | 198 | QPEApplication::setStylusOperation(viewport(), QPEApplication::RightOnHold ); |
190 | #endif | 199 | #endif |
191 | mOldCurrent = 0; | 200 | mOldCurrent = 0; |
192 | mMousePressed = false; | 201 | mMousePressed = false; |
193 | 202 | ||
194 | setAcceptDrops(true); | 203 | setAcceptDrops(true); |
195 | viewport()->setAcceptDrops(true); | 204 | viewport()->setAcceptDrops(true); |
196 | int size = 16; | 205 | int size = 16; |
197 | if (qApp->desktop()->width() < 300 ) | 206 | if (qApp->desktop()->width() < 300 ) |
198 | size = 12; | 207 | size = 12; |
199 | setTreeStepSize( size + 6 ); | 208 | setTreeStepSize( size + 6 ); |
200 | 209 | ||
201 | } | 210 | } |
202 | 211 | ||
203 | void KOTodoListView::contentsDragEnterEvent(QDragEnterEvent *e) | 212 | void KOTodoListView::contentsDragEnterEvent(QDragEnterEvent *e) |
204 | { | 213 | { |
205 | #ifndef KORG_NODND | 214 | #ifndef KORG_NODND |
206 | // kdDebug() << "KOTodoListView::contentsDragEnterEvent" << endl; | 215 | // kdDebug() << "KOTodoListView::contentsDragEnterEvent" << endl; |
207 | if ( !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) && | 216 | if ( !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) && |
208 | !QTextDrag::canDecode( e ) ) { | 217 | !QTextDrag::canDecode( e ) ) { |
209 | e->ignore(); | 218 | e->ignore(); |
210 | return; | 219 | return; |
211 | } | 220 | } |
212 | 221 | ||
213 | mOldCurrent = currentItem(); | 222 | mOldCurrent = currentItem(); |
214 | #endif | 223 | #endif |
215 | } | 224 | } |
216 | 225 | ||
217 | 226 | ||
218 | void KOTodoListView::contentsDragMoveEvent(QDragMoveEvent *e) | 227 | void KOTodoListView::contentsDragMoveEvent(QDragMoveEvent *e) |
219 | { | 228 | { |
220 | #ifndef KORG_NODND | 229 | #ifndef KORG_NODND |
221 | // kdDebug() << "KOTodoListView::contentsDragMoveEvent" << endl; | 230 | // kdDebug() << "KOTodoListView::contentsDragMoveEvent" << endl; |
222 | 231 | ||
223 | if ( !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) && | 232 | if ( !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) && |
224 | !QTextDrag::canDecode( e ) ) { | 233 | !QTextDrag::canDecode( e ) ) { |
225 | e->ignore(); | 234 | e->ignore(); |
226 | return; | 235 | return; |
227 | } | 236 | } |
228 | 237 | ||
229 | e->accept(); | 238 | e->accept(); |
230 | #endif | 239 | #endif |
231 | } | 240 | } |
232 | 241 | ||
233 | void KOTodoListView::contentsDragLeaveEvent(QDragLeaveEvent *) | 242 | void KOTodoListView::contentsDragLeaveEvent(QDragLeaveEvent *) |
234 | { | 243 | { |
235 | #ifndef KORG_NODND | 244 | #ifndef KORG_NODND |
236 | // kdDebug() << "KOTodoListView::contentsDragLeaveEvent" << endl; | 245 | // kdDebug() << "KOTodoListView::contentsDragLeaveEvent" << endl; |
237 | 246 | ||
238 | setCurrentItem(mOldCurrent); | 247 | setCurrentItem(mOldCurrent); |
239 | setSelected(mOldCurrent,true); | 248 | setSelected(mOldCurrent,true); |
240 | #endif | 249 | #endif |
241 | } | 250 | } |
242 | 251 | ||
243 | void KOTodoListView::contentsDropEvent(QDropEvent *e) | 252 | void KOTodoListView::contentsDropEvent(QDropEvent *e) |
244 | { | 253 | { |
245 | #ifndef KORG_NODND | 254 | #ifndef KORG_NODND |
246 | // kdDebug() << "KOTodoListView::contentsDropEvent" << endl; | 255 | // kdDebug() << "KOTodoListView::contentsDropEvent" << endl; |
247 | 256 | ||
248 | if ( !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) && | 257 | if ( !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) && |
249 | !QTextDrag::canDecode( e ) ) { | 258 | !QTextDrag::canDecode( e ) ) { |