-rw-r--r-- | core/pim/todo/tableview.cpp | 54 |
1 files changed, 52 insertions, 2 deletions
diff --git a/core/pim/todo/tableview.cpp b/core/pim/todo/tableview.cpp index 5d82eb2..f4b898f 100644 --- a/core/pim/todo/tableview.cpp +++ b/core/pim/todo/tableview.cpp | |||
@@ -126,6 +126,13 @@ void TableView::showOverDue( bool ) { | |||
126 | } | 126 | } |
127 | 127 | ||
128 | void TableView::updateView( ) { | 128 | void TableView::updateView( ) { |
129 | m_row = false; | ||
130 | startTimer( 2000 ); | ||
131 | /* FIXME we want one page to be read! | ||
132 | * | ||
133 | * Calculate that screensize | ||
134 | */ | ||
135 | todoWindow()->setReadAhead( 4 ); | ||
129 | sort(); | 136 | sort(); |
130 | OTodoAccess::List::Iterator it, end; | 137 | OTodoAccess::List::Iterator it, end; |
131 | it = sorted().begin(); | 138 | it = sorted().begin(); |
@@ -160,7 +167,8 @@ void TableView::setTodo( int, const OTodo&) { | |||
160 | void TableView::addEvent( const OTodo&) { | 167 | void TableView::addEvent( const OTodo&) { |
161 | sort(); | 168 | sort(); |
162 | 169 | ||
163 | QTable::update(); | 170 | /* fix problems of not showing the 'Haken' */ |
171 | QTable::repaint(); | ||
164 | } | 172 | } |
165 | /* | 173 | /* |
166 | * find the event | 174 | * find the event |
@@ -353,7 +361,21 @@ void TableView::paintCell(QPainter* p, int row, int col, const QRect& cr, bool | |||
353 | { | 361 | { |
354 | QString text; | 362 | QString text; |
355 | if (task.hasDueDate()) { | 363 | if (task.hasDueDate()) { |
356 | text = "HAS"; | 364 | int off = QDate::currentDate().daysTo( task.dueDate() ); |
365 | text = QString::number(off) + tr(" day(s)"); | ||
366 | /* | ||
367 | * set color if not completed | ||
368 | */ | ||
369 | if (!task.isCompleted() ) { | ||
370 | QColor color = Qt::black; | ||
371 | if ( off < 0 ) | ||
372 | color = Qt::red; | ||
373 | else if ( off == 0 ) | ||
374 | color = Qt::yellow; | ||
375 | else if ( off > 0 ) | ||
376 | color = Qt::green; | ||
377 | p->setPen(color ); | ||
378 | } | ||
357 | } else { | 379 | } else { |
358 | text = tr("None"); | 380 | text = tr("None"); |
359 | } | 381 | } |
@@ -398,3 +420,31 @@ void TableView::setCellContentFromEditor(int row, int col ) { | |||
398 | void TableView::slotPriority() { | 420 | void TableView::slotPriority() { |
399 | setCellContentFromEditor( currentRow(), currentColumn() ); | 421 | setCellContentFromEditor( currentRow(), currentColumn() ); |
400 | } | 422 | } |
423 | /* | ||
424 | * We'll use the TimerEvent to read ahead or to keep the cahce always | ||
425 | * filled enough. | ||
426 | * We will try to read ahead 4 items in both ways | ||
427 | * up and down. On odd or even we will currentRow()+-4 or +-9 | ||
428 | * | ||
429 | */ | ||
430 | void TableView::timerEvent( QTimerEvent* ev ) { | ||
431 | int row = currentRow(); | ||
432 | qWarning("TimerEvent %d", row); | ||
433 | if ( m_row ) { | ||
434 | int ro = row-4; | ||
435 | if (ro < 0 ) ro = 0; | ||
436 | sorted()[ro]; | ||
437 | |||
438 | ro = row+4; | ||
439 | sorted()[ro]; | ||
440 | } else { | ||
441 | int ro = row + 8; | ||
442 | sorted()[ro]; | ||
443 | |||
444 | ro = row-8; | ||
445 | if (ro < 0 ) ro = 0; | ||
446 | sorted()[ro]; | ||
447 | } | ||
448 | |||
449 | m_row = !m_row; | ||
450 | } | ||