summaryrefslogtreecommitdiffabout
path: root/korganizer
authorzautrix <zautrix>2005-08-19 12:08:05 (UTC)
committer zautrix <zautrix>2005-08-19 12:08:05 (UTC)
commit9014049779be6cfec02d73e19596439f0f4f9bed (patch) (unidiff)
tree3983282e83183cc15dd615ba4ac5a800da21efe0 /korganizer
parent81891a49afc2f7cd89db4e2770c3b7831644428d (diff)
downloadkdepimpi-9014049779be6cfec02d73e19596439f0f4f9bed.zip
kdepimpi-9014049779be6cfec02d73e19596439f0f4f9bed.tar.gz
kdepimpi-9014049779be6cfec02d73e19596439f0f4f9bed.tar.bz2
list sort fix
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/kolistview.cpp21
-rw-r--r--korganizer/kotodoviewitem.cpp14
2 files changed, 11 insertions, 24 deletions
diff --git a/korganizer/kolistview.cpp b/korganizer/kolistview.cpp
index b236c2d..4fc1194 100644
--- a/korganizer/kolistview.cpp
+++ b/korganizer/kolistview.cpp
@@ -120,54 +120,52 @@ bool ListItemVisitor::visit(Event *e)
120 mItem->setText(0,e->summary()); 120 mItem->setText(0,e->summary());
121 mItem->setText(1,start); 121 mItem->setText(1,start);
122 if ( e->doesFloat() ) 122 if ( e->doesFloat() )
123 mItem->setText(2,"---"); 123 mItem->setText(2,"---");
124 else 124 else
125 mItem->setText(2,e->dtStartTimeStr()); 125 mItem->setText(2,e->dtStartTimeStr());
126 mItem->setText(3,end); 126 mItem->setText(3,end);
127 if ( e->doesFloat() ) 127 if ( e->doesFloat() )
128 mItem->setText(4,"---"); 128 mItem->setText(4,"---");
129 else 129 else
130 mItem->setText(4,e->dtEndTimeStr()); 130 mItem->setText(4,e->dtEndTimeStr());
131 mItem->setText(5, e->durationText()); 131 mItem->setText(5, e->durationText());
132 if ( e->isAlarmEnabled() ) { 132 if ( e->isAlarmEnabled() ) {
133 mItem->setText(6,e->alarms().first()->offsetText() ); 133 mItem->setText(6,e->alarms().first()->offsetText() );
134 } else { 134 } else {
135 mItem->setText(6, i18n("No")); 135 mItem->setText(6, i18n("No"));
136 } 136 }
137 mItem->setText(7, e->recurrenceText()); 137 mItem->setText(7, e->recurrenceText());
138 if( ! e->doesRecur() ) 138 if( ! e->doesRecur() )
139 mItem->setSortKey( 7, "-" ); 139 mItem->setSortKey( 7, "-" );
140 mItem->setText(8, e->cancelled() ? i18n("Yes") : i18n("No")); 140 mItem->setText(8, e->cancelled() ? i18n("Yes") : i18n("No"));
141 mItem->setText(9,e->categoriesStr()); 141 mItem->setText(9,e->categoriesStr());
142 mItem->setText(10, KOPrefs::instance()->calName( e->calID() )); 142 mItem->setText(10, KOPrefs::instance()->calName( e->calID() ));
143 mItem->setText(11, KGlobal::locale()->formatDateTime( e->lastModified(), true, true )); 143 mItem->setText(11, KGlobal::locale()->formatDateTime( e->lastModified(), true, true ));
144 mItem->setSortKey(11,e->lastModifiedSortKey());
144 145
145 QString key; 146 QString key;
146 QDate d = e->lastModified().date(); 147 QTime t;
147 QTime t = e->lastModified().time();
148 key.sprintf("%04d%02d%02d%02d%02d%02d",d.year(),d.month(),d.day(),t.hour(),t.minute(),t.second() );
149 mItem->setSortKey(12,key);
150 t = e->doesFloat() ? QTime(0,0) : e->dtStart().time(); 148 t = e->doesFloat() ? QTime(0,0) : e->dtStart().time();
151 key.sprintf("%04d%02d%02d%02d%02d",ds.year(),ds.month(),ds.day(),t.hour(),t.minute()); 149 key.sprintf("%04d%02d%02d%02d%02d",ds.year(),ds.month(),ds.day(),t.hour(),t.minute());
152 mItem->setSortKey(1,key); 150 mItem->setSortKey(1,key);
153 151
154 t = e->doesFloat() ? QTime(0,0) : e->dtEnd().time(); 152 t = e->doesFloat() ? QTime(0,0) : e->dtEnd().time();
155 key.sprintf("%04d%02d%02d%02d%02d",de.year(),de.month(),de.day(),t.hour(),t.minute()); 153 key.sprintf("%04d%02d%02d%02d%02d",de.year(),de.month(),de.day(),t.hour(),t.minute());
156 mItem->setSortKey(3,key); 154 mItem->setSortKey(3,key);
157 return true; 155 return true;
158} 156}
159 157
160bool ListItemVisitor::visit(Todo *t) 158bool ListItemVisitor::visit(Todo *t)
161{ 159{
162 mItem->setText(0,t->summary()); 160 mItem->setText(0,t->summary());
163 if ( t->isCompleted() ) { 161 if ( t->isCompleted() ) {
164 mItem->setSortKey(0,"99"+ t->summary().left(10)); 162 mItem->setSortKey(0,"99"+ t->summary().left(10));
165 } else 163 } else
166 mItem->setSortKey(0,QString::number( t->percentComplete()+1 )+ t->summary().left(10)); 164 mItem->setSortKey(0,QString::number( t->percentComplete()+1 )+ t->summary().left(10));
167 mItem->setPixmap( 0, *(sgListViewCompletedPix[t->percentComplete()/20])); 165 mItem->setPixmap( 0, *(sgListViewCompletedPix[t->percentComplete()/20]));
168 if (t->hasStartDate()) { 166 if (t->hasStartDate()) {
169 mItem->setText(1,t->dtStartDateStr()); 167 mItem->setText(1,t->dtStartDateStr());
170 if (t->doesFloat()) { 168 if (t->doesFloat()) {
171 mItem->setText(2,"---"); 169 mItem->setText(2,"---");
172 } else { 170 } else {
173 mItem->setText(2,t->dtStartTimeStr()); 171 mItem->setText(2,t->dtStartTimeStr());
@@ -179,105 +177,100 @@ bool ListItemVisitor::visit(Todo *t)
179 if ( t->isAlarmEnabled() ) { 177 if ( t->isAlarmEnabled() ) {
180 mItem->setText(6,t->alarms().first()->offsetText() ); 178 mItem->setText(6,t->alarms().first()->offsetText() );
181 } else { 179 } else {
182 mItem->setText(6, i18n("No")); 180 mItem->setText(6, i18n("No"));
183 } 181 }
184 mItem->setText(7, t->recurrenceText()); 182 mItem->setText(7, t->recurrenceText());
185 if( ! t->doesRecur() ) 183 if( ! t->doesRecur() )
186 mItem->setSortKey( 7, "-" ); 184 mItem->setSortKey( 7, "-" );
187 if (t->hasDueDate()) { 185 if (t->hasDueDate()) {
188 mItem->setText(3,t->dtDueDateStr()); 186 mItem->setText(3,t->dtDueDateStr());
189 if (t->doesFloat()) { 187 if (t->doesFloat()) {
190 mItem->setText(4,"---"); 188 mItem->setText(4,"---");
191 } else { 189 } else {
192 mItem->setText(4,t->dtDueTimeStr()); 190 mItem->setText(4,t->dtDueTimeStr());
193 } 191 }
194 } else { 192 } else {
195 mItem->setText(3,"---"); 193 mItem->setText(3,"---");
196 mItem->setText(4,"---"); 194 mItem->setText(4,"---");
197 } 195 }
198 mItem->setText(5, t->durationText()); 196 mItem->setText(5, t->durationText());
199 mItem->setText(8, t->cancelled() ? i18n("Yes") : i18n("No")); 197 mItem->setText(8, t->cancelled() ? i18n("Yes") : i18n("No"));
200 mItem->setText(9,t->categoriesStr()); 198 mItem->setText(9,t->categoriesStr());
201 mItem->setText(10, KOPrefs::instance()->calName( t->calID() )); 199 mItem->setText(10, KOPrefs::instance()->calName( t->calID() ));
202 mItem->setText(11, KGlobal::locale()->formatDateTime( t->lastModified(), true, true )); 200 mItem->setText(11, KGlobal::locale()->formatDateTime( t->lastModified(), true, true ));
201 mItem->setSortKey(11,t->lastModifiedSortKey());
203 QString key; 202 QString key;
204 QDate d = t->lastModified().date(); 203 QDate d;
205 QTime tm = t->lastModified().time(); 204 QTime tm;
206 key.sprintf("%04d%02d%02d%02d%02d%02d",d.year(),d.month(),d.day(),tm.hour(),tm.minute(),tm.second() );
207 mItem->setSortKey(11,key);
208 if (t->hasDueDate()) { 205 if (t->hasDueDate()) {
209 d = t->dtDue().date(); 206 d = t->dtDue().date();
210 tm = t->doesFloat() ? QTime(0,0) : t->dtDue().time(); 207 tm = t->doesFloat() ? QTime(0,0) : t->dtDue().time();
211 key.sprintf("%04d%02d%02d%02d%02d",d.year(),d.month(),d.day(),tm.hour(),tm.minute()); 208 key.sprintf("%04d%02d%02d%02d%02d",d.year(),d.month(),d.day(),tm.hour(),tm.minute());
212 mItem->setSortKey(3,key); 209 mItem->setSortKey(3,key);
213 } 210 }
214 if ( t->hasStartDate() ) { 211 if ( t->hasStartDate() ) {
215 d = t->dtStart().date(); 212 d = t->dtStart().date();
216 tm = t->doesFloat() ? QTime(0,0) : t->dtStart().time(); 213 tm = t->doesFloat() ? QTime(0,0) : t->dtStart().time();
217 key.sprintf("%04d%02d%02d%02d%02d",d.year(),d.month(),d.day(),tm.hour(),tm.minute()); 214 key.sprintf("%04d%02d%02d%02d%02d",d.year(),d.month(),d.day(),tm.hour(),tm.minute());
218 mItem->setSortKey(1,key); 215 mItem->setSortKey(1,key);
219 } 216 }
220 return true; 217 return true;
221} 218}
222 219
223bool ListItemVisitor::visit(Journal * j) 220bool ListItemVisitor::visit(Journal * j)
224{ 221{
225 222
226 QString des; 223 QString des;
227 mItem->setPixmap( 0, *sgListViewJournalPix); 224 mItem->setPixmap( 0, *sgListViewJournalPix);
228 if ( !j->summary().isEmpty() ) { 225 if ( !j->summary().isEmpty() ) {
229 des = j->summary(); 226 des = j->summary();
230 } else { 227 } else {
231 des = j->description().left(30); 228 des = j->description().left(30);
232 des = des.simplifyWhiteSpace (); 229 des = des.simplifyWhiteSpace ();
233 des.replace (QRegExp ("\\n"),"" ); 230 des.replace (QRegExp ("\\n"),"" );
234 des.replace (QRegExp ("\\r"),"" ); 231 des.replace (QRegExp ("\\r"),"" );
235 } 232 }
236 mItem->setText(0,des.left(25)); 233 mItem->setText(0,des.left(25));
237 mItem->setSortKey(0,"0"+ des.left(25)); 234 mItem->setSortKey(0,"0"+ des.left(25));
238 mItem->setText(1,j->dtStartDateStr()); 235 mItem->setText(1,j->dtStartDateStr());
239 mItem->setText(2,"---"); 236 mItem->setText(2,"---");
240 mItem->setText(3,"---"); 237 mItem->setText(3,"---");
241 mItem->setText(4,"---"); 238 mItem->setText(4,"---");
242 mItem->setText(5,"---"); 239 mItem->setText(5,"---");
243 mItem->setText(6,"---"); 240 mItem->setText(6,"---");
244 mItem->setText(7,"---"); 241 mItem->setText(7,"---");
245 mItem->setText(8,"---"); 242 mItem->setText(8,"---");
246 mItem->setText(9,j->categoriesStr()); 243 mItem->setText(9,j->categoriesStr());
247 mItem->setText(10, KOPrefs::instance()->calName( j->calID() )); 244 mItem->setText(10, KOPrefs::instance()->calName( j->calID() ));
248 mItem->setText(11, KGlobal::locale()->formatDateTime( j->lastModified(), true, true )); 245 mItem->setText(11, KGlobal::locale()->formatDateTime( j->lastModified(), true, true ));
246 mItem->setSortKey(11,j->lastModifiedSortKey());
249 247
250 QString key; 248 QString key;
251 QDate d = j->lastModified().date(); 249 QDate d;
252 QTime tm = j->lastModified().time();
253 key.sprintf("%04d%02d%02d%02d%02d%02d",d.year(),d.month(),d.day(),tm.hour(),tm.minute(),tm.second() );
254 mItem->setSortKey(12,key);
255 d = j->dtStart().date(); 250 d = j->dtStart().date();
256 key.sprintf("%04d%02d%02d",d.year(),d.month(),d.day()); 251 key.sprintf("%04d%02d%02d",d.year(),d.month(),d.day());
257 mItem->setSortKey(1,key); 252 mItem->setSortKey(1,key);
258 mItem->setSortKey(7,key);
259
260 return true; 253 return true;
261} 254}
262 255
263KOListView::KOListView(Calendar *calendar, QWidget *parent, 256KOListView::KOListView(Calendar *calendar, QWidget *parent,
264 const char *name) 257 const char *name)
265 : KOEventView(calendar, parent, name) 258 : KOEventView(calendar, parent, name)
266{ 259{
267 260
268 mActiveItem = 0; 261 mActiveItem = 0;
269 mForceShowCompletedTodos = false; 262 mForceShowCompletedTodos = false;
270 mListView = new KOListViewListView(this); 263 mListView = new KOListViewListView(this);
271 mListView->addColumn(i18n("Summary")); 264 mListView->addColumn(i18n("Summary"));
272 mListView->addColumn(i18n("Start Date")); 265 mListView->addColumn(i18n("Start Date"));
273 mListView->addColumn(i18n("Start Time")); 266 mListView->addColumn(i18n("Start Time"));
274 mListView->addColumn(i18n("End/Due Date")); 267 mListView->addColumn(i18n("End/Due Date"));
275 mListView->addColumn(i18n("End/Due Time")); 268 mListView->addColumn(i18n("End/Due Time"));
276 mListView->addColumn(i18n("Duration")); 269 mListView->addColumn(i18n("Duration"));
277 mListView->addColumn(i18n("Alarm")); // alarm set? 270 mListView->addColumn(i18n("Alarm")); // alarm set?
278 mListView->addColumn(i18n("Recurs")); // recurs? 271 mListView->addColumn(i18n("Recurs")); // recurs?
279 mListView->addColumn(i18n("Cancelled")); 272 mListView->addColumn(i18n("Cancelled"));
280 mListView->addColumn(i18n("Categories")); 273 mListView->addColumn(i18n("Categories"));
281 mListView->addColumn(i18n("Calendar")); 274 mListView->addColumn(i18n("Calendar"));
282 mListView->addColumn(i18n("Last Modified")); 275 mListView->addColumn(i18n("Last Modified"));
283 276
diff --git a/korganizer/kotodoviewitem.cpp b/korganizer/kotodoviewitem.cpp
index bdef94c..848e9e7 100644
--- a/korganizer/kotodoviewitem.cpp
+++ b/korganizer/kotodoviewitem.cpp
@@ -98,101 +98,95 @@ void KOTodoViewItem::construct()
98 if (mTodo->hasDueDate()) { 98 if (mTodo->hasDueDate()) {
99 setText(3, mTodo->dtDueDateStr()); 99 setText(3, mTodo->dtDueDateStr());
100 QDate d = mTodo->dtDue().date(); 100 QDate d = mTodo->dtDue().date();
101 keyd.sprintf("%04d%02d%02d",d.year(),d.month(),d.day()); 101 keyd.sprintf("%04d%02d%02d",d.year(),d.month(),d.day());
102 // setSortKey(3,keyd); 102 // setSortKey(3,keyd);
103 if (mTodo->doesFloat()) { 103 if (mTodo->doesFloat()) {
104 setText(4,""); 104 setText(4,"");
105 } 105 }
106 else { 106 else {
107 setText(4,mTodo->dtDueTimeStr()); 107 setText(4,mTodo->dtDueTimeStr());
108 QTime t = mTodo->dtDue().time(); 108 QTime t = mTodo->dtDue().time();
109 keyt.sprintf("%02d%02d",t.hour(),t.minute()); 109 keyt.sprintf("%02d%02d",t.hour(),t.minute());
110 //setSortKey(4,keyt); 110 //setSortKey(4,keyt);
111 } 111 }
112 } else { 112 } else {
113 setText(3,""); 113 setText(3,"");
114 setText(4,""); 114 setText(4,"");
115 } 115 }
116 setSortKey(3,keyd); 116 setSortKey(3,keyd);
117 setSortKey(4,keyt); 117 setSortKey(4,keyt);
118 118
119 if (mTodo->isCompleted()) setSortKey(1,"6" + QString::number(mTodo->priority())+keyd+keyt); 119 if (mTodo->isCompleted()) setSortKey(1,"6" + QString::number(mTodo->priority())+keyd+keyt);
120 else setSortKey(1,QString::number(mTodo->priority())+keyd+keyt); 120 else setSortKey(1,QString::number(mTodo->priority())+keyd+keyt);
121 121
122
123
124 keyd = ""; 122 keyd = "";
125 keyt = ""; 123 keyt = "";
126 124
127 if (mTodo->isRunning() ) { 125 if (mTodo->isRunning() ) {
128 QDate d = mTodo->runStart().date(); 126 QDate d = mTodo->runStart().date();
129 QTime t = mTodo->runStart().time(); 127 QTime t = mTodo->runStart().time();
130 skeyt.sprintf("%02d%02d",t.hour(),t.minute()); 128 skeyt.sprintf("%02d%02d",t.hour(),t.minute());
131 skeyd.sprintf("%04d%02d%02d",d.year(),d.month(),d.day()); 129 skeyd.sprintf("%04d%02d%02d",d.year(),d.month(),d.day());
132 keyd = KGlobal::locale()->formatDate( d , true); 130 keyd = KGlobal::locale()->formatDate( d , true);
133 keyt = KGlobal::locale()->formatTime( t ); 131 keyt = KGlobal::locale()->formatTime( t );
134 132
135 } else { 133 } else {
136 134
137 if (mTodo->hasStartDate()) { 135 if (mTodo->hasStartDate()) {
138 keyd = mTodo->dtStartDateStr(); 136 keyd = mTodo->dtStartDateStr();
139 QDate d = mTodo->dtStart().date(); 137 QDate d = mTodo->dtStart().date();
140 skeyd.sprintf("%04d%02d%02d",d.year(),d.month(),d.day()); 138 skeyd.sprintf("%04d%02d%02d",d.year(),d.month(),d.day());
141 139
142 if ( !mTodo->doesFloat()) { 140 if ( !mTodo->doesFloat()) {
143 keyt = mTodo->dtStartTimeStr(); 141 keyt = mTodo->dtStartTimeStr();
144 QTime t = mTodo->dtStart().time(); 142 QTime t = mTodo->dtStart().time();
145 skeyt.sprintf("%02d%02d",t.hour(),t.minute()); 143 skeyt.sprintf("%02d%02d",t.hour(),t.minute());
146 144
147 } 145 }
148 146
149 } 147 }
150 } 148 }
151 setText(5,keyd); 149 setText(5,keyd);
152 setText(6,keyt); 150 setText(6,keyt);
153 setSortKey(5,skeyd); 151 setSortKey(5,skeyd);
154 setSortKey(6,skeyt); 152 setSortKey(6,skeyt);
155 153
156 //setText(7,mTodo->cancelled() ? i18n("Yes") : i18n("No")); 154 //setText(7,mTodo->cancelled() ? i18n("Yes") : i18n("No"));
157 setText(7,mTodo->categoriesStr()); 155 setText(7,mTodo->categoriesStr());
158 setText(8,KOPrefs::instance()->calName( mTodo->calID())); 156 setText(8,KOPrefs::instance()->calName( mTodo->calID()));
159 setText(9, KGlobal::locale()->formatDateTime( mTodo->lastModified(), true, true )); 157 setText(9, KGlobal::locale()->formatDateTime( mTodo->lastModified(), true, true ));
160 setText(10, KGlobal::locale()->formatDateTime( mTodo->created(), true, true )); 158 setText(10, KGlobal::locale()->formatDateTime( mTodo->created(), true, true ));
161 setText(11, KGlobal::locale()->formatDateTime( mTodo->lastModifiedSub(), true, true )); 159 setText(11, KGlobal::locale()->formatDateTime( mTodo->lastModifiedSub(), true, true ));
162 QString key; 160 QString key;
163 QDate d = mTodo->lastModified().date(); 161 QDate d;
164 QTime t = mTodo->lastModified().time(); 162 QTime t;
165 key.sprintf("%04d%02d%02d%02d%02d%02d",d.year(),d.month(),d.day(),t.hour(),t.minute(),t.second() ); 163 setSortKey(9,mTodo->lastModifiedSortKey());
166 setSortKey(9,key);
167 d = mTodo->created().date(); 164 d = mTodo->created().date();
168 t = mTodo->created().time(); 165 t = mTodo->created().time();
169 key.sprintf("%04d%02d%02d%02d%02d%02d",d.year(),d.month(),d.day(),t.hour(),t.minute(),t.second() ); 166 key.sprintf("%04d%02d%02d%02d%02d%02d",d.year(),d.month(),d.day(),t.hour(),t.minute(),t.second() );
170 setSortKey(10,key); 167 setSortKey(10,key);
171 d = mTodo->lastModifiedSub().date(); 168 setSortKey(11,mTodo->lastModifiedSubSortKey());
172 t = mTodo->lastModifiedSub().time();
173 key.sprintf("%04d%02d%02d%02d%02d%02d",d.year(),d.month(),d.day(),t.hour(),t.minute(),t.second() );
174 setSortKey(11,key);
175 169
176#if 0 170#if 0
177 // Find sort id in description. It's the text behind the last '#' character 171 // Find sort id in description. It's the text behind the last '#' character
178 // found in the description. White spaces are removed from beginning and end 172 // found in the description. White spaces are removed from beginning and end
179 // of sort id. 173 // of sort id.
180 int pos = mTodo->description().findRev('#'); 174 int pos = mTodo->description().findRev('#');
181 if (pos < 0) { 175 if (pos < 0) {
182 setText(6,""); 176 setText(6,"");
183 } else { 177 } else {
184 QString str = mTodo->description().mid(pos+1); 178 QString str = mTodo->description().mid(pos+1);
185 str.stripWhiteSpace(); 179 str.stripWhiteSpace();
186 setText(6,str); 180 setText(6,str);
187 } 181 }
188#endif 182#endif
189 183
190 m_known = false; 184 m_known = false;
191 m_init = false; 185 m_init = false;
192 186
193 setMyPixmap(); 187 setMyPixmap();
194 188
195} 189}
196void KOTodoViewItem::setMyPixmap() 190void KOTodoViewItem::setMyPixmap()
197{ 191{
198 int size = 5; 192 int size = 5;