summaryrefslogtreecommitdiff
path: root/libopie2/opiepim/backend
Side-by-side diff
Diffstat (limited to 'libopie2/opiepim/backend') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiepim/backend/otodoaccesssql.cpp31
-rw-r--r--libopie2/opiepim/backend/otodoaccesssql.h3
2 files changed, 24 insertions, 10 deletions
diff --git a/libopie2/opiepim/backend/otodoaccesssql.cpp b/libopie2/opiepim/backend/otodoaccesssql.cpp
index a059dab..ea8b3c9 100644
--- a/libopie2/opiepim/backend/otodoaccesssql.cpp
+++ b/libopie2/opiepim/backend/otodoaccesssql.cpp
@@ -243,3 +243,3 @@ namespace {
OTodoAccessBackendSQL::OTodoAccessBackendSQL( const QString& file )
- : OTodoAccessBackend(), m_dict(15)
+ : OTodoAccessBackend(), m_dict(15), m_dirty(true)
{
@@ -263,4 +263,3 @@ bool OTodoAccessBackendSQL::load(){
- update();
- qWarning("loaded %d", m_uids.count() );
+ m_dirty = true;
return true;
@@ -275,2 +274,5 @@ bool OTodoAccessBackendSQL::save(){
QArray<int> OTodoAccessBackendSQL::allRecords()const {
+ if (m_dirty )
+ update();
+
return m_uids;
@@ -305,3 +307,3 @@ OTodo OTodoAccessBackendSQL::find( int uid, const QArray<int>& ints,
case 1:
- for (uint i = cur; i >= 0 && size < 8; i-- ) {
+ for (uint i = cur; i != 0 && size < 8; i-- ) {
search[size] = ints[i];
@@ -344,3 +346,3 @@ bool OTodoAccessBackendSQL::remove( int uid ) {
- update();
+ m_dirty = true;
return true;
@@ -354,3 +356,5 @@ bool OTodoAccessBackendSQL::replace( const OTodo& t) {
remove( t.uid() );
- return add(t);
+ bool b= add(t);
+ m_dirty = false; // we changed some stuff but the UID stayed the same
+ return b;
}
@@ -371,2 +375,3 @@ QArray<int> OTodoAccessBackendSQL::sorted( bool asc, int sortOrder,
int sortFilter, int cat ) {
+ qWarning("sorted %d, %d", asc, sortOrder );
QString query;
@@ -423,4 +428,7 @@ QArray<int> OTodoAccessBackendSQL::sorted( bool asc, int sortOrder,
}
- if ( !asc )
+
+ if ( !asc ) {
+ qWarning("not ascending!");
query += " DESC";
+ }
@@ -503,3 +511,8 @@ void OTodoAccessBackendSQL::fillDict() {
}
-void OTodoAccessBackendSQL::update() {
+/*
+ * need to be const so let's fool the
+ * compiler :(
+ */
+void OTodoAccessBackendSQL::update()const {
+ ((OTodoAccessBackendSQL*)this)->m_dirty = false;
LoadQuery lo;
@@ -509,3 +522,3 @@ void OTodoAccessBackendSQL::update() {
- m_uids = uids( res );
+ ((OTodoAccessBackendSQL*)this)->m_uids = uids( res );
}
diff --git a/libopie2/opiepim/backend/otodoaccesssql.h b/libopie2/opiepim/backend/otodoaccesssql.h
index c1aa2ed..0f6dd2c 100644
--- a/libopie2/opiepim/backend/otodoaccesssql.h
+++ b/libopie2/opiepim/backend/otodoaccesssql.h
@@ -34,3 +34,3 @@ public:
private:
- void update();
+ void update()const;
void fillDict();
@@ -45,2 +45,3 @@ private:
QArray<int> m_uids;
+ bool m_dirty : 1;
};