summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/todo/tableview.cpp20
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,19 +1,19 @@
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
7:`=1 )Y*s>-.-- � : the terms of the GNU General Public 7:`=1 )Y*s>-.-- � : the terms of the GNU General Public
8.="- .-=="i, � � .._ License as published by the Free Software 8.="- .-=="i, � � .._ License as published by the Free Software
9�- . � .-<_> � � .<> Foundation; either version 2 of the License, 9�- . � .-<_> � � .<> Foundation; either version 2 of the License,
10� � �._= =} � � � : or (at your option) any later version. 10� � �._= =} � � � : or (at your option) any later version.
11� � .%`+i> � � � _;_. 11� � .%`+i> � � � _;_.
12� � .i_,=:_. � � �-<s. This program is distributed in the hope that 12� � .i_,=:_. � � �-<s. This program is distributed in the hope that
13� � �+ �. �-:. � � � = it will be useful, but WITHOUT ANY WARRANTY; 13� � �+ �. �-:. � � � = it will be useful, but WITHOUT ANY WARRANTY;
14� � : .. � �.:, � � . . . without even the implied warranty of 14� � : .. � �.:, � � . . . without even the implied warranty of
15� � =_ � � � �+ � � =;=|` MERCHANTABILITY or FITNESS FOR A 15� � =_ � � � �+ � � =;=|` MERCHANTABILITY or FITNESS FOR A
16� _.=:. � � � : � �:=>`: PARTICULAR PURPOSE. See the GNU 16� _.=:. � � � : � �:=>`: PARTICULAR PURPOSE. See the GNU
17..}^=.= � � � = � � � ; Library General Public License for more 17..}^=.= � � � = � � � ; Library General Public License for more
18++= � -. � � .` � � .: details. 18++= � -. � � .` � � .: details.
19�: � � = �...= . :.=- 19�: � � = �...= . :.=-
@@ -257,32 +257,33 @@ void TableView::slotClicked(int row, int col, int,
257 m_menuTimer->stop(); 257 m_menuTimer->stop();
258 showTodo( ui ); 258 showTodo( ui );
259 break; 259 break;
260 } 260 }
261 case 3: { 261 case 3: {
262 m_menuTimer->stop(); 262 m_menuTimer->stop();
263 TodoView::edit( ui ); 263 TodoView::edit( ui );
264 break; 264 break;
265 } 265 }
266 } 266 }
267 267
268 268
269} 269}
270void TableView::slotPressed(int row, int col, int, 270void 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 ) )
276 m_menuTimer->start( 750, TRUE ); 277 m_menuTimer->start( 750, TRUE );
277} 278}
278void TableView::slotValueChanged( int, int ) { 279void TableView::slotValueChanged( int, int ) {
279 qWarning("Value Changed"); 280 qWarning("Value Changed");
280} 281}
281void TableView::slotCurrentChanged(int, int ) { 282void TableView::slotCurrentChanged(int, int ) {
282 m_menuTimer->stop(); 283 m_menuTimer->stop();
283} 284}
284QWidget* TableView::widget() { 285QWidget* TableView::widget() {
285 return this; 286 return this;
286} 287}
287/* 288/*
288 * We need to overwrite sortColumn 289 * We need to overwrite sortColumn
@@ -483,35 +484,44 @@ void TableView::timerEvent( QTimerEvent* ev ) {
483 } 484 }
484 485
485 m_row = !m_row; 486 m_row = !m_row;
486} 487}
487 488
488// We want a strike through completed ;) 489// We want a strike through completed ;)
489// durchstreichen to complete 490// durchstreichen to complete
490/* 491/*
491 * MouseTracking is off this mean we only receive 492 * MouseTracking is off this mean we only receive
492 * these events if the mouse button is pressed 493 * these events if the mouse button is pressed
493 * We've the previous point saved 494 * We've the previous point saved
494 * We check if the previous and current Point are 495 * We check if the previous and current Point are
495 * in the same row. 496 * in the same row.
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 */
500void TableView::contentsMouseReleaseEvent( QMouseEvent* e) { 509void 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}
514void TableView::contentsMouseMoveEvent( QMouseEvent* e ) { 524void TableView::contentsMouseMoveEvent( QMouseEvent* e ) {
515 m_menuTimer->stop(); 525 m_menuTimer->stop();
516 QTable::contentsMouseMoveEvent( e ); 526 QTable::contentsMouseMoveEvent( e );
517} 527}