-rw-r--r-- | libopie2/opiepim/backend/otodoaccesssql.cpp | 48 | ||||
-rw-r--r-- | libopie2/opiepim/backend/otodoaccesssql.h | 2 | ||||
-rw-r--r-- | libopie2/opiepim/backend/otodoaccessxml.cpp | 2 |
3 files changed, 34 insertions, 18 deletions
diff --git a/libopie2/opiepim/backend/otodoaccesssql.cpp b/libopie2/opiepim/backend/otodoaccesssql.cpp index d255c66..ebd03bb 100644 --- a/libopie2/opiepim/backend/otodoaccesssql.cpp +++ b/libopie2/opiepim/backend/otodoaccesssql.cpp | |||
@@ -6,12 +6,15 @@ | |||
6 | #include <opie2/osqldriver.h> | 6 | #include <opie2/osqldriver.h> |
7 | #include <opie2/osqlresult.h> | 7 | #include <opie2/osqlresult.h> |
8 | #include <opie2/osqlmanager.h> | 8 | #include <opie2/osqlmanager.h> |
9 | #include <opie2/osqlquery.h> | 9 | #include <opie2/osqlquery.h> |
10 | 10 | ||
11 | #include "otodoaccesssql.h" | 11 | #include "otodoaccesssql.h" |
12 | #include "opimstate.h" | ||
13 | #include "opimnotifymanager.h" | ||
14 | #include "orecur.h" | ||
12 | 15 | ||
13 | /* | 16 | /* |
14 | * first some query | 17 | * first some query |
15 | * CREATE query | 18 | * CREATE query |
16 | * LOAD query | 19 | * LOAD query |
17 | * INSERT | 20 | * INSERT |
@@ -117,13 +120,14 @@ namespace { | |||
117 | CreateQuery::CreateQuery() : OSQLQuery() {} | 120 | CreateQuery::CreateQuery() : OSQLQuery() {} |
118 | CreateQuery::~CreateQuery() {} | 121 | CreateQuery::~CreateQuery() {} |
119 | QString CreateQuery::query()const { | 122 | QString CreateQuery::query()const { |
120 | QString qu; | 123 | QString qu; |
121 | qu += "create table todolist( uid PRIMARY KEY, categories, completed, "; | 124 | qu += "create table todolist( uid PRIMARY KEY, categories, completed, "; |
122 | qu += "description, summary, priority, DueDate, progress , state, "; | 125 | qu += "description, summary, priority, DueDate, progress , state, "; |
123 | qu += "Recurrence, notifiers, maintainer, startdate, completeddate)"; | 126 | qu += "Recurrence, reminders, alarms, maintainer, startdate, completeddate);"; |
127 | qu += "create table custom_data( uid INTEGER, id INTEGER, type VARCHAR(10), value VARCHAR(10), PRIMARY KEY /* identifier */ (uid, id) );"; | ||
124 | return qu; | 128 | return qu; |
125 | } | 129 | } |
126 | 130 | ||
127 | LoadQuery::LoadQuery() : OSQLQuery() {} | 131 | LoadQuery::LoadQuery() : OSQLQuery() {} |
128 | LoadQuery::~LoadQuery() {} | 132 | LoadQuery::~LoadQuery() {} |
129 | QString LoadQuery::query()const { | 133 | QString LoadQuery::query()const { |
@@ -178,17 +182,26 @@ namespace { | |||
178 | + "'" + m_todo.summary() + "'" + "," | 182 | + "'" + m_todo.summary() + "'" + "," |
179 | + QString::number(m_todo.priority() ) + "," | 183 | + QString::number(m_todo.priority() ) + "," |
180 | + "'" + QString::number(year) + "-" | 184 | + "'" + QString::number(year) + "-" |
181 | + QString::number(month) | 185 | + QString::number(month) |
182 | + "-" + QString::number( day ) + "'" + "," | 186 | + "-" + QString::number( day ) + "'" + "," |
183 | + QString::number( m_todo.progress() ) + "," | 187 | + QString::number( m_todo.progress() ) + "," |
184 | + "''" + "," // state (conversion needed) | 188 | + QString::number( m_todo.state().state() ) + "," |
185 | // + QString::number( m_todo.state() ) + "," | 189 | + "'" + m_todo.recurrence().toString() + "'"+ ","; |
186 | + "''" + "," // Recurrence (conversion needed) | 190 | |
187 | + "''" + "," // Notifiers (conversion needed) | 191 | if ( m_todo.hasNotifiers() ) { |
188 | + "''" + "," // Maintainers (conversion needed) | 192 | OPimNotifyManager manager = m_todo.notifiers(); |
193 | qu += "'" + manager.remindersToString() + "'" + "," | ||
194 | + "'" + manager.alarmsToString() + "'" + ","; | ||
195 | } | ||
196 | else{ | ||
197 | qu += QString( "''" ) + "," | ||
198 | + "''" + ","; | ||
199 | } | ||
200 | |||
201 | qu += QString( "''" ) + QString( "," ) // Maintainers (cur. not supported !) | ||
189 | + "'" + QString::number(sYear) + "-" | 202 | + "'" + QString::number(sYear) + "-" |
190 | + QString::number(sMonth) | 203 | + QString::number(sMonth) |
191 | + "-" + QString::number(sDay) + "'" + "," | 204 | + "-" + QString::number(sDay) + "'" + "," |
192 | + "'" + QString::number(eYear) + "-" | 205 | + "'" + QString::number(eYear) + "-" |
193 | + QString::number(eMonth) | 206 | + QString::number(eMonth) |
194 | + "-"+QString::number(eDay) + "'" | 207 | + "-"+QString::number(eDay) + "'" |
@@ -528,12 +541,23 @@ OTodo OTodoAccessBackendSQL::todo( OSQLResultItem& item )const { | |||
528 | 541 | ||
529 | if ( hasStartDate ) | 542 | if ( hasStartDate ) |
530 | to.setStartDate( startDate ); | 543 | to.setStartDate( startDate ); |
531 | if ( hasCompletedDate ) | 544 | if ( hasCompletedDate ) |
532 | to.setCompletedDate( completedDate ); | 545 | to.setCompletedDate( completedDate ); |
533 | 546 | ||
547 | OPimNotifyManager& manager = to.notifiers(); | ||
548 | manager.alarmsFromString( item.data("alarms") ); | ||
549 | manager.remindersFromString( item.data("reminders") ); | ||
550 | |||
551 | OPimState pimState; | ||
552 | pimState.setState( QString( item.data("state") ).toInt() ); | ||
553 | to.setState( pimState ); | ||
554 | |||
555 | // Recurrence not supported yet | ||
556 | // to.setRecurrence( | ||
557 | |||
534 | return to; | 558 | return to; |
535 | } | 559 | } |
536 | OTodo OTodoAccessBackendSQL::todo( int uid )const { | 560 | OTodo OTodoAccessBackendSQL::todo( int uid )const { |
537 | FindQuery find( uid ); | 561 | FindQuery find( uid ); |
538 | return todo( m_driver->query(&find) ); | 562 | return todo( m_driver->query(&find) ); |
539 | } | 563 | } |
@@ -618,24 +642,16 @@ QArray<int> OTodoAccessBackendSQL::matchRegexp( const QRegExp &r ) const | |||
618 | #endif | 642 | #endif |
619 | QArray<int> empty; | 643 | QArray<int> empty; |
620 | return empty; | 644 | return empty; |
621 | } | 645 | } |
622 | QBitArray OTodoAccessBackendSQL::supports()const { | 646 | QBitArray OTodoAccessBackendSQL::supports()const { |
623 | 647 | ||
624 | QBitArray ar( OTodo::CompletedDate + 1 ); | 648 | return sup(); |
625 | ar.fill( true ); | ||
626 | ar[OTodo::CrossReference] = false; | ||
627 | ar[OTodo::State ] = false; | ||
628 | ar[OTodo::Reminders] = false; | ||
629 | ar[OTodo::Notifiers] = false; | ||
630 | ar[OTodo::Maintainer] = false; | ||
631 | |||
632 | return ar; | ||
633 | } | 649 | } |
634 | 650 | ||
635 | QBitArray OTodoAccessBackendSQL::sup() { | 651 | QBitArray OTodoAccessBackendSQL::sup() const{ |
636 | 652 | ||
637 | QBitArray ar( OTodo::CompletedDate + 1 ); | 653 | QBitArray ar( OTodo::CompletedDate + 1 ); |
638 | ar.fill( true ); | 654 | ar.fill( true ); |
639 | ar[OTodo::CrossReference] = false; | 655 | ar[OTodo::CrossReference] = false; |
640 | ar[OTodo::State ] = false; | 656 | ar[OTodo::State ] = false; |
641 | ar[OTodo::Reminders] = false; | 657 | ar[OTodo::Reminders] = false; |
diff --git a/libopie2/opiepim/backend/otodoaccesssql.h b/libopie2/opiepim/backend/otodoaccesssql.h index 77d8b77..1c55567 100644 --- a/libopie2/opiepim/backend/otodoaccesssql.h +++ b/libopie2/opiepim/backend/otodoaccesssql.h | |||
@@ -41,13 +41,13 @@ private: | |||
41 | void fillDict(); | 41 | void fillDict(); |
42 | inline bool date( QDate& date, const QString& )const; | 42 | inline bool date( QDate& date, const QString& )const; |
43 | inline OTodo todo( const OSQLResult& )const; | 43 | inline OTodo todo( const OSQLResult& )const; |
44 | inline OTodo todo( OSQLResultItem& )const; | 44 | inline OTodo todo( OSQLResultItem& )const; |
45 | inline QArray<int> uids( const OSQLResult& )const; | 45 | inline QArray<int> uids( const OSQLResult& )const; |
46 | OTodo todo( int uid )const; | 46 | OTodo todo( int uid )const; |
47 | QBitArray sup(); | 47 | QBitArray sup() const; |
48 | 48 | ||
49 | QAsciiDict<int> m_dict; | 49 | QAsciiDict<int> m_dict; |
50 | OSQLDriver* m_driver; | 50 | OSQLDriver* m_driver; |
51 | QArray<int> m_uids; | 51 | QArray<int> m_uids; |
52 | bool m_dirty : 1; | 52 | bool m_dirty : 1; |
53 | }; | 53 | }; |
diff --git a/libopie2/opiepim/backend/otodoaccessxml.cpp b/libopie2/opiepim/backend/otodoaccessxml.cpp index f688735..4a5cb33 100644 --- a/libopie2/opiepim/backend/otodoaccessxml.cpp +++ b/libopie2/opiepim/backend/otodoaccessxml.cpp | |||
@@ -565,13 +565,13 @@ QString OTodoAccessXML::toString( const OTodo& ev )const { | |||
565 | str += "CompletedDate=\""+ OConversion::dateToString( ev.completedDate() ) +"\" "; | 565 | str += "CompletedDate=\""+ OConversion::dateToString( ev.completedDate() ) +"\" "; |
566 | if ( ev.hasState() ) | 566 | if ( ev.hasState() ) |
567 | str += "State=\""+QString::number( ev.state().state() )+"\" "; | 567 | str += "State=\""+QString::number( ev.state().state() )+"\" "; |
568 | 568 | ||
569 | /* | 569 | /* |
570 | * save reminders and notifiers! | 570 | * save reminders and notifiers! |
571 | * DATE_TIME:DURATION:SOUND:NOT_USED_YET;OTHER_DATE_TIME:OTHER:DURATION:SOUND:.... | 571 | * DATE_TIME:DURATION:SOUND:NOT_USED_YET;OTHER_DATE_TIME:OTHER_DURATION:SOUND:.... |
572 | */ | 572 | */ |
573 | if ( ev.hasNotifiers() ) { | 573 | if ( ev.hasNotifiers() ) { |
574 | OPimNotifyManager manager = ev.notifiers(); | 574 | OPimNotifyManager manager = ev.notifiers(); |
575 | OPimNotifyManager::Alarms alarms = manager.alarms(); | 575 | OPimNotifyManager::Alarms alarms = manager.alarms(); |
576 | if (!alarms.isEmpty() ) { | 576 | if (!alarms.isEmpty() ) { |
577 | QStringList als; | 577 | QStringList als; |