-rw-r--r-- | core/pim/todo/tableview.cpp | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/core/pim/todo/tableview.cpp b/core/pim/todo/tableview.cpp index 743deb7..ded2dbd 100644 --- a/core/pim/todo/tableview.cpp +++ b/core/pim/todo/tableview.cpp | |||
@@ -1,6 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | =. This file is part of the OPIE Project | 2 | =. This file is part of the OPIE Project |
3 | .=l. Copyright (c) 2002 <> | 3 | .=l. Copyright (c) 2002 <zecke> |
4 | .>+-= | 4 | .>+-= |
5 | _;:, .> :=|. This program is free software; you can | 5 | _;:, .> :=|. This program is free software; you can |
6 | .> <`_, > . <= redistribute it and/or modify it under | 6 | .> <`_, > . <= redistribute it and/or modify it under |
@@ -270,6 +270,7 @@ void TableView::slotClicked(int row, int col, int, | |||
270 | void TableView::slotPressed(int row, int col, int, | 270 | void TableView::slotPressed(int row, int col, int, |
271 | const QPoint& point) { | 271 | const QPoint& point) { |
272 | 272 | ||
273 | qWarning("pressed row %d col %d x:%d+y:%d", row,col,point.x(),point.y() ); | ||
273 | m_prevP = point; | 274 | m_prevP = point; |
274 | /* TextColumn column */ | 275 | /* TextColumn column */ |
275 | if ( col == 2 && cellGeometry( row, col ).contains( point ) ) | 276 | if ( col == 2 && cellGeometry( row, col ).contains( point ) ) |
@@ -496,18 +497,27 @@ void TableView::timerEvent( QTimerEvent* ev ) { | |||
496 | * Then we check if they're some pixel horizontal away | 497 | * Then we check if they're some pixel horizontal away |
497 | * if the distance between the two points is greater than | 498 | * if the distance between the two points is greater than |
498 | * 8 we mark the underlying todo as completed and do a repaint | 499 | * 8 we mark the underlying todo as completed and do a repaint |
500 | * | ||
501 | * BUG: When clicking on the Due column and it's scrollable | ||
502 | * the todo is marked as completed... | ||
503 | * REASON: QTable is doing auto scrolling which leads to a move | ||
504 | * in the x coordinate and this way it's able to pass the | ||
505 | * m_completeStrokeWidth criteria | ||
506 | * WORKAROUND: strike through needs to strike through the same | ||
507 | * row and two columns! | ||
499 | */ | 508 | */ |
500 | void TableView::contentsMouseReleaseEvent( QMouseEvent* e) { | 509 | void TableView::contentsMouseReleaseEvent( QMouseEvent* e) { |
501 | int row = rowAt(m_prevP.y()); | 510 | int row = rowAt(m_prevP.y()); |
502 | if ( row == rowAt( e->y() ) && row != -1 ) { | 511 | int colOld = columnAt(m_prevP.x() ); |
503 | if ( ::abs( m_prevP.x() - e->x() ) >= m_completeStrokeWidth ) { | 512 | int colNew = columnAt(e->x() ); |
504 | qWarning("current row %d", row ); | 513 | qWarning("colNew: %d colOld: %d", colNew, colOld ); |
514 | if ( row == rowAt( e->y() ) && row != -1 && | ||
515 | colOld != colNew ) { | ||
505 | OTodo todo = sorted()[row]; | 516 | OTodo todo = sorted()[row]; |
506 | todo.setCompleted( !todo.isCompleted() ); | 517 | todo.setCompleted( !todo.isCompleted() ); |
507 | TodoView::update( todo.uid(), todo ); | 518 | TodoView::update( todo.uid(), todo ); |
508 | updateView(); | 519 | updateView(); |
509 | return; | 520 | return; |
510 | } | ||
511 | } | 521 | } |
512 | QTable::contentsMouseReleaseEvent( e ); | 522 | QTable::contentsMouseReleaseEvent( e ); |
513 | } | 523 | } |