summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/todo/tableview.cpp174
1 files changed, 98 insertions, 76 deletions
diff --git a/core/pim/todo/tableview.cpp b/core/pim/todo/tableview.cpp
index c4165db..6299113 100644
--- a/core/pim/todo/tableview.cpp
+++ b/core/pim/todo/tableview.cpp
@@ -29,2 +29,3 @@
+#include <qlineedit.h>
#include <qtimer.h>
@@ -55,5 +56,7 @@ TableView::TableView( MainWindow* window, QWidget* wid )
setSelectionMode( NoSelection );
- setColumnStretchable( 2, TRUE );
+// setColumnStretchable( 2, TRUE );
+ setColumnStretchable( 3, FALSE );
setColumnWidth(0, 20 );
setColumnWidth(1, 35 );
+ setColumnWidth(3, 18 );
@@ -66,4 +69,4 @@ TableView::TableView( MainWindow* window, QWidget* wid )
- setColumnStretchable(3, FALSE );
- setColumnWidth(3, 20 );
+// setColumnStretchable(3, FALSE );
+
horizontalHeader()->setLabel(3, tr("Deadline") );
@@ -313,74 +316,74 @@ void TableView::paintCell(QPainter* p, int row, int col, const QRect& cr, bool
case 0:
- {
- // completed field
- int marg = ( cr.width() - BoxSize ) / 2;
- int x = 0;
- int y = ( cr.height() - BoxSize ) / 2;
- p->setPen( QPen( cg.text() ) );
- p->drawRect( x + marg, y, BoxSize, BoxSize );
- p->drawRect( x + marg+1, y+1, BoxSize-2, BoxSize-2 );
- p->setPen( darkGreen );
- x += 1;
- y += 1;
- if ( task.isCompleted() ) {
- QPointArray a( 9*2 );
- int i, xx, yy;
- xx = x+2+marg;
- yy = y+4;
- for ( i=0; i<4; i++ ) {
- a.setPoint( 2*i, xx, yy );
- a.setPoint( 2*i+1, xx, yy+2 );
- xx++; yy++;
- }
- yy -= 2;
- for ( i=4; i<9; i++ ) {
- a.setPoint( 2*i, xx, yy );
- a.setPoint( 2*i+1, xx, yy+2 );
- xx++; yy--;
- }
- p->drawLineSegments( a );
- }
- }
- break;
- case 1:
- // priority field
- {
- QString text = QString::number(task.priority());
- p->drawText(2,2 + fm.ascent(), text);
- }
- break;
- case 2:
- // description field
- {
- QString text = task.summary().isEmpty() ?
- task.description() :
- task.summary();
- p->drawText(2,2 + fm.ascent(), text);
- }
- break;
- case 3:
- {
- QString text;
- if (task.hasDueDate()) {
- int off = QDate::currentDate().daysTo( task.dueDate() );
- text = QString::number(off) + tr(" day(s)");
- /*
- * set color if not completed
- */
- if (!task.isCompleted() ) {
- QColor color = Qt::black;
- if ( off < 0 )
- color = Qt::red;
- else if ( off == 0 )
- color = Qt::yellow;
- else if ( off > 0 )
- color = Qt::green;
- p->setPen(color );
- }
- } else {
- text = tr("None");
- }
- p->drawText(2,2 + fm.ascent(), text);
- }
- break;
+ {
+ // completed field
+ int marg = ( cr.width() - BoxSize ) / 2;
+ int x = 0;
+ int y = ( cr.height() - BoxSize ) / 2;
+ p->setPen( QPen( cg.text() ) );
+ p->drawRect( x + marg, y, BoxSize, BoxSize );
+ p->drawRect( x + marg+1, y+1, BoxSize-2, BoxSize-2 );
+ p->setPen( darkGreen );
+ x += 1;
+ y += 1;
+ if ( task.isCompleted() ) {
+ QPointArray a( 9*2 );
+ int i, xx, yy;
+ xx = x+2+marg;
+ yy = y+4;
+ for ( i=0; i<4; i++ ) {
+ a.setPoint( 2*i, xx, yy );
+ a.setPoint( 2*i+1, xx, yy+2 );
+ xx++; yy++;
+ }
+ yy -= 2;
+ for ( i=4; i<9; i++ ) {
+ a.setPoint( 2*i, xx, yy );
+ a.setPoint( 2*i+1, xx, yy+2 );
+ xx++; yy--;
+ }
+ p->drawLineSegments( a );
+ }
+ }
+ break;
+ case 1:
+ // priority field
+ {
+ QString text = QString::number(task.priority());
+ p->drawText(2,2 + fm.ascent(), text);
+ }
+ break;
+ case 2:
+ // description field
+ {
+ QString text = task.summary().isEmpty() ?
+ task.description() :
+ task.summary();
+ p->drawText(2,2 + fm.ascent(), text);
+ }
+ break;
+ case 3:
+ {
+ QString text;
+ if (task.hasDueDate()) {
+ int off = QDate::currentDate().daysTo( task.dueDate() );
+ text = QString::number(off) + tr(" day(s)");
+ /*
+ * set color if not completed
+ */
+ if (!task.isCompleted() ) {
+ QColor color = Qt::black;
+ if ( off < 0 )
+ color = Qt::red;
+ else if ( off == 0 )
+ color = Qt::yellow;
+ else if ( off > 0 )
+ color = Qt::green;
+ p->setPen(color );
+ }
+ } else {
+ text = tr("None");
+ }
+ p->drawText(2,2 + fm.ascent(), text);
+ }
+ break;
}
@@ -401,2 +404,8 @@ QWidget* TableView::createEditor(int row, int col, bool )const {
}
+ /* summary */
+ case 2:{
+ QLineEdit* edit = new QLineEdit( viewport() );
+ edit->setText( sorted()[row].summary() );
+ return edit;
+ }
case 0:
@@ -418,2 +427,13 @@ void TableView::setCellContentFromEditor(int row, int col ) {
}
+ }else if ( col == 2) {
+ QWidget* wid = cellWidget(row, 2);
+ if ( wid->inherits("QLineEdit") ) {
+ QString text = ((QLineEdit*)wid)->text();
+ OTodo todo = sorted()[row];
+ if ( todo.summary() != text ) {
+ todo.setSummary( text );
+ TodoView::update( todo.uid(), todo );
+ updateView();
+ }
+ }
}
@@ -431,2 +451,3 @@ void TableView::slotPriority() {
void TableView::timerEvent( QTimerEvent* ev ) {
+ qWarning("sorted %d", sorted().count() );
if (sorted().count() == 0 )
@@ -468,4 +489,5 @@ void TableView::contentsMouseReleaseEvent( QMouseEvent* e) {
int row = rowAt(m_prevP.y());
- if ( row == rowAt( e->y() ) ) {
+ if ( row == rowAt( e->y() ) && row != -1 ) {
if ( abs( m_prevP.x() - e->x() ) >= 8 ) {
+ qWarning("current row %d", row );
OTodo todo = sorted()[row];