summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--core/pim/todo/mainwindow.cpp2
-rw-r--r--core/pim/todo/todoentry.ui196
-rw-r--r--core/pim/todo/todoentryimpl.cpp3
-rw-r--r--core/pim/todo/todotable.cpp9
-rw-r--r--core/pim/todo/todotable.h3
-rw-r--r--libopie/tododb.cpp4
-rw-r--r--libopie/todoevent.cpp35
-rw-r--r--libopie/todoevent.h59
-rw-r--r--libopie/todovcalresource.cpp7
9 files changed, 243 insertions, 75 deletions
diff --git a/core/pim/todo/mainwindow.cpp b/core/pim/todo/mainwindow.cpp
index b7b1da0..1358f1c 100644
--- a/core/pim/todo/mainwindow.cpp
+++ b/core/pim/todo/mainwindow.cpp
@@ -591,13 +591,13 @@ void TodoWindow::slotBeam()
591 mkdir("/tmp/obex/", 0755); 591 mkdir("/tmp/obex/", 0755);
592 ToDoDB todoDB( beamfile, new ToDoVCalResource() ); 592 ToDoDB todoDB( beamfile, new ToDoVCalResource() );
593 todoDB.addEvent( c ); 593 todoDB.addEvent( c );
594 todoDB.save(); 594 todoDB.save();
595 Ir *ir = new Ir( this ); 595 Ir *ir = new Ir( this );
596 connect( ir, SIGNAL( done( Ir * ) ), this, SLOT( beamDone( Ir * ) ) ); 596 connect( ir, SIGNAL( done( Ir * ) ), this, SLOT( beamDone( Ir * ) ) );
597 QString description = c.description(); 597 QString description = c.summary();
598 ir->send( beamfile, description, "text/x-vCalendar" ); 598 ir->send( beamfile, description, "text/x-vCalendar" );
599} 599}
600 600
601void TodoWindow::beamDone( Ir *ir ) 601void TodoWindow::beamDone( Ir *ir )
602{ 602{
603 delete ir; 603 delete ir;
diff --git a/core/pim/todo/todoentry.ui b/core/pim/todo/todoentry.ui
index c735e76..87ee68c 100644
--- a/core/pim/todo/todoentry.ui
+++ b/core/pim/todo/todoentry.ui
@@ -27,13 +27,13 @@
27 </property> 27 </property>
28 <property stdset="1"> 28 <property stdset="1">
29 <name>geometry</name> 29 <name>geometry</name>
30 <rect> 30 <rect>
31 <x>0</x> 31 <x>0</x>
32 <y>0</y> 32 <y>0</y>
33 <width>249</width> 33 <width>245</width>
34 <height>321</height> 34 <height>321</height>
35 </rect> 35 </rect>
36 </property> 36 </property>
37 <property stdset="1"> 37 <property stdset="1">
38 <name>caption</name> 38 <name>caption</name>
39 <string>New Task</string> 39 <string>New Task</string>
@@ -41,26 +41,26 @@
41 <property> 41 <property>
42 <name>layoutMargin</name> 42 <name>layoutMargin</name>
43 </property> 43 </property>
44 <property> 44 <property>
45 <name>layoutSpacing</name> 45 <name>layoutSpacing</name>
46 </property> 46 </property>
47 <vbox>
48 <property stdset="1">
49 <name>margin</name>
50 <number>0</number>
51 </property>
52 <property stdset="1">
53 <name>spacing</name>
54 <number>0</number>
55 </property>
56 <widget> 47 <widget>
57 <class>QLayoutWidget</class> 48 <class>QLayoutWidget</class>
58 <property stdset="1"> 49 <property stdset="1">
59 <name>name</name> 50 <name>name</name>
60 <cstring>Layout4</cstring> 51 <cstring>Layout3</cstring>
52 </property>
53 <property stdset="1">
54 <name>geometry</name>
55 <rect>
56 <x>1</x>
57 <y>25</y>
58 <width>243</width>
59 <height>17</height>
60 </rect>
61 </property> 61 </property>
62 <hbox> 62 <hbox>
63 <property stdset="1"> 63 <property stdset="1">
64 <name>margin</name> 64 <name>margin</name>
65 <number>0</number> 65 <number>0</number>
66 </property> 66 </property>
@@ -69,74 +69,61 @@
69 <number>6</number> 69 <number>6</number>
70 </property> 70 </property>
71 <widget> 71 <widget>
72 <class>QLabel</class> 72 <class>QLabel</class>
73 <property stdset="1"> 73 <property stdset="1">
74 <name>name</name> 74 <name>name</name>
75 <cstring>TextLabel2</cstring> 75 <cstring>TextLabel3</cstring>
76 </property>
77 <property stdset="1">
78 <name>frameShape</name>
79 <enum>NoFrame</enum>
76 </property> 80 </property>
77 <property stdset="1"> 81 <property stdset="1">
78 <name>text</name> 82 <name>text</name>
79 <string>Priority:</string> 83 <string>Category:</string>
80 </property> 84 </property>
81 </widget> 85 </widget>
82 <widget> 86 <widget>
83 <class>QComboBox</class> 87 <class>CategorySelect</class>
84 <item> 88 <property stdset="1">
85 <property> 89 <name>name</name>
86 <name>text</name> 90 <cstring>comboCategory</cstring>
87 <string>1 - Very High</string>
88 </property>
89 </item>
90 <item>
91 <property>
92 <name>text</name>
93 <string>2 - High</string>
94 </property>
95 </item>
96 <item>
97 <property>
98 <name>text</name>
99 <string>3 - Normal</string>
100 </property>
101 </item>
102 <item>
103 <property>
104 <name>text</name>
105 <string>4 - Low</string>
106 </property>
107 </item>
108 <item>
109 <property>
110 <name>text</name>
111 <string>5 - Very Low</string>
112 </property> 91 </property>
113 </item> 92 </widget>
93 </hbox>
94 </widget>
95 <widget>
96 <class>QLayoutWidget</class>
114 <property stdset="1"> 97 <property stdset="1">
115 <name>name</name> 98 <name>name</name>
116 <cstring>comboPriority</cstring> 99 <cstring>Layout6</cstring>
117 </property> 100 </property>
118 <property stdset="1"> 101 <property stdset="1">
119 <name>sizePolicy</name> 102 <name>geometry</name>
120 <sizepolicy> 103 <rect>
121 <hsizetype>7</hsizetype> 104 <x>0</x>
122 <vsizetype>0</vsizetype> 105 <y>0</y>
123 </sizepolicy> 106 <width>240</width>
107 <height>320</height>
108 </rect>
124 </property> 109 </property>
110 <grid>
125 <property stdset="1"> 111 <property stdset="1">
126 <name>currentItem</name> 112 <name>margin</name>
127 <number>2</number> 113 <number>0</number>
128 </property> 114 </property>
129 </widget> 115 <property stdset="1">
130 </hbox> 116 <name>spacing</name>
131 </widget> 117 <number>6</number>
132 <widget> 118 </property>
119 <widget row="2" column="0" >
133 <class>QLayoutWidget</class> 120 <class>QLayoutWidget</class>
134 <property stdset="1"> 121 <property stdset="1">
135 <name>name</name> 122 <name>name</name>
136 <cstring>Layout3</cstring> 123 <cstring>Layout4</cstring>
137 </property> 124 </property>
138 <hbox> 125 <hbox>
139 <property stdset="1"> 126 <property stdset="1">
140 <name>margin</name> 127 <name>margin</name>
141 <number>0</number> 128 <number>0</number>
142 </property> 129 </property>
@@ -145,33 +132,36 @@
145 <number>6</number> 132 <number>6</number>
146 </property> 133 </property>
147 <widget> 134 <widget>
148 <class>QLabel</class> 135 <class>QLabel</class>
149 <property stdset="1"> 136 <property stdset="1">
150 <name>name</name> 137 <name>name</name>
151 <cstring>TextLabel3</cstring> 138 <cstring>TextLabel1</cstring>
152 </property>
153 <property stdset="1">
154 <name>frameShape</name>
155 <enum>NoFrame</enum>
156 </property> 139 </property>
157 <property stdset="1"> 140 <property stdset="1">
158 <name>text</name> 141 <name>text</name>
159 <string>Category:</string> 142 <string>Summary:</string>
160 </property> 143 </property>
161 </widget> 144 </widget>
162 <widget> 145 <widget>
163 <class>CategorySelect</class> 146 <class>QLineEdit</class>
164 <property stdset="1"> 147 <property stdset="1">
165 <name>name</name> 148 <name>name</name>
166 <cstring>comboCategory</cstring> 149 <cstring>lneSum</cstring>
167 </property> 150 </property>
168 </widget> 151 </widget>
169 </hbox> 152 </hbox>
170 </widget> 153 </widget>
171 <widget> 154 <widget row="3" column="0" >
155 <class>QMultiLineEdit</class>
156 <property stdset="1">
157 <name>name</name>
158 <cstring>txtTodo</cstring>
159 </property>
160 </widget>
161 <widget row="1" column="0" >
172 <class>QLayoutWidget</class> 162 <class>QLayoutWidget</class>
173 <property stdset="1"> 163 <property stdset="1">
174 <name>name</name> 164 <name>name</name>
175 <cstring>Layout4</cstring> 165 <cstring>Layout4</cstring>
176 </property> 166 </property>
177 <hbox> 167 <hbox>
@@ -219,20 +209,90 @@
219 <name>text</name> 209 <name>text</name>
220 <string>1 Jan 2001</string> 210 <string>1 Jan 2001</string>
221 </property> 211 </property>
222 </widget> 212 </widget>
223 </hbox> 213 </hbox>
224 </widget> 214 </widget>
215 <widget row="0" column="0" >
216 <class>QLayoutWidget</class>
217 <property stdset="1">
218 <name>name</name>
219 <cstring>Layout4</cstring>
220 </property>
221 <hbox>
222 <property stdset="1">
223 <name>margin</name>
224 <number>0</number>
225 </property>
226 <property stdset="1">
227 <name>spacing</name>
228 <number>6</number>
229 </property>
225 <widget> 230 <widget>
226 <class>QMultiLineEdit</class> 231 <class>QLabel</class>
227 <property stdset="1"> 232 <property stdset="1">
228 <name>name</name> 233 <name>name</name>
229 <cstring>txtTodo</cstring> 234 <cstring>TextLabel2</cstring>
235 </property>
236 <property stdset="1">
237 <name>text</name>
238 <string>Priority:</string>
239 </property>
240 </widget>
241 <widget>
242 <class>QComboBox</class>
243 <item>
244 <property>
245 <name>text</name>
246 <string>1 - Very High</string>
230 </property> 247 </property>
248 </item>
249 <item>
250 <property>
251 <name>text</name>
252 <string>2 - High</string>
253 </property>
254 </item>
255 <item>
256 <property>
257 <name>text</name>
258 <string>3 - Normal</string>
259 </property>
260 </item>
261 <item>
262 <property>
263 <name>text</name>
264 <string>4 - Low</string>
265 </property>
266 </item>
267 <item>
268 <property>
269 <name>text</name>
270 <string>5 - Very Low</string>
271 </property>
272 </item>
273 <property stdset="1">
274 <name>name</name>
275 <cstring>comboPriority</cstring>
276 </property>
277 <property stdset="1">
278 <name>sizePolicy</name>
279 <sizepolicy>
280 <hsizetype>7</hsizetype>
281 <vsizetype>0</vsizetype>
282 </sizepolicy>
283 </property>
284 <property stdset="1">
285 <name>currentItem</name>
286 <number>2</number>
287 </property>
288 </widget>
289 </hbox>
290 </widget>
291 </grid>
231 </widget> 292 </widget>
232 </vbox>
233</widget> 293</widget>
234<customwidgets> 294<customwidgets>
235 <customwidget> 295 <customwidget>
236 <class>CategorySelect</class> 296 <class>CategorySelect</class>
237 <header location="global">qpe/categoryselect.h</header> 297 <header location="global">qpe/categoryselect.h</header>
238 <sizehint> 298 <sizehint>
diff --git a/core/pim/todo/todoentryimpl.cpp b/core/pim/todo/todoentryimpl.cpp
index 26a685c..dfaf9b4 100644
--- a/core/pim/todo/todoentryimpl.cpp
+++ b/core/pim/todo/todoentryimpl.cpp
@@ -1,8 +1,9 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** Copyright (C) 2002 zecke
3** 4**
4** This file is part of Qtopia Environment. 5** This file is part of Qtopia Environment.
5** 6**
6** This file may be distributed and/or modified under the terms of the 7** 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** 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** Foundation and appearing in the file LICENSE.GPL included in the
@@ -58,12 +59,13 @@ NewTaskDialog::NewTaskDialog( const ToDoEvent& task, QWidget *parent,
58 59
59 checkCompleted->setChecked( task.isCompleted() ); 60 checkCompleted->setChecked( task.isCompleted() );
60 checkDate->setChecked( task.hasDate() ); 61 checkDate->setChecked( task.hasDate() );
61 buttonDate->setText( TimeString::longDateString( date ) ); 62 buttonDate->setText( TimeString::longDateString( date ) );
62 63
63 txtTodo->setText( task.description() ); 64 txtTodo->setText( task.description() );
65 lneSum->setText( task.summary() );
64} 66}
65 67
66/* 68/*
67 * Constructs a NewTaskDialog which is a child of 'parent', with the 69 * Constructs a NewTaskDialog which is a child of 'parent', with the
68 * name 'name' and widget flags set to 'f' 70 * name 'name' and widget flags set to 'f'
69 * 71 *
@@ -129,12 +131,13 @@ ToDoEvent NewTaskDialog::todoEntry()
129 todo.setCategories( list ); 131 todo.setCategories( list );
130 } 132 }
131 todo.setPriority( comboPriority->currentItem() + 1 ); 133 todo.setPriority( comboPriority->currentItem() + 1 );
132 todo.setCompleted( checkCompleted->isChecked() ); 134 todo.setCompleted( checkCompleted->isChecked() );
133 135
134 todo.setDescription( txtTodo->text() ); 136 todo.setDescription( txtTodo->text() );
137 todo.setSummary( lneSum->text() );
135 138
136 return todo; 139 return todo;
137} 140}
138 141
139 142
140/*! 143/*!
diff --git a/core/pim/todo/todotable.cpp b/core/pim/todo/todotable.cpp
index 52a3087..779b28c 100644
--- a/core/pim/todo/todotable.cpp
+++ b/core/pim/todo/todotable.cpp
@@ -569,12 +569,13 @@ void TodoTable::updateJournal( const ToDoEvent &todo, journal_action action )
569 attr.append(QString::number(arrat[i])+";" ); 569 attr.append(QString::number(arrat[i])+";" );
570 } 570 }
571 if(!attr.isEmpty() ) // remove the last ; 571 if(!attr.isEmpty() ) // remove the last ;
572 attr.remove(attr.length()-1, 1 ); 572 attr.remove(attr.length()-1, 1 );
573 buf += " Categories=\"" + attr + "\""; 573 buf += " Categories=\"" + attr + "\"";
574 buf += " Description=\"" + todo.description() + "\""; 574 buf += " Description=\"" + todo.description() + "\"";
575 buf += " Summary=\"" + todo.summary() + "\"";
575 if(todo.hasDate() ) { 576 if(todo.hasDate() ) {
576 buf += " DateYear=\""+QString::number( todo.date().year() ) + "\""; 577 buf += " DateYear=\""+QString::number( todo.date().year() ) + "\"";
577 buf += " DateMonth=\"" + QString::number( todo.date().month() ) + "\""; 578 buf += " DateMonth=\"" + QString::number( todo.date().month() ) + "\"";
578 buf += " DateDay=\"" + QString::number( todo.date().day() ) + "\""; 579 buf += " DateDay=\"" + QString::number( todo.date().day() ) + "\"";
579 } 580 }
580 buf += "/>\n"; 581 buf += "/>\n";
@@ -607,14 +608,17 @@ void TodoTable::loadFile( const QString &/*we use the standard*/ )
607 } 608 }
608// qDebug("loading done: t=%d", t.elapsed() ); 609// qDebug("loading done: t=%d", t.elapsed() );
609} 610}
610 611
611void TodoTable::journalFreeReplaceEntry( const ToDoEvent &todo, int row ) 612void TodoTable::journalFreeReplaceEntry( const ToDoEvent &todo, int row )
612{ 613{
613 QString strTodo; 614 QString strTodo = todo.summary();
615 if( strTodo.isEmpty() ){
614 strTodo = todo.description().left(40).simplifyWhiteSpace(); 616 strTodo = todo.description().left(40).simplifyWhiteSpace();
617 //todo.setSummary(strTodo );
618 }
615 if ( row == -1 ) { 619 if ( row == -1 ) {
616 QMapIterator<CheckItem*, ToDoEvent *> it; 620 QMapIterator<CheckItem*, ToDoEvent *> it;
617 for ( it = todoList.begin(); it != todoList.end(); ++it ) { 621 for ( it = todoList.begin(); it != todoList.end(); ++it ) {
618 if ( *(*it) == todo ) { 622 if ( *(*it) == todo ) {
619 row = it.key()->row(); 623 row = it.key()->row();
620 it.key()->setChecked( todo.isCompleted() ); 624 it.key()->setChecked( todo.isCompleted() );
@@ -905,12 +909,15 @@ static ToDoEvent xmlToEvent( XMLElement *element )
905 dumInt = dummy.toInt(&ok ); 909 dumInt = dummy.toInt(&ok );
906 if(!ok ) dumInt = ToDoEvent::NORMAL; 910 if(!ok ) dumInt = ToDoEvent::NORMAL;
907 event.setPriority( dumInt ); 911 event.setPriority( dumInt );
908 //description 912 //description
909 dummy = element->attribute("Description" ); 913 dummy = element->attribute("Description" );
910 event.setDescription( dummy ); 914 event.setDescription( dummy );
915 // summary
916 dummy = element->attribute("Summary" );
917 event.setSummary( dummy );
911 // category 918 // category
912 dummy = element->attribute("Categories" ); 919 dummy = element->attribute("Categories" );
913 QStringList ids = QStringList::split(";", dummy ); 920 QStringList ids = QStringList::split(";", dummy );
914 event.setCategories( ids ); 921 event.setCategories( ids );
915 922
916 //uid 923 //uid
diff --git a/core/pim/todo/todotable.h b/core/pim/todo/todotable.h
index 7672f21..39e00d1 100644
--- a/core/pim/todo/todotable.h
+++ b/core/pim/todo/todotable.h
@@ -196,13 +196,14 @@ inline void TodoTable::insertIntoTable( ToDoEvent *todo, int row )
196 + todo->priority() ) 196 + todo->priority() )
197 + Qtopia::buildSortKey( todo->description() ); 197 + Qtopia::buildSortKey( todo->description() );
198 CheckItem *chk = new CheckItem( this, sortKey ); 198 CheckItem *chk = new CheckItem( this, sortKey );
199 chk->setChecked( todo->isCompleted() ); 199 chk->setChecked( todo->isCompleted() );
200 ComboItem *cmb = new ComboItem( this, QTableItem::WhenCurrent ); 200 ComboItem *cmb = new ComboItem( this, QTableItem::WhenCurrent );
201 cmb->setText( QString::number( todo->priority() ) ); 201 cmb->setText( QString::number( todo->priority() ) );
202 QTableItem *ti = new TodoTextItem( this, todo->description().left(40).simplifyWhiteSpace() ); 202 QString sum = todo->summary();
203 QTableItem *ti = new TodoTextItem( this, sum.isEmpty() ? todo->description().left(40).simplifyWhiteSpace() : sum );
203 ti->setReplaceable( false ); 204 ti->setReplaceable( false );
204 205
205 DueTextItem *due = new DueTextItem(this, todo ); 206 DueTextItem *due = new DueTextItem(this, todo );
206 setItem( row, 3, due); 207 setItem( row, 3, due);
207 208
208 setItem( row, 0, chk ); 209 setItem( row, 0, chk );
diff --git a/libopie/tododb.cpp b/libopie/tododb.cpp
index fe8b8bf..6b10ec2 100644
--- a/libopie/tododb.cpp
+++ b/libopie/tododb.cpp
@@ -10,22 +10,24 @@ using namespace Opie;
10 10
11namespace { 11namespace {
12 12
13class FileToDoResource : public ToDoResource { 13class FileToDoResource : public ToDoResource {
14public: 14public:
15 FileToDoResource() {}; 15 FileToDoResource() {};
16 // FIXME better parsing
16 bool save(const QString &name, const QValueList<ToDoEvent> &m_todos ){ 17 bool save(const QString &name, const QValueList<ToDoEvent> &m_todos ){
17 // prepare the XML 18 // prepare the XML
18 XMLElement *tasks = new XMLElement( ); 19 XMLElement *tasks = new XMLElement( );
19 tasks->setTagName("Tasks" ); 20 tasks->setTagName("Tasks" );
20 for( QValueList<ToDoEvent>::ConstIterator it = m_todos.begin(); it != m_todos.end(); ++it ){ 21 for( QValueList<ToDoEvent>::ConstIterator it = m_todos.begin(); it != m_todos.end(); ++it ){
21 XMLElement::AttributeMap map; 22 XMLElement::AttributeMap map;
22 XMLElement *task = new XMLElement(); 23 XMLElement *task = new XMLElement();
23 map.insert( "Completed", QString::number((int)(*it).isCompleted() ) ); 24 map.insert( "Completed", QString::number((int)(*it).isCompleted() ) );
24 map.insert( "HasDate", QString::number((int)(*it).hasDate() ) ); 25 map.insert( "HasDate", QString::number((int)(*it).hasDate() ) );
25 map.insert( "Priority", QString::number( (*it).priority() ) ); 26 map.insert( "Priority", QString::number( (*it).priority() ) );
27 map.insert( "Summary", (*it).summary() );
26 QArray<int> arrat = (*it).categories(); 28 QArray<int> arrat = (*it).categories();
27 QString attr; 29 QString attr;
28 for(uint i=0; i < arrat.count(); i++ ){ 30 for(uint i=0; i < arrat.count(); i++ ){
29 attr.append(QString::number(arrat[i])+";" ); 31 attr.append(QString::number(arrat[i])+";" );
30 } 32 }
31 if(!attr.isEmpty() ) // remove the last ; 33 if(!attr.isEmpty() ) // remove the last ;
@@ -108,12 +110,14 @@ public:
108 dumInt = dummy.toInt(&ok ); 110 dumInt = dummy.toInt(&ok );
109 if(!ok ) dumInt = ToDoEvent::NORMAL; 111 if(!ok ) dumInt = ToDoEvent::NORMAL;
110 event.setPriority( dumInt ); 112 event.setPriority( dumInt );
111 //description 113 //description
112 dummy = element->attribute("Description" ); 114 dummy = element->attribute("Description" );
113 event.setDescription( dummy ); 115 event.setDescription( dummy );
116 dummy = element->attribute("Summary" );
117 event.setSummary( dummy );
114 // category 118 // category
115 dummy = element->attribute("Categories" ); 119 dummy = element->attribute("Categories" );
116 QStringList ids = QStringList::split(";", dummy ); 120 QStringList ids = QStringList::split(";", dummy );
117 event.setCategories( ids ); 121 event.setCategories( ids );
118 122
119 //uid 123 //uid
diff --git a/libopie/todoevent.cpp b/libopie/todoevent.cpp
index aa348a2..fb7073c 100644
--- a/libopie/todoevent.cpp
+++ b/libopie/todoevent.cpp
@@ -14,20 +14,24 @@
14 14
15ToDoEvent::ToDoEvent(const ToDoEvent &event ) 15ToDoEvent::ToDoEvent(const ToDoEvent &event )
16{ 16{
17 *this = event; 17 *this = event;
18} 18}
19 19
20ToDoEvent::ToDoEvent(bool completed, int priority, const QStringList &category, 20ToDoEvent::ToDoEvent(bool completed, int priority,
21 const QString &description, bool hasDate, QDate date, int uid ) 21 const QStringList &category,
22 const QString& summary,
23 const QString &description,
24 bool hasDate, QDate date, int uid )
22{ 25{
23 m_date = date; 26 m_date = date;
24 m_isCompleted = completed; 27 m_isCompleted = completed;
25 m_hasDate = hasDate; 28 m_hasDate = hasDate;
26 m_priority = priority; 29 m_priority = priority;
27 m_category = category; 30 m_category = category;
31 m_sum = summary;
28 m_desc = Qtopia::simplifyMultiLineSpace(description ); 32 m_desc = Qtopia::simplifyMultiLineSpace(description );
29 if (uid == -1 ) { 33 if (uid == -1 ) {
30 Qtopia::UidGen *uidgen = new Qtopia::UidGen(); 34 Qtopia::UidGen *uidgen = new Qtopia::UidGen();
31 uid = uidgen->generate(); 35 uid = uidgen->generate();
32 delete uidgen; 36 delete uidgen;
33 }// generate the ids 37 }// generate the ids
@@ -63,12 +67,20 @@ int ToDoEvent::priority()const
63 return m_priority; 67 return m_priority;
64} 68}
65QStringList ToDoEvent::allCategories()const 69QStringList ToDoEvent::allCategories()const
66{ 70{
67 return m_category; 71 return m_category;
68} 72}
73QString ToDoEvent::extra(const QString& )const
74{
75 return QString::null;
76}
77QString ToDoEvent::summary() const
78{
79 return m_sum;
80}
69void ToDoEvent::insertCategory(const QString &str ) 81void ToDoEvent::insertCategory(const QString &str )
70{ 82{
71 m_category.append( str ); 83 m_category.append( str );
72} 84}
73void ToDoEvent::clearCategories() 85void ToDoEvent::clearCategories()
74{ 86{
@@ -96,12 +108,20 @@ void ToDoEvent::setHasDate( bool hasDate )
96 m_hasDate = hasDate; 108 m_hasDate = hasDate;
97} 109}
98void ToDoEvent::setDescription(const QString &desc ) 110void ToDoEvent::setDescription(const QString &desc )
99{ 111{
100 m_desc = Qtopia::simplifyMultiLineSpace(desc ); 112 m_desc = Qtopia::simplifyMultiLineSpace(desc );
101} 113}
114void ToDoEvent::setExtra( const QString&, const QString& )
115{
116
117}
118void ToDoEvent::setSummary( const QString& sum )
119{
120 m_sum = sum;
121}
102void ToDoEvent::setCategory( const QString &cat ) 122void ToDoEvent::setCategory( const QString &cat )
103{ 123{
104 qWarning("setCategory %s", cat.latin1() ); 124 qWarning("setCategory %s", cat.latin1() );
105 m_category.clear(); 125 m_category.clear();
106 m_category << cat; 126 m_category << cat;
107} 127}
@@ -127,12 +147,14 @@ QString ToDoEvent::richText() const
127{ 147{
128 QString text; 148 QString text;
129 QStringList catlist; 149 QStringList catlist;
130 150
131 // Description of the todo 151 // Description of the todo
132 if ( !description().isEmpty() ){ 152 if ( !description().isEmpty() ){
153 text += "<b>" + QObject::tr( "Summary:") + "</b><br>";
154 text += Qtopia::escapeString(summary() ).replace(QRegExp( "[\n]"), "<br>" ) + "<br>";
133 text += "<b>" + QObject::tr( "Description:" ) + "</b><br>"; 155 text += "<b>" + QObject::tr( "Description:" ) + "</b><br>";
134 text += Qtopia::escapeString(description() ).replace(QRegExp( "[\n]"), "<br>" ) + "<br>"; 156 text += Qtopia::escapeString(description() ).replace(QRegExp( "[\n]"), "<br>" ) + "<br>";
135 } 157 }
136 text += "<b>" + QObject::tr( "Priority:") +" </b>" 158 text += "<b>" + QObject::tr( "Priority:") +" </b>"
137 + QString::number( priority() ) + "<br>"; 159 + QString::number( priority() ) + "<br>";
138 if (hasDate() ){ 160 if (hasDate() ){
@@ -212,25 +234,32 @@ bool ToDoEvent::operator>=(const ToDoEvent &toDoEvent )const
212 } 234 }
213 } 235 }
214 return true; 236 return true;
215} 237}
216bool ToDoEvent::operator==(const ToDoEvent &toDoEvent )const 238bool ToDoEvent::operator==(const ToDoEvent &toDoEvent )const
217{ 239{
218 if( m_date == toDoEvent.m_date && m_isCompleted == toDoEvent.m_isCompleted && m_hasDate == toDoEvent.m_hasDate && m_priority == toDoEvent.m_priority && m_category == toDoEvent.m_category && m_desc == toDoEvent.m_desc ) 240 if( m_priority == toDoEvent.m_priority &&
241 m_isCompleted == toDoEvent.m_isCompleted &&
242 m_hasDate == toDoEvent.m_hasDate &&
243 m_date == toDoEvent.m_date &&
244 m_category == toDoEvent.m_category &&
245 m_sum == toDoEvent.m_sum &&
246 m_desc == toDoEvent.m_desc )
219 return true; 247 return true;
220 return false; 248 return false;
221} 249}
222ToDoEvent &ToDoEvent::operator=(const ToDoEvent &item ) 250ToDoEvent &ToDoEvent::operator=(const ToDoEvent &item )
223{ 251{
224 m_date = item.m_date; 252 m_date = item.m_date;
225 m_isCompleted = item.m_isCompleted; 253 m_isCompleted = item.m_isCompleted;
226 m_hasDate = item.m_hasDate; 254 m_hasDate = item.m_hasDate;
227 m_priority = item.m_priority; 255 m_priority = item.m_priority;
228 m_category = item.m_category; 256 m_category = item.m_category;
229 m_desc = item.m_desc; 257 m_desc = item.m_desc;
230 m_uid = item.m_uid; 258 m_uid = item.m_uid;
259 m_sum = item.m_sum;
231 return *this; 260 return *this;
232} 261}
233 262
234 263
235 264
236 265
diff --git a/libopie/todoevent.h b/libopie/todoevent.h
index 8a00f99..7454241 100644
--- a/libopie/todoevent.h
+++ b/libopie/todoevent.h
@@ -1,10 +1,11 @@
1 1
2#ifndef todoevent_h 2#ifndef todoevent_h
3#define todoevent_h 3#define todoevent_h
4 4
5#include <qmap.h>
5#include <qregexp.h> 6#include <qregexp.h>
6#include <qstringlist.h> 7#include <qstringlist.h>
7#include <qdatetime.h> 8#include <qdatetime.h>
8 9
9class ToDoEvent { 10class ToDoEvent {
10 friend class ToDoDB; 11 friend class ToDoDB;
@@ -12,19 +13,21 @@ class ToDoEvent {
12 // priorities from Very low to very high 13 // priorities from Very low to very high
13 enum Priority { VERYHIGH=1, HIGH, NORMAL, LOW, VERYLOW }; 14 enum Priority { VERYHIGH=1, HIGH, NORMAL, LOW, VERYLOW };
14 /* Constructs a new ToDoEvent 15 /* Constructs a new ToDoEvent
15 @param completed Is the TodoEvent completed 16 @param completed Is the TodoEvent completed
16 @param priority What is the priority of this ToDoEvent 17 @param priority What is the priority of this ToDoEvent
17 @param category Which category does it belong( uid ) 18 @param category Which category does it belong( uid )
19 @param summary A small summary of the todo
18 @param description What is this ToDoEvent about 20 @param description What is this ToDoEvent about
19 @param hasDate Does this Event got a deadline 21 @param hasDate Does this Event got a deadline
20 @param date what is the deadline? 22 @param date what is the deadline?
21 @param uid what is the UUID of this Event 23 @param uid what is the UUID of this Event
22 **/ 24 **/
23 ToDoEvent( bool completed = false, int priority = NORMAL, 25 ToDoEvent( bool completed = false, int priority = NORMAL,
24 const QStringList &category = QStringList(), 26 const QStringList &category = QStringList(),
27 const QString &summary = QString::null ,
25 const QString &description = QString::null , 28 const QString &description = QString::null ,
26 bool hasDate = false, QDate date = QDate::currentDate(), int uid = -1 ); 29 bool hasDate = false, QDate date = QDate::currentDate(), int uid = -1 );
27 /* Copy c'tor 30 /* Copy c'tor
28 31
29 **/ 32 **/
30 ToDoEvent(const ToDoEvent & ); 33 ToDoEvent(const ToDoEvent & );
@@ -40,33 +43,87 @@ class ToDoEvent {
40 bool hasDate() const; 43 bool hasDate() const;
41 44
42 /* 45 /*
43 What is the priority? 46 What is the priority?
44 **/ 47 **/
45 int priority()const ; 48 int priority()const ;
49
50 /*
51 All category numbers as QString in a List
52 **/
46 QStringList allCategories()const; 53 QStringList allCategories()const;
54
55 /*
56 * Same as above but with QArray<int>
57 */
47 QArray<int> categories() const; 58 QArray<int> categories() const;
59
60 /**
61 * The end Date
62 */
48 QDate date()const; 63 QDate date()const;
64
65 /**
66 * The description of the todo
67 */
49 QString description()const; 68 QString description()const;
50 69
70 /**
71 * A small summary of the todo
72 */
73 QString summary() const;
74
75 /**
76 * Return this todoevent in a RichText formatted QString
77 */
51 QString richText() const; 78 QString richText() const;
52 79
80 /**
81 * Returns the UID of the Todo
82 */
53 int uid()const { return m_uid;}; 83 int uid()const { return m_uid;};
84
85
86 QString extra(const QString& )const;
87 /**
88 * Set if this Todo is completed
89 */
54 void setCompleted(bool completed ); 90 void setCompleted(bool completed );
91
92 /**
93 * set if this todo got an end data
94 */
55 void setHasDate( bool hasDate ); 95 void setHasDate( bool hasDate );
56 // if the category doesn't exist we will create it 96 // if the category doesn't exist we will create it
57 // this sets the the Category after this call category will be the only category 97 // this sets the the Category after this call category will be the only category
58 void setCategory( const QString &category ); 98 void setCategory( const QString &category );
59 // adds a category to the Categories of this event 99 // adds a category to the Categories of this event
60 void insertCategory(const QString &category ); 100 void insertCategory(const QString &category );
101
102 /**
103 * Removes this event from all categories
104 */
61 void clearCategories(); 105 void clearCategories();
106
107 /**
108 * This todo belongs to xxx categories
109 */
62 void setCategories(const QStringList& ); 110 void setCategories(const QStringList& );
63 111
112 /**
113 * Set the priority of the Todo
114 */
64 void setPriority(int priority ); 115 void setPriority(int priority );
116
117 /**
118 * set the end date
119 */
65 void setDate( QDate date ); 120 void setDate( QDate date );
66 void setDescription(const QString& ); 121 void setDescription(const QString& );
122 void setSummary(const QString& );
123 void setExtra( const QString&, const QString& );
67 bool isOverdue(); 124 bool isOverdue();
68 125
69 bool match( const QRegExp &r )const; 126 bool match( const QRegExp &r )const;
70 127
71 void setUid(int id) {m_uid = id; }; 128 void setUid(int id) {m_uid = id; };
72 bool operator<(const ToDoEvent &toDoEvent )const; 129 bool operator<(const ToDoEvent &toDoEvent )const;
@@ -82,11 +139,13 @@ class ToDoEvent {
82 QDate m_date; 139 QDate m_date;
83 bool m_isCompleted:1; 140 bool m_isCompleted:1;
84 bool m_hasDate:1; 141 bool m_hasDate:1;
85 int m_priority; 142 int m_priority;
86 QStringList m_category; 143 QStringList m_category;
87 QString m_desc; 144 QString m_desc;
145 QString m_sum;
146 QMap<QString, QString> m_extra;
88 int m_uid; 147 int m_uid;
89}; 148};
90 149
91 150
92#endif 151#endif
diff --git a/libopie/todovcalresource.cpp b/libopie/todovcalresource.cpp
index 75f2197..80f8c60 100644
--- a/libopie/todovcalresource.cpp
+++ b/libopie/todovcalresource.cpp
@@ -47,13 +47,13 @@ static VObject *vobjByEvent( const ToDoEvent &event )
47 addPropValue( task, VCStatusProp, "COMPLETED"); 47 addPropValue( task, VCStatusProp, "COMPLETED");
48 48
49 QString string = QString::number(event.priority() ); 49 QString string = QString::number(event.priority() );
50 addPropValue( task, VCPriorityProp, string.local8Bit() ); 50 addPropValue( task, VCPriorityProp, string.local8Bit() );
51 addPropValue( task, VCCategoriesProp, event.allCategories().join(";").local8Bit() ); 51 addPropValue( task, VCCategoriesProp, event.allCategories().join(";").local8Bit() );
52 addPropValue( task, VCDescriptionProp, event.description().local8Bit() ); 52 addPropValue( task, VCDescriptionProp, event.description().local8Bit() );
53 addPropValue( task, VCSummaryProp, event.description().left(15).local8Bit() ); 53 addPropValue( task, VCSummaryProp, event.summary().left(15).local8Bit() );
54 return task; 54 return task;
55}; 55};
56 56
57static ToDoEvent eventByVObj( VObject *obj ){ 57static ToDoEvent eventByVObj( VObject *obj ){
58 ToDoEvent event; 58 ToDoEvent event;
59 VObject *ob; 59 VObject *ob;
@@ -61,12 +61,17 @@ static ToDoEvent eventByVObj( VObject *obj ){
61 // no uid, attendees, ... and no fun 61 // no uid, attendees, ... and no fun
62 // description 62 // description
63 if( ( ob = isAPropertyOf( obj, VCDescriptionProp )) != 0 ){ 63 if( ( ob = isAPropertyOf( obj, VCDescriptionProp )) != 0 ){
64 name = vObjectStringZValue( ob ); 64 name = vObjectStringZValue( ob );
65 event.setDescription( name ); 65 event.setDescription( name );
66 } 66 }
67 // summary
68 if ( ( ob = isAPropertyOf( obj, VCSummaryProp ) ) != 0 ) {
69 name = vObjectStringZValue( ob );
70 event.setSummary( name );
71 }
67 // completed 72 // completed
68 if( ( ob = isAPropertyOf( obj, VCStatusProp )) != 0 ){ 73 if( ( ob = isAPropertyOf( obj, VCStatusProp )) != 0 ){
69 name = vObjectStringZValue( ob ); 74 name = vObjectStringZValue( ob );
70 if( name == "COMPLETED" ){ 75 if( name == "COMPLETED" ){
71 event.setCompleted( true ); 76 event.setCompleted( true );
72 }else{ 77 }else{