summaryrefslogtreecommitdiff
path: root/libopie/pim/otodoaccesssql.cpp
Unidiff
Diffstat (limited to 'libopie/pim/otodoaccesssql.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/pim/otodoaccesssql.cpp61
1 files changed, 59 insertions, 2 deletions
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 */
311QArray<int> OTodoAccessBackendSQL::sorted( bool asc, int sortOrder, 314QArray<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}
316bool OTodoAccessBackendSQL::date( QDate& da, const QString& str ) const{ 373bool OTodoAccessBackendSQL::date( QDate& da, const QString& str ) const{
317 if ( str == "0-0-0" ) 374 if ( str == "0-0-0" )