author | zecke <zecke> | 2002-04-13 19:58:17 (UTC) |
---|---|---|
committer | zecke <zecke> | 2002-04-13 19:58:17 (UTC) |
commit | 244495af9bd629fe565b5c753d066cc4fde684ae (patch) (side-by-side diff) | |
tree | 8f20084c688b627223a431f02875703418e6d999 /core/pim/todo/todotable.cpp | |
parent | 84f5e0817231fa3721c781b0538659f5a7149349 (diff) | |
download | opie-244495af9bd629fe565b5c753d066cc4fde684ae.zip opie-244495af9bd629fe565b5c753d066cc4fde684ae.tar.gz opie-244495af9bd629fe565b5c753d066cc4fde684ae.tar.bz2 |
Fix Stefan Eilers patch
Extend the due column
better sorting
and colors ;)
-rw-r--r-- | core/pim/todo/todotable.cpp | 98 |
1 files changed, 63 insertions, 35 deletions
diff --git a/core/pim/todo/todotable.cpp b/core/pim/todo/todotable.cpp index 3cd0c0e..2acd03c 100644 --- a/core/pim/todo/todotable.cpp +++ b/core/pim/todo/todotable.cpp @@ -162,5 +162,53 @@ QString ComboItem::text() const } - - - +DueTextItem::DueTextItem( QTable *t, ToDoEvent *ev ) + : QTableItem(t, Never, QString::null ) +{ + setToDoEvent( ev ); +} +QString DueTextItem::key() const +{ + QString key; + if( m_hasDate ){ + if(m_off == 0 ){ + key.append("b"); + }else if( m_off > 0 ){ + key.append("c"); + }else if( m_off < 0 ){ + key.append("a"); + } + key.append(QString::number(m_off ) ); + }else{ + key.append("d"); + } + return key; +} +void DueTextItem::setToDoEvent( const ToDoEvent *ev ) +{ + m_hasDate = ev->hasDate(); + m_completed = ev->isCompleted(); + if( ev->hasDate() ){ + QDate today = QDate::currentDate(); + m_off = today.daysTo(ev->date() ); + setText( QString::number(m_off) + " day(s) " ); + }else{ + setText("n.d." ); + m_off = 0; + } +} +void DueTextItem::paint( QPainter *p, const QColorGroup &cg, const QRect &cr, bool selected ) +{ + QColorGroup cg2(cg); + QColor text = cg.text(); + if( m_hasDate && !m_completed ){ + if( m_off < 0 ){ + cg2.setColor(QColorGroup::Text, QColor(red ) ); + }else if( m_off == 0 ){ + cg2.setColor(QColorGroup::Text, QColor(yellow) ); // orange isn't predefined + }else if( m_off > 0){ + cg2.setColor(QColorGroup::Text, QColor(green ) ); + } + } + QTableItem::paint(p, cg2, cr, selected ); + cg2.setColor(QColorGroup::Text, text ); +} TodoTable::TodoTable( QWidget *parent, const char *name ) @@ -249,9 +297,9 @@ void TodoTable::slotClicked( int row, int col, int, const QPoint &pos ) // may as well edit it... - menuTimer->stop(); + // menuTimer->stop(); // emit signalEdit(); - break; - case 3: /* added 20.01.2k2 by se */ + // fall through + case 3: // may as well edit it... menuTimer->stop(); - emit signalEdit(); + // emit signalEdit(); break; @@ -370,2 +418,3 @@ void TodoTable::load( const QString &fn ) setCurrentCell( 0, 2 ); + setSorting(true ); } @@ -376,6 +425,3 @@ void TodoTable::updateVisible() return; - -// qDebug("--> updateVisible!"); - - /* added 20.01.2k2 by se */ + if (showDeadl){ @@ -402,3 +448,3 @@ void TodoTable::updateVisible() } else { - // do some comparing, we have to reverse our idea here... + // do some comparing, we have to reverse our idea here... which idea - zecke if ( !hide ) { @@ -468,3 +514,3 @@ void TodoTable::clear() -void TodoTable::sortColumn( int col, bool /*ascending*/, bool /*wholeRows*/ ) +void TodoTable::sortColumn( int col, bool ascending, bool /*wholeRows*/ ) { @@ -474,3 +520,3 @@ void TodoTable::sortColumn( int col, bool /*ascending*/, bool /*wholeRows*/ ) // the values have a logical order. - QTable::sortColumn( col, TRUE, TRUE ); + QTable::sortColumn( col, ascending, TRUE ); updateVisible(); @@ -499,3 +545,3 @@ void TodoTable::updateJournal( const ToDoEvent &/*todo*/, journal_action action, buf += " Action=\"" + QString::number( int(action) ) + "\""; - buf += " Row=\"" + QString::number( row ) + "\""; + buf += " Row=\"" + QString::number( row ) + "\""; // better write the id buf += "/>\n"; @@ -543,13 +589,4 @@ void TodoTable::journalFreeReplaceEntry( const ToDoEvent &todo, int row ) - /* added 20.01.2k2 by se */ if (showDeadl){ - if (todo.hasDate()){ - QDate *today = new QDate (QDate::currentDate()); - if (today){ - item (row, 3)->setText (tr ("%1").arg(today->daysTo(todo.date()))); - delete (today); - } - }else{ - item (row, 3)->setText ("n.d."); - } + static_cast<DueTextItem*>(item(row,3))->setToDoEvent(&todo ); } @@ -567,13 +604,4 @@ void TodoTable::journalFreeReplaceEntry( const ToDoEvent &todo, int row ) - /* added 20.01.2k2 by se */ if (showDeadl){ - if (todo.hasDate()){ - QDate *today = new QDate (QDate::currentDate()); - if (today){ - item (row, 3)->setText (tr ("%1").arg(today->daysTo(todo.date()))); - delete (today); - } - }else{ - item (row, 3)->setText ("n.d."); - } + static_cast<DueTextItem*>(item(row,3))->setToDoEvent(&todo ); } |