summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/todo/mainwindow.cpp9
-rw-r--r--core/pim/todo/mainwindow.h2
-rw-r--r--core/pim/todo/tableview.cpp21
-rw-r--r--core/pim/todo/tableview.h1
-rw-r--r--core/pim/todo/textviewshow.cpp17
-rw-r--r--core/pim/todo/textviewshow.h5
-rw-r--r--core/pim/todo/todoshow.cpp9
-rw-r--r--core/pim/todo/todoshow.h7
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