summaryrefslogtreecommitdiff
authorzecke <zecke>2002-11-03 17:56:17 (UTC)
committer zecke <zecke>2002-11-03 17:56:17 (UTC)
commit2981b8f55f4a33860452f4571ef9f04781267489 (patch) (unidiff)
tree3d0fe68318c23efdbcf72acfae94b3e76e2b4a14
parent3bc2ff91e60f23dd235599b3d83471bde8be1c8a (diff)
downloadopie-2981b8f55f4a33860452f4571ef9f04781267489.zip
opie-2981b8f55f4a33860452f4571ef9f04781267489.tar.gz
opie-2981b8f55f4a33860452f4571ef9f04781267489.tar.bz2
Oh OContact what a sucker ;)
first of all UID generation belongs to OPimRecord and was removed from OContact then setUid now actually calls OPimRecord::setUid instead of Record::setUid This finally fixes the problem with wrong uids after beaming... At least locally on my machine
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/pim/ocontact.cpp5
-rw-r--r--libopie/pim/ocontact.h6
-rw-r--r--libopie/pim/opimrecord.cpp2
-rw-r--r--libopie2/opiepim/core/opimrecord.cpp2
-rw-r--r--libopie2/opiepim/ocontact.cpp5
-rw-r--r--libopie2/opiepim/ocontact.h6
6 files changed, 8 insertions, 18 deletions
diff --git a/libopie/pim/ocontact.cpp b/libopie/pim/ocontact.cpp
index cd238ef..8a0930b 100644
--- a/libopie/pim/ocontact.cpp
+++ b/libopie/pim/ocontact.cpp
@@ -35,33 +35,32 @@
35#include <qfileinfo.h> 35#include <qfileinfo.h>
36#include <qmap.h> 36#include <qmap.h>
37 37
38#include <stdio.h> 38#include <stdio.h>
39 39
40/*! 40/*!
41 \class Contact contact.h 41 \class Contact contact.h
42 \brief The Contact class holds the data of an address book entry. 42 \brief The Contact class holds the data of an address book entry.
43 43
44 This data includes information the name of the person, contact 44 This data includes information the name of the person, contact
45 information, and business information such as deparment and job title. 45 information, and business information such as deparment and job title.
46 46
47 \ingroup qtopiaemb 47 \ingroup qtopiaemb
48 \ingroup qtopiadesktop 48 \ingroup qtopiadesktop
49*/ 49*/
50 50
51Qtopia::UidGen OContact::sUidGen( Qtopia::UidGen::Qtopia );
52 51
53/*! 52/*!
54 Creates a new, empty contact. 53 Creates a new, empty contact.
55*/ 54*/
56OContact::OContact() 55OContact::OContact()
57 : OPimRecord(), mMap(), d( 0 ) 56 : OPimRecord(), mMap(), d( 0 )
58{ 57{
59} 58}
60 59
61/*! 60/*!
62 \internal 61 \internal
63 Creates a new contact. The properties of the contact are 62 Creates a new contact. The properties of the contact are
64 set from \a fromMap. 63 set from \a fromMap.
65*/ 64*/
66OContact::OContact( const QMap<int, QString> &fromMap ) : 65OContact::OContact( const QMap<int, QString> &fromMap ) :
67 OPimRecord(), mMap( fromMap ), d( 0 ) 66 OPimRecord(), mMap( fromMap ), d( 0 )
@@ -1457,34 +1456,36 @@ void OContact::writeVCard( const QString &filename, const OContact &contact)
1457QValueList<OContact> OContact::readVCard( const QString &filename ) 1456QValueList<OContact> OContact::readVCard( const QString &filename )
1458{ 1457{
1459 qDebug("trying to open %s, exists=%d", filename.utf8().data(), QFileInfo( filename.utf8().data() ).size() ); 1458 qDebug("trying to open %s, exists=%d", filename.utf8().data(), QFileInfo( filename.utf8().data() ).size() );
1460 VObject *obj = Parse_MIME_FromFileName( (char *)filename.utf8().data() ); 1459 VObject *obj = Parse_MIME_FromFileName( (char *)filename.utf8().data() );
1461 1460
1462 qDebug("vobject = %p", obj ); 1461 qDebug("vobject = %p", obj );
1463 1462
1464 QValueList<OContact> contacts; 1463 QValueList<OContact> contacts;
1465 1464
1466 while ( obj ) { 1465 while ( obj ) {
1467 OContact con = parseVObject( obj ); 1466 OContact con = parseVObject( obj );
1468 /* 1467 /*
1469 * if uid is 0 assign a new one 1468 * if uid is 0 assign a new one
1470 * this at least happens on 1469 * this at least happens on
1471 * Nokia6210 1470 * Nokia6210
1472 */ 1471 */
1473 if ( con.uid() == 0 ) 1472 if ( con.uid() == 0 ){
1474 con.setUid( 1 ); 1473 con.setUid( 1 );
1474 qWarning("assigned new uid %d",con.uid() );
1475 }
1475 1476
1476 contacts.append(con ); 1477 contacts.append(con );
1477 1478
1478 VObject *t = obj; 1479 VObject *t = obj;
1479 obj = nextVObjectInList(obj); 1480 obj = nextVObjectInList(obj);
1480 cleanVObject( t ); 1481 cleanVObject( t );
1481 } 1482 }
1482 1483
1483 return contacts; 1484 return contacts;
1484} 1485}
1485 1486
1486/*! 1487/*!
1487 Returns TRUE if the contact matches the regular expression \a regexp. 1488 Returns TRUE if the contact matches the regular expression \a regexp.
1488 Otherwise returns FALSE. 1489 Otherwise returns FALSE.
1489*/ 1490*/
1490bool OContact::match( const QString &regexp ) const 1491bool OContact::match( const QString &regexp ) const
diff --git a/libopie/pim/ocontact.h b/libopie/pim/ocontact.h
index 038a59f..81ac1c1 100644
--- a/libopie/pim/ocontact.h
+++ b/libopie/pim/ocontact.h
@@ -187,56 +187,52 @@ public:
187// { return find( Custom- + key ); } 187// { return find( Custom- + key ); }
188 188
189 static QStringList fields(); 189 static QStringList fields();
190 static QStringList trfields(); 190 static QStringList trfields();
191 static QStringList untrfields(); 191 static QStringList untrfields();
192 192
193 QString toRichText() const; 193 QString toRichText() const;
194 QMap<int, QString> toMap() const; 194 QMap<int, QString> toMap() const;
195 QString field( int key ) const { return find( key ); } 195 QString field( int key ) const { return find( key ); }
196 196
197 197
198 // journaling... 198 // journaling...
199 void saveJournal( journal_action action, const QString &key = QString::null ); 199 void saveJournal( journal_action action, const QString &key = QString::null );
200 void save( QString &buf ) const; 200 void save( QString &buf ) const;
201 201
202 void setUid( int i ) 202 void setUid( int i )
203{ Record::setUid(i); replace( Qtopia::AddressUid , QString::number(i)); } 203{ OPimRecord::setUid(i); replace( Qtopia::AddressUid , QString::number(i)); }
204 204
205 QString toShortText()const; 205 QString toShortText()const;
206 QString OContact::type()const; 206 QString OContact::type()const;
207 QMap<QString,QString> OContact::toExtraMap() const; 207 QMap<QString,QString> OContact::toExtraMap() const;
208 class QString OContact::recordField(int) const; 208 class QString OContact::recordField(int) const;
209 209
210 // Why private ? (eilers,se) 210 // Why private ? (eilers,se)
211 QString emailSeparator() const { return " "; } 211 QString emailSeparator() const { return " "; }
212 // the emails should be seperated by a comma 212 // the emails should be seperated by a comma
213 void setEmails( const QString &v ); 213 void setEmails( const QString &v );
214 QString emails() const { return find( Qtopia::Emails ); } 214 QString emails() const { return find( Qtopia::Emails ); }
215 215
216 216
217private: 217private:
218 friend class AbEditor; 218 friend class AbEditor;
219 friend class AbTable; 219 friend class AbTable;
220 friend class AddressBookAccessPrivate; 220 friend class AddressBookAccessPrivate;
221 friend class XMLIO; 221 friend class XMLIO;
222 222
223 void insert( int key, const QString &value ); 223 void insert( int key, const QString &value );
224 void replace( int key, const QString &value ); 224 void replace( int key, const QString &value );
225 QString find( int key ) const; 225 QString find( int key ) const;
226 226
227 QString displayAddress( const QString &street, 227 QString displayAddress( const QString &street,
228 const QString &city, 228 const QString &city,
229 const QString &state, 229 const QString &state,
230 const QString &zip, 230 const QString &zip,
231 const QString &country ) const; 231 const QString &country ) const;
232 232
233 Qtopia::UidGen &uidGen() { return sUidGen; }
234
235
236 static Qtopia::UidGen sUidGen;
237 QMap<int, QString> mMap; 233 QMap<int, QString> mMap;
238 ContactPrivate *d; 234 ContactPrivate *d;
239}; 235};
240 236
241 237
242#endif 238#endif
diff --git a/libopie/pim/opimrecord.cpp b/libopie/pim/opimrecord.cpp
index 62dc353..21cf131 100644
--- a/libopie/pim/opimrecord.cpp
+++ b/libopie/pim/opimrecord.cpp
@@ -109,26 +109,24 @@ void OPimRecord::setRelations( const QString& app, QArray<int> ids ) {
109QString OPimRecord::crossToString()const { 109QString OPimRecord::crossToString()const {
110 QString str; 110 QString str;
111 QMap<QString, QArray<int> >::ConstIterator it; 111 QMap<QString, QArray<int> >::ConstIterator it;
112 for (it = m_relations.begin(); it != m_relations.end(); ++it ) { 112 for (it = m_relations.begin(); it != m_relations.end(); ++it ) {
113 QArray<int> id = it.data(); 113 QArray<int> id = it.data();
114 for ( uint i = 0; i < id.size(); ++i ) { 114 for ( uint i = 0; i < id.size(); ++i ) {
115 str += it.key() + "," + QString::number( i ) + ";"; 115 str += it.key() + "," + QString::number( i ) + ";";
116 } 116 }
117 } 117 }
118 str = str.remove( str.length()-1, 1); // strip the ; 118 str = str.remove( str.length()-1, 1); // strip the ;
119 //qWarning("IDS " + str ); 119 //qWarning("IDS " + str );
120 120
121 return str; 121 return str;
122} 122}
123/* if uid = 1 assign a new one */ 123/* if uid = 1 assign a new one */
124void OPimRecord::setUid( int uid ) { 124void OPimRecord::setUid( int uid ) {
125// qWarning("setting uid" );
126 if ( uid == 1) 125 if ( uid == 1)
127 uid = uidGen().generate(); 126 uid = uidGen().generate();
128 127
129// qWarning(" uid %d", uid);
130 Qtopia::Record::setUid( uid ); 128 Qtopia::Record::setUid( uid );
131}; 129};
132Qtopia::UidGen &OPimRecord::uidGen() { 130Qtopia::UidGen &OPimRecord::uidGen() {
133 return m_uidGen; 131 return m_uidGen;
134} 132}
diff --git a/libopie2/opiepim/core/opimrecord.cpp b/libopie2/opiepim/core/opimrecord.cpp
index 62dc353..21cf131 100644
--- a/libopie2/opiepim/core/opimrecord.cpp
+++ b/libopie2/opiepim/core/opimrecord.cpp
@@ -109,26 +109,24 @@ void OPimRecord::setRelations( const QString& app, QArray<int> ids ) {
109QString OPimRecord::crossToString()const { 109QString OPimRecord::crossToString()const {
110 QString str; 110 QString str;
111 QMap<QString, QArray<int> >::ConstIterator it; 111 QMap<QString, QArray<int> >::ConstIterator it;
112 for (it = m_relations.begin(); it != m_relations.end(); ++it ) { 112 for (it = m_relations.begin(); it != m_relations.end(); ++it ) {
113 QArray<int> id = it.data(); 113 QArray<int> id = it.data();
114 for ( uint i = 0; i < id.size(); ++i ) { 114 for ( uint i = 0; i < id.size(); ++i ) {
115 str += it.key() + "," + QString::number( i ) + ";"; 115 str += it.key() + "," + QString::number( i ) + ";";
116 } 116 }
117 } 117 }
118 str = str.remove( str.length()-1, 1); // strip the ; 118 str = str.remove( str.length()-1, 1); // strip the ;
119 //qWarning("IDS " + str ); 119 //qWarning("IDS " + str );
120 120
121 return str; 121 return str;
122} 122}
123/* if uid = 1 assign a new one */ 123/* if uid = 1 assign a new one */
124void OPimRecord::setUid( int uid ) { 124void OPimRecord::setUid( int uid ) {
125// qWarning("setting uid" );
126 if ( uid == 1) 125 if ( uid == 1)
127 uid = uidGen().generate(); 126 uid = uidGen().generate();
128 127
129// qWarning(" uid %d", uid);
130 Qtopia::Record::setUid( uid ); 128 Qtopia::Record::setUid( uid );
131}; 129};
132Qtopia::UidGen &OPimRecord::uidGen() { 130Qtopia::UidGen &OPimRecord::uidGen() {
133 return m_uidGen; 131 return m_uidGen;
134} 132}
diff --git a/libopie2/opiepim/ocontact.cpp b/libopie2/opiepim/ocontact.cpp
index cd238ef..8a0930b 100644
--- a/libopie2/opiepim/ocontact.cpp
+++ b/libopie2/opiepim/ocontact.cpp
@@ -35,33 +35,32 @@
35#include <qfileinfo.h> 35#include <qfileinfo.h>
36#include <qmap.h> 36#include <qmap.h>
37 37
38#include <stdio.h> 38#include <stdio.h>
39 39
40/*! 40/*!
41 \class Contact contact.h 41 \class Contact contact.h
42 \brief The Contact class holds the data of an address book entry. 42 \brief The Contact class holds the data of an address book entry.
43 43
44 This data includes information the name of the person, contact 44 This data includes information the name of the person, contact
45 information, and business information such as deparment and job title. 45 information, and business information such as deparment and job title.
46 46
47 \ingroup qtopiaemb 47 \ingroup qtopiaemb
48 \ingroup qtopiadesktop 48 \ingroup qtopiadesktop
49*/ 49*/
50 50
51Qtopia::UidGen OContact::sUidGen( Qtopia::UidGen::Qtopia );
52 51
53/*! 52/*!
54 Creates a new, empty contact. 53 Creates a new, empty contact.
55*/ 54*/
56OContact::OContact() 55OContact::OContact()
57 : OPimRecord(), mMap(), d( 0 ) 56 : OPimRecord(), mMap(), d( 0 )
58{ 57{
59} 58}
60 59
61/*! 60/*!
62 \internal 61 \internal
63 Creates a new contact. The properties of the contact are 62 Creates a new contact. The properties of the contact are
64 set from \a fromMap. 63 set from \a fromMap.
65*/ 64*/
66OContact::OContact( const QMap<int, QString> &fromMap ) : 65OContact::OContact( const QMap<int, QString> &fromMap ) :
67 OPimRecord(), mMap( fromMap ), d( 0 ) 66 OPimRecord(), mMap( fromMap ), d( 0 )
@@ -1457,34 +1456,36 @@ void OContact::writeVCard( const QString &filename, const OContact &contact)
1457QValueList<OContact> OContact::readVCard( const QString &filename ) 1456QValueList<OContact> OContact::readVCard( const QString &filename )
1458{ 1457{
1459 qDebug("trying to open %s, exists=%d", filename.utf8().data(), QFileInfo( filename.utf8().data() ).size() ); 1458 qDebug("trying to open %s, exists=%d", filename.utf8().data(), QFileInfo( filename.utf8().data() ).size() );
1460 VObject *obj = Parse_MIME_FromFileName( (char *)filename.utf8().data() ); 1459 VObject *obj = Parse_MIME_FromFileName( (char *)filename.utf8().data() );
1461 1460
1462 qDebug("vobject = %p", obj ); 1461 qDebug("vobject = %p", obj );
1463 1462
1464 QValueList<OContact> contacts; 1463 QValueList<OContact> contacts;
1465 1464
1466 while ( obj ) { 1465 while ( obj ) {
1467 OContact con = parseVObject( obj ); 1466 OContact con = parseVObject( obj );
1468 /* 1467 /*
1469 * if uid is 0 assign a new one 1468 * if uid is 0 assign a new one
1470 * this at least happens on 1469 * this at least happens on
1471 * Nokia6210 1470 * Nokia6210
1472 */ 1471 */
1473 if ( con.uid() == 0 ) 1472 if ( con.uid() == 0 ){
1474 con.setUid( 1 ); 1473 con.setUid( 1 );
1474 qWarning("assigned new uid %d",con.uid() );
1475 }
1475 1476
1476 contacts.append(con ); 1477 contacts.append(con );
1477 1478
1478 VObject *t = obj; 1479 VObject *t = obj;
1479 obj = nextVObjectInList(obj); 1480 obj = nextVObjectInList(obj);
1480 cleanVObject( t ); 1481 cleanVObject( t );
1481 } 1482 }
1482 1483
1483 return contacts; 1484 return contacts;
1484} 1485}
1485 1486
1486/*! 1487/*!
1487 Returns TRUE if the contact matches the regular expression \a regexp. 1488 Returns TRUE if the contact matches the regular expression \a regexp.
1488 Otherwise returns FALSE. 1489 Otherwise returns FALSE.
1489*/ 1490*/
1490bool OContact::match( const QString &regexp ) const 1491bool OContact::match( const QString &regexp ) const
diff --git a/libopie2/opiepim/ocontact.h b/libopie2/opiepim/ocontact.h
index 038a59f..81ac1c1 100644
--- a/libopie2/opiepim/ocontact.h
+++ b/libopie2/opiepim/ocontact.h
@@ -187,56 +187,52 @@ public:
187// { return find( Custom- + key ); } 187// { return find( Custom- + key ); }
188 188
189 static QStringList fields(); 189 static QStringList fields();
190 static QStringList trfields(); 190 static QStringList trfields();
191 static QStringList untrfields(); 191 static QStringList untrfields();
192 192
193 QString toRichText() const; 193 QString toRichText() const;
194 QMap<int, QString> toMap() const; 194 QMap<int, QString> toMap() const;
195 QString field( int key ) const { return find( key ); } 195 QString field( int key ) const { return find( key ); }
196 196
197 197
198 // journaling... 198 // journaling...
199 void saveJournal( journal_action action, const QString &key = QString::null ); 199 void saveJournal( journal_action action, const QString &key = QString::null );
200 void save( QString &buf ) const; 200 void save( QString &buf ) const;
201 201
202 void setUid( int i ) 202 void setUid( int i )
203{ Record::setUid(i); replace( Qtopia::AddressUid , QString::number(i)); } 203{ OPimRecord::setUid(i); replace( Qtopia::AddressUid , QString::number(i)); }
204 204
205 QString toShortText()const; 205 QString toShortText()const;
206 QString OContact::type()const; 206 QString OContact::type()const;
207 QMap<QString,QString> OContact::toExtraMap() const; 207 QMap<QString,QString> OContact::toExtraMap() const;
208 class QString OContact::recordField(int) const; 208 class QString OContact::recordField(int) const;
209 209
210 // Why private ? (eilers,se) 210 // Why private ? (eilers,se)
211 QString emailSeparator() const { return " "; } 211 QString emailSeparator() const { return " "; }
212 // the emails should be seperated by a comma 212 // the emails should be seperated by a comma
213 void setEmails( const QString &v ); 213 void setEmails( const QString &v );
214 QString emails() const { return find( Qtopia::Emails ); } 214 QString emails() const { return find( Qtopia::Emails ); }
215 215
216 216
217private: 217private:
218 friend class AbEditor; 218 friend class AbEditor;
219 friend class AbTable; 219 friend class AbTable;
220 friend class AddressBookAccessPrivate; 220 friend class AddressBookAccessPrivate;
221 friend class XMLIO; 221 friend class XMLIO;
222 222
223 void insert( int key, const QString &value ); 223 void insert( int key, const QString &value );
224 void replace( int key, const QString &value ); 224 void replace( int key, const QString &value );
225 QString find( int key ) const; 225 QString find( int key ) const;
226 226
227 QString displayAddress( const QString &street, 227 QString displayAddress( const QString &street,
228 const QString &city, 228 const QString &city,
229 const QString &state, 229 const QString &state,
230 const QString &zip, 230 const QString &zip,
231 const QString &country ) const; 231 const QString &country ) const;
232 232
233 Qtopia::UidGen &uidGen() { return sUidGen; }
234
235
236 static Qtopia::UidGen sUidGen;
237 QMap<int, QString> mMap; 233 QMap<int, QString> mMap;
238 ContactPrivate *d; 234 ContactPrivate *d;
239}; 235};
240 236
241 237
242#endif 238#endif