summaryrefslogtreecommitdiff
authorzecke <zecke>2002-10-20 12:10:31 (UTC)
committer zecke <zecke>2002-10-20 12:10:31 (UTC)
commit7948b5910a098d05f4cc7d0fb14b0f216bf41358 (patch) (side-by-side diff)
treec7765042be7eb4373ea90145f1e218fee0cd1c3a
parent940ba90ed4375f79b6a4934d290abf83980b77ad (diff)
downloadopie-7948b5910a098d05f4cc7d0fb14b0f216bf41358.zip
opie-7948b5910a098d05f4cc7d0fb14b0f216bf41358.tar.gz
opie-7948b5910a098d05f4cc7d0fb14b0f216bf41358.tar.bz2
Strike through a row to complete the Record ;)^
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/todo/tableview.cpp39
-rw-r--r--core/pim/todo/tableview.h3
2 files changed, 36 insertions, 6 deletions
diff --git a/core/pim/todo/tableview.cpp b/core/pim/todo/tableview.cpp
index 34b8b3c..c4165db 100644
--- a/core/pim/todo/tableview.cpp
+++ b/core/pim/todo/tableview.cpp
@@ -20,16 +20,17 @@
 -.   .:....=;==+<; You should have received a copy of the GNU
  -_. . .   )=.  = Library General Public License along with
    --        :-=` this library; see the file COPYING.LIB.
If not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
+#include <stdlib.h>
#include <qtimer.h>
#include <qpoint.h>
#include <qpopupmenu.h>
#include "mainwindow.h"
//#include "tableitems.h"
#include "tableview.h"
@@ -142,30 +143,27 @@ void TableView::updateView( ) {
qWarning("setTodos");
QTime time;
time.start();
m_enablePaint = false;
setUpdatesEnabled( false );
viewport()->setUpdatesEnabled( false );
- QTime t;
- t.start();
setNumRows( it.count() );
if ( it.count() == 0 )
killTimer(id);
+
int elc = time.elapsed();
- qWarning("Adding took %d", elc/1000 );
setUpdatesEnabled( true );
viewport()->setUpdatesEnabled( true );
viewport()->update();
m_enablePaint = true;
int el = time.elapsed();
- qWarning("adding took %d", el/1000 );
}
void TableView::setTodo( int, const OTodo&) {
sort();
/* repaint */
repaint();
}
void TableView::addEvent( const OTodo&) {
@@ -252,16 +250,17 @@ void TableView::slotClicked(int row, int col, int,
}
}
}
void TableView::slotPressed(int row, int col, int,
const QPoint& point) {
+ m_prevP = point;
/* TextColumn column */
if ( col == 2 && cellGeometry( row, col ).contains( point ) )
m_menuTimer->start( 750, TRUE );
}
void TableView::slotValueChanged( int, int ) {
qWarning("Value Changed");
}
void TableView::slotCurrentChanged(int, int ) {
@@ -279,17 +278,16 @@ QWidget* TableView::widget() {
*/
void TableView::sortColumn( int col, bool asc, bool ) {
qWarning("bool %d", asc );
setSortOrder( col );
setAscending( asc );
updateView();
}
void TableView::viewportPaintEvent( QPaintEvent* e) {
- qWarning("Paint event" );
if (m_enablePaint )
QTable::viewportPaintEvent( e );
}
/*
* This segment is copyrighted by TT
* it was taken from their todolist
* application this code is GPL
*/
@@ -430,17 +428,16 @@ void TableView::slotPriority() {
* up and down. On odd or even we will currentRow()+-4 or +-9
*
*/
void TableView::timerEvent( QTimerEvent* ev ) {
if (sorted().count() == 0 )
return;
int row = currentRow();
- qWarning("TimerEvent %d", row);
if ( m_row ) {
int ro = row-4;
if (ro < 0 ) ro = 0;
sorted()[ro];
ro = row+4;
sorted()[ro];
} else {
@@ -449,8 +446,38 @@ void TableView::timerEvent( QTimerEvent* ev ) {
ro = row-8;
if (ro < 0 ) ro = 0;
sorted()[ro];
}
m_row = !m_row;
}
+
+// We want a strike through completed ;)
+// durchstreichen to complete
+/*
+ * MouseTracking is off this mean we only receive
+ * these events if the mouse button is pressed
+ * We've the previous point saved
+ * We check if the previous and current Point are
+ * in the same row.
+ * Then we check if they're some pixel horizontal away
+ * if the distance between the two points is greater than
+ * 8 we mark the underlying todo as completed and do a repaint
+ */
+void TableView::contentsMouseReleaseEvent( QMouseEvent* e) {
+ int row = rowAt(m_prevP.y());
+ if ( row == rowAt( e->y() ) ) {
+ if ( abs( m_prevP.x() - e->x() ) >= 8 ) {
+ OTodo todo = sorted()[row];
+ todo.setCompleted( !todo.isCompleted() );
+ TodoView::update( todo.uid(), todo );
+ updateView();
+ return;
+ }
+ }
+ QTable::contentsMouseReleaseEvent( e );
+}
+void TableView::contentsMouseMoveEvent( QMouseEvent* e ) {
+ m_menuTimer->stop();
+ QTable::contentsMouseMoveEvent( e );
+}
diff --git a/core/pim/todo/tableview.h b/core/pim/todo/tableview.h
index fe65ca9..0c3e865 100644
--- a/core/pim/todo/tableview.h
+++ b/core/pim/todo/tableview.h
@@ -77,27 +77,30 @@ namespace Todo {
/* reimplented for internal reasons */
void viewportPaintEvent( QPaintEvent* );
QTimer *m_menuTimer;
bool m_enablePaint:1;
QString m_oleCat;
bool m_first : 1;
protected:
+ void contentsMouseReleaseEvent( QMouseEvent* );
+ void contentsMouseMoveEvent( QMouseEvent* );
void timerEvent( QTimerEvent* e );
QWidget* createEditor(int row, int col, bool initFromCell )const;
void setCellContentFromEditor( int row, int col );
private slots:
void slotShowMenu();
void slotClicked(int, int, int,
const QPoint& );
void slotPressed(int, int, int,
const QPoint& );
void slotValueChanged(int, int);
void slotCurrentChanged(int, int );
void slotPriority();
private:
bool m_row : 1;
+ QPoint m_prevP;
};
};
#endif