summaryrefslogtreecommitdiffabout
path: root/kabc/stdaddressbook.cpp
Unidiff
Diffstat (limited to 'kabc/stdaddressbook.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/stdaddressbook.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/kabc/stdaddressbook.cpp b/kabc/stdaddressbook.cpp
index ec47a4e..181a09e 100644
--- a/kabc/stdaddressbook.cpp
+++ b/kabc/stdaddressbook.cpp
@@ -104,121 +104,126 @@ StdAddressBook *StdAddressBook::self( bool onlyFastResources )
104#else //KAB_EMBEDDED 104#else //KAB_EMBEDDED
105 addressBookDeleter.setObject( mSelf, new StdAddressBook( onlyFastResources ) ); 105 addressBookDeleter.setObject( mSelf, new StdAddressBook( onlyFastResources ) );
106#endif //KAB_EMBEDDED 106#endif //KAB_EMBEDDED
107 KStandardDirs::setAppDir( appdir ); 107 KStandardDirs::setAppDir( appdir );
108 } 108 }
109 return mSelf; 109 return mSelf;
110} 110}
111 111
112StdAddressBook::StdAddressBook() 112StdAddressBook::StdAddressBook()
113 : AddressBook( "kabcrc" ) 113 : AddressBook( "kabcrc" )
114{ 114{
115 115
116 init( false ); 116 init( false );
117} 117}
118 118
119StdAddressBook::StdAddressBook( bool onlyFastResources ) 119StdAddressBook::StdAddressBook( bool onlyFastResources )
120 : AddressBook( "kabcrc" ) 120 : AddressBook( "kabcrc" )
121{ 121{
122 122
123 init( onlyFastResources ); 123 init( onlyFastResources );
124} 124}
125 125
126StdAddressBook::~StdAddressBook() 126StdAddressBook::~StdAddressBook()
127{ 127{
128 if ( mAutomaticSave ) 128 if ( mAutomaticSave )
129 save(); 129 save();
130} 130}
131 131
132void StdAddressBook::init( bool ) 132void StdAddressBook::init( bool )
133{ 133{
134 KRES::Manager<Resource> *manager = resourceManager(); 134 KRES::Manager<Resource> *manager = resourceManager();
135 KRES::Manager<Resource>::ActiveIterator it; 135 KRES::Manager<Resource>::ActiveIterator it;
136 136
137 for ( it = manager->activeBegin(); it != manager->activeEnd(); ++it ) { 137 for ( it = manager->activeBegin(); it != manager->activeEnd(); ++it ) {
138 (*it)->setAddressBook( this ); 138 (*it)->setAddressBook( this );
139 if ( !(*it)->open() ) 139 if ( !(*it)->open() )
140 error( QString( "Unable to open resource '%1'!" ).arg( (*it)->resourceName() ) ); 140 error( QString( "Unable to open resource '%1'!" ).arg( (*it)->resourceName() ) );
141 } 141 }
142 142
143 Resource *res = standardResource(); 143 Resource *res = standardResource();
144 if ( !res ) { 144 if ( !res ) {
145 res = manager->createResource( "file" ); 145 res = manager->createResource( "file" );
146 if ( res ) 146 if ( res )
147 { 147 {
148 addResource( res ); 148 addResource( res );
149 } 149 }
150 else 150 else
151 qDebug(" No resource available!!!"); 151 qDebug(" No resource available!!!");
152 } 152 }
153 153
154 setStandardResource( res ); 154 setStandardResource( res );
155 manager->writeConfig(); 155 manager->writeConfig();
156 156
157 load(); 157 load();
158} 158}
159 159
160bool StdAddressBook::save() 160bool StdAddressBook::save()
161{ 161{
162 kdDebug(5700) << "StdAddressBook::save()" << endl; 162 kdDebug(5700) << "StdAddressBook::save()" << endl;
163 163
164 bool ok = true; 164 bool ok = true;
165 AddressBook *ab = self(); 165 AddressBook *ab = self();
166 166
167 ab->deleteRemovedAddressees(); 167 ab->deleteRemovedAddressees();
168 168 Iterator ait;
169 for ( ait = ab->begin(); ait != ab->end(); ++ait ) {
170 if ( !(*ait).IDStr().isEmpty() ) {
171 (*ait).insertCustom( "KADDRESSBOOK", "X-ExternalID", (*ait).IDStr() );
172 }
173 }
169 KRES::Manager<Resource>::ActiveIterator it; 174 KRES::Manager<Resource>::ActiveIterator it;
170 KRES::Manager<Resource> *manager = ab->resourceManager(); 175 KRES::Manager<Resource> *manager = ab->resourceManager();
171 for ( it = manager->activeBegin(); it != manager->activeEnd(); ++it ) { 176 for ( it = manager->activeBegin(); it != manager->activeEnd(); ++it ) {
172 if ( !(*it)->readOnly() && (*it)->isOpen() ) { 177 if ( !(*it)->readOnly() && (*it)->isOpen() ) {
173 Ticket *ticket = ab->requestSaveTicket( *it ); 178 Ticket *ticket = ab->requestSaveTicket( *it );
174// qDebug("StdAddressBook::save '%s'", (*it)->resourceName().latin1() ); 179// qDebug("StdAddressBook::save '%s'", (*it)->resourceName().latin1() );
175 if ( !ticket ) { 180 if ( !ticket ) {
176 ab->error( i18n( "Unable to save to resource '%1'. It is locked." ) 181 ab->error( i18n( "Unable to save to resource '%1'. It is locked." )
177 .arg( (*it)->resourceName() ) ); 182 .arg( (*it)->resourceName() ) );
178 return false; 183 return false;
179 } 184 }
180 185
181 if ( !ab->save( ticket ) ) 186 if ( !ab->save( ticket ) )
182 ok = false; 187 ok = false;
183 } 188 }
184 } 189 }
185 190
186 return ok; 191 return ok;
187} 192}
188 193
189void StdAddressBook::close() 194void StdAddressBook::close()
190{ 195{
191//US destructObject is not defined on my system???. Is setObject(0) the same ??? 196//US destructObject is not defined on my system???. Is setObject(0) the same ???
192//US addressBookDeleter.destructObject(); 197//US addressBookDeleter.destructObject();
193 addressBookDeleter.setObject(0); 198 addressBookDeleter.setObject(0);
194 199
195} 200}
196 201
197void StdAddressBook::setAutomaticSave( bool enable ) 202void StdAddressBook::setAutomaticSave( bool enable )
198{ 203{
199 mAutomaticSave = enable; 204 mAutomaticSave = enable;
200} 205}
201 206
202bool StdAddressBook::automaticSave() 207bool StdAddressBook::automaticSave()
203{ 208{
204 return mAutomaticSave; 209 return mAutomaticSave;
205} 210}
206 211
207// should get const for 4.X 212// should get const for 4.X
208Addressee StdAddressBook::whoAmI() 213Addressee StdAddressBook::whoAmI()
209{ 214{
210//US KConfig config( "kabcrc" ); 215//US KConfig config( "kabcrc" );
211 KConfig config( locateLocal("config", "kabcrc") ); 216 KConfig config( locateLocal("config", "kabcrc") );
212 config.setGroup( "General" ); 217 config.setGroup( "General" );
213 218
214 return findByUid( config.readEntry( "WhoAmI" ) ); 219 return findByUid( config.readEntry( "WhoAmI" ) );
215} 220}
216 221
217void StdAddressBook::setWhoAmI( const Addressee &addr ) 222void StdAddressBook::setWhoAmI( const Addressee &addr )
218{ 223{
219//US KConfig config( "kabcrc" ); 224//US KConfig config( "kabcrc" );
220 KConfig config( locateLocal("config", "kabcrc") ); 225 KConfig config( locateLocal("config", "kabcrc") );
221 config.setGroup( "General" ); 226 config.setGroup( "General" );
222 227
223 config.writeEntry( "WhoAmI", addr.uid() ); 228 config.writeEntry( "WhoAmI", addr.uid() );
224} 229}