summaryrefslogtreecommitdiff
authorzecke <zecke>2002-10-23 21:07:13 (UTC)
committer zecke <zecke>2002-10-23 21:07:13 (UTC)
commit71f52c08e595cb3bfa3697baa97b4279325fa9ac (patch) (side-by-side diff)
treec33c935ea2da643c5c08ef564898a76a66ebd951
parent60bd9ae80a48f1e2bbd1e1d75a53de0039e979d0 (diff)
downloadopie-71f52c08e595cb3bfa3697baa97b4279325fa9ac.zip
opie-71f52c08e595cb3bfa3697baa97b4279325fa9ac.tar.gz
opie-71f52c08e595cb3bfa3697baa97b4279325fa9ac.tar.bz2
Fix not beeing resizable.. now the Deadline is too wide...
Fix a crash when being somewhere else but releasing the mouse over the table bug Fix one more thing I don't remember Add InlineEditing of summaries. It would actually work on double click but we use the single click for viewing.. Ok these things need to be configurable
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--core/pim/todo/tableview.cpp30
1 files changed, 26 insertions, 4 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
@@ -22,16 +22,17 @@
    --        :-=` 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 <qlineedit.h>
#include <qtimer.h>
#include <qpoint.h>
#include <qpopupmenu.h>
#include "mainwindow.h"
//#include "tableitems.h"
#include "tableview.h"
@@ -48,29 +49,31 @@ TableView::TableView( MainWindow* window, QWidget* wid )
setUpdatesEnabled( false );
viewport()->setUpdatesEnabled( false );
m_enablePaint = false;
setNumRows(0);
setNumCols(4);
setSorting( TRUE );
setSelectionMode( NoSelection );
- setColumnStretchable( 2, TRUE );
+// setColumnStretchable( 2, TRUE );
+ setColumnStretchable( 3, FALSE );
setColumnWidth(0, 20 );
setColumnWidth(1, 35 );
+ setColumnWidth(3, 18 );
setLeftMargin( 0 );
verticalHeader()->hide();
horizontalHeader()->setLabel(0, tr("C.") );
horizontalHeader()->setLabel(1, tr("Prior.") );
horizontalHeader()->setLabel(2, tr("Description" ) );
- setColumnStretchable(3, FALSE );
- setColumnWidth(3, 20 );
+// setColumnStretchable(3, FALSE );
+
horizontalHeader()->setLabel(3, tr("Deadline") );
if ( todoWindow()->showDeadline() )
showColumn( 3);
else
hideColumn(3 );
connect((QTable*)this, SIGNAL( clicked( int, int, int, const QPoint& ) ),
@@ -394,16 +397,22 @@ QWidget* TableView::createEditor(int row, int col, bool )const {
combo->insertItem( "1" );
combo->insertItem( "2" );
combo->insertItem( "3" );
combo->insertItem( "4" );
combo->insertItem( "5" );
combo->setCurrentItem( sorted()[row].priority()-1 );
return combo;
}
+ /* summary */
+ case 2:{
+ QLineEdit* edit = new QLineEdit( viewport() );
+ edit->setText( sorted()[row].summary() );
+ return edit;
+ }
case 0:
default:
return 0l;
}
}
void TableView::setCellContentFromEditor(int row, int col ) {
if ( col == 1 ) {
QWidget* wid = cellWidget(row, 1 );
@@ -411,29 +420,41 @@ void TableView::setCellContentFromEditor(int row, int col ) {
int pri = ((QComboBox*)wid)->currentItem() + 1;
OTodo todo = sorted()[row];
if ( todo.priority() != pri ) {
todo.setPriority( pri );
TodoView::update( todo.uid(), todo );
updateView();
}
}
+ }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();
+ }
+ }
}
}
void TableView::slotPriority() {
setCellContentFromEditor( currentRow(), currentColumn() );
}
/*
* We'll use the TimerEvent to read ahead or to keep the cahce always
* filled enough.
* We will try to read ahead 4 items in both ways
* up and down. On odd or even we will currentRow()+-4 or +-9
*
*/
void TableView::timerEvent( QTimerEvent* ev ) {
+ qWarning("sorted %d", sorted().count() );
if (sorted().count() == 0 )
return;
int row = currentRow();
if ( m_row ) {
int ro = row-4;
if (ro < 0 ) ro = 0;
sorted()[ro];
@@ -461,18 +482,19 @@ void TableView::timerEvent( QTimerEvent* ev ) {
* 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 ( row == rowAt( e->y() ) && row != -1 ) {
if ( abs( m_prevP.x() - e->x() ) >= 8 ) {
+ qWarning("current row %d", row );
OTodo todo = sorted()[row];
todo.setCompleted( !todo.isCompleted() );
TodoView::update( todo.uid(), todo );
updateView();
return;
}
}
QTable::contentsMouseReleaseEvent( e );