summaryrefslogtreecommitdiff
path: root/core/pim/todo/todotable.cpp
Unidiff
Diffstat (limited to 'core/pim/todo/todotable.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/todo/todotable.cpp68
1 files changed, 64 insertions, 4 deletions
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
@@ -17,7 +17,8 @@
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>
@@ -38,6 +39,8 @@
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 );
@@ -164,12 +167,13 @@ TodoTable::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 );
@@ -177,11 +181,23 @@ TodoTable::TodoTable( QWidget *parent, const char *name )
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 & ) ),
@@ -234,6 +250,11 @@ void TodoTable::slotClicked( int row, int col, int, const QPoint &pos )
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
@@ -265,6 +286,8 @@ void TodoTable::internalAddEntries( QList<ToDoEvent> &list )
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();
@@ -354,6 +377,15 @@ void TodoTable::updateVisible()
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++ ) {
@@ -455,7 +487,7 @@ void TodoTable::slotCheckPriority(int row, int col )
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) )
@@ -508,6 +540,20 @@ void TodoTable::journalFreeReplaceEntry( const ToDoEvent &todo, int 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 }
@@ -518,6 +564,20 @@ void TodoTable::journalFreeReplaceEntry( const ToDoEvent &todo, int row )
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}