Diffstat (limited to 'libopie2/opiepim/core/opimrecord.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | libopie2/opiepim/core/opimrecord.cpp | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/libopie2/opiepim/core/opimrecord.cpp b/libopie2/opiepim/core/opimrecord.cpp index 49b5bf9..ac0f4a9 100644 --- a/libopie2/opiepim/core/opimrecord.cpp +++ b/libopie2/opiepim/core/opimrecord.cpp | |||
@@ -1,84 +1,166 @@ | |||
1 | #include <qarray.h> | ||
2 | |||
1 | #include <qpe/categories.h> | 3 | #include <qpe/categories.h> |
2 | #include <qpe/categoryselect.h> | 4 | #include <qpe/categoryselect.h> |
3 | 5 | ||
4 | #include "opimrecord.h" | 6 | #include "opimrecord.h" |
5 | 7 | ||
6 | Qtopia::UidGen OPimRecord::m_uidGen( Qtopia::UidGen::Qtopia ); | 8 | Qtopia::UidGen OPimRecord::m_uidGen( Qtopia::UidGen::Qtopia ); |
7 | 9 | ||
8 | 10 | ||
9 | OPimRecord::OPimRecord( int uid ) | 11 | OPimRecord::OPimRecord( int uid ) |
10 | : Qtopia::Record() { | 12 | : Qtopia::Record() { |
11 | 13 | ||
12 | setUid( uid ); | 14 | setUid( uid ); |
13 | } | 15 | } |
14 | OPimRecord::~OPimRecord() { | 16 | OPimRecord::~OPimRecord() { |
15 | } | 17 | } |
16 | OPimRecord::OPimRecord( const OPimRecord& rec ) | 18 | OPimRecord::OPimRecord( const OPimRecord& rec ) |
17 | : Qtopia::Record( rec ) | 19 | : Qtopia::Record( rec ) |
18 | { | 20 | { |
19 | (*this) = rec; | 21 | (*this) = rec; |
20 | } | 22 | } |
21 | 23 | ||
22 | OPimRecord &OPimRecord::operator=( const OPimRecord& rec) { | 24 | OPimRecord &OPimRecord::operator=( const OPimRecord& rec) { |
23 | Qtopia::Record::operator=( rec ); | 25 | Qtopia::Record::operator=( rec ); |
24 | m_xrefman = rec.m_xrefman; | 26 | m_xrefman = rec.m_xrefman; |
25 | 27 | ||
26 | return *this; | 28 | return *this; |
27 | } | 29 | } |
28 | /* | 30 | /* |
29 | * category names | 31 | * category names |
30 | */ | 32 | */ |
31 | QStringList OPimRecord::categoryNames()const { | 33 | QStringList OPimRecord::categoryNames()const { |
32 | QStringList list; | 34 | QStringList list; |
33 | QArray<int> cats = categories(); | 35 | QArray<int> cats = categories(); |
34 | Categories catDB; | 36 | Categories catDB; |
35 | catDB.load( categoryFileName() ); | 37 | catDB.load( categoryFileName() ); |
36 | 38 | ||
37 | for (uint i = 0; i < cats.count(); i++ ) { | 39 | for (uint i = 0; i < cats.count(); i++ ) { |
38 | list << catDB.label("Todo List", cats[i] ); | 40 | list << catDB.label("Todo List", cats[i] ); |
39 | } | 41 | } |
40 | 42 | ||
41 | return list; | 43 | return list; |
42 | } | 44 | } |
43 | void OPimRecord::setCategoryNames( const QStringList& ) { | 45 | void OPimRecord::setCategoryNames( const QStringList& ) { |
44 | 46 | ||
45 | } | 47 | } |
46 | void OPimRecord::addCategoryName( const QString& ) { | 48 | void OPimRecord::addCategoryName( const QString& ) { |
47 | Categories catDB; | 49 | Categories catDB; |
48 | catDB.load( categoryFileName() ); | 50 | catDB.load( categoryFileName() ); |
49 | 51 | ||
50 | 52 | ||
51 | } | 53 | } |
52 | bool OPimRecord::isEmpty()const { | 54 | bool OPimRecord::isEmpty()const { |
53 | return ( uid() == 0 ); | 55 | return ( uid() == 0 ); |
54 | } | 56 | } |
55 | /*QString OPimRecord::crossToString()const { | 57 | /*QString OPimRecord::crossToString()const { |
56 | QString str; | 58 | QString str; |
57 | QMap<QString, QArray<int> >::ConstIterator it; | 59 | QMap<QString, QArray<int> >::ConstIterator it; |
58 | for (it = m_relations.begin(); it != m_relations.end(); ++it ) { | 60 | for (it = m_relations.begin(); it != m_relations.end(); ++it ) { |
59 | QArray<int> id = it.data(); | 61 | QArray<int> id = it.data(); |
60 | for ( uint i = 0; i < id.size(); ++i ) { | 62 | for ( uint i = 0; i < id.size(); ++i ) { |
61 | str += it.key() + "," + QString::number( i ) + ";"; | 63 | str += it.key() + "," + QString::number( i ) + ";"; |
62 | } | 64 | } |
63 | } | 65 | } |
64 | str = str.remove( str.length()-1, 1); // strip the ; | 66 | str = str.remove( str.length()-1, 1); // strip the ; |
65 | //qWarning("IDS " + str ); | 67 | //qWarning("IDS " + str ); |
66 | 68 | ||
67 | return str; | 69 | return str; |
68 | }*/ | 70 | }*/ |
69 | /* if uid = 1 assign a new one */ | 71 | /* if uid = 1 assign a new one */ |
70 | void OPimRecord::setUid( int uid ) { | 72 | void OPimRecord::setUid( int uid ) { |
71 | if ( uid == 1) | 73 | if ( uid == 1) |
72 | uid = uidGen().generate(); | 74 | uid = uidGen().generate(); |
73 | 75 | ||
74 | Qtopia::Record::setUid( uid ); | 76 | Qtopia::Record::setUid( uid ); |
75 | }; | 77 | }; |
76 | Qtopia::UidGen &OPimRecord::uidGen() { | 78 | Qtopia::UidGen &OPimRecord::uidGen() { |
77 | return m_uidGen; | 79 | return m_uidGen; |
78 | } | 80 | } |
79 | OPimXRefManager &OPimRecord::xrefmanager() { | 81 | OPimXRefManager &OPimRecord::xrefmanager() { |
80 | return m_xrefman; | 82 | return m_xrefman; |
81 | } | 83 | } |
82 | int OPimRecord::rtti(){ | 84 | int OPimRecord::rtti(){ |
83 | return 0; | 85 | return 0; |
84 | } | 86 | } |
87 | |||
88 | /** | ||
89 | * now let's put our data into the stream | ||
90 | */ | ||
91 | /* | ||
92 | * First read UID | ||
93 | * Categories | ||
94 | * XRef | ||
95 | */ | ||
96 | bool OPimRecord::loadFromStream( QDataStream& stream ) { | ||
97 | int Int; | ||
98 | uint UInt; | ||
99 | stream >> Int; | ||
100 | setUid(Int); | ||
101 | |||
102 | /** Categories */ | ||
103 | stream >> UInt; | ||
104 | QArray<int> array(UInt); | ||
105 | for (uint i = 0; i < UInt; i++ ) { | ||
106 | stream >> array[i]; | ||
107 | } | ||
108 | setCategories( array ); | ||
109 | |||
110 | /* | ||
111 | * now we do the X-Ref stuff | ||
112 | */ | ||
113 | OPimXRef xref; | ||
114 | stream >> UInt; | ||
115 | for ( uint i = 0; i < UInt; i++ ) { | ||
116 | xref.setPartner( OPimXRef::One, partner( stream ) ); | ||
117 | xref.setPartner( OPimXRef::Two, partner( stream ) ); | ||
118 | m_xrefman.add( xref ); | ||
119 | } | ||
120 | |||
121 | return true; | ||
122 | } | ||
123 | bool OPimRecord::saveToStream( QDataStream& stream )const { | ||
124 | /** UIDs */ | ||
125 | |||
126 | stream << uid(); | ||
127 | |||
128 | /** Categories */ | ||
129 | stream << categories().count(); | ||
130 | for ( uint i = 0; i < categories().count(); i++ ) { | ||
131 | stream << categories()[i]; | ||
132 | } | ||
133 | |||
134 | /* | ||
135 | * first the XRef count | ||
136 | * then the xrefs | ||
137 | */ | ||
138 | stream << m_xrefman.list().count(); | ||
139 | for ( OPimXRef::ValueList::ConstIterator it = m_xrefman.list().begin(); | ||
140 | it != m_xrefman.list().end(); ++it ) { | ||
141 | flush( (*it).partner( OPimXRef::One), stream ); | ||
142 | flush( (*it).partner( OPimXRef::Two), stream ); | ||
143 | } | ||
144 | return true; | ||
145 | } | ||
146 | void OPimRecord::flush( const OPimXRefPartner& par, QDataStream& str ) const{ | ||
147 | str << par.service(); | ||
148 | str << par.uid(); | ||
149 | str << par.field(); | ||
150 | } | ||
151 | OPimXRefPartner OPimRecord::partner( QDataStream& stream ) { | ||
152 | OPimXRefPartner par; | ||
153 | QString str; | ||
154 | int i; | ||
155 | |||
156 | stream >> str; | ||
157 | par.setService( str ); | ||
158 | |||
159 | stream >> i; | ||
160 | par.setUid( i ); | ||
161 | |||
162 | stream >> i ; | ||
163 | par.setField( i ); | ||
164 | |||
165 | return par; | ||
166 | } | ||