summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/todo/mainwindow.cpp3
-rw-r--r--core/pim/todo/otaskeditor.cpp83
-rw-r--r--core/pim/todo/otaskeditor.h37
-rw-r--r--core/pim/todo/taskeditoradvanced.ui222
-rw-r--r--core/pim/todo/taskeditoralarms.ui148
-rw-r--r--core/pim/todo/taskeditoroverview.ui542
-rw-r--r--core/pim/todo/taskeditoroverviewimpl.cpp169
-rw-r--r--core/pim/todo/taskeditoroverviewimpl.h54
-rw-r--r--core/pim/todo/todo.pro12
-rw-r--r--core/pim/todo/todoeditor.cpp12
-rw-r--r--core/pim/todo/todoentry.ui481
-rw-r--r--core/pim/todo/todoentryimpl.cpp189
-rw-r--r--core/pim/todo/todoentryimpl.h65
13 files changed, 1271 insertions, 746 deletions
diff --git a/core/pim/todo/mainwindow.cpp b/core/pim/todo/mainwindow.cpp
index 8377573..bf9fc23 100644
--- a/core/pim/todo/mainwindow.cpp
+++ b/core/pim/todo/mainwindow.cpp
@@ -397,66 +397,67 @@ void MainWindow::populateTemplates() {
397 * first we get the name of the template 397 * first we get the name of the template
398 * then we will use the TemplateManager 398 * then we will use the TemplateManager
399 */ 399 */
400void MainWindow::slotNewFromTemplate( int id ) { 400void MainWindow::slotNewFromTemplate( int id ) {
401 QString name = m_template->text( id ); 401 QString name = m_template->text( id );
402 402
403 OTodo event = templateManager()->templateEvent( name ); 403 OTodo event = templateManager()->templateEvent( name );
404 event = currentEditor()->edit(this, 404 event = currentEditor()->edit(this,
405 event ); 405 event );
406 406
407 if ( currentEditor()->accepted() ) { 407 if ( currentEditor()->accepted() ) {
408 /* assign new todo */ 408 /* assign new todo */
409 event.setUid( -1 ); 409 event.setUid( -1 );
410 currentView()->addEvent( event ); 410 currentView()->addEvent( event );
411 m_todoMgr.add( event ); 411 m_todoMgr.add( event );
412 412
413 populateCategories(); 413 populateCategories();
414 } 414 }
415} 415}
416void MainWindow::slotNew() { 416void MainWindow::slotNew() {
417 if(m_syncing) { 417 if(m_syncing) {
418 QMessageBox::warning(this, tr("Todo"), 418 QMessageBox::warning(this, tr("Todo"),
419 tr("Can not edit data, currently syncing")); 419 tr("Can not edit data, currently syncing"));
420 return; 420 return;
421 } 421 }
422 422
423 423
424 OTodo todo = currentEditor()->newTodo( currentCatId(), 424 OTodo todo = currentEditor()->newTodo( currentCatId(),
425 this ); 425 this );
426 426
427 if ( currentEditor()->accepted() ) { 427 if ( currentEditor()->accepted() ) {
428 //todo.assignUid(); 428 //todo.assignUid();
429 currentView()->addEvent( todo );
430 m_todoMgr.add( todo ); 429 m_todoMgr.add( todo );
430 currentView()->addEvent( todo );
431
431 432
432 // I'm afraid we must call this every time now, otherwise 433 // I'm afraid we must call this every time now, otherwise
433 // spend expensive time comparing all these strings... 434 // spend expensive time comparing all these strings...
434 // but only call if we changed something -zecke 435 // but only call if we changed something -zecke
435 populateCategories(); 436 populateCategories();
436 } 437 }
437 raiseCurrentView( ); 438 raiseCurrentView( );
438} 439}
439void MainWindow::slotDuplicate() { 440void MainWindow::slotDuplicate() {
440 if(m_syncing) { 441 if(m_syncing) {
441 QMessageBox::warning(this, tr("Todo"), 442 QMessageBox::warning(this, tr("Todo"),
442 tr("Can not edit data, currently syncing")); 443 tr("Can not edit data, currently syncing"));
443 return; 444 return;
444 } 445 }
445 OTodo ev = m_todoMgr.event( currentView()->current() ); 446 OTodo ev = m_todoMgr.event( currentView()->current() );
446 /* let's generate a new uid */ 447 /* let's generate a new uid */
447 ev.setUid(-1); 448 ev.setUid(-1);
448 m_todoMgr.add( ev ); 449 m_todoMgr.add( ev );
449 450
450 currentView()->addEvent( ev ); 451 currentView()->addEvent( ev );
451 raiseCurrentView(); 452 raiseCurrentView();
452} 453}
453void MainWindow::slotDelete() { 454void MainWindow::slotDelete() {
454 if (!currentView()->current() ) 455 if (!currentView()->current() )
455 return; 456 return;
456 457
457 if(m_syncing) { 458 if(m_syncing) {
458 QMessageBox::warning(this, tr("Todo"), 459 QMessageBox::warning(this, tr("Todo"),
459 tr("Can not edit data, currently syncing")); 460 tr("Can not edit data, currently syncing"));
460 return; 461 return;
461 } 462 }
462 QString strName = currentView()->currentRepresentation(); 463 QString strName = currentView()->currentRepresentation();
diff --git a/core/pim/todo/otaskeditor.cpp b/core/pim/todo/otaskeditor.cpp
new file mode 100644
index 0000000..e8e922f
--- a/dev/null
+++ b/core/pim/todo/otaskeditor.cpp
@@ -0,0 +1,83 @@
1#include <qdatetime.h>
2#include <qlayout.h>
3#include <qlabel.h>
4#include <qmultilineedit.h>
5
6#include <opie/orecurrancewidget.h>
7
8#include "taskeditoroverviewimpl.h"
9#include "taskeditoradvanced.h"
10#include "taskeditoralarms.h"
11
12#include "otaskeditor.h"
13
14OTaskEditor::OTaskEditor(int cur)
15 : QDialog(0, 0, TRUE ) {
16 init();
17 OTodo to;
18 to.setCategories( cur );
19 load(to);
20 m_uid = 1; // generate a new one
21}
22OTaskEditor::OTaskEditor( const OTodo& to)
23 : QDialog(0, 0, TRUE ) {
24 init();
25 load( to );
26 m_uid = to.uid();
27}
28OTaskEditor::~OTaskEditor() {
29
30}
31OTodo OTaskEditor::todo()const{
32 qWarning("saving!");
33 OTodo to;
34 to.setUid(m_uid );
35 m_overView->save( to );
36 to.setDescription( m_line->text() );
37
38 return to;
39}
40void OTaskEditor::load(const OTodo& to) {
41 m_overView->load( to );
42 m_line->setText( to.description() );
43}
44void OTaskEditor::init() {
45 QVBoxLayout* lay = new QVBoxLayout(this);
46 setCaption("Task Editor");
47 m_tab = new OTabWidget(this);
48
49 /*
50 * Add the Widgets
51 */
52 m_overView = new TaskEditorOverViewImpl(m_tab );
53 m_tab->addTab( m_overView, QString::null, tr("Overview") );
54
55 m_adv = new TaskEditorAdvanced( m_tab );
56 m_line = new QMultiLineEdit(m_adv );
57 QLabel* label = new QLabel(m_adv );
58 label->setText( tr("Description") );
59 ((QGridLayout*) m_adv->layout() )->addWidget( label,3, 0 );
60 ((QGridLayout*) m_adv->layout())->addWidget( m_line,4,0 );
61 m_tab->addTab( m_adv, QString::null, tr("Advanced") );
62
63 m_alarm = new TaskEditorAlarms( m_tab );
64 m_tab->addTab( m_alarm, QString::null, tr("Alarms") );
65
66 m_remind = new TaskEditorAlarms( m_tab );
67 m_tab->addTab( m_remind, QString::null, tr("Reminders") );
68
69 QLabel* lbl = new QLabel(m_tab );
70 lbl->setText( tr("X-Ref") );
71 m_tab->addTab( lbl, QString::null, tr("X-Ref") );
72
73 m_rec = new ORecurranceWidget( true, QDate::currentDate(), this );
74 m_tab->addTab( m_rec, QString::null, tr("Recurrance") );
75
76 lay->addWidget(m_tab );
77
78 /* signal and slots */
79 connect(m_overView, SIGNAL(recurranceEnabled(bool) ),
80 m_rec, SLOT(setEnabled(bool) ) );
81
82 m_tab->setCurrentTab( m_overView );
83}
diff --git a/core/pim/todo/otaskeditor.h b/core/pim/todo/otaskeditor.h
new file mode 100644
index 0000000..5842fdc
--- a/dev/null
+++ b/core/pim/todo/otaskeditor.h
@@ -0,0 +1,37 @@
1#ifndef OPIE_TASK_EDITOR_H
2#define OPIE_TASK_EDITOR_H
3
4#include <qdialog.h>
5
6#include <opie/otodo.h>
7#include <opie/otabwidget.h>
8
9class TaskEditorOverViewImpl;
10class TaskEditorAdvanced;
11class TaskEditorAlarms;
12class ORecurranceWidget;
13class QMultiLineEdit;
14class OTaskEditor : public QDialog {
15 Q_OBJECT
16public:
17 OTaskEditor(int cur);
18 OTaskEditor( const OTodo& todo );
19 ~OTaskEditor();
20
21 OTodo todo()const;
22private:
23 void load( const OTodo& );
24 void init();
25
26 OTabWidget *m_tab;
27 TaskEditorOverViewImpl* m_overView;
28 TaskEditorAdvanced *m_adv;
29 TaskEditorAlarms *m_alarm;
30 TaskEditorAlarms* m_remind;
31 ORecurranceWidget* m_rec;
32 QMultiLineEdit* m_line;
33 int m_uid;
34
35};
36
37#endif
diff --git a/core/pim/todo/taskeditoradvanced.ui b/core/pim/todo/taskeditoradvanced.ui
new file mode 100644
index 0000000..3ea1346
--- a/dev/null
+++ b/core/pim/todo/taskeditoradvanced.ui
@@ -0,0 +1,222 @@
1<!DOCTYPE UI><UI>
2<class>TaskEditorAdvanced</class>
3<widget>
4 <class>QWidget</class>
5 <property stdset="1">
6 <name>name</name>
7 <cstring>TaskEditorAdvanced</cstring>
8 </property>
9 <property stdset="1">
10 <name>geometry</name>
11 <rect>
12 <x>0</x>
13 <y>0</y>
14 <width>236</width>
15 <height>307</height>
16 </rect>
17 </property>
18 <property stdset="1">
19 <name>caption</name>
20 <string>Form2</string>
21 </property>
22 <property>
23 <name>layoutMargin</name>
24 </property>
25 <property>
26 <name>layoutSpacing</name>
27 </property>
28 <grid>
29 <property stdset="1">
30 <name>margin</name>
31 <number>8</number>
32 </property>
33 <property stdset="1">
34 <name>spacing</name>
35 <number>6</number>
36 </property>
37 <widget row="0" column="0" >
38 <class>QLayoutWidget</class>
39 <property stdset="1">
40 <name>name</name>
41 <cstring>Layout13</cstring>
42 </property>
43 <hbox>
44 <property stdset="1">
45 <name>margin</name>
46 <number>0</number>
47 </property>
48 <property stdset="1">
49 <name>spacing</name>
50 <number>6</number>
51 </property>
52 <widget>
53 <class>QLabel</class>
54 <property stdset="1">
55 <name>name</name>
56 <cstring>lblState</cstring>
57 </property>
58 <property stdset="1">
59 <name>text</name>
60 <string>State:</string>
61 </property>
62 </widget>
63 <widget>
64 <class>QComboBox</class>
65 <item>
66 <property>
67 <name>text</name>
68 <string>Started</string>
69 </property>
70 </item>
71 <item>
72 <property>
73 <name>text</name>
74 <string>Postponed</string>
75 </property>
76 </item>
77 <item>
78 <property>
79 <name>text</name>
80 <string>Finished</string>
81 </property>
82 </item>
83 <item>
84 <property>
85 <name>text</name>
86 <string>Not started</string>
87 </property>
88 </item>
89 <property stdset="1">
90 <name>name</name>
91 <cstring>cmbState</cstring>
92 </property>
93 </widget>
94 </hbox>
95 </widget>
96 <widget row="2" column="0" >
97 <class>QLayoutWidget</class>
98 <property stdset="1">
99 <name>name</name>
100 <cstring>Layout17</cstring>
101 </property>
102 <hbox>
103 <property stdset="1">
104 <name>margin</name>
105 <number>0</number>
106 </property>
107 <property stdset="1">
108 <name>spacing</name>
109 <number>6</number>
110 </property>
111 <widget>
112 <class>QLabel</class>
113 <property stdset="1">
114 <name>name</name>
115 <cstring>lblMaintainer</cstring>
116 </property>
117 <property stdset="1">
118 <name>text</name>
119 <string>Maintainer</string>
120 </property>
121 </widget>
122 <widget>
123 <class>QLabel</class>
124 <property stdset="1">
125 <name>name</name>
126 <cstring>txtMaintainer</cstring>
127 </property>
128 <property stdset="1">
129 <name>text</name>
130 <string>test</string>
131 </property>
132 <property stdset="1">
133 <name>textFormat</name>
134 <enum>RichText</enum>
135 </property>
136 </widget>
137 <widget>
138 <class>QLayoutWidget</class>
139 <property stdset="1">
140 <name>name</name>
141 <cstring>Layout16</cstring>
142 </property>
143 <vbox>
144 <property stdset="1">
145 <name>margin</name>
146 <number>0</number>
147 </property>
148 <property stdset="1">
149 <name>spacing</name>
150 <number>6</number>
151 </property>
152 <widget>
153 <class>QToolButton</class>
154 <property stdset="1">
155 <name>name</name>
156 <cstring>tbtMaintainer</cstring>
157 </property>
158 <property stdset="1">
159 <name>text</name>
160 <string>...</string>
161 </property>
162 </widget>
163 </vbox>
164 </widget>
165 </hbox>
166 </widget>
167 <widget row="1" column="0" >
168 <class>QLayoutWidget</class>
169 <property stdset="1">
170 <name>name</name>
171 <cstring>Layout4</cstring>
172 </property>
173 <hbox>
174 <property stdset="1">
175 <name>margin</name>
176 <number>0</number>
177 </property>
178 <property stdset="1">
179 <name>spacing</name>
180 <number>6</number>
181 </property>
182 <widget>
183 <class>QLabel</class>
184 <property stdset="1">
185 <name>name</name>
186 <cstring>txtMode</cstring>
187 </property>
188 <property stdset="1">
189 <name>text</name>
190 <string>Maintain Mode:</string>
191 </property>
192 </widget>
193 <widget>
194 <class>QComboBox</class>
195 <item>
196 <property>
197 <name>text</name>
198 <string>Responsible</string>
199 </property>
200 </item>
201 <item>
202 <property>
203 <name>text</name>
204 <string>Done By</string>
205 </property>
206 </item>
207 <item>
208 <property>
209 <name>text</name>
210 <string>Coordinating</string>
211 </property>
212 </item>
213 <property stdset="1">
214 <name>name</name>
215 <cstring>cmbMode</cstring>
216 </property>
217 </widget>
218 </hbox>
219 </widget>
220 </grid>
221</widget>
222</UI>
diff --git a/core/pim/todo/taskeditoralarms.ui b/core/pim/todo/taskeditoralarms.ui
new file mode 100644
index 0000000..ab21796
--- a/dev/null
+++ b/core/pim/todo/taskeditoralarms.ui
@@ -0,0 +1,148 @@
1<!DOCTYPE UI><UI>
2<class>TaskEditorAlarms</class>
3<author>zecke</author>
4<widget>
5 <class>QWidget</class>
6 <property stdset="1">
7 <name>name</name>
8 <cstring>TaskEditorAlarms</cstring>
9 </property>
10 <property stdset="1">
11 <name>geometry</name>
12 <rect>
13 <x>0</x>
14 <y>0</y>
15 <width>195</width>
16 <height>271</height>
17 </rect>
18 </property>
19 <property stdset="1">
20 <name>caption</name>
21 <string>Form3</string>
22 </property>
23 <property>
24 <name>layoutMargin</name>
25 </property>
26 <grid>
27 <property stdset="1">
28 <name>margin</name>
29 <number>8</number>
30 </property>
31 <property stdset="1">
32 <name>spacing</name>
33 <number>6</number>
34 </property>
35 <widget row="0" column="0" >
36 <class>QLayoutWidget</class>
37 <property stdset="1">
38 <name>name</name>
39 <cstring>Layout19</cstring>
40 </property>
41 <vbox>
42 <property stdset="1">
43 <name>margin</name>
44 <number>0</number>
45 </property>
46 <property stdset="1">
47 <name>spacing</name>
48 <number>6</number>
49 </property>
50 <widget>
51 <class>QLabel</class>
52 <property stdset="1">
53 <name>name</name>
54 <cstring>txtAlarm</cstring>
55 </property>
56 <property stdset="1">
57 <name>text</name>
58 <string>empty</string>
59 </property>
60 </widget>
61 <widget>
62 <class>QListView</class>
63 <property stdset="1">
64 <name>name</name>
65 <cstring>lstAlarms</cstring>
66 </property>
67 </widget>
68 </vbox>
69 </widget>
70 <widget row="1" column="0" >
71 <class>QLayoutWidget</class>
72 <property stdset="1">
73 <name>name</name>
74 <cstring>Layout23</cstring>
75 </property>
76 <hbox>
77 <property stdset="1">
78 <name>margin</name>
79 <number>0</number>
80 </property>
81 <property stdset="1">
82 <name>spacing</name>
83 <number>6</number>
84 </property>
85 <widget>
86 <class>QPushButton</class>
87 <property stdset="1">
88 <name>name</name>
89 <cstring>alAdd</cstring>
90 </property>
91 <property stdset="1">
92 <name>sizePolicy</name>
93 <sizepolicy>
94 <hsizetype>4</hsizetype>
95 <vsizetype>0</vsizetype>
96 </sizepolicy>
97 </property>
98 <property stdset="1">
99 <name>text</name>
100 <string>&amp;Add</string>
101 </property>
102 <property stdset="1">
103 <name>autoResize</name>
104 <bool>true</bool>
105 </property>
106 </widget>
107 <widget>
108 <class>QPushButton</class>
109 <property stdset="1">
110 <name>name</name>
111 <cstring>alEdit</cstring>
112 </property>
113 <property stdset="1">
114 <name>sizePolicy</name>
115 <sizepolicy>
116 <hsizetype>4</hsizetype>
117 <vsizetype>0</vsizetype>
118 </sizepolicy>
119 </property>
120 <property stdset="1">
121 <name>text</name>
122 <string>&amp;Edit</string>
123 </property>
124 <property stdset="1">
125 <name>autoResize</name>
126 <bool>true</bool>
127 </property>
128 </widget>
129 <widget>
130 <class>QPushButton</class>
131 <property stdset="1">
132 <name>name</name>
133 <cstring>alRemove</cstring>
134 </property>
135 <property stdset="1">
136 <name>text</name>
137 <string>&amp;Remove</string>
138 </property>
139 <property stdset="1">
140 <name>autoResize</name>
141 <bool>true</bool>
142 </property>
143 </widget>
144 </hbox>
145 </widget>
146 </grid>
147</widget>
148</UI>
diff --git a/core/pim/todo/taskeditoroverview.ui b/core/pim/todo/taskeditoroverview.ui
new file mode 100644
index 0000000..a6bf645
--- a/dev/null
+++ b/core/pim/todo/taskeditoroverview.ui
@@ -0,0 +1,542 @@
1<!DOCTYPE UI><UI>
2<class>TaskEditorOverView</class>
3<author>zecke</author>
4<widget>
5 <class>QWidget</class>
6 <property stdset="1">
7 <name>name</name>
8 <cstring>TaskEditorOverView</cstring>
9 </property>
10 <property stdset="1">
11 <name>geometry</name>
12 <rect>
13 <x>0</x>
14 <y>0</y>
15 <width>308</width>
16 <height>445</height>
17 </rect>
18 </property>
19 <property stdset="1">
20 <name>caption</name>
21 <string>Form1</string>
22 </property>
23 <property>
24 <name>layoutMargin</name>
25 </property>
26 <grid>
27 <property stdset="1">
28 <name>margin</name>
29 <number>4</number>
30 </property>
31 <property stdset="1">
32 <name>spacing</name>
33 <number>6</number>
34 </property>
35 <widget row="5" column="0" rowspan="1" colspan="2" >
36 <class>QLayoutWidget</class>
37 <property stdset="1">
38 <name>name</name>
39 <cstring>Layout11</cstring>
40 </property>
41 <hbox>
42 <property stdset="1">
43 <name>margin</name>
44 <number>0</number>
45 </property>
46 <property stdset="1">
47 <name>spacing</name>
48 <number>6</number>
49 </property>
50 <widget>
51 <class>QLabel</class>
52 <property stdset="1">
53 <name>name</name>
54 <cstring>txtPrio</cstring>
55 </property>
56 <property stdset="1">
57 <name>text</name>
58 <string>Priority</string>
59 </property>
60 </widget>
61 <widget>
62 <class>QComboBox</class>
63 <item>
64 <property>
65 <name>text</name>
66 <string>1 - Very High</string>
67 </property>
68 </item>
69 <item>
70 <property>
71 <name>text</name>
72 <string>2 - High</string>
73 </property>
74 </item>
75 <item>
76 <property>
77 <name>text</name>
78 <string>3 - Normal</string>
79 </property>
80 </item>
81 <item>
82 <property>
83 <name>text</name>
84 <string>4 - Low</string>
85 </property>
86 </item>
87 <item>
88 <property>
89 <name>text</name>
90 <string>5 - Very Low</string>
91 </property>
92 </item>
93 <property stdset="1">
94 <name>name</name>
95 <cstring>cmbPrio</cstring>
96 </property>
97 </widget>
98 </hbox>
99 </widget>
100 <widget row="4" column="0" rowspan="1" colspan="2" >
101 <class>QLayoutWidget</class>
102 <property stdset="1">
103 <name>name</name>
104 <cstring>Layout11</cstring>
105 </property>
106 <hbox>
107 <property stdset="1">
108 <name>margin</name>
109 <number>0</number>
110 </property>
111 <property stdset="1">
112 <name>spacing</name>
113 <number>6</number>
114 </property>
115 <widget>
116 <class>QLabel</class>
117 <property stdset="1">
118 <name>name</name>
119 <cstring>txtProgress</cstring>
120 </property>
121 <property stdset="1">
122 <name>text</name>
123 <string>Progress</string>
124 </property>
125 </widget>
126 <widget>
127 <class>QComboBox</class>
128 <item>
129 <property>
130 <name>text</name>
131 <string>0 %</string>
132 </property>
133 </item>
134 <item>
135 <property>
136 <name>text</name>
137 <string>20 %</string>
138 </property>
139 </item>
140 <item>
141 <property>
142 <name>text</name>
143 <string>40 %</string>
144 </property>
145 </item>
146 <item>
147 <property>
148 <name>text</name>
149 <string>60 %</string>
150 </property>
151 </item>
152 <item>
153 <property>
154 <name>text</name>
155 <string>80 %</string>
156 </property>
157 </item>
158 <item>
159 <property>
160 <name>text</name>
161 <string>100 %</string>
162 </property>
163 </item>
164 <property stdset="1">
165 <name>name</name>
166 <cstring>cmbProgress</cstring>
167 </property>
168 </widget>
169 </hbox>
170 </widget>
171 <widget row="2" column="0" rowspan="1" colspan="2" >
172 <class>QLayoutWidget</class>
173 <property stdset="1">
174 <name>name</name>
175 <cstring>Layout9</cstring>
176 </property>
177 <hbox>
178 <property stdset="1">
179 <name>margin</name>
180 <number>0</number>
181 </property>
182 <property stdset="1">
183 <name>spacing</name>
184 <number>6</number>
185 </property>
186 <widget>
187 <class>QCheckBox</class>
188 <property stdset="1">
189 <name>name</name>
190 <cstring>ckbDue</cstring>
191 </property>
192 <property stdset="1">
193 <name>text</name>
194 <string>Due Date:</string>
195 </property>
196 </widget>
197 <widget>
198 <class>QPushButton</class>
199 <property stdset="1">
200 <name>name</name>
201 <cstring>btnDue</cstring>
202 </property>
203 <property stdset="1">
204 <name>enabled</name>
205 <bool>false</bool>
206 </property>
207 <property stdset="1">
208 <name>text</name>
209 <string>1 Januar 2002</string>
210 </property>
211 </widget>
212 </hbox>
213 </widget>
214 <widget row="1" column="0" rowspan="1" colspan="2" >
215 <class>QLayoutWidget</class>
216 <property stdset="1">
217 <name>name</name>
218 <cstring>Layout8</cstring>
219 </property>
220 <hbox>
221 <property stdset="1">
222 <name>margin</name>
223 <number>0</number>
224 </property>
225 <property stdset="1">
226 <name>spacing</name>
227 <number>6</number>
228 </property>
229 <widget>
230 <class>QCheckBox</class>
231 <property stdset="1">
232 <name>name</name>
233 <cstring>ckbStart</cstring>
234 </property>
235 <property stdset="1">
236 <name>text</name>
237 <string>Start Date:</string>
238 </property>
239 </widget>
240 <widget>
241 <class>QPushButton</class>
242 <property stdset="1">
243 <name>name</name>
244 <cstring>btnStart</cstring>
245 </property>
246 <property stdset="1">
247 <name>enabled</name>
248 <bool>false</bool>
249 </property>
250 <property stdset="1">
251 <name>text</name>
252 <string>1 Januar 2001</string>
253 </property>
254 </widget>
255 </hbox>
256 </widget>
257 <widget row="0" column="0" rowspan="1" colspan="2" >
258 <class>QLayoutWidget</class>
259 <property stdset="1">
260 <name>name</name>
261 <cstring>Layout7</cstring>
262 </property>
263 <hbox>
264 <property stdset="1">
265 <name>margin</name>
266 <number>0</number>
267 </property>
268 <property stdset="1">
269 <name>spacing</name>
270 <number>6</number>
271 </property>
272 <widget>
273 <class>QLabel</class>
274 <property stdset="1">
275 <name>name</name>
276 <cstring>lblSum</cstring>
277 </property>
278 <property stdset="1">
279 <name>text</name>
280 <string>Summary</string>
281 </property>
282 </widget>
283 <widget>
284 <class>QComboBox</class>
285 <item>
286 <property>
287 <name>text</name>
288 <string>Complete</string>
289 </property>
290 </item>
291 <item>
292 <property>
293 <name>text</name>
294 <string>work on</string>
295 </property>
296 </item>
297 <item>
298 <property>
299 <name>text</name>
300 <string>buy</string>
301 </property>
302 </item>
303 <item>
304 <property>
305 <name>text</name>
306 <string>organize</string>
307 </property>
308 </item>
309 <item>
310 <property>
311 <name>text</name>
312 <string>get</string>
313 </property>
314 </item>
315 <item>
316 <property>
317 <name>text</name>
318 <string>Update</string>
319 </property>
320 </item>
321 <item>
322 <property>
323 <name>text</name>
324 <string>Create</string>
325 </property>
326 </item>
327 <item>
328 <property>
329 <name>text</name>
330 <string>Plan</string>
331 </property>
332 </item>
333 <item>
334 <property>
335 <name>text</name>
336 <string>Call</string>
337 </property>
338 </item>
339 <item>
340 <property>
341 <name>text</name>
342 <string>Mail</string>
343 </property>
344 </item>
345 <property stdset="1">
346 <name>name</name>
347 <cstring>cmbSum</cstring>
348 </property>
349 <property stdset="1">
350 <name>editable</name>
351 <bool>true</bool>
352 </property>
353 </widget>
354 </hbox>
355 </widget>
356 <widget row="3" column="0" rowspan="1" colspan="2" >
357 <class>QLayoutWidget</class>
358 <property stdset="1">
359 <name>name</name>
360 <cstring>Layout10</cstring>
361 </property>
362 <hbox>
363 <property stdset="1">
364 <name>margin</name>
365 <number>0</number>
366 </property>
367 <property stdset="1">
368 <name>spacing</name>
369 <number>6</number>
370 </property>
371 <widget>
372 <class>QCheckBox</class>
373 <property stdset="1">
374 <name>name</name>
375 <cstring>ckbComp</cstring>
376 </property>
377 <property stdset="1">
378 <name>enabled</name>
379 <bool>true</bool>
380 </property>
381 <property stdset="1">
382 <name>text</name>
383 <string>Completed Date</string>
384 </property>
385 </widget>
386 <widget>
387 <class>QPushButton</class>
388 <property stdset="1">
389 <name>name</name>
390 <cstring>btnComp</cstring>
391 </property>
392 <property stdset="1">
393 <name>enabled</name>
394 <bool>false</bool>
395 </property>
396 <property stdset="1">
397 <name>text</name>
398 <string>1 Januar 2002</string>
399 </property>
400 </widget>
401 </hbox>
402 </widget>
403 <widget row="6" column="0" >
404 <class>QCheckBox</class>
405 <property stdset="1">
406 <name>name</name>
407 <cstring>ckbCompleted</cstring>
408 </property>
409 <property stdset="1">
410 <name>text</name>
411 <string>Completed</string>
412 </property>
413 </widget>
414 <widget row="7" column="0" rowspan="1" colspan="2" >
415 <class>QLayoutWidget</class>
416 <property stdset="1">
417 <name>name</name>
418 <cstring>Layout12</cstring>
419 </property>
420 <hbox>
421 <property stdset="1">
422 <name>margin</name>
423 <number>0</number>
424 </property>
425 <property stdset="1">
426 <name>spacing</name>
427 <number>6</number>
428 </property>
429 <widget>
430 <class>QLabel</class>
431 <property stdset="1">
432 <name>name</name>
433 <cstring>txtCategory</cstring>
434 </property>
435 <property stdset="1">
436 <name>text</name>
437 <string>Category</string>
438 </property>
439 </widget>
440 <widget>
441 <class>CategorySelect</class>
442 <property stdset="1">
443 <name>name</name>
444 <cstring>comboCategory</cstring>
445 </property>
446 <property stdset="1">
447 <name>sizePolicy</name>
448 <sizepolicy>
449 <hsizetype>7</hsizetype>
450 <vsizetype>0</vsizetype>
451 </sizepolicy>
452 </property>
453 <property stdset="1">
454 <name>minimumSize</name>
455 <size>
456 <width>60</width>
457 <height>20</height>
458 </size>
459 </property>
460 </widget>
461 </hbox>
462 </widget>
463 <widget row="8" column="0" rowspan="1" colspan="2" >
464 <class>QCheckBox</class>
465 <property stdset="1">
466 <name>name</name>
467 <cstring>CheckBox7</cstring>
468 </property>
469 <property stdset="1">
470 <name>text</name>
471 <string>Enable Recurrance</string>
472 </property>
473 </widget>
474 <spacer row="9" column="1" >
475 <property>
476 <name>name</name>
477 <cstring>Spacer1</cstring>
478 </property>
479 <property stdset="1">
480 <name>orientation</name>
481 <enum>Vertical</enum>
482 </property>
483 <property stdset="1">
484 <name>sizeType</name>
485 <enum>Expanding</enum>
486 </property>
487 <property>
488 <name>sizeHint</name>
489 <size>
490 <width>20</width>
491 <height>20</height>
492 </size>
493 </property>
494 </spacer>
495 </grid>
496</widget>
497<customwidgets>
498 <customwidget>
499 <class>CategorySelect</class>
500 <header location="global">qpe/categoryselect.h</header>
501 <sizehint>
502 <width>-1</width>
503 <height>-1</height>
504 </sizehint>
505 <container>0</container>
506 <sizepolicy>
507 <hordata>7</hordata>
508 <verdata>1</verdata>
509 </sizepolicy>
510 <pixmap>image0</pixmap>
511 </customwidget>
512</customwidgets>
513<images>
514 <image>
515 <name>image0</name>
516 <data format="XPM.GZ" length="646">789c6dd2c10ac2300c00d07bbf2234b7229d1be245fc04c5a3201e4615f430059d0711ff5ddb2e6bb236ec90eed134cb5a19d8ef36602af5ecdbfeeac05dda0798d3abebde87e3faa374d3807fa0d633a52d38d8de6f679fe33fc776e196f53cd010188256a3600a292882096246517815ca99884606e18044a3a40d91824820924265a7923a2e8bcd05f33db1173e002913175f2a6be6d3294871a2d95fa00e8a94ee017b69d339d90df1e77c57ea072ede6758</data>
517 </image>
518</images>
519<connections>
520 <connection>
521 <sender>ckbStart</sender>
522 <signal>clicked()</signal>
523 <receiver>TaskEditorOverView</receiver>
524 <slot>slotStartChecked()</slot>
525 </connection>
526 <connection>
527 <sender>ckbDue</sender>
528 <signal>clicked()</signal>
529 <receiver>TaskEditorOverView</receiver>
530 <slot>slotDueChecked()</slot>
531 </connection>
532 <connection>
533 <sender>ckbComp</sender>
534 <signal>clicked()</signal>
535 <receiver>TaskEditorOverView</receiver>
536 <slot>slotCompletedChecked()</slot>
537 </connection>
538 <slot access="protected">slotCompletedChecked()</slot>
539 <slot access="protected">slotDueChecked()</slot>
540 <slot access="protected">slotStartChecked()</slot>
541</connections>
542</UI>
diff --git a/core/pim/todo/taskeditoroverviewimpl.cpp b/core/pim/todo/taskeditoroverviewimpl.cpp
new file mode 100644
index 0000000..b9b2ae6
--- a/dev/null
+++ b/core/pim/todo/taskeditoroverviewimpl.cpp
@@ -0,0 +1,169 @@
1#include <qapplication.h>
2#include <qcheckbox.h>
3#include <qcombobox.h>
4#include <qpopupmenu.h>
5
6#include <qpe/datebookmonth.h>
7#include <qpe/categoryselect.h>
8#include <qpe/timestring.h>
9
10#include "taskeditoroverviewimpl.h"
11
12/*
13 * we need to hack
14 */
15
16TaskEditorOverViewImpl::TaskEditorOverViewImpl( QWidget* parent, const char* name )
17 : TaskEditorOverView( parent, name ) {
18 init();
19}
20TaskEditorOverViewImpl::~TaskEditorOverViewImpl() {
21}
22void TaskEditorOverViewImpl::load( const OTodo& todo) {
23 QDate date = QDate::currentDate();
24 QString str = TimeString::longDateString( date );
25
26 emit recurranceEnabled( FALSE );
27 ckbStart->setChecked( FALSE );
28 btnStart->setText( str );
29
30 ckbComp->setChecked( FALSE );
31 btnComp->setText( str );
32
33 cmbProgress->setCurrentItem( todo.progress()/20 );
34 cmbSum->insertItem( todo.summary(), 0 );
35 cmbSum->setCurrentItem( 0 );
36
37 ckbDue->setChecked( todo.hasDueDate() );
38 btnDue->setText( TimeString::longDateString( todo.dueDate() ) );
39
40 cmbPrio->setCurrentItem( todo.priority() -1 );
41 ckbCompleted->setChecked( todo.isCompleted() );
42
43 comboCategory->setCategories( todo.categories(), "Todo List", tr("Todo List") );
44
45}
46void TaskEditorOverViewImpl::save( OTodo& to) {
47 qWarning("save it now");
48 if ( ckbDue->isChecked() ) {
49 to.setDueDate( m_due );
50 to.setHasDueDate( true );
51 }else
52 to.setHasDueDate( false );
53 if ( comboCategory->currentCategory() != -1 ) {
54 QArray<int> arr = comboCategory->currentCategories();
55 to.setCategories( arr );
56 }
57 to.setPriority( cmbPrio->currentItem() + 1 );
58 to.setCompleted( ckbCompleted->isChecked() );
59 to.setSummary( cmbSum->currentText() );
60 to.setProgress( cmbProgress->currentItem() * 20 );
61}
62/*
63 * here we will init the basic view
64 * one Popup for each Date Button
65 * and some other signal and slots connection
66 */
67void TaskEditorOverViewImpl::init() {
68 QDate curDate = QDate::currentDate();
69 m_start = m_comp = m_due = curDate;
70 QString str = TimeString::longDateString( curDate );
71
72 /* Start Date Picker */
73 m_startPop = new QPopupMenu(this);
74 m_startBook = new DateBookMonth(m_startPop, 0, TRUE );
75 m_startPop->insertItem( m_startBook );
76 connect( m_startBook, SIGNAL( dateClicked(int, int, int) ),
77 this, SLOT(slotStartChanged(int, int, int) ) );
78
79
80 /* Due Date Picker */
81 m_duePop = new QPopupMenu(this);
82 m_dueBook = new DateBookMonth(m_duePop, 0, TRUE );
83 m_duePop->insertItem( m_dueBook );
84 connect( m_dueBook, SIGNAL( dateClicked(int, int, int) ),
85 this, SLOT(slotDueChanged(int, int, int) ) );
86
87 m_compPop = new QPopupMenu(this);
88 m_compBook = new DateBookMonth(m_compPop, 0, TRUE );
89 m_compPop->insertItem(m_compBook );
90 connect( m_compBook, SIGNAL(dateClicked(int, int, int) ),
91 this, SLOT(slotCompletedChanged(int, int, int) ) );
92
93
94 /*
95 * another part of the hack
96 * it's deprecated in Qt2 but
97 * still available in my qt-copy of Qt3.1beta2
98 */
99 btnDue->setIsMenuButton( TRUE );
100 btnStart->setIsMenuButton( TRUE );
101 btnComp->setIsMenuButton( TRUE );
102
103 /* now connect the hack */
104 connect(btnDue, SIGNAL(clicked() ),
105 this, SLOT(hackySlotHack2() ) );
106 connect(btnStart, SIGNAL(clicked() ),
107 this, SLOT(hackySlotHack1() ) );
108 connect(btnComp, SIGNAL(clicked() ),
109 this, SLOT(hackySlotHack3() ) );
110
111 /* recurrance */
112 connect(CheckBox7, SIGNAL(clicked() ),
113 this, SLOT(slotRecClicked() ) );
114}
115
116void TaskEditorOverViewImpl::slotStartChecked() {
117 qWarning("slotStartChecked");
118 btnStart->setEnabled( ckbStart->isChecked() );
119}
120void TaskEditorOverViewImpl::slotStartChanged(int y, int m, int d) {
121 m_start.setYMD( y, m, d );
122 btnStart->setText( TimeString::longDateString( m_start ) );
123}
124void TaskEditorOverViewImpl::slotDueChecked() {
125 btnDue->setEnabled( ckbDue->isChecked() );
126 qWarning("slotDueChecked");
127}
128void TaskEditorOverViewImpl::slotDueChanged(int y, int m, int d ) {
129 m_due.setYMD(y, m, d );
130 btnDue->setText( TimeString::longDateString( m_due ) );
131}
132void TaskEditorOverViewImpl::slotCompletedChecked() {
133 btnComp->setEnabled( ckbComp->isChecked() );
134 qWarning("slotCompletedChecked");
135}
136void TaskEditorOverViewImpl::slotCompletedChanged(int y, int m, int d) {
137 m_comp.setYMD( y, m, d );
138 btnComp->setText( TimeString::longDateString( m_comp ) );
139}
140/*
141 * called by a button pressed event...
142 * three slots to avoid ugly name() tests
143 * to sender()
144 */
145void TaskEditorOverViewImpl::hackySlotHack1() {
146 btnStart->setDown( FALSE );
147 popup( btnStart, m_startPop );
148}
149void TaskEditorOverViewImpl::hackySlotHack2() {
150 btnDue->setDown( FALSE );
151 popup( btnDue, m_duePop );
152}
153void TaskEditorOverViewImpl::hackySlotHack3() {
154 btnComp->setDown( FALSE );
155 popup( btnComp, m_compPop );
156}
157void TaskEditorOverViewImpl::slotRecClicked() {
158 qWarning("enabled recurrance");
159 emit recurranceEnabled( CheckBox7->isChecked() );
160}
161/*
162 * GPL from TT QPushButton code
163 */
164void TaskEditorOverViewImpl::popup( QPushButton* pu, QPopupMenu* pop) {
165 if ( pu->mapToGlobal( QPoint(0, pu->rect().bottom() ) ).y() + pop->sizeHint().height() <= qApp->desktop()->height() )
166 pop->exec( pu->mapToGlobal( pu->rect().bottomLeft() ) );
167 else
168 pop->exec( pu->mapToGlobal( pu->rect().topLeft() - QPoint(0, pu->sizeHint().height() ) ) );
169}
diff --git a/core/pim/todo/taskeditoroverviewimpl.h b/core/pim/todo/taskeditoroverviewimpl.h
new file mode 100644
index 0000000..4fab381
--- a/dev/null
+++ b/core/pim/todo/taskeditoroverviewimpl.h
@@ -0,0 +1,54 @@
1#ifndef OPIE_TASK_EDITOR_VIEW_IMPL_H
2#define OPIE_TASK_EDITOR_VIEW_IMPL_H
3
4#include <qsize.h>
5
6#include <opie/otodo.h>
7
8#include "taskeditoroverview.h"
9
10class DateBookMonth;
11class QPushButton;
12class QPopupMenu;
13class TaskEditorOverViewImpl : public TaskEditorOverView {
14 Q_OBJECT
15public:
16 TaskEditorOverViewImpl(QWidget* parent, const char* name = 0);
17 ~TaskEditorOverViewImpl();
18
19 void load( const OTodo& );
20 void save( OTodo& );
21signals:
22 void recurranceEnabled( bool );
23
24private:
25 void init();
26 void popup(QPushButton*, QPopupMenu*);
27 DateBookMonth* m_dueBook;
28 DateBookMonth* m_startBook;
29 DateBookMonth* m_compBook;
30 QDate m_start;
31 QDate m_comp;
32 QDate m_due;
33 QPopupMenu* m_startPop;
34 QPopupMenu* m_compPop;
35 QPopupMenu* m_duePop;
36 bool m_bDue : 1;
37
38private slots:
39 void slotStartChecked();
40 void slotStartChanged(int, int, int );
41 void slotDueChecked();
42 void slotDueChanged(int, int, int );
43 void slotCompletedChecked();
44 void slotCompletedChanged(int, int, int );
45
46 void hackySlotHack1();
47 void hackySlotHack2();
48 void hackySlotHack3();
49
50 void slotRecClicked();
51};
52
53
54#endif
diff --git a/core/pim/todo/todo.pro b/core/pim/todo/todo.pro
index d432e78..8f21416 100644
--- a/core/pim/todo/todo.pro
+++ b/core/pim/todo/todo.pro
@@ -1,59 +1,61 @@
1 TEMPLATE= app 1 TEMPLATE= app
2 CONFIG = qt warn_on release 2 CONFIG = qt warn_on release
3 DESTDIR = $(OPIEDIR)/bin 3 DESTDIR = $(OPIEDIR)/bin
4 4
5 HEADERS= smalltodo.h \ 5 HEADERS= smalltodo.h \
6 todomanager.h \ 6 todomanager.h \
7 mainwindow.h \ 7 mainwindow.h \
8 todoview.h \ 8 todoview.h \
9 todoentryimpl.h \
10 tableview.h \ 9 tableview.h \
11 tableitems.h \ 10 tableitems.h \
12 todotemplatemanager.h \ 11 todotemplatemanager.h \
13 todoeditor.h \ 12 todoeditor.h \
14 todoshow.h \ 13 todoshow.h \
15 textviewshow.h \ 14 textviewshow.h \
16 templateeditor.h \ 15 templateeditor.h \
17 templatedialog.h \ 16 templatedialog.h \
18 templatedialogimpl.h \ 17 templatedialogimpl.h \
19 quickedit.h \ 18 quickedit.h \
20 quickeditimpl.h 19 quickeditimpl.h \
20 otaskeditor.h \
21 taskeditoroverviewimpl.h
21 22
22 SOURCES= smalltodo.cpp \ 23 SOURCES= smalltodo.cpp \
23 todomanager.cpp \ 24 todomanager.cpp \
24 mainwindow.cpp \ 25 mainwindow.cpp \
25 main.cpp \ 26 main.cpp \
26 todoentryimpl.cpp \
27 tableview.cpp \ 27 tableview.cpp \
28 tableitems.cpp \ 28 tableitems.cpp \
29 todoview.cpp \ 29 todoview.cpp \
30 todotemplatemanager.cpp \ 30 todotemplatemanager.cpp \
31 todoeditor.cpp \ 31 todoeditor.cpp \
32 todoshow.cpp \ 32 todoshow.cpp \
33 textviewshow.cpp \ 33 textviewshow.cpp \
34 templateeditor.cpp \ 34 templateeditor.cpp \
35 templatedialog.cpp \ 35 templatedialog.cpp \
36 templatedialogimpl.cpp \ 36 templatedialogimpl.cpp \
37 quickeditimpl.cpp \ 37 quickeditimpl.cpp \
38 quickedit.cpp 38 quickedit.cpp \
39 otaskeditor.cpp \
40 taskeditoroverviewimpl.cpp
39 41
40 INTERFACES= todoentry.ui 42 INTERFACES= taskeditoradvanced.ui taskeditoralarms.ui taskeditoroverview.ui
41 TARGET = todolist 43 TARGET = todolist
42INCLUDEPATH += $(OPIEDIR)/include 44INCLUDEPATH += $(OPIEDIR)/include
43 DEPENDPATH+= $(OPIEDIR)/include 45 DEPENDPATH+= $(OPIEDIR)/include
44LIBS += -lqpe -lopie 46LIBS += -lqpe -lopie
45 47
46TRANSLATIONS = ../../../i18n/de/todolist.ts \ 48TRANSLATIONS = ../../../i18n/de/todolist.ts \
47 ../../../i18n/en/todolist.ts \ 49 ../../../i18n/en/todolist.ts \
48 ../../../i18n/es/todolist.ts \ 50 ../../../i18n/es/todolist.ts \
49 ../../../i18n/fr/todolist.ts \ 51 ../../../i18n/fr/todolist.ts \
50 ../../../i18n/hu/todolist.ts \ 52 ../../../i18n/hu/todolist.ts \
51 ../../../i18n/ja/todolist.ts \ 53 ../../../i18n/ja/todolist.ts \
52 ../../../i18n/ko/todolist.ts \ 54 ../../../i18n/ko/todolist.ts \
53 ../../../i18n/no/todolist.ts \ 55 ../../../i18n/no/todolist.ts \
54 ../../../i18n/pl/todolist.ts \ 56 ../../../i18n/pl/todolist.ts \
55 ../../../i18n/pt/todolist.ts \ 57 ../../../i18n/pt/todolist.ts \
56 ../../../i18n/pt_BR/todolist.ts \ 58 ../../../i18n/pt_BR/todolist.ts \
57 ../../../i18n/sl/todolist.ts \ 59 ../../../i18n/sl/todolist.ts \
58 ../../../i18n/zh_CN/todolist.ts \ 60 ../../../i18n/zh_CN/todolist.ts \
59 ../../../i18n/zh_TW/todolist.ts 61 ../../../i18n/zh_TW/todolist.ts
diff --git a/core/pim/todo/todoeditor.cpp b/core/pim/todo/todoeditor.cpp
index c9ade20..e19ab8d 100644
--- a/core/pim/todo/todoeditor.cpp
+++ b/core/pim/todo/todoeditor.cpp
@@ -1,53 +1,55 @@
1 1
2#include "todoentryimpl.h" 2#include "otaskeditor.h"
3#include "todoeditor.h" 3#include "todoeditor.h"
4 4
5using namespace Todo; 5using namespace Todo;
6 6
7Editor::Editor() { 7Editor::Editor() {
8 m_accepted = false; 8 m_accepted = false;
9} 9}
10Editor::~Editor() { 10Editor::~Editor() {
11} 11}
12OTodo Editor::newTodo( int cur, 12OTodo Editor::newTodo( int cur,
13 QWidget* par) { 13 QWidget* par) {
14 14
15 NewTaskDialog e( cur, par, 0, TRUE ); 15 OTaskEditor e( cur);
16 16
17 17
18#if defined(Q_WS_QWS) || defined(_WS_QWS_) 18#if defined(Q_WS_QWS) || defined(_WS_QWS_)
19 e.showMaximized(); 19 e.showMaximized();
20#endif 20#endif
21 21
22 int ret = e.exec(); 22 int ret = e.exec();
23 if ( QDialog::Accepted == ret ) { 23 if ( QDialog::Accepted == ret ) {
24 m_accepted = true; 24 m_accepted = true;
25 }else 25 }else
26 m_accepted = false; 26 m_accepted = false;
27 27
28 OTodo ev = e.todoEntry(); 28 OTodo ev = e.todo();
29 qWarning("Todo uid");
30 qWarning("Todo %s %d %d", ev.summary().latin1(), ev.progress(), ev.isCompleted() );
29 ev.setUid(1); 31 ev.setUid(1);
30 32
31 return ev; 33 return ev;
32} 34}
33OTodo Editor::edit( QWidget *wid, 35OTodo Editor::edit( QWidget *wid,
34 const OTodo& todo ) { 36 const OTodo& todo ) {
35 NewTaskDialog e( todo, wid, 0, TRUE ); 37 OTaskEditor e( todo );
36 e.setCaption( QObject::tr( "Edit Task" ) ); 38 e.setCaption( QObject::tr( "Edit Task" ) );
37 39
38#if defined(Q_WS_QWS) || defined(_WS_QWS_) 40#if defined(Q_WS_QWS) || defined(_WS_QWS_)
39 e.showMaximized(); 41 e.showMaximized();
40#endif 42#endif
41 int ret = e.exec(); 43 int ret = e.exec();
42 44
43 OTodo ev = e.todoEntry(); 45 OTodo ev = e.todo();
44 if ( ret == QDialog::Accepted ) 46 if ( ret == QDialog::Accepted )
45 m_accepted = true; 47 m_accepted = true;
46 else 48 else
47 m_accepted = false; 49 m_accepted = false;
48 50
49 return ev; 51 return ev;
50} 52}
51bool Editor::accepted()const { 53bool Editor::accepted()const {
52 return m_accepted; 54 return m_accepted;
53} 55}
diff --git a/core/pim/todo/todoentry.ui b/core/pim/todo/todoentry.ui
deleted file mode 100644
index 60547f2..0000000
--- a/core/pim/todo/todoentry.ui
+++ b/dev/null
@@ -1,481 +0,0 @@
1<!DOCTYPE UI><UI>
2<class>NewTaskDialogBase</class>
3<comment>*********************************************************************
4** Copyright (C) 2000 Trolltech AS. All rights reserved.
5**
6** This file is part of Qtopia Environment.
7**
8** This file may be distributed and/or modified under the terms of the
9** GNU General Public License version 2 as published by the Free Software
10** Foundation and appearing in the file LICENSE.GPL included in the
11** packaging of this file.
12**
13** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
14** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
15**
16** See http://www.trolltech.com/gpl/ for GPL licensing information.
17**
18** Contact info@trolltech.com if any conditions of this licensing are
19** not clear to you.
20**
21*********************************************************************</comment>
22<widget>
23 <class>QDialog</class>
24 <property stdset="1">
25 <name>name</name>
26 <cstring>NewTaskDialogBase</cstring>
27 </property>
28 <property stdset="1">
29 <name>geometry</name>
30 <rect>
31 <x>0</x>
32 <y>0</y>
33 <width>239</width>
34 <height>320</height>
35 </rect>
36 </property>
37 <property stdset="1">
38 <name>caption</name>
39 <string>New Task</string>
40 </property>
41 <property>
42 <name>layoutMargin</name>
43 </property>
44 <property>
45 <name>layoutSpacing</name>
46 </property>
47 <vbox>
48 <property stdset="1">
49 <name>margin</name>
50 <number>4</number>
51 </property>
52 <property stdset="1">
53 <name>spacing</name>
54 <number>4</number>
55 </property>
56 <widget>
57 <class>QLayoutWidget</class>
58 <property stdset="1">
59 <name>name</name>
60 <cstring>Layout19</cstring>
61 </property>
62 <property>
63 <name>layoutSpacing</name>
64 </property>
65 <grid>
66 <property stdset="1">
67 <name>margin</name>
68 <number>0</number>
69 </property>
70 <property stdset="1">
71 <name>spacing</name>
72 <number>4</number>
73 </property>
74 <widget row="3" column="1" >
75 <class>QLayoutWidget</class>
76 <property stdset="1">
77 <name>name</name>
78 <cstring>Layout6</cstring>
79 </property>
80 <property>
81 <name>layoutSpacing</name>
82 </property>
83 <hbox>
84 <property stdset="1">
85 <name>margin</name>
86 <number>0</number>
87 </property>
88 <property stdset="1">
89 <name>spacing</name>
90 <number>4</number>
91 </property>
92 <widget>
93 <class>QComboBox</class>
94 <item>
95 <property>
96 <name>text</name>
97 <string>0%</string>
98 </property>
99 </item>
100 <item>
101 <property>
102 <name>text</name>
103 <string>20%</string>
104 </property>
105 </item>
106 <item>
107 <property>
108 <name>text</name>
109 <string>40%</string>
110 </property>
111 </item>
112 <item>
113 <property>
114 <name>text</name>
115 <string>60%</string>
116 </property>
117 </item>
118 <item>
119 <property>
120 <name>text</name>
121 <string>80%</string>
122 </property>
123 </item>
124 <item>
125 <property>
126 <name>text</name>
127 <string>100%</string>
128 </property>
129 </item>
130 <property stdset="1">
131 <name>name</name>
132 <cstring>cmbProg</cstring>
133 </property>
134 <property stdset="1">
135 <name>sizePolicy</name>
136 <sizepolicy>
137 <hsizetype>7</hsizetype>
138 <vsizetype>0</vsizetype>
139 </sizepolicy>
140 </property>
141 <property stdset="1">
142 <name>maximumSize</name>
143 <size>
144 <width>32767</width>
145 <height>32767</height>
146 </size>
147 </property>
148 </widget>
149 <widget>
150 <class>QCheckBox</class>
151 <property stdset="1">
152 <name>name</name>
153 <cstring>checkCompleted</cstring>
154 </property>
155 <property stdset="1">
156 <name>text</name>
157 <string>&amp;Completed</string>
158 </property>
159 </widget>
160 </hbox>
161 </widget>
162 <widget row="0" column="0" >
163 <class>QLabel</class>
164 <property stdset="1">
165 <name>name</name>
166 <cstring>TextLabel2</cstring>
167 </property>
168 <property stdset="1">
169 <name>text</name>
170 <string>Priority:</string>
171 </property>
172 </widget>
173 <widget row="4" column="1" >
174 <class>QPushButton</class>
175 <property stdset="1">
176 <name>name</name>
177 <cstring>buttonDate</cstring>
178 </property>
179 <property stdset="1">
180 <name>enabled</name>
181 <bool>false</bool>
182 </property>
183 <property stdset="1">
184 <name>text</name>
185 <string>1 Jan 2001</string>
186 </property>
187 </widget>
188 <widget row="3" column="0" >
189 <class>QLabel</class>
190 <property stdset="1">
191 <name>name</name>
192 <cstring>txtProg</cstring>
193 </property>
194 <property stdset="1">
195 <name>frameShape</name>
196 <enum>MShape</enum>
197 </property>
198 <property stdset="1">
199 <name>frameShadow</name>
200 <enum>MShadow</enum>
201 </property>
202 <property stdset="1">
203 <name>text</name>
204 <string>Progress:</string>
205 </property>
206 </widget>
207 <widget row="2" column="1" >
208 <class>QPushButton</class>
209 <property stdset="1">
210 <name>name</name>
211 <cstring>selectGroupButton</cstring>
212 </property>
213 <property stdset="1">
214 <name>text</name>
215 <string>Select</string>
216 </property>
217 </widget>
218 <widget row="2" column="0" >
219 <class>QLabel</class>
220 <property stdset="1">
221 <name>name</name>
222 <cstring>txtProg_2</cstring>
223 </property>
224 <property stdset="1">
225 <name>frameShape</name>
226 <enum>MShape</enum>
227 </property>
228 <property stdset="1">
229 <name>frameShadow</name>
230 <enum>MShadow</enum>
231 </property>
232 <property stdset="1">
233 <name>text</name>
234 <string>Group:</string>
235 </property>
236 </widget>
237 <widget row="4" column="0" >
238 <class>QCheckBox</class>
239 <property stdset="1">
240 <name>name</name>
241 <cstring>checkDate</cstring>
242 </property>
243 <property stdset="1">
244 <name>text</name>
245 <string>D&amp;ue</string>
246 </property>
247 </widget>
248 <widget row="1" column="1" >
249 <class>CategorySelect</class>
250 <property stdset="1">
251 <name>name</name>
252 <cstring>comboCategory</cstring>
253 </property>
254 <property stdset="1">
255 <name>sizePolicy</name>
256 <sizepolicy>
257 <hsizetype>7</hsizetype>
258 <vsizetype>0</vsizetype>
259 </sizepolicy>
260 </property>
261 <property stdset="1">
262 <name>minimumSize</name>
263 <size>
264 <width>60</width>
265 <height>20</height>
266 </size>
267 </property>
268 </widget>
269 <widget row="0" column="1" >
270 <class>QComboBox</class>
271 <item>
272 <property>
273 <name>text</name>
274 <string>1 - Very High</string>
275 </property>
276 </item>
277 <item>
278 <property>
279 <name>text</name>
280 <string>2 - High</string>
281 </property>
282 </item>
283 <item>
284 <property>
285 <name>text</name>
286 <string>3 - Normal</string>
287 </property>
288 </item>
289 <item>
290 <property>
291 <name>text</name>
292 <string>4 - Low</string>
293 </property>
294 </item>
295 <item>
296 <property>
297 <name>text</name>
298 <string>5 - Very Low</string>
299 </property>
300 </item>
301 <property stdset="1">
302 <name>name</name>
303 <cstring>comboPriority</cstring>
304 </property>
305 <property stdset="1">
306 <name>currentItem</name>
307 <number>2</number>
308 </property>
309 </widget>
310 <widget row="5" column="0" >
311 <class>QLabel</class>
312 <property stdset="1">
313 <name>name</name>
314 <cstring>TextLabel1</cstring>
315 </property>
316 <property stdset="1">
317 <name>text</name>
318 <string>Summary:</string>
319 </property>
320 </widget>
321 <widget row="1" column="0" >
322 <class>QLabel</class>
323 <property stdset="1">
324 <name>name</name>
325 <cstring>TextLabel3</cstring>
326 </property>
327 <property stdset="1">
328 <name>frameShape</name>
329 <enum>NoFrame</enum>
330 </property>
331 <property stdset="1">
332 <name>text</name>
333 <string>Category:</string>
334 </property>
335 </widget>
336 <widget row="5" column="1" >
337 <class>QLayoutWidget</class>
338 <property stdset="1">
339 <name>name</name>
340 <cstring>Layout8</cstring>
341 </property>
342 <property>
343 <name>layoutSpacing</name>
344 </property>
345 <hbox>
346 <property stdset="1">
347 <name>margin</name>
348 <number>0</number>
349 </property>
350 <property stdset="1">
351 <name>spacing</name>
352 <number>4</number>
353 </property>
354 <widget>
355 <class>QLineEdit</class>
356 <property stdset="1">
357 <name>name</name>
358 <cstring>lneSum</cstring>
359 </property>
360 </widget>
361 <widget>
362 <class>OClickableLabel</class>
363 <property stdset="1">
364 <name>name</name>
365 <cstring>lblDown</cstring>
366 </property>
367 <property stdset="1">
368 <name>sizePolicy</name>
369 <sizepolicy>
370 <hsizetype>0</hsizetype>
371 <vsizetype>0</vsizetype>
372 </sizepolicy>
373 </property>
374 <property stdset="1">
375 <name>minimumSize</name>
376 <size>
377 <width>20</width>
378 <height>20</height>
379 </size>
380 </property>
381 <property stdset="1">
382 <name>maximumSize</name>
383 <size>
384 <width>20</width>
385 <height>20</height>
386 </size>
387 </property>
388 </widget>
389 </hbox>
390 </widget>
391 </grid>
392 </widget>
393 <widget>
394 <class>QMultiLineEdit</class>
395 <property stdset="1">
396 <name>name</name>
397 <cstring>txtTodo</cstring>
398 </property>
399 <property stdset="1">
400 <name>sizePolicy</name>
401 <sizepolicy>
402 <hsizetype>7</hsizetype>
403 <vsizetype>7</vsizetype>
404 </sizepolicy>
405 </property>
406 <property stdset="1">
407 <name>wordWrap</name>
408 <enum>WidgetWidth</enum>
409 </property>
410 </widget>
411 </vbox>
412</widget>
413<customwidgets>
414 <customwidget>
415 <class>CategorySelect</class>
416 <header location="global">qpe/categoryselect.h</header>
417 <sizehint>
418 <width>-1</width>
419 <height>-1</height>
420 </sizehint>
421 <container>0</container>
422 <sizepolicy>
423 <hordata>7</hordata>
424 <verdata>1</verdata>
425 </sizepolicy>
426 <pixmap>image0</pixmap>
427 </customwidget>
428 <customwidget>
429 <class>OClickableLabel</class>
430 <header location="global">opie/oclickablelabel.h</header>
431 <sizehint>
432 <width>-1</width>
433 <height>-1</height>
434 </sizehint>
435 <container>0</container>
436 <sizepolicy>
437 <hordata>5</hordata>
438 <verdata>5</verdata>
439 </sizepolicy>
440 <pixmap>image0</pixmap>
441 <signal>clicked()</signal>
442 <signal>toggled(bool)</signal>
443 <slot access="public">slotOn(bool)</slot>
444 </customwidget>
445</customwidgets>
446<images>
447 <image>
448 <name>image0</name>
449 <data format="XPM.GZ" length="646">789c6dd2c10ac2300c00d07bbf2234b7229d1be245fc04c5a3201e4615f430059d0711ff5ddb2e6bb236ec90eed134cb5a19d8ef36602af5ecdbfeeac05dda0798d3abebde87e3faa374d3807fa0d633a52d38d8de6f679fe33fc776e196f53cd010188256a3600a292882096246517815ca99884606e18044a3a40d91824820924265a7923a2e8bcd05f33db1173e002913175f2a6be6d3294871a2d95fa00e8a94ee017b69d339d90df1e77c57ea072ede6758</data>
450 </image>
451</images>
452<connections>
453 <connection>
454 <sender>checkDate</sender>
455 <signal>toggled(bool)</signal>
456 <receiver>buttonDate</receiver>
457 <slot>setEnabled(bool)</slot>
458 </connection>
459 <connection>
460 <sender>lblDown</sender>
461 <signal>clicked()</signal>
462 <receiver>NewTaskDialogBase</receiver>
463 <slot>slotCopy()</slot>
464 </connection>
465 <slot access="protected">dateChanged( const QString &amp; )</slot>
466 <slot access="protected">dateChanged( int, int, int )</slot>
467 <slot access="protected">slotCopy()</slot>
468</connections>
469<tabstops>
470 <tabstop>comboPriority</tabstop>
471 <tabstop>comboCategory</tabstop>
472 <tabstop>selectGroupButton</tabstop>
473 <tabstop>cmbProg</tabstop>
474 <tabstop>checkCompleted</tabstop>
475 <tabstop>checkDate</tabstop>
476 <tabstop>buttonDate</tabstop>
477 <tabstop>lneSum</tabstop>
478 <tabstop>lblDown</tabstop>
479 <tabstop>txtTodo</tabstop>
480</tabstops>
481</UI>
diff --git a/core/pim/todo/todoentryimpl.cpp b/core/pim/todo/todoentryimpl.cpp
deleted file mode 100644
index 4211ae2..0000000
--- a/core/pim/todo/todoentryimpl.cpp
+++ b/dev/null
@@ -1,189 +0,0 @@
1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** Copyright (C) 2002 zecke
4**
5** This file is part of Qtopia Environment.
6**
7** This file may be distributed and/or modified under the terms of the
8** GNU General Public License version 2 as published by the Free Software
9** Foundation and appearing in the file LICENSE.GPL included in the
10** packaging of this file.
11**
12** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
13** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
14**
15** See http://www.trolltech.com/gpl/ for GPL licensing information.
16**
17** Contact info@trolltech.com if any conditions of this licensing are
18** not clear to you.
19**
20**********************************************************************/
21
22#include "todoentryimpl.h"
23
24#include <opie/oclickablelabel.h>
25#include <opie/otodo.h>
26
27#include <qpe/categoryselect.h>
28#include <qpe/datebookmonth.h>
29#include <qpe/global.h>
30#include <qpe/resource.h>
31#include <qpe/imageedit.h>
32#include <qpe/timestring.h>
33#include <qpe/palmtoprecord.h>
34
35#include <qlayout.h>
36#include <qmessagebox.h>
37#include <qpopupmenu.h>
38#include <qtoolbutton.h>
39#include <qcombobox.h>
40#include <qcheckbox.h>
41#include <qlineedit.h>
42#include <qmultilineedit.h>
43#include <qlabel.h>
44#include <qtimer.h>
45#include <qapplication.h>
46#include <qvaluelist.h>
47
48NewTaskDialog::NewTaskDialog( const OTodo& task, QWidget *parent,
49 const char *name, bool modal, WFlags fl )
50 : NewTaskDialogBase( parent, name, modal, fl ),
51 todo( task )
52{
53 todo.setCategories( task.categories() );
54 if ( todo.hasDueDate() )
55 date = todo.dueDate();
56 else
57 date = QDate::currentDate();
58
59 init();
60 comboPriority->setCurrentItem( task.priority() - 1 );
61
62 checkCompleted->setChecked( task.isCompleted() );
63 checkDate->setChecked( task.hasDueDate() );
64 buttonDate->setText( TimeString::longDateString( date ) );
65
66 txtTodo->setText( task.description() );
67 lneSum->setText( task.summary() );
68 cmbProg->setCurrentItem( task.progress()/20 );
69}
70
71/*
72 * Constructs a NewTaskDialog which is a child of 'parent', with the
73 * name 'name' and widget flags set to 'f'
74 *
75 * The dialog will by default be modeless, unless you set 'modal' to
76 * TRUE to construct a modal dialog.
77 */
78NewTaskDialog::NewTaskDialog( int id, QWidget* parent, const char* name, bool modal,
79 WFlags fl )
80 : NewTaskDialogBase( parent, name, modal, fl ),
81 date( QDate::currentDate() )
82{
83 if ( id != -1 )
84 todo.setCategories( id );
85 init();
86}
87
88void NewTaskDialog::init()
89{
90 if( layout() != 0 ){
91 layout()->setMargin( 2 );
92 }
93 QPopupMenu *m1 = new QPopupMenu( this );
94 picker = new DateBookMonth( m1, 0, TRUE );
95 m1->insertItem( picker );
96 buttonDate->setPopup( m1 );
97 comboCategory->setCategories( todo.categories(), "Todo List", tr("Todo List") );
98
99 connect( picker, SIGNAL( dateClicked( int, int, int ) ),
100 this, SLOT( dateChanged( int, int, int ) ) );
101
102 connect ( selectGroupButton, SIGNAL( clicked() ),
103 this, SLOT( groupButtonClicked () ) );
104
105 buttonDate->setText( TimeString::longDateString( date ) );
106 picker->setDate( date.year(), date.month(), date.day() );
107 lblDown->setPixmap(Resource::loadPixmap("down") );
108}
109
110/*
111 * Destroys the object and frees any allocated resources
112 */
113NewTaskDialog::~NewTaskDialog()
114{
115 // no need to delete child widgets, Qt does it all for us
116}
117void NewTaskDialog::dateChanged( int y, int m, int d )
118{
119 date = QDate( y, m, d );
120 buttonDate->setText( TimeString::longDateString( date ) );
121}
122void NewTaskDialog::groupButtonClicked ()
123{
124 /*OContactSelectorDialog cd( this );
125 QArray<int> todo_relations = todo.relations ( "addressbook" );
126 QValueList<int> selectedContacts;
127
128 for ( uint i=0; i < todo_relations.size(); i++ ){
129 printf ("old: %d\n", todo_relations[i]);
130 selectedContacts.append( todo_relations[i] );
131 }
132 cd.setSelected (selectedContacts);
133 cd.showMaximized();
134 if ( cd.exec() == QDialog::Accepted ){
135 selectedContacts = cd.selected ();
136 QValueListIterator<int> it;
137 todo.clearRelated("addressbook");
138 for( it = selectedContacts.begin(); it != selectedContacts.end(); ++it ){
139 printf ("Adding: %d\n", (*it));
140 todo.addRelated( "addressbook", (*it) );
141 }
142
143 }
144*/
145}
146
147OTodo NewTaskDialog::todoEntry()
148{
149 if( checkDate->isChecked() ){
150 todo.setDueDate( date );
151 todo.setHasDueDate( true );
152 }else{
153 todo.setHasDueDate( false );
154 }
155 if ( comboCategory->currentCategory() != -1 ) {
156 QArray<int> arr = comboCategory->currentCategories();
157 QStringList list;
158 todo.setCategories( arr );
159 }
160 todo.setPriority( comboPriority->currentItem() + 1 );
161 todo.setCompleted( checkCompleted->isChecked() );
162
163 todo.setDescription( txtTodo->text() );
164 todo.setSummary( lneSum->text() );
165 QString text = cmbProg->currentText();
166 todo.setProgress( text.remove( text.length()-1, 1 ).toUShort() );
167 return todo;
168}
169void NewTaskDialog::slotCopy()
170{
171 txtTodo->clear();
172 txtTodo->setText( lneSum->text() );
173}
174
175/*!
176
177*/
178
179void NewTaskDialog::accept()
180{
181 QString strText = txtTodo->text();
182 QString strSumm = lneSum->text();
183 if ( strSumm.isEmpty() && strText.isEmpty() ) {
184 // hmm... just decline it then, the user obviously didn't care about it
185 QDialog::reject();
186 return;
187 }
188 QDialog::accept();
189}
diff --git a/core/pim/todo/todoentryimpl.h b/core/pim/todo/todoentryimpl.h
deleted file mode 100644
index 2dfdd22..0000000
--- a/core/pim/todo/todoentryimpl.h
+++ b/dev/null
@@ -1,65 +0,0 @@
1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3**
4** This file is part of Qtopia Environment.
5**
6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file.
10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15**
16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you.
18**
19**********************************************************************/
20
21#ifndef NEWTASKDIALOG_H
22#define NEWTASKDIALOG_H
23
24#include "todoentry.h"
25
26#include <opie/otodo.h>
27//#include <opie/ocontactselector.h>
28
29#include <qdatetime.h>
30#include <qpalette.h>
31
32class QLabel;
33class QTimer;
34class DateBookMonth;
35
36
37
38class NewTaskDialog : public NewTaskDialogBase
39{
40 Q_OBJECT
41
42public:
43 NewTaskDialog( const OTodo& task, QWidget *parent = 0, const char* name = 0,
44 bool modal = FALSE, WFlags fl = 0 );
45 NewTaskDialog( int id, QWidget* parent = 0, const char* name = 0,
46 bool modal = FALSE, WFlags fl = 0 );
47 ~NewTaskDialog();
48
49 OTodo todoEntry();
50
51protected slots:
52 void dateChanged( int y, int m, int d );
53 void groupButtonClicked ();
54 void slotCopy();
55protected:
56 virtual void accept();
57
58private:
59 void init();
60 OTodo todo;
61 QDate date;
62 DateBookMonth *picker;
63};
64
65#endif // NEWTASKDIALOG_H