summaryrefslogtreecommitdiff
path: root/core/pim/todo/tableview.cpp
Side-by-side diff
Diffstat (limited to 'core/pim/todo/tableview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/todo/tableview.cpp88
1 files changed, 34 insertions, 54 deletions
diff --git a/core/pim/todo/tableview.cpp b/core/pim/todo/tableview.cpp
index 221faca..c64ad46 100644
--- a/core/pim/todo/tableview.cpp
+++ b/core/pim/todo/tableview.cpp
@@ -1,28 +1,28 @@
/*
-               =. This file is part of the OPIE Project
-             .=l. Copyright (c) 2002 <zecke>
-           .>+-=
- _;:,     .>    :=|. This program is free software; you can
-.> <`_,   >  .   <= redistribute it and/or modify it under
-:`=1 )Y*s>-.--   : the terms of the GNU General Public
-.="- .-=="i,     .._ License as published by the Free Software
- - .   .-<_>     .<> Foundation; either version 2 of the License,
-     ._= =}       : or (at your option) any later version.
-    .%`+i>       _;_.
-    .i_,=:_.      -<s. This program is distributed in the hope that
-     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
-    : ..    .:,     . . . without even the implied warranty of
-    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
-  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
-..}^=.=       =       ; Library General Public License for more
-++=   -.     .`     .: details.
- :     =  ...= . :.=-
- -.   .:....=;==+<; You should have received a copy of the GNU
-  -_. . .   )=.  = Library General Public License along with
-    --        :-=` this library; see the file COPYING.LIB.
+ =. This file is part of the OPIE Project
+ .=l. Copyright (c) 2002 <zecke>
+ .>+-=
+_;:, .> :=|. This program is free software; you can
+.> <`_, > . <= redistribute it and/or modify it under
+:`=1 )Y*s>-.-- : the terms of the GNU General Public
+.="- .-=="i, .._ License as published by the Free Software
+- . .-<_> .<> Foundation; either version 2 of the License,
+ ._= =} : or (at your option) any later version.
+ .%`+i> _;_.
+ .i_,=:_. -<s. This program is distributed in the hope that
+ + . -:. = it will be useful, but WITHOUT ANY WARRANTY;
+ : .. .:, . . . without even the implied warranty of
+ =_ + =;=|` MERCHANTABILITY or FITNESS FOR A
+ _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU
+..}^=.= = ; Library General Public License for more
+++= -. .` .: details.
+: = ...= . :.=-
+-. .:....=;==+<; 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>
@@ -30,17 +30,17 @@
#include <cctype>
#include <opie2/odebug.h>
#include <opie2/opimrecurrence.h>
#include <qpe/config.h>
+#include <qpe/qpeapplication.h>
#include <qpe/resource.h>
#include <qcombobox.h>
#include <qlineedit.h>
-#include <qtimer.h>
#include <qpopupmenu.h>
#include "mainwindow.h"
//#include "tableitems.h"
#include "tableview.h"
@@ -114,25 +114,20 @@ TableView::TableView( MainWindow* window, QWidget* wid )
setSorting( TRUE );
setSelectionMode( NoSelection );
setLeftMargin( 0 );
verticalHeader()->hide();
+ QPEApplication::setStylusOperation( viewport(), QPEApplication::RightOnHold );
connect((QTable*)this, SIGNAL( clicked(int,int,int,const QPoint&) ),
this, SLOT( slotClicked(int,int,int,const QPoint&) ) );
- connect((QTable*)this, SIGNAL( pressed(int,int,int,const QPoint&) ),
- this, SLOT( slotPressed(int,int,int,const QPoint&) ) );
connect((QTable*)this, SIGNAL(valueChanged(int,int) ),
this, SLOT( slotValueChanged(int,int) ) );
connect((QTable*)this, SIGNAL(currentChanged(int,int) ),
this, SLOT( slotCurrentChanged(int,int) ) );
- m_menuTimer = new QTimer( this );
- connect( m_menuTimer, SIGNAL(timeout()),
- this, SLOT(slotShowMenu()) );
-
/* now let's init the config */
initConfig();
m_enablePaint = true;
setUpdatesEnabled( true );
@@ -154,17 +149,12 @@ void TableView::newDay() {
TableView::~TableView() {
Config config( "todo" );
config.setGroup( "Options" );
for (int i = 0; i < numCols(); i++ )
config.writeEntry("Width"+QString::number(i), columnWidth(i) );
}
-void TableView::slotShowMenu() {
- QPopupMenu *menu = todoWindow()->contextMenu( current(), sorted()[currentRow()].recurrence().doesRecur() );
- menu->exec(QCursor::pos() );
- delete menu;
-}
QString TableView::type() const {
return QString::fromLatin1( tr("Table View") );
}
int TableView::current() {
if (numRows() == 0 ) return 0;
int uid = sorted().uidAt(currentRow() );
@@ -277,16 +267,15 @@ void TableView::setShowDeadline( bool b ) {
}
setColumnWidth( 2, col2width );
}
void TableView::setShowCategory( const QString& str) {
if ( str != m_oleCat || m_first )
updateView();
-
+
m_oleCat = str;
m_first = false;
-
}
void TableView::clear() {
setNumRows(0);
}
void TableView::slotClicked(int row, int col, int,
const QPoint& point) {
@@ -323,38 +312,23 @@ void TableView::slotClicked(int row, int col, int,
QWidget* wid = beginEdit( row, col, FALSE );
m_editorWidget.setCellWidget( wid, row, col );
}
break;
case 2: {
- m_menuTimer->stop();
showTodo( ui );
break;
}
case 3: {
- m_menuTimer->stop();
TodoView::edit( ui );
break;
}
}
}
-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 ) {
-}
-void TableView::slotCurrentChanged(int, int ) {
- m_menuTimer->stop();
-}
QWidget* TableView::widget() {
return this;
}
/*
* We need to overwrite sortColumn
* because we want to sort whole row
@@ -576,26 +550,32 @@ void TableView::timerEvent( QTimerEvent* ) {
* REASON: QTable is doing auto scrolling which leads to a move
* in the x coordinate and this way it's able to pass the
* m_completeStrokeWidth criteria
* WORKAROUND: strike through needs to strike through the same
* row and two columns!
*/
-void TableView::contentsMouseReleaseEvent( QMouseEvent* e) {
+void TableView::contentsMouseReleaseEvent( QMouseEvent *e ) {
int row = rowAt(m_prevP.y());
int colOld = columnAt(m_prevP.x() );
int colNew = columnAt(e->x() );
if ( row == rowAt( e->y() ) && row != -1 &&
colOld != colNew ) {
TodoView::complete( sorted()[row] );
return;
}
QTable::contentsMouseReleaseEvent( e );
}
-void TableView::contentsMouseMoveEvent( QMouseEvent* e ) {
- m_menuTimer->stop();
- QTable::contentsMouseMoveEvent( e );
+void TableView::contentsMousePressEvent( QMouseEvent *e ) {
+ if ( e->button() == RightButton ) {
+ QPopupMenu *menu = todoWindow()->contextMenu( current(), sorted()[currentRow()].recurrence().doesRecur() );
+ menu->exec( QCursor::pos() );
+ }
+ else {
+ m_prevP = e->pos();
+ QTable::contentsMousePressEvent( e );
+ }
}
void TableView::keyPressEvent( QKeyEvent* event) {
if ( m_editorWidget.cellWidget() ) {
// setCellContentFromEditor(m_editorWidget.cellRow(), m_editorWidget.cellCol() );
endEdit(m_editorWidget.cellRow(), m_editorWidget.cellCol(),
true, true );