-rw-r--r-- | libopie/pim/otodoaccess.h | 6 | ||||
-rw-r--r-- | libopie/pim/otodoaccesssql.cpp | 61 | ||||
-rw-r--r-- | libopie/pim/otodoaccesssql.h | 6 |
3 files changed, 65 insertions, 8 deletions
diff --git a/libopie/pim/otodoaccess.h b/libopie/pim/otodoaccess.h index 12997aa..390ab0e 100644 --- a/libopie/pim/otodoaccess.h +++ b/libopie/pim/otodoaccess.h | |||
@@ -21,9 +21,9 @@ public: | |||
21 | Priority, | 21 | Priority, |
22 | Description, | 22 | Description, |
23 | Deadline }; | 23 | Deadline }; |
24 | enum SortFilter{ ShowOverdue = 0, | 24 | enum SortFilter{ Category =1, |
25 | Category =1, | 25 | OnlyOverDue= 2, |
26 | OnlyOverDue= 2 }; | 26 | DoNotShowCompleted =4 }; |
27 | /** | 27 | /** |
28 | * if you use 0l | 28 | * if you use 0l |
29 | * the default resource will be | 29 | * the default resource will be |
diff --git a/libopie/pim/otodoaccesssql.cpp b/libopie/pim/otodoaccesssql.cpp index 209e714..25536e0 100644 --- a/libopie/pim/otodoaccesssql.cpp +++ b/libopie/pim/otodoaccesssql.cpp | |||
@@ -308,10 +308,67 @@ QArray<int> OTodoAccessBackendSQL::effectiveToDos( const QDate& s, | |||
308 | EffQuery ef(s, t, u ); | 308 | EffQuery ef(s, t, u ); |
309 | return uids (m_driver->query(&ef) ); | 309 | return uids (m_driver->query(&ef) ); |
310 | } | 310 | } |
311 | /* | ||
312 | * | ||
313 | */ | ||
311 | QArray<int> OTodoAccessBackendSQL::sorted( bool asc, int sortOrder, | 314 | QArray<int> OTodoAccessBackendSQL::sorted( bool asc, int sortOrder, |
312 | int sortFilter, int cat ) { | 315 | int sortFilter, int cat ) { |
313 | QArray<int> ints(0); | 316 | QString query; |
314 | return ints; | 317 | query = "select uid from todolist WHERE "; |
318 | |||
319 | /* | ||
320 | * Sort Filter stuff | ||
321 | * not that straight forward | ||
322 | * | ||
323 | */ | ||
324 | /* Category */ | ||
325 | if ( sortFilter & 1 ) { | ||
326 | query += " categories like '%" +QString::number(cat)+"%' AND"; | ||
327 | } | ||
328 | /* Show only overdue */ | ||
329 | if ( sortFilter & 2 ) { | ||
330 | QDate date = QDate::currentDate(); | ||
331 | QString due; | ||
332 | QString base; | ||
333 | base = QString("DueDate <= '%1-%2-%3' AND WHERE completed = 0").arg( date.year() ).arg( date.month() ).arg( date.day() ); | ||
334 | query += " " + base + " AND"; | ||
335 | } | ||
336 | /* not show completed */ | ||
337 | if ( sortFilter & 4 ) { | ||
338 | query += " completed = 0 AND"; | ||
339 | }else{ | ||
340 | query += " ( completed = 1 OR completed = 0) AND"; | ||
341 | } | ||
342 | /* srtip the end */ | ||
343 | query = query.remove( query.length()-3, 3 ); | ||
344 | |||
345 | |||
346 | /* | ||
347 | * sort order stuff | ||
348 | * quite straight forward | ||
349 | */ | ||
350 | query += "ORDER BY "; | ||
351 | switch( sortOrder ) { | ||
352 | /* completed */ | ||
353 | case 0: | ||
354 | query += "completed"; | ||
355 | break; | ||
356 | case 1: | ||
357 | query += "priority"; | ||
358 | break; | ||
359 | case 2: | ||
360 | query += "description"; | ||
361 | break; | ||
362 | case 3: | ||
363 | query += "DueDate"; | ||
364 | break; | ||
365 | } | ||
366 | if ( !asc ) | ||
367 | query += " DESC"; | ||
368 | |||
369 | qWarning( query ); | ||
370 | OSQLRawQuery raw(query ); | ||
371 | return uids( m_driver->query(&raw) ); | ||
315 | } | 372 | } |
316 | bool OTodoAccessBackendSQL::date( QDate& da, const QString& str ) const{ | 373 | bool OTodoAccessBackendSQL::date( QDate& da, const QString& str ) const{ |
317 | if ( str == "0-0-0" ) | 374 | if ( str == "0-0-0" ) |
diff --git a/libopie/pim/otodoaccesssql.h b/libopie/pim/otodoaccesssql.h index 966628d..6c5f50a 100644 --- a/libopie/pim/otodoaccesssql.h +++ b/libopie/pim/otodoaccesssql.h | |||
@@ -32,9 +32,9 @@ public: | |||
32 | private: | 32 | private: |
33 | void update(); | 33 | void update(); |
34 | void fillDict(); | 34 | void fillDict(); |
35 | bool date( QDate& date, const QString& )const; | 35 | inline bool date( QDate& date, const QString& )const; |
36 | OTodo todo( const OSQLResult& )const; | 36 | inline OTodo todo( const OSQLResult& )const; |
37 | QArray<int> uids( const OSQLResult& )const; | 37 | inline QArray<int> uids( const OSQLResult& )const; |
38 | OTodo todo( int uid )const; | 38 | OTodo todo( int uid )const; |
39 | 39 | ||
40 | QAsciiDict<int> m_dict; | 40 | QAsciiDict<int> m_dict; |