summaryrefslogtreecommitdiff
path: root/core/pim/todo/todotable.h
Side-by-side diff
Diffstat (limited to 'core/pim/todo/todotable.h') (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/todo/todotable.h43
1 files changed, 23 insertions, 20 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
@@ -74,12 +74,25 @@ 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
{
@@ -95,13 +108,12 @@ public:
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;
@@ -160,15 +172,13 @@ private:
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')
@@ -178,53 +188,46 @@ inline void TodoTable::insertIntoTable( ToDoEvent *todo, int row )
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;
+ QTableItem *ti1,
+ *ti2,
+ *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