-rw-r--r-- | core/pim/todo/mainwindow.cpp | 9 | ||||
-rw-r--r-- | core/pim/todo/mainwindow.h | 2 | ||||
-rw-r--r-- | core/pim/todo/tableview.cpp | 21 | ||||
-rw-r--r-- | core/pim/todo/tableview.h | 1 | ||||
-rw-r--r-- | core/pim/todo/textviewshow.cpp | 17 | ||||
-rw-r--r-- | core/pim/todo/textviewshow.h | 5 | ||||
-rw-r--r-- | core/pim/todo/todoshow.cpp | 9 | ||||
-rw-r--r-- | core/pim/todo/todoshow.h | 7 |
8 files changed, 58 insertions, 13 deletions
diff --git a/core/pim/todo/mainwindow.cpp b/core/pim/todo/mainwindow.cpp index c90166b..d328558 100644 --- a/core/pim/todo/mainwindow.cpp +++ b/core/pim/todo/mainwindow.cpp @@ -85,13 +85,13 @@ MainWindow::MainWindow( QWidget* parent, void MainWindow::initTemplate() { m_curTempEd = new TemplateEditor( this, templateManager() ); } void MainWindow::initActions() { - + // Data menu m_edit->insertItem(QWidget::tr("New from template"), m_template, -1, 0 ); - + QAction* a = new QAction( QWidget::tr("New Task" ), Resource::loadPixmap( "new" ), QString::null, 0, this, 0 ); connect(a, SIGNAL( activated() ), this, SLOT( slotNew() ) ); @@ -250,9 +250,9 @@ void MainWindow::initViews() { void MainWindow::initEditor() { m_curEdit = new Editor(); } void MainWindow::initShow() { - m_curShow = new TextViewShow(this); + m_curShow = new TextViewShow(this, this); m_stack->addWidget( m_curShow->widget() , m_counter++ ); } MainWindow::~MainWindow() { delete templateManager(); @@ -812,4 +812,7 @@ void MainWindow::add( const OPimRecord& rec) { // spend expensive time comparing all these strings... // but only call if we changed something -zecke populateCategories(); } +void MainWindow::slotReturnFromView() { + raiseCurrentView(); +} diff --git a/core/pim/todo/mainwindow.h b/core/pim/todo/mainwindow.h index d756d64..f880505 100644 --- a/core/pim/todo/mainwindow.h +++ b/core/pim/todo/mainwindow.h @@ -59,8 +59,9 @@ namespace Todo { class MainWindow : public OPimMainWindow { Q_OBJECT friend class TodoView; // avoid QObject here.... + friend class TodoShow; // avoid QObject public: MainWindow( QWidget *parent = 0, const char* name = 0 ); ~MainWindow(); @@ -182,8 +183,9 @@ private slots: void slotBeam(); void beamDone( Ir* ); void slotShowDetails(); void slotShowDue( bool ); + void slotReturnFromView(); // for TodoShow... /* reimplementation from opimmainwindow */ protected slots: void flush(); void reload(); diff --git a/core/pim/todo/tableview.cpp b/core/pim/todo/tableview.cpp index 61d1edd..cec8b5e 100644 --- a/core/pim/todo/tableview.cpp +++ b/core/pim/todo/tableview.cpp @@ -58,9 +58,9 @@ void TableView::initConfig() { } TableView::TableView( MainWindow* window, QWidget* wid ) : QTable( wid ), TodoView( window ) { - + // Load icons // TODO - probably should be done globally somewhere else, // see also quickeditimpl.cpp/h, taskeditoroverview.cpp/h m_pic_completed = Resource::loadPixmap( "todo/completed" ); @@ -82,12 +82,12 @@ TableView::TableView( MainWindow* window, QWidget* wid ) horizontalHeader()->setLabel( 2, QWidget::tr("Description" ) ); horizontalHeader()->setLabel( 3, QWidget::tr("Deadline") ); setShowDeadline( todoWindow()->showDeadline() ); - + setSorting( TRUE ); setSelectionMode( NoSelection ); - + setLeftMargin( 0 ); verticalHeader()->hide(); connect((QTable*)this, SIGNAL( clicked( int, int, int, const QPoint& ) ), @@ -367,9 +367,9 @@ void TableView::paintCell(QPainter* p, int row, int col, const QRect& cr, bool //p->drawRect( x + marg, y, BoxSize, BoxSize ); //p->drawRect( x + marg+1, y+1, BoxSize-2, BoxSize-2 ); if ( task.isCompleted() ) { p->drawPixmap( x + marg, y, m_pic_completed ); - } + } } break; case 1: // priority field { @@ -468,9 +468,9 @@ void TableView::slotPriority() { * 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 ) { +void TableView::timerEvent( QTimerEvent* ) { // qWarning("sorted %d", sorted().count() ); if (sorted().count() == 0 ) return; @@ -529,4 +529,15 @@ void TableView::contentsMouseReleaseEvent( QMouseEvent* e) { void TableView::contentsMouseMoveEvent( QMouseEvent* e ) { m_menuTimer->stop(); QTable::contentsMouseMoveEvent( e ); } +void TableView::keyPressEvent( QKeyEvent* event) { + switch( event->key() ) { + case Qt::Key_F33: + case Qt::Key_Enter: + case Qt::Key_Return: + showTodo( sorted().uidAt( currentRow() ) ); + break; + default: + QTable::keyPressEvent( event ); + } +} diff --git a/core/pim/todo/tableview.h b/core/pim/todo/tableview.h index 2b6ea2b..689c496 100644 --- a/core/pim/todo/tableview.h +++ b/core/pim/todo/tableview.h @@ -84,8 +84,9 @@ namespace Todo { QPixmap m_pic_completed; QPixmap m_pic_priority[ 5 ]; protected: + void keyPressEvent( QKeyEvent* ); void contentsMouseReleaseEvent( QMouseEvent* ); void contentsMouseMoveEvent( QMouseEvent* ); void timerEvent( QTimerEvent* e ); QWidget* createEditor(int row, int col, bool initFromCell )const; diff --git a/core/pim/todo/textviewshow.cpp b/core/pim/todo/textviewshow.cpp index 24c8c0e..fe8a9c8 100644 --- a/core/pim/todo/textviewshow.cpp +++ b/core/pim/todo/textviewshow.cpp @@ -1,10 +1,11 @@ +#include "mainwindow.h" #include "textviewshow.h" using namespace Todo; -TextViewShow::TextViewShow( QWidget* parent) - : QTextView( parent ), TodoShow() { +TextViewShow::TextViewShow( QWidget* parent, MainWindow* win) + : QTextView( parent ), TodoShow(win) { } TextViewShow::~TextViewShow() { } @@ -16,4 +17,16 @@ void TextViewShow::slotShow( const OTodo& ev ) { } QWidget* TextViewShow::widget() { return this; } +void TextViewShow::keyPressEvent( QKeyEvent* event ) { + switch( event->key() ) { + case Qt::Key_F33: + case Qt::Key_Enter: + case Qt::Key_Return: + escapeView(); + break; + default: + QTextView::keyPressEvent( event ); + break; + } +} diff --git a/core/pim/todo/textviewshow.h b/core/pim/todo/textviewshow.h index f58026b..498de81 100644 --- a/core/pim/todo/textviewshow.h +++ b/core/pim/todo/textviewshow.h @@ -5,13 +5,16 @@ namespace Todo { class TextViewShow : public QTextView, public TodoShow { public: - TextViewShow( QWidget* parent ); + TextViewShow( QWidget* parent, MainWindow* ); ~TextViewShow(); QString type()const; void slotShow( const OTodo& ev ); QWidget* widget(); + protected: + void keyPressEvent( QKeyEvent* ); + }; }; diff --git a/core/pim/todo/todoshow.cpp b/core/pim/todo/todoshow.cpp index c84a08f..4dbc9aa 100644 --- a/core/pim/todo/todoshow.cpp +++ b/core/pim/todo/todoshow.cpp @@ -1,9 +1,16 @@ + +#include "mainwindow.h" #include "todoshow.h" using namespace Todo; -TodoShow::TodoShow() { +TodoShow::TodoShow(MainWindow* win) { + m_win = win; } TodoShow::~TodoShow() { } +void TodoShow::escapeView() { + if (m_win ) + m_win->slotReturnFromView(); +} diff --git a/core/pim/todo/todoshow.h b/core/pim/todo/todoshow.h index 198e9ae..7267b13 100644 --- a/core/pim/todo/todoshow.h +++ b/core/pim/todo/todoshow.h @@ -33,21 +33,26 @@ #include <opie/otodo.h> namespace Todo { + class MainWindow; /** * TodoShow is the baseclass of * of all TodoShows. * The first implementation is a QTextView * implementation showing the Todo as richtext */ class TodoShow { public: - TodoShow(); + TodoShow( MainWindow* win); virtual ~TodoShow(); virtual QString type()const = 0; virtual void slotShow( const OTodo& ev ) = 0; virtual QWidget* widget() = 0; + protected: + void escapeView(); + private: + MainWindow *m_win; }; }; #endif |