author | zecke <zecke> | 2002-10-23 21:07:13 (UTC) |
---|---|---|
committer | zecke <zecke> | 2002-10-23 21:07:13 (UTC) |
commit | 71f52c08e595cb3bfa3697baa97b4279325fa9ac (patch) (side-by-side diff) | |
tree | c33c935ea2da643c5c08ef564898a76a66ebd951 | |
parent | 60bd9ae80a48f1e2bbd1e1d75a53de0039e979d0 (diff) | |
download | opie-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
-rw-r--r-- | core/pim/todo/tableview.cpp | 30 |
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 ); |