-rw-r--r-- | korganizer/kotodoview.cpp | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/korganizer/kotodoview.cpp b/korganizer/kotodoview.cpp index da46eca..ca5eadd 100644 --- a/korganizer/kotodoview.cpp +++ b/korganizer/kotodoview.cpp | |||
@@ -36,48 +36,49 @@ | |||
36 | #include <libkcal/icaldrag.h> | 36 | #include <libkcal/icaldrag.h> |
37 | #include <libkcal/vcaldrag.h> | 37 | #include <libkcal/vcaldrag.h> |
38 | #include <libkcal/calfilter.h> | 38 | #include <libkcal/calfilter.h> |
39 | #include <libkcal/dndfactory.h> | 39 | #include <libkcal/dndfactory.h> |
40 | #include <libkcal/calendarresources.h> | 40 | #include <libkcal/calendarresources.h> |
41 | #include <libkcal/resourcecalendar.h> | 41 | #include <libkcal/resourcecalendar.h> |
42 | #include <kresources/resourceselectdialog.h> | 42 | #include <kresources/resourceselectdialog.h> |
43 | #ifndef DESKTOP_VERSION | 43 | #ifndef DESKTOP_VERSION |
44 | #include <qpe/qpeapplication.h> | 44 | #include <qpe/qpeapplication.h> |
45 | #else | 45 | #else |
46 | #include <qapplication.h> | 46 | #include <qapplication.h> |
47 | #endif | 47 | #endif |
48 | #ifndef KORG_NOPRINTER | 48 | #ifndef KORG_NOPRINTER |
49 | #include "calprinter.h" | 49 | #include "calprinter.h" |
50 | #endif | 50 | #endif |
51 | #include "docprefs.h" | 51 | #include "docprefs.h" |
52 | 52 | ||
53 | #include "kotodoview.h" | 53 | #include "kotodoview.h" |
54 | using namespace KOrg; | 54 | using namespace KOrg; |
55 | 55 | ||
56 | KOTodoListView::KOTodoListView(Calendar *calendar,QWidget *parent, | 56 | KOTodoListView::KOTodoListView(Calendar *calendar,QWidget *parent, |
57 | const char *name) : | 57 | const char *name) : |
58 | KListView(parent,name) | 58 | KListView(parent,name) |
59 | { | 59 | { |
60 | mName = QString ( name ); | ||
60 | mCalendar = calendar; | 61 | mCalendar = calendar; |
61 | #ifndef DESKTOP_VERSION | 62 | #ifndef DESKTOP_VERSION |
62 | QPEApplication::setStylusOperation(viewport(), QPEApplication::RightOnHold ); | 63 | QPEApplication::setStylusOperation(viewport(), QPEApplication::RightOnHold ); |
63 | #endif | 64 | #endif |
64 | mOldCurrent = 0; | 65 | mOldCurrent = 0; |
65 | mMousePressed = false; | 66 | mMousePressed = false; |
66 | 67 | ||
67 | setAcceptDrops(true); | 68 | setAcceptDrops(true); |
68 | viewport()->setAcceptDrops(true); | 69 | viewport()->setAcceptDrops(true); |
69 | int size = 16; | 70 | int size = 16; |
70 | if (qApp->desktop()->width() < 300 ) | 71 | if (qApp->desktop()->width() < 300 ) |
71 | size = 12; | 72 | size = 12; |
72 | setTreeStepSize( size + 6 ); | 73 | setTreeStepSize( size + 6 ); |
73 | 74 | ||
74 | } | 75 | } |
75 | 76 | ||
76 | void KOTodoListView::contentsDragEnterEvent(QDragEnterEvent *e) | 77 | void KOTodoListView::contentsDragEnterEvent(QDragEnterEvent *e) |
77 | { | 78 | { |
78 | #ifndef KORG_NODND | 79 | #ifndef KORG_NODND |
79 | // kdDebug() << "KOTodoListView::contentsDragEnterEvent" << endl; | 80 | // kdDebug() << "KOTodoListView::contentsDragEnterEvent" << endl; |
80 | if ( !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) && | 81 | if ( !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) && |
81 | !QTextDrag::canDecode( e ) ) { | 82 | !QTextDrag::canDecode( e ) ) { |
82 | e->ignore(); | 83 | e->ignore(); |
83 | return; | 84 | return; |
@@ -243,54 +244,58 @@ void KOTodoListView::keyPressEvent ( QKeyEvent * e ) | |||
243 | 244 | ||
244 | QListViewItem* cn; | 245 | QListViewItem* cn; |
245 | if ( e->key() == Qt::Key_Return || e->key() == Qt::Key_Enter ) { | 246 | if ( e->key() == Qt::Key_Return || e->key() == Qt::Key_Enter ) { |
246 | cn = currentItem(); | 247 | cn = currentItem(); |
247 | if ( cn ) { | 248 | if ( cn ) { |
248 | KOTodoViewItem* ci = (KOTodoViewItem*)( cn ); | 249 | KOTodoViewItem* ci = (KOTodoViewItem*)( cn ); |
249 | if ( ci ){ | 250 | if ( ci ){ |
250 | if ( e->state() == ShiftButton ) | 251 | if ( e->state() == ShiftButton ) |
251 | ci->setOn( false ); | 252 | ci->setOn( false ); |
252 | else | 253 | else |
253 | ci->setOn( true ); | 254 | ci->setOn( true ); |
254 | cn = cn->nextSibling(); | 255 | cn = cn->nextSibling(); |
255 | if ( cn ) { | 256 | if ( cn ) { |
256 | setCurrentItem ( cn ); | 257 | setCurrentItem ( cn ); |
257 | ensureItemVisible ( cn ); | 258 | ensureItemVisible ( cn ); |
258 | } | 259 | } |
259 | 260 | ||
260 | } | 261 | } |
261 | } | 262 | } |
262 | 263 | ||
263 | return; | 264 | return; |
264 | } | 265 | } |
265 | 266 | ||
266 | // qDebug("KOTodoListView::keyPressEvent "); | 267 | // qDebug("KOTodoListView::keyPressEvent "); |
267 | if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton || ( height() > 150 && width() > 200 ) ) { | 268 | if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton || mName != "todolistsmall" ) { |
268 | switch ( e->key() ) { | 269 | switch ( e->key() ) { |
269 | case Qt::Key_Down: | 270 | case Qt::Key_Down: |
270 | case Qt::Key_Up: | 271 | case Qt::Key_Up: |
271 | QListView::keyPressEvent ( e ); | 272 | QListView::keyPressEvent ( e ); |
272 | break; | 273 | break; |
274 | case Qt::Key_Left: | ||
275 | case Qt::Key_Right: | ||
276 | QListView::keyPressEvent ( e ); | ||
277 | break; | ||
273 | default: | 278 | default: |
274 | e->ignore(); | 279 | e->ignore(); |
275 | break; | 280 | break; |
276 | } | 281 | } |
277 | return; | 282 | return; |
278 | } | 283 | } |
279 | e->ignore(); | 284 | e->ignore(); |
280 | } | 285 | } |
281 | void KOTodoListView::contentsMouseReleaseEvent(QMouseEvent *e) | 286 | void KOTodoListView::contentsMouseReleaseEvent(QMouseEvent *e) |
282 | { | 287 | { |
283 | QListView::contentsMouseReleaseEvent(e); | 288 | QListView::contentsMouseReleaseEvent(e); |
284 | mMousePressed = false; | 289 | mMousePressed = false; |
285 | } | 290 | } |
286 | 291 | ||
287 | void KOTodoListView::contentsMouseDoubleClickEvent(QMouseEvent *e) | 292 | void KOTodoListView::contentsMouseDoubleClickEvent(QMouseEvent *e) |
288 | { | 293 | { |
289 | if (!e) return; | 294 | if (!e) return; |
290 | 295 | ||
291 | QPoint vp = contentsToViewport(e->pos()); | 296 | QPoint vp = contentsToViewport(e->pos()); |
292 | 297 | ||
293 | QListViewItem *item = itemAt(vp); | 298 | QListViewItem *item = itemAt(vp); |
294 | 299 | ||
295 | emit double_Clicked(item); | 300 | emit double_Clicked(item); |
296 | if (!item) return; | 301 | if (!item) return; |
@@ -311,49 +316,49 @@ void KOQuickTodo::focusInEvent(QFocusEvent *ev) | |||
311 | if ( text()==i18n("Click to add a new Todo") ) | 316 | if ( text()==i18n("Click to add a new Todo") ) |
312 | setText(""); | 317 | setText(""); |
313 | QLineEdit::focusInEvent(ev); | 318 | QLineEdit::focusInEvent(ev); |
314 | } | 319 | } |
315 | 320 | ||
316 | void KOQuickTodo::focusOutEvent(QFocusEvent *ev) | 321 | void KOQuickTodo::focusOutEvent(QFocusEvent *ev) |
317 | { | 322 | { |
318 | setText(i18n("Click to add a new Todo")); | 323 | setText(i18n("Click to add a new Todo")); |
319 | QLineEdit::focusOutEvent(ev); | 324 | QLineEdit::focusOutEvent(ev); |
320 | } | 325 | } |
321 | 326 | ||
322 | ///////////////////////////////////////////////////////////////////////////// | 327 | ///////////////////////////////////////////////////////////////////////////// |
323 | 328 | ||
324 | KOTodoView::KOTodoView(Calendar *calendar,QWidget* parent,const char* name) : | 329 | KOTodoView::KOTodoView(Calendar *calendar,QWidget* parent,const char* name) : |
325 | KOrg::BaseView(calendar,parent,name) | 330 | KOrg::BaseView(calendar,parent,name) |
326 | { | 331 | { |
327 | QBoxLayout *topLayout = new QVBoxLayout(this); | 332 | QBoxLayout *topLayout = new QVBoxLayout(this); |
328 | mName = QString ( name ); | 333 | mName = QString ( name ); |
329 | mBlockUpdate = false; | 334 | mBlockUpdate = false; |
330 | mQuickAdd = new KOQuickTodo(this); | 335 | mQuickAdd = new KOQuickTodo(this); |
331 | topLayout->addWidget(mQuickAdd); | 336 | topLayout->addWidget(mQuickAdd); |
332 | 337 | ||
333 | if ( !KOPrefs::instance()->mEnableQuickTodo ) mQuickAdd->hide(); | 338 | if ( !KOPrefs::instance()->mEnableQuickTodo ) mQuickAdd->hide(); |
334 | 339 | ||
335 | mTodoListView = new KOTodoListView(calendar,this); | 340 | mTodoListView = new KOTodoListView(calendar,this, name ); |
336 | topLayout->addWidget(mTodoListView); | 341 | topLayout->addWidget(mTodoListView); |
337 | //mTodoListView->header()->setMaximumHeight(30); | 342 | //mTodoListView->header()->setMaximumHeight(30); |
338 | mTodoListView->setRootIsDecorated(true); | 343 | mTodoListView->setRootIsDecorated(true); |
339 | mTodoListView->setAllColumnsShowFocus(true); | 344 | mTodoListView->setAllColumnsShowFocus(true); |
340 | 345 | ||
341 | mTodoListView->setShowSortIndicator(true); | 346 | mTodoListView->setShowSortIndicator(true); |
342 | 347 | ||
343 | mTodoListView->addColumn(i18n("Todo")); | 348 | mTodoListView->addColumn(i18n("Todo")); |
344 | mTodoListView->addColumn(i18n("Prio")); | 349 | mTodoListView->addColumn(i18n("Prio")); |
345 | mTodoListView->setColumnAlignment(1,AlignHCenter); | 350 | mTodoListView->setColumnAlignment(1,AlignHCenter); |
346 | mTodoListView->addColumn(i18n("Complete")); | 351 | mTodoListView->addColumn(i18n("Complete")); |
347 | mTodoListView->setColumnAlignment(2,AlignHCenter); | 352 | mTodoListView->setColumnAlignment(2,AlignHCenter); |
348 | mTodoListView->addColumn(i18n("Due Date")); | 353 | mTodoListView->addColumn(i18n("Due Date")); |
349 | mTodoListView->setColumnAlignment(3,AlignLeft); | 354 | mTodoListView->setColumnAlignment(3,AlignLeft); |
350 | mTodoListView->addColumn(i18n("Due Time")); | 355 | mTodoListView->addColumn(i18n("Due Time")); |
351 | mTodoListView->setColumnAlignment(4,AlignHCenter); | 356 | mTodoListView->setColumnAlignment(4,AlignHCenter); |
352 | mTodoListView->addColumn(i18n("Cancelled")); | 357 | mTodoListView->addColumn(i18n("Cancelled")); |
353 | mTodoListView->addColumn(i18n("Categories")); | 358 | mTodoListView->addColumn(i18n("Categories")); |
354 | #if 0 | 359 | #if 0 |
355 | mTodoListView->addColumn(i18n("Sort Id")); | 360 | mTodoListView->addColumn(i18n("Sort Id")); |
356 | mTodoListView->setColumnAlignment(4,AlignHCenter); | 361 | mTodoListView->setColumnAlignment(4,AlignHCenter); |
357 | #endif | 362 | #endif |
358 | 363 | ||
359 | mTodoListView->setMinimumHeight( 60 ); | 364 | mTodoListView->setMinimumHeight( 60 ); |
@@ -950,79 +955,77 @@ void KOTodoView::toggleCompleted() | |||
950 | void KOTodoView::addQuickTodo() | 955 | void KOTodoView::addQuickTodo() |
951 | { | 956 | { |
952 | Todo *todo = new Todo(); | 957 | Todo *todo = new Todo(); |
953 | todo->setSummary(mQuickAdd->text()); | 958 | todo->setSummary(mQuickAdd->text()); |
954 | todo->setOrganizer(KOPrefs::instance()->email()); | 959 | todo->setOrganizer(KOPrefs::instance()->email()); |
955 | CalFilter * cf = mCalendar->filter(); | 960 | CalFilter * cf = mCalendar->filter(); |
956 | if ( cf ) { | 961 | if ( cf ) { |
957 | if ( cf->isEnabled()&& cf->showCategories()) { | 962 | if ( cf->isEnabled()&& cf->showCategories()) { |
958 | todo->setCategories(cf->categoryList()); | 963 | todo->setCategories(cf->categoryList()); |
959 | } | 964 | } |
960 | if ( cf->isEnabled() ) | 965 | if ( cf->isEnabled() ) |
961 | todo->setSecrecy( cf->getSecrecy()); | 966 | todo->setSecrecy( cf->getSecrecy()); |
962 | } | 967 | } |
963 | mCalendar->addTodo(todo); | 968 | mCalendar->addTodo(todo); |
964 | mQuickAdd->setText(""); | 969 | mQuickAdd->setText(""); |
965 | todoModified (todo, KOGlobals::EVENTADDED ); | 970 | todoModified (todo, KOGlobals::EVENTADDED ); |
966 | updateView(); | 971 | updateView(); |
967 | } | 972 | } |
968 | void KOTodoView::keyPressEvent ( QKeyEvent * e ) | 973 | void KOTodoView::keyPressEvent ( QKeyEvent * e ) |
969 | { | 974 | { |
970 | // e->ignore(); | 975 | // e->ignore(); |
971 | //return; | 976 | //return; |
972 | switch ( e->key() ) { | 977 | switch ( e->key() ) { |
973 | case Qt::Key_Down: | 978 | case Qt::Key_Down: |
974 | QWidget::keyPressEvent ( e ); | ||
975 | break; | ||
976 | |||
977 | case Qt::Key_Up: | 979 | case Qt::Key_Up: |
978 | QWidget::keyPressEvent ( e ); | 980 | QWidget::keyPressEvent ( e ); |
979 | break; | 981 | break; |
982 | |||
980 | case Qt::Key_Q: | 983 | case Qt::Key_Q: |
981 | toggleQuickTodo(); | 984 | toggleQuickTodo(); |
982 | break; | 985 | break; |
983 | 986 | ||
984 | default: | 987 | default: |
985 | e->ignore(); | 988 | e->ignore(); |
986 | } | 989 | } |
987 | 990 | ||
988 | if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton || ( height() > 150 && width() > 200 ) ) { | 991 | if ( true ) { |
989 | if ( e->key() == Qt::Key_I ) { | 992 | if ( e->key() == Qt::Key_I ) { |
990 | KOTodoViewItem*cn = (KOTodoViewItem*)mTodoListView->currentItem(); | 993 | KOTodoViewItem*cn = (KOTodoViewItem*)mTodoListView->currentItem(); |
991 | if ( cn ) { | 994 | if ( cn ) { |
992 | mActiveItem = cn; | 995 | mActiveItem = cn; |
993 | KOTodoViewItem* ci = (KOTodoViewItem*)( cn ); | 996 | KOTodoViewItem* ci = (KOTodoViewItem*)( cn ); |
994 | if ( ci ){ | 997 | if ( ci ){ |
995 | showTodo(); | 998 | showTodo(); |
996 | cn = (KOTodoViewItem*)cn->itemBelow(); | 999 | cn = (KOTodoViewItem*)cn->itemBelow(); |
997 | if ( cn ) { | 1000 | if ( cn ) { |
998 | mTodoListView->setCurrentItem ( cn ); | 1001 | mTodoListView->setCurrentItem ( cn ); |
999 | mTodoListView->ensureItemVisible ( cn ); | 1002 | mTodoListView->ensureItemVisible ( cn ); |
1000 | } | 1003 | } |
1001 | 1004 | ||
1002 | } | 1005 | } |
1003 | } | 1006 | } |
1004 | e->accept(); | 1007 | e->accept(); |
1005 | 1008 | ||
1006 | } | 1009 | } |
1007 | 1010 | ||
1008 | } | 1011 | } |
1009 | 1012 | ||
1010 | } | 1013 | } |
1011 | void KOTodoView::updateTodo( Todo * t, int type ) | 1014 | void KOTodoView::updateTodo( Todo * t, int type ) |
1012 | { | 1015 | { |
1013 | if ( mBlockUpdate) | 1016 | if ( mBlockUpdate) |
1014 | return; | 1017 | return; |
1015 | 1018 | ||
1016 | QMap<Todo *,KOTodoViewItem *>::ConstIterator itemIterator; | 1019 | QMap<Todo *,KOTodoViewItem *>::ConstIterator itemIterator; |
1017 | itemIterator = mTodoMap.find(t); | 1020 | itemIterator = mTodoMap.find(t); |
1018 | if (itemIterator != mTodoMap.end()) { | 1021 | if (itemIterator != mTodoMap.end()) { |
1019 | (*itemIterator)->construct(); | 1022 | (*itemIterator)->construct(); |
1020 | } else { | 1023 | } else { |
1021 | if ( type == KOGlobals::EVENTADDED ) { | 1024 | if ( type == KOGlobals::EVENTADDED ) { |
1022 | insertTodoItem( t ); | 1025 | insertTodoItem( t ); |
1023 | } | 1026 | } |
1024 | } | 1027 | } |
1025 | 1028 | ||
1026 | } | 1029 | } |
1027 | 1030 | ||
1028 | void KOTodoView::todoModified(Todo * t , int p ) | 1031 | void KOTodoView::todoModified(Todo * t , int p ) |