-rw-r--r-- | core/pim/todo/todotable.h | 39 |
1 files changed, 21 insertions, 18 deletions
diff --git a/core/pim/todo/todotable.h b/core/pim/todo/todotable.h index 288ff90..32df514 100644 --- a/core/pim/todo/todotable.h +++ b/core/pim/todo/todotable.h @@ -72,16 +72,29 @@ class TodoTextItem : public QTableItem { public: TodoTextItem( QTable *t, const QString & str ) :QTableItem( t, QTableItem::Never, str ) {} QString key () const { return Qtopia::buildSortKey( text() ); } }; +class DueTextItem : public QTableItem +{ + public: + DueTextItem( QTable *t, ToDoEvent *ev ); + QString key() const; + void setToDoEvent( const ToDoEvent *ev ); + void paint( QPainter *p, const QColorGroup &cg, const QRect &cr, bool selected ); + private: + int m_off; + bool m_hasDate:1; + bool m_completed:1; + +}; enum journal_action { ACTION_ADD, ACTION_REMOVE, ACTION_REPLACE }; class TodoTable : public QTable { Q_OBJECT @@ -93,17 +106,16 @@ public: ToDoEvent currentEntry() const; void replaceCurrentEntry( const ToDoEvent &todo, bool fromTableItem = false ); QStringList categories(); void setShowCompleted( bool sc ) { showComp = sc; updateVisible(); } bool showCompleted() const { return showComp; } - /* added 20.01.2k2 by se */ void setShowDeadline (bool sd) {showDeadl = sd; updateVisible();} bool showDeadline() const { return showDeadl;} void setShowCategory( const QString &c ) { showCat = c; updateVisible(); } const QString &showCategory() const { return showCat; } int showCategoryId() const; bool save( const QString &fn ); @@ -158,73 +170,64 @@ private: QMap<CheckItem*, ToDoEvent *> todoList; QStringList categoryList; bool showComp; QString showCat; QTimer *menuTimer; bool enablePainting; Categories mCat; int currFindRow; - - /* added 20.01.2k2 by se */ - bool showDeadl; + bool showDeadl:1; }; inline void TodoTable::insertIntoTable( ToDoEvent *todo, int row ) { QString sortKey = (char) ((todo->isCompleted() ? 'a' : 'A') + todo->priority() ) + Qtopia::buildSortKey( todo->description() ); CheckItem *chk = new CheckItem( this, sortKey ); chk->setChecked( todo->isCompleted() ); ComboItem *cmb = new ComboItem( this, QTableItem::WhenCurrent ); cmb->setText( QString::number( todo->priority() ) ); QTableItem *ti = new TodoTextItem( this, todo->description().left(40).simplifyWhiteSpace() ); ti->setReplaceable( false ); - /* added 20.01.2k2 by se */ - QTableItem *dl = NULL; - if (todo->hasDate()){ - QDate *today = new QDate (QDate::currentDate()); - if (today){ - dl = new TodoTextItem (this, tr ("%1"). - arg(today->daysTo(todo->date()))); - delete (today); - } - }else{ - dl = new TodoTextItem (this,"n.d."); - } - setItem( row, 3, dl); + DueTextItem *due = new DueTextItem(this, todo ); + setItem( row, 3, due); setItem( row, 0, chk ); setItem( row, 1, cmb ); setItem( row, 2, ti ); todoList.insert( chk, todo ); } inline void TodoTable::realignTable( int row ) { QTableItem *ti1, *ti2, - *ti3; + *ti3, + *ti4; int totalRows = numRows(); for ( int curr = row; curr < totalRows - 1; curr++ ) { // this is bad, we must take the item out and then // set it. In the end, it behaves no worse (time wise) // then the old way of saving the entries to file, clearing // the table re-reading in the file and resetting the table ti1 = item( curr + 1, 0 ); ti2 = item( curr + 1, 1 ); ti3 = item( curr + 1, 2 ); + ti4 = item( curr + 1, 3 ); takeItem( ti1 ); takeItem( ti2 ); takeItem( ti3 ); + takeItem( ti4 ); setItem( curr, 0, ti1 ); setItem( curr, 1, ti2 ); setItem( curr, 2, ti3 ); + setItem( curr, 3, ti4 ); } setNumRows( totalRows - 1 ); } #endif |