summaryrefslogtreecommitdiff
path: root/libopie2/opiepim/core
Unidiff
Diffstat (limited to 'libopie2/opiepim/core') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiepim/core/ocontactaccess.cpp4
-rw-r--r--libopie2/opiepim/core/ocontactaccess.h49
-rw-r--r--libopie2/opiepim/core/opimaccesstemplate.h12
3 files changed, 16 insertions, 49 deletions
diff --git a/libopie2/opiepim/core/ocontactaccess.cpp b/libopie2/opiepim/core/ocontactaccess.cpp
index b5f358b..e8c0a45 100644
--- a/libopie2/opiepim/core/ocontactaccess.cpp
+++ b/libopie2/opiepim/core/ocontactaccess.cpp
@@ -12,24 +12,27 @@
12 * Info: This class could just work with a change in the header-file 12 * Info: This class could just work with a change in the header-file
13 * of the Contact class ! Therefore our libopie only compiles 13 * of the Contact class ! Therefore our libopie only compiles
14 * with our version of libqpe 14 * with our version of libqpe
15 * ===================================================================== 15 * =====================================================================
16 * ToDo: XML-Backend: Automatic reload if something was changed... 16 * ToDo: XML-Backend: Automatic reload if something was changed...
17 * 17 *
18 * 18 *
19 * ===================================================================== 19 * =====================================================================
20 * Version: $Id$ 20 * Version: $Id$
21 * ===================================================================== 21 * =====================================================================
22 * History: 22 * History:
23 * $Log$ 23 * $Log$
24 * Revision 1.4 2002/10/14 16:21:54 eilers
25 * Some minor interface updates
26 *
24 * Revision 1.3 2002/10/07 17:34:24 eilers 27 * Revision 1.3 2002/10/07 17:34:24 eilers
25 * added OBackendFactory for advanced backend access 28 * added OBackendFactory for advanced backend access
26 * 29 *
27 * Revision 1.2 2002/10/02 16:18:11 eilers 30 * Revision 1.2 2002/10/02 16:18:11 eilers
28 * debugged and seems to work almost perfectly .. 31 * debugged and seems to work almost perfectly ..
29 * 32 *
30 * Revision 1.1 2002/09/27 17:11:44 eilers 33 * Revision 1.1 2002/09/27 17:11:44 eilers
31 * Added API for accessing the Contact-Database ! It is compiling, but 34 * Added API for accessing the Contact-Database ! It is compiling, but
32 * please do not expect that anything is working ! 35 * please do not expect that anything is working !
33 * I will debug that stuff in the next time .. 36 * I will debug that stuff in the next time ..
34 * Please read README_COMPILE for compiling ! 37 * Please read README_COMPILE for compiling !
35 * 38 *
@@ -57,25 +60,24 @@
57#include "ocontactaccessbackend_xml.h" 60#include "ocontactaccessbackend_xml.h"
58 61
59 62
60OContactAccess::OContactAccess ( const QString appname, const QString , 63OContactAccess::OContactAccess ( const QString appname, const QString ,
61 OContactAccessBackend* end, bool autosync ): 64 OContactAccessBackend* end, bool autosync ):
62 OPimAccessTemplate<OContact>( end ), 65 OPimAccessTemplate<OContact>( end ),
63 m_changed ( false ) 66 m_changed ( false )
64{ 67{
65 /* take care of the backend. If there is no one defined, we 68 /* take care of the backend. If there is no one defined, we
66 * will use the XML-Backend as default (until we have a cute SQL-Backend..). 69 * will use the XML-Backend as default (until we have a cute SQL-Backend..).
67 */ 70 */
68 if( end == 0 ) { 71 if( end == 0 ) {
69 // __asm__("int3");
70 qWarning ("Using BackendFactory !"); 72 qWarning ("Using BackendFactory !");
71 end = OBackendFactory<OContactAccessBackend>::Default( "contact", appname ); 73 end = OBackendFactory<OContactAccessBackend>::Default( "contact", appname );
72 } 74 }
73 // Set backend locally and in template 75 // Set backend locally and in template
74 m_backEnd = end; 76 m_backEnd = end;
75 OPimAccessTemplate<OContact>::setBackEnd (end); 77 OPimAccessTemplate<OContact>::setBackEnd (end);
76 78
77 79
78 /* Connect signal of external db change to function */ 80 /* Connect signal of external db change to function */
79 QCopChannel *dbchannel = new QCopChannel( "QPE/PIM", this ); 81 QCopChannel *dbchannel = new QCopChannel( "QPE/PIM", this );
80 connect( dbchannel, SIGNAL(received(const QCString &, const QByteArray &)), 82 connect( dbchannel, SIGNAL(received(const QCString &, const QByteArray &)),
81 this, SLOT(copMessage( const QCString &, const QByteArray &)) ); 83 this, SLOT(copMessage( const QCString &, const QByteArray &)) );
diff --git a/libopie2/opiepim/core/ocontactaccess.h b/libopie2/opiepim/core/ocontactaccess.h
index 54f7f07..adc66cf 100644
--- a/libopie2/opiepim/core/ocontactaccess.h
+++ b/libopie2/opiepim/core/ocontactaccess.h
@@ -8,24 +8,27 @@
8 *This program is free software; you can redistribute it and/or 8 *This program is free software; you can redistribute it and/or
9 *modify it under the terms of the GNU Library General Public 9 *modify it under the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; 10 * License as published by the Free Software Foundation;
11 * either version 2 of the License, or (at your option) any later 11 * either version 2 of the License, or (at your option) any later
12 * version. 12 * version.
13 * ===================================================================== 13 * =====================================================================
14 * ToDo: Define enum for query settings 14 * ToDo: Define enum for query settings
15 * ===================================================================== 15 * =====================================================================
16 * Version: $Id$ 16 * Version: $Id$
17 * ===================================================================== 17 * =====================================================================
18 * History: 18 * History:
19 * $Log$ 19 * $Log$
20 * Revision 1.2 2002/10/14 16:21:54 eilers
21 * Some minor interface updates
22 *
20 * Revision 1.1 2002/09/27 17:11:44 eilers 23 * Revision 1.1 2002/09/27 17:11:44 eilers
21 * Added API for accessing the Contact-Database ! It is compiling, but 24 * Added API for accessing the Contact-Database ! It is compiling, but
22 * please do not expect that anything is working ! 25 * please do not expect that anything is working !
23 * I will debug that stuff in the next time .. 26 * I will debug that stuff in the next time ..
24 * Please read README_COMPILE for compiling ! 27 * Please read README_COMPILE for compiling !
25 * 28 *
26 * ===================================================================== 29 * =====================================================================
27 */ 30 */
28#ifndef _OCONTACTACCESS_H 31#ifndef _OCONTACTACCESS_H
29#define _OCONTACTACCESS_H 32#define _OCONTACTACCESS_H
30 33
31#include <qobject.h> 34#include <qobject.h>
@@ -38,85 +41,53 @@
38#include "ocontact.h" 41#include "ocontact.h"
39#include "ocontactaccessbackend.h" 42#include "ocontactaccessbackend.h"
40#include "opimaccesstemplate.h" 43#include "opimaccesstemplate.h"
41 44
42/** Class to access the contacts database. 45/** Class to access the contacts database.
43 * This is just a frontend for the real database handling which is 46 * This is just a frontend for the real database handling which is
44 * done by the backend. 47 * done by the backend.
45 */ 48 */
46class OContactAccess: public QObject, public OPimAccessTemplate<OContact> 49class OContactAccess: public QObject, public OPimAccessTemplate<OContact>
47{ 50{
48 Q_OBJECT 51 Q_OBJECT
49 52
50
51 /* class Iterator{
52 friend OContactAccess;
53 public:
54 Iterator();
55 Iterator ( const Iterator& copy );
56
57 bool operator== ( const Iterator& it );
58 bool operator!= ( const Iterator& it );
59 Iterator& operator= ( const Iterator& it );
60 Iterator& operator++ (); // prefix
61 Iterator operator++ ( int ); // postfix
62 Iterator& operator-- (); // prefix
63 Iterator operator-- ( int ); // postfix
64 Contact operator*() const;
65 Contact operator->() const;
66
67 Iterator begin();
68 Iterator end();
69
70 uint count() const;
71
72 private:
73 QValueList<int> m_uids;
74 int m_cur_position;
75 bool m_end_reached;
76 OContactAccess *m_db;
77
78 };
79
80 */
81
82 public: 53 public:
83 /** Create Database with contacts (addressbook). 54 /** Create Database with contacts (addressbook).
84 * @param appname Name of application which wants access to the database 55 * @param appname Name of application which wants access to the database
85 * (i.e. "todolist") 56 * (i.e. "todolist")
86 * @param filename The name of the database file. If not set, the default one 57 * @param filename The name of the database file. If not set, the default one
87 * is used. 58 * is used.
88 * @param backend Pointer to an alternative Backend. If not set, we will use 59 * @param backend Pointer to an alternative Backend. If not set, we will use
89 * the default backend. 60 * the default backend.
90 * @param handlesync If <b>true</b> the database stores the current state 61 * @param handlesync If <b>true</b> the database stores the current state
91 * automatically if it receives the signals <i>flush()</i> and <i>reload()</i> 62 * automatically if it receives the signals <i>flush()</i> and <i>reload()</i>
92 * which are used before and after synchronisation. If the application wants 63 * which are used before and after synchronisation. If the application wants
93 * to react itself, it should be disabled by setting it to <b>false</b> 64 * to react itself, it should be disabled by setting it to <b>false</b>
94 * @see OContactBackend 65 * @see OContactAccessBackend
95 */ 66 */
96 OContactAccess (const QString appname, const QString filename = 0l, 67 OContactAccess (const QString appname, const QString filename = 0l,
97 OContactAccessBackend* backend = 0l, bool handlesync = true); 68 OContactAccessBackend* backend = 0l, bool handlesync = true);
98 ~OContactAccess (); 69 ~OContactAccess ();
99 70
100 /** Constants for query. 71 /** Constants for query.
101 * Use this constants to set the query parameters. 72 * Use this constants to set the query parameters.
102 * Note: <i>query_IgnoreCase</i> just make sense with one of the other attributes ! 73 * Note: <i>query_IgnoreCase</i> just make sense with one of the other attributes !
103 * @see queryByExample() 74 * @see queryByExample()
104 * - why not enum - zecke?
105 * -> Had some implementation problems .. Will use enum soon ! .. (se)
106 */ 75 */
107 static const int query_WildCards = 0x0001; 76 enum QuerySettings {
108 static const int query_IgnoreCase = 0x0002; 77 WildCards = 0x0001,
109 static const int query_RegExp = 0x0004; 78 IgnoreCase = 0x0002,
110 static const int query_ExactMatch = 0x0008; 79 RegExp = 0x0004,
80 ExactMatch = 0x0008,
81 };
111 82
112 /** Return all possible settings. 83 /** Return all possible settings.
113 * @return All settings provided by the current backend 84 * @return All settings provided by the current backend
114 * (i.e.: query_WildCards & query_IgnoreCase) 85 * (i.e.: query_WildCards & query_IgnoreCase)
115 */ 86 */
116 const uint querySettings(); 87 const uint querySettings();
117 88
118 /** Check whether settings are correct. 89 /** Check whether settings are correct.
119 * @return <i>true</i> if the given settings are correct and possible. 90 * @return <i>true</i> if the given settings are correct and possible.
120 */ 91 */
121 bool hasQuerySettings ( int querySettings ) const; 92 bool hasQuerySettings ( int querySettings ) const;
122 93
diff --git a/libopie2/opiepim/core/opimaccesstemplate.h b/libopie2/opiepim/core/opimaccesstemplate.h
index a0d8f63..3e1f393 100644
--- a/libopie2/opiepim/core/opimaccesstemplate.h
+++ b/libopie2/opiepim/core/opimaccesstemplate.h
@@ -18,31 +18,24 @@
18 * Just create a OPimRecord and inherit from 18 * Just create a OPimRecord and inherit from
19 * the plugins 19 * the plugins
20 */ 20 */
21 21
22template <class T = OPimRecord > 22template <class T = OPimRecord >
23class OPimAccessTemplate : public OTemplateBase<T> { 23class OPimAccessTemplate : public OTemplateBase<T> {
24public: 24public:
25 typedef ORecordList<T> List; 25 typedef ORecordList<T> List;
26 typedef OPimAccessBackend<T> BackEnd; 26 typedef OPimAccessBackend<T> BackEnd;
27 typedef OPimCache<T> Cache; 27 typedef OPimCache<T> Cache;
28 28
29 /** 29 /**
30 * our sort order
31 * should be safe explaining
32 */
33 enum SortOrder { WildCards = 0, IgnoreCase = 1,
34 RegExp = 2, ExactMatch = 4 };
35
36 /**
37 * c'tor BackEnd 30 * c'tor BackEnd
38 */ 31 */
39 OPimAccessTemplate( BackEnd* end); 32 OPimAccessTemplate( BackEnd* end);
40 virtual ~OPimAccessTemplate(); 33 virtual ~OPimAccessTemplate();
41 34
42 /** 35 /**
43 * load from the backend 36 * load from the backend
44 */ 37 */
45 virtual bool load(); 38 virtual bool load();
46 39
47 /** 40 /**
48 * reload from the backend 41 * reload from the backend
@@ -57,27 +50,28 @@ public:
57 /** 50 /**
58 * if the resource was changed externally 51 * if the resource was changed externally
59 */ 52 */
60 bool wasChangedExternally()const; 53 bool wasChangedExternally()const;
61 54
62 /** 55 /**
63 * return a List of records 56 * return a List of records
64 * you can iterate over them 57 * you can iterate over them
65 */ 58 */
66 virtual List allRecords()const; 59 virtual List allRecords()const;
67 60
68 /** 61 /**
69 * queryByExample 62 * queryByExample)
63 * @see otodoaccess, ocontactaccess
70 */ 64 */
71 virtual List queryByExample( const T& t, int sortOrder ); 65 virtual List queryByExample( const T& t, int querySettings );
72 66
73 /** 67 /**
74 * find the OPimRecord uid 68 * find the OPimRecord uid
75 */ 69 */
76 virtual T find( int uid )const; 70 virtual T find( int uid )const;
77 71
78 /** 72 /**
79 * read ahead cache find method ;) 73 * read ahead cache find method ;)
80 */ 74 */
81 virtual T find( int uid, const QArray<int>&, 75 virtual T find( int uid, const QArray<int>&,
82 uint current, CacheDirection dir = Forward )const; 76 uint current, CacheDirection dir = Forward )const;
83 77