-rw-r--r-- | core/pim/todo/tableview.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/core/pim/todo/tableview.cpp b/core/pim/todo/tableview.cpp index 3daf370..d980a24 100644 --- a/core/pim/todo/tableview.cpp +++ b/core/pim/todo/tableview.cpp @@ -587,43 +587,52 @@ void TableView::contentsMouseReleaseEvent( QMouseEvent* e) { void TableView::contentsMouseMoveEvent( QMouseEvent* e ) { m_menuTimer->stop(); QTable::contentsMouseMoveEvent( 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 ); m_editorWidget.releaseCellWidget(); setFocus(); } + + if ( sorted().count() < 1 ) { + QTable::keyPressEvent( event ); + return; + } + int row = currentRow(); int col = currentColumn(); char key = ::toupper( event->ascii() ); - /* let QTable also handle the d later */ - if ( key == 'D' ) + /* let QTable also handle the d letter */ + if ( key == 'D' ) { + event->accept(); removeQuery( sorted().uidAt( row ) ); + return; + } switch( event->key() ) { case Qt::Key_F33: case Qt::Key_Enter: case Qt::Key_Return: case Qt::Key_Space: if ( col == 0 ) { TodoView::complete(sorted()[row]); }else if ( col == 1 ) { QWidget* wid = beginEdit(row, col, FALSE ); m_editorWidget.setCellWidget( wid, row, col ); }else if ( col == 2 ) { showTodo( sorted().uidAt( currentRow() ) ); }else if ( col == 3 ) { TodoView::edit( sorted().uidAt(row) ); } - + event->accept(); break; default: QTable::keyPressEvent( event ); } } |