summaryrefslogtreecommitdiff
path: root/core/pim/todo
Unidiff
Diffstat (limited to 'core/pim/todo') (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/todo/mainwindow.cpp29
-rw-r--r--core/pim/todo/mainwindow.h16
-rw-r--r--core/pim/todo/quickedit.cpp22
-rw-r--r--core/pim/todo/quickedit.h45
-rw-r--r--core/pim/todo/quickeditimpl.cpp89
-rw-r--r--core/pim/todo/quickeditimpl.h34
-rw-r--r--core/pim/todo/tableview.cpp14
-rw-r--r--core/pim/todo/todo.pro8
8 files changed, 247 insertions, 10 deletions
diff --git a/core/pim/todo/mainwindow.cpp b/core/pim/todo/mainwindow.cpp
index a6d657c..8377573 100644
--- a/core/pim/todo/mainwindow.cpp
+++ b/core/pim/todo/mainwindow.cpp
@@ -35,6 +35,8 @@
35#include <qwidgetstack.h> 35#include <qwidgetstack.h>
36#include <qaction.h> 36#include <qaction.h>
37#include <qtimer.h> 37#include <qtimer.h>
38#include <qvbox.h>
39#include <qlineedit.h>
38 40
39#include <qpe/applnk.h> 41#include <qpe/applnk.h>
40#include <qpe/config.h> 42#include <qpe/config.h>
@@ -44,6 +46,7 @@
44 46
45#include <opie/otodoaccessvcal.h> 47#include <opie/otodoaccessvcal.h>
46 48
49#include "quickeditimpl.h"
47#include "todotemplatemanager.h" 50#include "todotemplatemanager.h"
48#include "templateeditor.h" 51#include "templateeditor.h"
49#include "todoentryimpl.h" 52#include "todoentryimpl.h"
@@ -198,8 +201,15 @@ void MainWindow::initConfig() {
198 m_overdue = config.readBoolEntry("ShowOverDue", TRUE ); 201 m_overdue = config.readBoolEntry("ShowOverDue", TRUE );
199} 202}
200void MainWindow::initUI() { 203void MainWindow::initUI() {
201 m_stack = new QWidgetStack(this, "main stack"); 204 m_mainBox = new QVBox(this, "main box ");
202 setCentralWidget( m_stack ); 205 m_curQuick = new QuickEditImpl(this, m_mainBox );
206 m_curQuick->signal()->connect( this, SLOT(slotQuickEntered() ) );
207 m_quickEdit.append( m_curQuick );
208
209
210
211 m_stack = new QWidgetStack(m_mainBox, "main stack");
212 setCentralWidget( m_mainBox );
203 213
204 setToolBarsMovable( FALSE ); 214 setToolBarsMovable( FALSE );
205 215
@@ -224,7 +234,7 @@ void MainWindow::initUI() {
224 this, SLOT(slotNewFromTemplate(int) ) ); 234 this, SLOT(slotNewFromTemplate(int) ) );
225} 235}
226void MainWindow::initViews() { 236void MainWindow::initViews() {
227 TableView* tableView = new TableView( this, this ); 237 TableView* tableView = new TableView( this, m_stack );
228 m_stack->addWidget( tableView, m_counter++ ); 238 m_stack->addWidget( tableView, m_counter++ );
229 m_views.append( tableView ); 239 m_views.append( tableView );
230 m_curView = tableView; 240 m_curView = tableView;
@@ -681,3 +691,16 @@ void MainWindow::setReadAhead( uint count ) {
681 if (m_todoMgr.todoDB() ) 691 if (m_todoMgr.todoDB() )
682 m_todoMgr.todoDB()->setReadAhead( count ); 692 m_todoMgr.todoDB()->setReadAhead( count );
683} 693}
694void MainWindow::slotQuickEntered() {
695 qWarning("entered");
696 OTodo todo = quickEditor()->todo();
697 if (todo.isEmpty() )
698 return;
699
700 m_todoMgr.add( todo );
701 currentView()->addEvent( todo );
702 raiseCurrentView();
703}
704QuickEditBase* MainWindow::quickEditor() {
705 return m_curQuick;
706}
diff --git a/core/pim/todo/mainwindow.h b/core/pim/todo/mainwindow.h
index 5a18e64..270cbd1 100644
--- a/core/pim/todo/mainwindow.h
+++ b/core/pim/todo/mainwindow.h
@@ -37,6 +37,7 @@
37 37
38#include "smalltodo.h" 38#include "smalltodo.h"
39#include "todoview.h" 39#include "todoview.h"
40#include "quickedit.h"
40#include "todomanager.h" 41#include "todomanager.h"
41 42
42class QPopupMenu; 43class QPopupMenu;
@@ -45,7 +46,7 @@ class QToolBar;
45class QAction; 46class QAction;
46class QWidgetStack; 47class QWidgetStack;
47class Ir; 48class Ir;
48 49class QVBox;
49 50
50namespace Todo { 51namespace Todo {
51 typedef TodoView View; 52 typedef TodoView View;
@@ -53,6 +54,7 @@ namespace Todo {
53 class Editor; 54 class Editor;
54 class TodoShow; 55 class TodoShow;
55 class TemplateEditor; 56 class TemplateEditor;
57 struct QuickEditBase;
56 58
57 class MainWindow : public QMainWindow { 59 class MainWindow : public QMainWindow {
58 Q_OBJECT 60 Q_OBJECT
@@ -83,12 +85,14 @@ namespace Todo {
83 QString currentCategory()const; 85 QString currentCategory()const;
84 int currentCatId(); 86 int currentCatId();
85 TemplateManager* templateManager(); 87 TemplateManager* templateManager();
88 QuickEditBase* quickEditor();
86 89
87 void updateTodo( const OTodo& ); 90 void updateTodo( const OTodo& );
88 void populateTemplates(); 91 void populateTemplates();
89 Editor* currentEditor(); 92 Editor* currentEditor();
90 void setReadAhead(uint count ); 93 void setReadAhead(uint count );
91private slots: 94private slots:
95 void slotQuickEntered();
92 void populateCategories(); 96 void populateCategories();
93 void slotReload(); 97 void slotReload();
94 void slotFlush(); 98 void slotFlush();
@@ -109,6 +113,7 @@ private slots:
109 void raiseCurrentView(); 113 void raiseCurrentView();
110 ViewBase* currentView(); 114 ViewBase* currentView();
111 ViewBase* m_curView; 115 ViewBase* m_curView;
116 QuickEditBase* m_curQuick;
112 Editor* m_curEdit; 117 Editor* m_curEdit;
113 TodoShow* currentShow(); 118 TodoShow* currentShow();
114 TodoShow* m_curShow; 119 TodoShow* m_curShow;
@@ -133,6 +138,13 @@ private slots:
133 *m_options, 138 *m_options,
134 *m_view, 139 *m_view,
135 *m_template; 140 *m_template;
141 /* box with two rows
142 * top will be the quick edit
143 * this will bite my ass once
144 * we want to have all parts
145 * exchangeable
146 */
147 QVBox* m_mainBox;
136 148
137 bool m_syncing:1; 149 bool m_syncing:1;
138 bool m_deadline:1; 150 bool m_deadline:1;
@@ -141,9 +153,11 @@ private slots:
141 TodoManager m_todoMgr; 153 TodoManager m_todoMgr;
142 QString m_curCat; 154 QString m_curCat;
143 QList<ViewBase> m_views; 155 QList<ViewBase> m_views;
156 QList<QuickEditBase> m_quickEdit;
144 uint m_counter; 157 uint m_counter;
145 TemplateManager* m_tempManager; 158 TemplateManager* m_tempManager;
146 159
160
147 private slots: 161 private slots:
148 void slotShow(int); 162 void slotShow(int);
149 void slotEdit(int); 163 void slotEdit(int);
diff --git a/core/pim/todo/quickedit.cpp b/core/pim/todo/quickedit.cpp
new file mode 100644
index 0000000..edcd48a
--- a/dev/null
+++ b/core/pim/todo/quickedit.cpp
@@ -0,0 +1,22 @@
1#include "mainwindow.h"
2#include "quickedit.h"
3
4using namespace Todo;
5
6// not so interesting part base Implementation
7QuickEdit::QuickEdit(MainWindow* main )
8 : m_main( main ) {
9 m_sig = new QSignal();
10}
11QuickEdit::~QuickEdit() {
12 delete m_sig;
13}
14QSignal* QuickEdit::signal() {
15 return m_sig;
16}
17MainWindow* QuickEdit::mainWindow() {
18 return m_main;
19}
20void QuickEdit::commit() {
21 m_sig->activate();
22}
diff --git a/core/pim/todo/quickedit.h b/core/pim/todo/quickedit.h
new file mode 100644
index 0000000..5fe74fe
--- a/dev/null
+++ b/core/pim/todo/quickedit.h
@@ -0,0 +1,45 @@
1#ifndef OPIE_QUICK_EDIT_H
2#define OPIE_QUICK_EDIT_H
3
4#include <qsignal.h>
5#include <qwidget.h>
6
7#include <opie/otodo.h>
8
9namespace Todo{
10 class MainWindow;
11 struct QuickEditBase {
12 virtual OTodo todo()const = 0l;
13 virtual QSignal* signal() = 0l;
14 virtual QWidget* widget() = 0l;
15 };
16 /*
17 * this is my second try
18 * of signal and slots with namespaces
19 * and templates
20 * I use a different approach now
21 * I give a QSignal away
22 * and have a protected method called emit
23 */
24 /**
25 * Quick edit is meant to quickly enter
26 * OTodos in a fast way
27 */
28 class QuickEdit : public QuickEditBase{
29 public:
30 QuickEdit(MainWindow* main );
31 virtual ~QuickEdit();
32 //OTodo todo()const;
33 QSignal* signal();
34 //QWidget* widget();
35 protected:
36 MainWindow* mainWindow();
37 void commit();
38 private:
39 MainWindow* m_main;
40 QSignal* m_sig;
41 };
42};
43
44
45#endif
diff --git a/core/pim/todo/quickeditimpl.cpp b/core/pim/todo/quickeditimpl.cpp
new file mode 100644
index 0000000..2dd5b61
--- a/dev/null
+++ b/core/pim/todo/quickeditimpl.cpp
@@ -0,0 +1,89 @@
1#include <qlineedit.h>
2
3#include <opie/oclickablelabel.h>
4
5#include "mainwindow.h"
6#include "quickeditimpl.h"
7
8
9QuickEditImpl::QuickEditImpl( Todo::MainWindow* win, QWidget* arent )
10 : QHBox(arent), Todo::QuickEdit(win) {
11 m_lbl = new OClickableLabel(this );
12 m_lbl->setMinimumWidth(12);
13 m_lbl->setText("3");
14
15 m_edit = new QLineEdit(this );
16
17 m_enter = new OClickableLabel(this);
18 m_enter->setText("Enter");
19
20 m_more = new OClickableLabel(this);
21 m_more->setText("More");
22
23
24 // connect
25 connect(m_lbl, SIGNAL(clicked() ),
26 this, SLOT(slotPrio()) );
27 connect(m_enter, SIGNAL(clicked() ),
28 this, SLOT(slotEnter() ) );
29 connect(m_more, SIGNAL(clicked() ),
30 this, SLOT(slotMore() ) );
31
32 m_menu = 0l;
33 reinit();
34 setMaximumHeight( m_edit->sizeHint().height() );
35}
36QuickEditImpl::~QuickEditImpl() {
37
38}
39OTodo QuickEditImpl::todo()const {
40 return m_todo;
41}
42QWidget* QuickEditImpl::widget() {
43 return this;
44}
45QSize QuickEditImpl::sizeHint()const{
46 return m_edit->sizeHint();
47}
48void QuickEditImpl::slotEnter() {
49 OTodo todo;
50
51
52 if (!m_edit->text().isEmpty() ) {
53 todo.setUid(1 ); // new uid
54 todo.setPriority( m_lbl->text().toInt() );
55 todo.setSummary( m_edit->text() );
56 if ( mainWindow()->currentCatId() != 0 )
57 todo.setCategories( mainWindow()->currentCatId() );
58
59 m_todo = todo;
60 commit();
61 }
62 m_todo = todo;
63 reinit();
64}
65void QuickEditImpl::slotPrio() {
66 m_state++;
67 if (m_state > 2 )
68 m_state = 0;
69
70 switch(m_state ) {
71 case 0:
72 m_lbl->setText( "1" );
73 break;
74 case 2:
75 m_lbl->setText( "5" );
76 break;
77 case 1:
78 default:
79 m_lbl->setText( "3");
80 break;
81 }
82}
83void QuickEditImpl::slotMore() {
84}
85void QuickEditImpl::reinit() {
86 m_state = 1;
87 m_lbl->setText("3");
88 m_edit->clear();
89}
diff --git a/core/pim/todo/quickeditimpl.h b/core/pim/todo/quickeditimpl.h
new file mode 100644
index 0000000..d0f6c69
--- a/dev/null
+++ b/core/pim/todo/quickeditimpl.h
@@ -0,0 +1,34 @@
1#ifndef OPIE_QUICK_EDIT_IMPL_H
2#define OPIE_QUICK_EDIT_IMPL_H
3
4#include <qhbox.h>
5
6#include "quickedit.h"
7
8class QLineEdit;
9class QLabel;
10
11class QuickEditImpl : public QHBox, public Todo::QuickEdit {
12 Q_OBJECT
13public:
14 QuickEditImpl( Todo::MainWindow* win , QWidget* parent);
15 ~QuickEditImpl();
16 OTodo todo()const;
17 QWidget* widget();
18 QSize sizeHint()const;
19private slots:
20 void slotEnter();
21 void slotPrio();
22 void slotMore();
23private:
24 void reinit();
25 int m_state;
26 QLabel* m_lbl;
27 QLineEdit* m_edit;
28 QLabel* m_enter;
29 QLabel* m_more;
30 QPopupMenu* m_menu;
31 OTodo m_todo;
32};
33
34#endif
diff --git a/core/pim/todo/tableview.cpp b/core/pim/todo/tableview.cpp
index f4b898f..34b8b3c 100644
--- a/core/pim/todo/tableview.cpp
+++ b/core/pim/todo/tableview.cpp
@@ -126,8 +126,10 @@ void TableView::showOverDue( bool ) {
126} 126}
127 127
128void TableView::updateView( ) { 128void TableView::updateView( ) {
129 qWarning("update view");
129 m_row = false; 130 m_row = false;
130 startTimer( 2000 ); 131 static int id;
132 id = startTimer(2000 );
131 /* FIXME we want one page to be read! 133 /* FIXME we want one page to be read!
132 * 134 *
133 * Calculate that screensize 135 * Calculate that screensize
@@ -148,6 +150,8 @@ void TableView::updateView( ) {
148 QTime t; 150 QTime t;
149 t.start(); 151 t.start();
150 setNumRows( it.count() ); 152 setNumRows( it.count() );
153 if ( it.count() == 0 )
154 killTimer(id);
151 int elc = time.elapsed(); 155 int elc = time.elapsed();
152 qWarning("Adding took %d", elc/1000 ); 156 qWarning("Adding took %d", elc/1000 );
153 setUpdatesEnabled( true ); 157 setUpdatesEnabled( true );
@@ -162,13 +166,12 @@ void TableView::setTodo( int, const OTodo&) {
162 sort(); 166 sort();
163 167
164 /* repaint */ 168 /* repaint */
165 QTable::update(); 169 repaint();
166} 170}
167void TableView::addEvent( const OTodo&) { 171void TableView::addEvent( const OTodo&) {
168 sort();
169 172
170 /* fix problems of not showing the 'Haken' */ 173 /* fix problems of not showing the 'Haken' */
171 QTable::repaint(); 174 updateView();
172} 175}
173/* 176/*
174 * find the event 177 * find the event
@@ -428,6 +431,9 @@ void TableView::slotPriority() {
428 * 431 *
429 */ 432 */
430void TableView::timerEvent( QTimerEvent* ev ) { 433void TableView::timerEvent( QTimerEvent* ev ) {
434 if (sorted().count() == 0 )
435 return;
436
431 int row = currentRow(); 437 int row = currentRow();
432 qWarning("TimerEvent %d", row); 438 qWarning("TimerEvent %d", row);
433 if ( m_row ) { 439 if ( m_row ) {
diff --git a/core/pim/todo/todo.pro b/core/pim/todo/todo.pro
index f26acee..d432e78 100644
--- a/core/pim/todo/todo.pro
+++ b/core/pim/todo/todo.pro
@@ -15,7 +15,9 @@ HEADERS = smalltodo.h \
15 textviewshow.h \ 15 textviewshow.h \
16 templateeditor.h \ 16 templateeditor.h \
17 templatedialog.h \ 17 templatedialog.h \
18 templatedialogimpl.h 18 templatedialogimpl.h \
19 quickedit.h \
20 quickeditimpl.h
19 21
20 SOURCES= smalltodo.cpp \ 22 SOURCES= smalltodo.cpp \
21 todomanager.cpp \ 23 todomanager.cpp \
@@ -31,7 +33,9 @@ SOURCES = smalltodo.cpp \
31 textviewshow.cpp \ 33 textviewshow.cpp \
32 templateeditor.cpp \ 34 templateeditor.cpp \
33 templatedialog.cpp \ 35 templatedialog.cpp \
34 templatedialogimpl.cpp 36 templatedialogimpl.cpp \
37 quickeditimpl.cpp \
38 quickedit.cpp
35 39
36 INTERFACES= todoentry.ui 40 INTERFACES= todoentry.ui
37 TARGET = todolist 41 TARGET = todolist