summaryrefslogtreecommitdiff
path: root/core/pim
Unidiff
Diffstat (limited to 'core/pim') (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/todo/mainwindow.cpp23
-rw-r--r--core/pim/todo/mainwindow.h9
-rw-r--r--core/pim/todo/todoentryimpl.cpp8
-rw-r--r--core/pim/todo/todotable.cpp68
-rw-r--r--core/pim/todo/todotable.h22
5 files changed, 120 insertions, 10 deletions
diff --git a/core/pim/todo/mainwindow.cpp b/core/pim/todo/mainwindow.cpp
index f3afa5f..33f13aa 100644
--- a/core/pim/todo/mainwindow.cpp
+++ b/core/pim/todo/mainwindow.cpp
@@ -1,8 +1,10 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3 Copyright (C) 2002 zecke
4 Copyright (C) 2002 Stefan Eilers
3** 5**
4** This file is part of Qtopia Environment. 6** This file is part of Qtopia Environment.
5** 7**
6** This file may be distributed and/or modified under the terms of the 8** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 9** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 10** Foundation and appearing in the file LICENSE.GPL included in the
@@ -104,12 +106,17 @@ TodoWindow::TodoWindow( QWidget *parent, const char *name, WFlags f = 0 ) :
104// qDebug("after load: t=%d", t.elapsed() ); 106// qDebug("after load: t=%d", t.elapsed() );
105 107
106 Config config( "todo" ); 108 Config config( "todo" );
107 config.setGroup( "View" ); 109 config.setGroup( "View" );
108 bool complete = config.readBoolEntry( "ShowComplete", true ); 110 bool complete = config.readBoolEntry( "ShowComplete", true );
109 table->setShowCompleted( complete ); 111 table->setShowCompleted( complete );
112
113 /* added 20.01.2k2 by se */
114 bool showdeadline = config.readBoolEntry("ShowDeadLine", true);
115 table->setShowDeadline (showdeadline);
116
110 QString category = config.readEntry( "Category", QString::null ); 117 QString category = config.readEntry( "Category", QString::null );
111 table->setShowCategory( category ); 118 table->setShowCategory( category );
112 119
113 QPEToolBar *bar = new QPEToolBar( this ); 120 QPEToolBar *bar = new QPEToolBar( this );
114 bar->setHorizontalStretchable( TRUE ); 121 bar->setHorizontalStretchable( TRUE );
115 122
@@ -171,12 +178,15 @@ TodoWindow::TodoWindow( QWidget *parent, const char *name, WFlags f = 0 ) :
171 //a->setEnabled( FALSE ); 178 //a->setEnabled( FALSE );
172 findAction = a; 179 findAction = a;
173// qDebug("mainwindow #2: t=%d", t.elapsed() ); 180// qDebug("mainwindow #2: t=%d", t.elapsed() );
174 181
175 completedAction = new QAction( QString::null, tr("Completed tasks"), 0, this, 0, TRUE ); 182 completedAction = new QAction( QString::null, tr("Completed tasks"), 0, this, 0, TRUE );
176 183
184 /* added 20.01.2k2 by se */
185 showdeadlineAction = new QAction( QString::null, tr( "Show Deadline" ), 0, this, 0, TRUE );
186
177 catMenu->setCheckable( true ); 187 catMenu->setCheckable( true );
178 populateCategories(); 188 populateCategories();
179 189
180 mb->insertItem( tr( "Task" ), edit ); 190 mb->insertItem( tr( "Task" ), edit );
181 mb->insertItem( tr( "View" ), catMenu ); 191 mb->insertItem( tr( "View" ), catMenu );
182 192
@@ -192,12 +202,13 @@ TodoWindow::TodoWindow( QWidget *parent, const char *name, WFlags f = 0 ) :
192 table->updateVisible(); 202 table->updateVisible();
193 table->setUpdatesEnabled( TRUE ); 203 table->setUpdatesEnabled( TRUE );
194 table->setPaintingEnabled( TRUE ); 204 table->setPaintingEnabled( TRUE );
195 table->viewport()->setUpdatesEnabled( TRUE ); 205 table->viewport()->setUpdatesEnabled( TRUE );
196 206
197 connect( completedAction, SIGNAL( toggled(bool) ), this, SLOT( showCompleted(bool) ) ); 207 connect( completedAction, SIGNAL( toggled(bool) ), this, SLOT( showCompleted(bool) ) );
208 connect( showdeadlineAction, SIGNAL( toggled(bool) ), this, SLOT( showDeadline(bool) ) );
198 connect( catMenu, SIGNAL(activated(int)), this, SLOT(setCategory(int)) ); 209 connect( catMenu, SIGNAL(activated(int)), this, SLOT(setCategory(int)) );
199 connect( table, SIGNAL( currentChanged( int, int ) ), 210 connect( table, SIGNAL( currentChanged( int, int ) ),
200 this, SLOT( currentEntryChanged( int, int ) ) ); 211 this, SLOT( currentEntryChanged( int, int ) ) );
201 212
202// qDebug("done: t=%d", t.elapsed() ); 213// qDebug("done: t=%d", t.elapsed() );
203} 214}
@@ -348,12 +359,14 @@ void TodoWindow::setCategory( int c )
348void TodoWindow::populateCategories() 359void TodoWindow::populateCategories()
349{ 360{
350 catMenu->clear(); 361 catMenu->clear();
351 362
352 completedAction->addTo( catMenu ); 363 completedAction->addTo( catMenu );
353 completedAction->setOn( table->showCompleted() ); 364 completedAction->setOn( table->showCompleted() );
365 showdeadlineAction->addTo( catMenu );
366 showdeadlineAction->setOn( table->showDeadline() );
354 367
355 int id, rememberId; 368 int id, rememberId;
356 id = 1; 369 id = 1;
357 catMenu->insertItem( tr( "All Categories" ), id++ ); 370 catMenu->insertItem( tr( "All Categories" ), id++ );
358// catMenu->insertSeparator(); 371// catMenu->insertSeparator();
359 QStringList categories = table->categories(); 372 QStringList categories = table->categories();
@@ -399,12 +412,14 @@ void TodoWindow::closeEvent( QCloseEvent *e )
399 // error, but I feel that it is "ok" for us to exit 412 // error, but I feel that it is "ok" for us to exit
400 // espically since we aren't told if the write succeeded... 413 // espically since we aren't told if the write succeeded...
401 Config config( "todo" ); 414 Config config( "todo" );
402 config.setGroup( "View" ); 415 config.setGroup( "View" );
403 config.writeEntry( "ShowComplete", table->showCompleted() ); 416 config.writeEntry( "ShowComplete", table->showCompleted() );
404 config.writeEntry( "Category", table->showCategory() ); 417 config.writeEntry( "Category", table->showCategory() );
418 /* added 20.01.2k2 by se */
419 config.writeEntry( "ShowDeadLine", table->showDeadline());
405 } else { 420 } else {
406 if ( QMessageBox::critical( this, tr("Out of space"), 421 if ( QMessageBox::critical( this, tr("Out of space"),
407 tr("Todo was unable\n" 422 tr("Todo was unable\n"
408 "to save your changes.\n" 423 "to save your changes.\n"
409 "Free up some space\n" 424 "Free up some space\n"
410 "and try again.\n" 425 "and try again.\n"
@@ -470,6 +485,14 @@ void TodoWindow::slotBeam()
470 485
471void TodoWindow::beamDone( Ir *ir ) 486void TodoWindow::beamDone( Ir *ir )
472{ 487{
473 delete ir; 488 delete ir;
474 unlink( beamfile ); 489 unlink( beamfile );
475} 490}
491
492/* added 20.01.2k2 by se */
493void TodoWindow::showDeadline( bool s )
494{
495 table->setPaintingEnabled( false );
496 table->setShowDeadline( s );
497 table->setPaintingEnabled( true );
498}
diff --git a/core/pim/todo/mainwindow.h b/core/pim/todo/mainwindow.h
index 856dcb4..a81c27c 100644
--- a/core/pim/todo/mainwindow.h
+++ b/core/pim/todo/mainwindow.h
@@ -44,12 +44,16 @@ public slots:
44protected slots: 44protected slots:
45 void slotNew(); 45 void slotNew();
46 void slotDelete(); 46 void slotDelete();
47 void slotEdit(); 47 void slotEdit();
48 void slotShowPopup( const QPoint & ); 48 void slotShowPopup( const QPoint & );
49 void showCompleted( bool ); 49 void showCompleted( bool );
50
51 /* added 20.01.2k2 by se */
52 void showDeadline( bool );
53
50 void currentEntryChanged( int r, int c ); 54 void currentEntryChanged( int r, int c );
51 void setCategory( int ); 55 void setCategory( int );
52 void slotFind(); 56 void slotFind();
53 void setDocument( const QString & ); 57 void setDocument( const QString & );
54 void slotBeam(); 58 void slotBeam();
55 void beamDone( Ir * ); 59 void beamDone( Ir * );
@@ -61,14 +65,15 @@ private:
61 void populateCategories(); 65 void populateCategories();
62 66
63private: 67private:
64 TodoTable *table; 68 TodoTable *table;
65 QAction *editAction, 69 QAction *editAction,
66 *deleteAction, 70 *deleteAction,
67 *findAction, 71 *findAction,
68 * completedAction; 72 * completedAction,
73 *showdeadlineAction ;
69 QPopupMenu *contextMenu, *catMenu; 74 QPopupMenu *contextMenu, *catMenu;
70 75
71 bool syncing; 76 bool syncing;
72}; 77};
73 78
74#endif 79#endif
diff --git a/core/pim/todo/todoentryimpl.cpp b/core/pim/todo/todoentryimpl.cpp
index 1dc1d44..f938d61 100644
--- a/core/pim/todo/todoentryimpl.cpp
+++ b/core/pim/todo/todoentryimpl.cpp
@@ -45,13 +45,13 @@
45NewTaskDialog::NewTaskDialog( const ToDoEvent& task, QWidget *parent, 45NewTaskDialog::NewTaskDialog( const ToDoEvent& task, QWidget *parent,
46 const char *name, bool modal, WFlags fl ) 46 const char *name, bool modal, WFlags fl )
47 : NewTaskDialogBase( parent, name, modal, fl ), 47 : NewTaskDialogBase( parent, name, modal, fl ),
48 todo( task ) 48 todo( task )
49{ 49{
50 qWarning("setting category" ); 50 qWarning("setting category" );
51 todo.setCategory( task.category() ); 51 todo.setCategories( task.allCategories() );
52 if ( todo.hasDate() ) 52 if ( todo.hasDate() )
53 date = todo.date(); 53 date = todo.date();
54 else 54 else
55 date = QDate::currentDate(); 55 date = QDate::currentDate();
56 56
57 init(); 57 init();
@@ -125,16 +125,16 @@ ToDoEvent NewTaskDialog::todoEntry()
125 }else{ 125 }else{
126 todo.setHasDate( false ); 126 todo.setHasDate( false );
127 } 127 }
128 qWarning("todoEntry::category()" ); 128 qWarning("todoEntry::category()" );
129 if ( comboCategory->currentCategory() != -1 ) { 129 if ( comboCategory->currentCategory() != -1 ) {
130 QArray<int> arr = comboCategory->currentCategories(); 130 QArray<int> arr = comboCategory->currentCategories();
131 int id = arr[0]; 131 QStringList list;
132 qWarning("id 0: %d",id ); 132 list = QStringList::split(";", Qtopia::Record::idsToString( arr )) ;
133 todo.setCategory( Qtopia::Record::idsToString( arr ) );
134 qWarning("saving category"); 133 qWarning("saving category");
134 todo.setCategories( list );
135 } 135 }
136 todo.setPriority( comboPriority->currentItem() + 1 ); 136 todo.setPriority( comboPriority->currentItem() + 1 );
137 todo.setCompleted( checkCompleted->isChecked() ); 137 todo.setCompleted( checkCompleted->isChecked() );
138 138
139 todo.setDescription( txtTodo->text() ); 139 todo.setDescription( txtTodo->text() );
140 140
diff --git a/core/pim/todo/todotable.cpp b/core/pim/todo/todotable.cpp
index 2bb95a2..3cd0c0e 100644
--- a/core/pim/todo/todotable.cpp
+++ b/core/pim/todo/todotable.cpp
@@ -14,13 +14,14 @@
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20 20/* Show Deadline was added by Stefan Eilers (se, eilers.stefan@epost.de)
21 */
21#include "todotable.h" 22#include "todotable.h"
22 23
23#include <opie/tododb.h> 24#include <opie/tododb.h>
24#include <qpe/categoryselect.h> 25#include <qpe/categoryselect.h>
25#include <qpe/xmlreader.h> 26#include <qpe/xmlreader.h>
26 27
@@ -35,12 +36,14 @@
35#include <qcursor.h> 36#include <qcursor.h>
36#include <qregexp.h> 37#include <qregexp.h>
37 38
38#include <errno.h> 39#include <errno.h>
39#include <stdlib.h> 40#include <stdlib.h>
40 41
42#include <stdio.h>
43
41 44
42 45
43static bool taskCompare( const ToDoEvent &task, const QRegExp &r, int category ); 46static bool taskCompare( const ToDoEvent &task, const QRegExp &r, int category );
44 47
45static QString journalFileName(); 48static QString journalFileName();
46 49
@@ -161,30 +164,43 @@ QString ComboItem::text() const
161 164
162 165
163TodoTable::TodoTable( QWidget *parent, const char *name ) 166TodoTable::TodoTable( QWidget *parent, const char *name )
164// #ifdef QT_QTABLE_NOHEADER_CONSTRUCTOR 167// #ifdef QT_QTABLE_NOHEADER_CONSTRUCTOR
165// : QTable( 0, 3, parent, name, TRUE ), 168// : QTable( 0, 3, parent, name, TRUE ),
166// #else 169// #else
167 : QTable( 0, 3, parent, name ), 170 : QTable( 0, 4, parent, name ),
168// #endif 171// #endif
169 showComp( true ), 172 showComp( true ),
170 enablePainting( true ), 173 enablePainting( true ),
171 mCat( 0 ), 174 mCat( 0 ),
172 currFindRow( -2 ) 175 currFindRow( -2 ),
176 showDeadl( true)
173{ 177{
174 mCat.load( categoryFileName() ); 178 mCat.load( categoryFileName() );
175 setSorting( TRUE ); 179 setSorting( TRUE );
176 setSelectionMode( NoSelection ); 180 setSelectionMode( NoSelection );
177 setColumnStretchable( 2, TRUE ); 181 setColumnStretchable( 2, TRUE );
178 setColumnWidth( 0, 20 ); 182 setColumnWidth( 0, 20 );
179 setColumnWidth( 1, 35 ); 183 setColumnWidth( 1, 35 );
184
180 setLeftMargin( 0 ); 185 setLeftMargin( 0 );
181 verticalHeader()->hide(); 186 verticalHeader()->hide();
182 horizontalHeader()->setLabel( 0, tr( "C." ) ); 187 horizontalHeader()->setLabel( 0, tr( "C." ) );
183 horizontalHeader()->setLabel( 1, tr( "Prior." ) ); 188 horizontalHeader()->setLabel( 1, tr( "Prior." ) );
184 horizontalHeader()->setLabel( 2, tr( "Description" ) ); 189 horizontalHeader()->setLabel( 2, tr( "Description" ) );
190
191 setColumnStretchable( 3, FALSE );
192 setColumnWidth( 3, 20 );
193 horizontalHeader()->setLabel( 3, tr( "Deadline" ) );
194
195 if (showDeadl){
196 showColumn (3);
197 }else{
198 hideColumn (3);
199 }
200
185 connect( this, SIGNAL( clicked( int, int, int, const QPoint & ) ), 201 connect( this, SIGNAL( clicked( int, int, int, const QPoint & ) ),
186 this, SLOT( slotClicked( int, int, int, const QPoint & ) ) ); 202 this, SLOT( slotClicked( int, int, int, const QPoint & ) ) );
187 connect( this, SIGNAL( pressed( int, int, int, const QPoint & ) ), 203 connect( this, SIGNAL( pressed( int, int, int, const QPoint & ) ),
188 this, SLOT( slotPressed( int, int, int, const QPoint & ) ) ); 204 this, SLOT( slotPressed( int, int, int, const QPoint & ) ) );
189 connect( this, SIGNAL( valueChanged( int, int ) ), 205 connect( this, SIGNAL( valueChanged( int, int ) ),
190 this, SLOT( slotCheckPriority( int, int ) ) ); 206 this, SLOT( slotCheckPriority( int, int ) ) );
@@ -231,12 +247,17 @@ void TodoTable::slotClicked( int row, int col, int, const QPoint &pos )
231 break; 247 break;
232 case 2: 248 case 2:
233 // may as well edit it... 249 // may as well edit it...
234 menuTimer->stop(); 250 menuTimer->stop();
235// emit signalEdit(); 251// emit signalEdit();
236 break; 252 break;
253 case 3: /* added 20.01.2k2 by se */
254 // may as well edit it...
255 menuTimer->stop();
256 emit signalEdit();
257 break;
237 } 258 }
238} 259}
239 260
240void TodoTable::slotPressed( int row, int col, int, const QPoint &pos ) 261void TodoTable::slotPressed( int row, int col, int, const QPoint &pos )
241{ 262{
242 if ( col == 2 && cellGeometry( row, col ).contains(pos) ) 263 if ( col == 2 && cellGeometry( row, col ).contains(pos) )
@@ -262,12 +283,14 @@ void TodoTable::internalAddEntries( QList<ToDoEvent> &list )
262 insertIntoTable( it, row++ ); 283 insertIntoTable( it, row++ );
263} 284}
264 285
265 286
266ToDoEvent TodoTable::currentEntry() const 287ToDoEvent TodoTable::currentEntry() const
267{ 288{
289 printf ("in currentEntry\n");
290
268 QTableItem *i = item( currentRow(), 0 ); 291 QTableItem *i = item( currentRow(), 0 );
269 if ( !i || rowHeight( currentRow() ) <= 0 ) 292 if ( !i || rowHeight( currentRow() ) <= 0 )
270 return ToDoEvent(); 293 return ToDoEvent();
271 ToDoEvent *todo = todoList[(CheckItem*)i]; 294 ToDoEvent *todo = todoList[(CheckItem*)i];
272 todo->setCompleted( ( (CheckItem*)item( currentRow(), 0 ) )->isChecked() ); 295 todo->setCompleted( ( (CheckItem*)item( currentRow(), 0 ) )->isChecked() );
273 todo->setPriority( ( (ComboItem*)item( currentRow(), 1 ) )->text().toInt() ); 296 todo->setPriority( ( (ComboItem*)item( currentRow(), 1 ) )->text().toInt() );
@@ -351,12 +374,21 @@ void TodoTable::updateVisible()
351{ 374{
352 if ( !isUpdatesEnabled() ) 375 if ( !isUpdatesEnabled() )
353 return; 376 return;
354 377
355// qDebug("--> updateVisible!"); 378// qDebug("--> updateVisible!");
356 379
380 /* added 20.01.2k2 by se */
381 if (showDeadl){
382 showColumn (3);
383 adjustColumn(3);
384 }else{
385 hideColumn (3);
386 adjustColumn(2);
387 }
388
357 int visible = 0; 389 int visible = 0;
358 int id = mCat.id( "Todo List", showCat ); 390 int id = mCat.id( "Todo List", showCat );
359 for ( int row = 0; row < numRows(); row++ ) { 391 for ( int row = 0; row < numRows(); row++ ) {
360 CheckItem *ci = (CheckItem *)item( row, 0 ); 392 CheckItem *ci = (CheckItem *)item( row, 0 );
361 ToDoEvent *t = todoList[ci]; 393 ToDoEvent *t = todoList[ci];
362 QArray<int> vlCats = t->categories(); 394 QArray<int> vlCats = t->categories();
@@ -452,13 +484,13 @@ void TodoTable::slotCheckPriority(int row, int col )
452 ComboItem* i = static_cast<ComboItem*>( item( row, col ) ); 484 ComboItem* i = static_cast<ComboItem*>( item( row, col ) );
453 emit signalPriorityChanged( i->text().toInt() ); 485 emit signalPriorityChanged( i->text().toInt() );
454 } 486 }
455} 487}
456 488
457 489
458void TodoTable::updateJournal( const ToDoEvent &todo, journal_action action, int row ) 490void TodoTable::updateJournal( const ToDoEvent &/*todo*/, journal_action action, int row )
459{ 491{
460 QFile f( journalFileName() ); 492 QFile f( journalFileName() );
461 if ( !f.open(IO_WriteOnly|IO_Append) ) 493 if ( !f.open(IO_WriteOnly|IO_Append) )
462 return; 494 return;
463 QString buf; 495 QString buf;
464 QCString str; 496 QCString str;
@@ -505,22 +537,50 @@ void TodoTable::journalFreeReplaceEntry( const ToDoEvent &todo, int row )
505 for ( it = todoList.begin(); it != todoList.end(); ++it ) { 537 for ( it = todoList.begin(); it != todoList.end(); ++it ) {
506 if ( *(*it) == todo ) { 538 if ( *(*it) == todo ) {
507 row = it.key()->row(); 539 row = it.key()->row();
508 it.key()->setChecked( todo.isCompleted() ); 540 it.key()->setChecked( todo.isCompleted() );
509 static_cast<ComboItem*>(item(row, 1))->setText( QString::number(todo.priority()) ); 541 static_cast<ComboItem*>(item(row, 1))->setText( QString::number(todo.priority()) );
510 item( row, 2 )->setText( strTodo ); 542 item( row, 2 )->setText( strTodo );
543
544 /* added 20.01.2k2 by se */
545 if (showDeadl){
546 if (todo.hasDate()){
547 QDate *today = new QDate (QDate::currentDate());
548 if (today){
549 item (row, 3)->setText (tr ("%1").arg(today->daysTo(todo.date())));
550 delete (today);
551 }
552 }else{
553 item (row, 3)->setText ("n.d.");
554 }
555 }
556
511 *(*it) = todo; 557 *(*it) = todo;
512 } 558 }
513 } 559 }
514 } else { 560 } else {
515 ToDoEvent *t = todoList[static_cast<CheckItem*>(item(row, 0))]; 561 ToDoEvent *t = todoList[static_cast<CheckItem*>(item(row, 0))];
516 todoList.remove( static_cast<CheckItem*>(item(row, 0)) ); 562 todoList.remove( static_cast<CheckItem*>(item(row, 0)) );
517 delete t; 563 delete t;
518 static_cast<CheckItem*>(item(row, 0))->setChecked( todo.isCompleted() ); 564 static_cast<CheckItem*>(item(row, 0))->setChecked( todo.isCompleted() );
519 static_cast<ComboItem*>(item(row, 1))->setText( QString::number(todo.priority()) ); 565 static_cast<ComboItem*>(item(row, 1))->setText( QString::number(todo.priority()) );
520 item( row, 2 )->setText( strTodo ); 566 item( row, 2 )->setText( strTodo );
567
568 /* added 20.01.2k2 by se */
569 if (showDeadl){
570 if (todo.hasDate()){
571 QDate *today = new QDate (QDate::currentDate());
572 if (today){
573 item (row, 3)->setText (tr ("%1").arg(today->daysTo(todo.date())));
574 delete (today);
575 }
576 }else{
577 item (row, 3)->setText ("n.d.");
578 }
579 }
580
521 todoList.insert( static_cast<CheckItem*>(item(row,0)), new ToDoEvent(todo) ); 581 todoList.insert( static_cast<CheckItem*>(item(row,0)), new ToDoEvent(todo) );
522 } 582 }
523} 583}
524 584
525void TodoTable::journalFreeRemoveEntry( int row ) 585void TodoTable::journalFreeRemoveEntry( int row )
526{ 586{
diff --git a/core/pim/todo/todotable.h b/core/pim/todo/todotable.h
index 2746ce7..288ff90 100644
--- a/core/pim/todo/todotable.h
+++ b/core/pim/todo/todotable.h
@@ -95,12 +95,16 @@ public:
95 95
96 QStringList categories(); 96 QStringList categories();
97 97
98 void setShowCompleted( bool sc ) { showComp = sc; updateVisible(); } 98 void setShowCompleted( bool sc ) { showComp = sc; updateVisible(); }
99 bool showCompleted() const { return showComp; } 99 bool showCompleted() const { return showComp; }
100 100
101 /* added 20.01.2k2 by se */
102 void setShowDeadline (bool sd) {showDeadl = sd; updateVisible();}
103 bool showDeadline() const { return showDeadl;}
104
101 void setShowCategory( const QString &c ) { showCat = c; updateVisible(); } 105 void setShowCategory( const QString &c ) { showCat = c; updateVisible(); }
102 const QString &showCategory() const { return showCat; } 106 const QString &showCategory() const { return showCat; }
103 int showCategoryId() const; 107 int showCategoryId() const;
104 108
105 bool save( const QString &fn ); 109 bool save( const QString &fn );
106 void load( const QString &fn ); 110 void load( const QString &fn );
@@ -156,12 +160,15 @@ private:
156 bool showComp; 160 bool showComp;
157 QString showCat; 161 QString showCat;
158 QTimer *menuTimer; 162 QTimer *menuTimer;
159 bool enablePainting; 163 bool enablePainting;
160 Categories mCat; 164 Categories mCat;
161 int currFindRow; 165 int currFindRow;
166
167 /* added 20.01.2k2 by se */
168 bool showDeadl;
162}; 169};
163 170
164 171
165inline void TodoTable::insertIntoTable( ToDoEvent *todo, int row ) 172inline void TodoTable::insertIntoTable( ToDoEvent *todo, int row )
166{ 173{
167 QString sortKey = (char) ((todo->isCompleted() ? 'a' : 'A') 174 QString sortKey = (char) ((todo->isCompleted() ? 'a' : 'A')
@@ -171,16 +178,31 @@ inline void TodoTable::insertIntoTable( ToDoEvent *todo, int row )
171 chk->setChecked( todo->isCompleted() ); 178 chk->setChecked( todo->isCompleted() );
172 ComboItem *cmb = new ComboItem( this, QTableItem::WhenCurrent ); 179 ComboItem *cmb = new ComboItem( this, QTableItem::WhenCurrent );
173 cmb->setText( QString::number( todo->priority() ) ); 180 cmb->setText( QString::number( todo->priority() ) );
174 QTableItem *ti = new TodoTextItem( this, todo->description().left(40).simplifyWhiteSpace() ); 181 QTableItem *ti = new TodoTextItem( this, todo->description().left(40).simplifyWhiteSpace() );
175 ti->setReplaceable( false ); 182 ti->setReplaceable( false );
176 183
184 /* added 20.01.2k2 by se */
185 QTableItem *dl = NULL;
186 if (todo->hasDate()){
187 QDate *today = new QDate (QDate::currentDate());
188 if (today){
189 dl = new TodoTextItem (this, tr ("%1").
190 arg(today->daysTo(todo->date())));
191 delete (today);
192 }
193 }else{
194 dl = new TodoTextItem (this,"n.d.");
195 }
196 setItem( row, 3, dl);
197
177 setItem( row, 0, chk ); 198 setItem( row, 0, chk );
178 setItem( row, 1, cmb ); 199 setItem( row, 1, cmb );
179 setItem( row, 2, ti ); 200 setItem( row, 2, ti );
180 201
202
181 todoList.insert( chk, todo ); 203 todoList.insert( chk, todo );
182} 204}
183 205
184inline void TodoTable::realignTable( int row ) 206inline void TodoTable::realignTable( int row )
185{ 207{
186 QTableItem *ti1, 208 QTableItem *ti1,