author | zautrix <zautrix> | 2004-09-18 08:25:05 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2004-09-18 08:25:05 (UTC) |
commit | 983b010853dfadfec3638e2afd90e522985f67fb (patch) (unidiff) | |
tree | b691b7664b9f6f23d0d92a0e05bf3e8cbcf2df67 | |
parent | df03bd8c7ff6a738dd386001679542ae4b493a07 (diff) | |
download | kdepimpi-983b010853dfadfec3638e2afd90e522985f67fb.zip kdepimpi-983b010853dfadfec3638e2afd90e522985f67fb.tar.gz kdepimpi-983b010853dfadfec3638e2afd90e522985f67fb.tar.bz2 |
more AB syncing
-rw-r--r-- | kabc/addressbook.cpp | 101 | ||||
-rw-r--r-- | kabc/addressbook.h | 1 | ||||
-rw-r--r-- | kaddressbook/kabcore.cpp | 95 | ||||
-rw-r--r-- | kaddressbook/kabcore.h | 5 |
4 files changed, 186 insertions, 16 deletions
diff --git a/kabc/addressbook.cpp b/kabc/addressbook.cpp index 47d298a..70eda1b 100644 --- a/kabc/addressbook.cpp +++ b/kabc/addressbook.cpp | |||
@@ -213,104 +213,201 @@ bool AddressBook::ConstIterator::operator!=( const ConstIterator &it ) | |||
213 | return ( d->mIt != it.d->mIt ); | 213 | return ( d->mIt != it.d->mIt ); |
214 | } | 214 | } |
215 | 215 | ||
216 | 216 | ||
217 | AddressBook::AddressBook() | 217 | AddressBook::AddressBook() |
218 | { | 218 | { |
219 | init(0, "contact"); | 219 | init(0, "contact"); |
220 | } | 220 | } |
221 | 221 | ||
222 | AddressBook::AddressBook( const QString &config ) | 222 | AddressBook::AddressBook( const QString &config ) |
223 | { | 223 | { |
224 | init(config, "contact"); | 224 | init(config, "contact"); |
225 | } | 225 | } |
226 | 226 | ||
227 | AddressBook::AddressBook( const QString &config, const QString &family ) | 227 | AddressBook::AddressBook( const QString &config, const QString &family ) |
228 | { | 228 | { |
229 | init(config, family); | 229 | init(config, family); |
230 | 230 | ||
231 | } | 231 | } |
232 | 232 | ||
233 | // the default family is "contact" | 233 | // the default family is "contact" |
234 | void AddressBook::init(const QString &config, const QString &family ) | 234 | void AddressBook::init(const QString &config, const QString &family ) |
235 | { | 235 | { |
236 | d = new AddressBookData; | 236 | d = new AddressBookData; |
237 | QString fami = family; | ||
238 | qDebug("new ab "); | ||
237 | if (config != 0) { | 239 | if (config != 0) { |
240 | qDebug("config != 0 "); | ||
241 | if ( family == "syncContact" ) { | ||
242 | qDebug("creating sync config "); | ||
243 | fami = "contact"; | ||
244 | KConfig* con = new KConfig( locateLocal("config", "syncContactrc") ); | ||
245 | con->setGroup( "General" ); | ||
246 | con->writeEntry( "ResourceKeys", QString("sync") ); | ||
247 | con->writeEntry( "Standard", QString("sync") ); | ||
248 | con->setGroup( "Resource_sync" ); | ||
249 | con->writeEntry( "FileFormat", QString("vcard") ); | ||
250 | con->writeEntry( "FileName", config ); | ||
251 | con->writeEntry( "ResourceIdentifier", QString("sync") ); | ||
252 | con->writeEntry( "ResourceName", QString("sync_res") ); | ||
253 | con->writeEntry( "ResourceType", QString("file") ); | ||
254 | //con->sync(); | ||
255 | d->mConfig = con; | ||
256 | } | ||
257 | else | ||
238 | d->mConfig = new KConfig( locateLocal("config", config) ); | 258 | d->mConfig = new KConfig( locateLocal("config", config) ); |
239 | // qDebug("AddressBook::init 1 config=%s",config.latin1() ); | 259 | // qDebug("AddressBook::init 1 config=%s",config.latin1() ); |
240 | } | 260 | } |
241 | else { | 261 | else { |
242 | d->mConfig = 0; | 262 | d->mConfig = 0; |
243 | // qDebug("AddressBook::init 1 config=0"); | 263 | // qDebug("AddressBook::init 1 config=0"); |
244 | } | 264 | } |
245 | 265 | ||
246 | //US d->mErrorHandler = 0; | 266 | //US d->mErrorHandler = 0; |
247 | d->mManager = new KRES::Manager<Resource>( family, false ); | 267 | d->mManager = new KRES::Manager<Resource>( fami, false ); |
248 | d->mManager->readConfig( d->mConfig ); | 268 | d->mManager->readConfig( d->mConfig ); |
269 | if ( family == "syncContact" ) { | ||
270 | KRES::Manager<Resource> *manager = d->mManager; | ||
271 | KRES::Manager<Resource>::ActiveIterator it; | ||
272 | for ( it = manager->activeBegin(); it != manager->activeEnd(); ++it ) { | ||
273 | (*it)->setAddressBook( this ); | ||
274 | if ( !(*it)->open() ) | ||
275 | error( QString( "Unable to open resource '%1'!" ).arg( (*it)->resourceName() ) ); | ||
276 | } | ||
277 | Resource *res = standardResource(); | ||
278 | if ( !res ) { | ||
279 | qDebug("ERROR: no standard resource"); | ||
280 | res = manager->createResource( "file" ); | ||
281 | if ( res ) | ||
282 | { | ||
283 | addResource( res ); | ||
284 | } | ||
285 | else | ||
286 | qDebug(" No resource available!!!"); | ||
287 | } | ||
288 | setStandardResource( res ); | ||
289 | manager->writeConfig(); | ||
290 | } | ||
291 | addCustomField( i18n( "Department" ), KABC::Field::Organization, | ||
292 | "X-Department", "KADDRESSBOOK" ); | ||
293 | addCustomField( i18n( "Profession" ), KABC::Field::Organization, | ||
294 | "X-Profession", "KADDRESSBOOK" ); | ||
295 | addCustomField( i18n( "Assistant's Name" ), KABC::Field::Organization, | ||
296 | "X-AssistantsName", "KADDRESSBOOK" ); | ||
297 | addCustomField( i18n( "Manager's Name" ), KABC::Field::Organization, | ||
298 | "X-ManagersName", "KADDRESSBOOK" ); | ||
299 | addCustomField( i18n( "Spouse's Name" ), KABC::Field::Personal, | ||
300 | "X-SpousesName", "KADDRESSBOOK" ); | ||
301 | addCustomField( i18n( "Office" ), KABC::Field::Personal, | ||
302 | "X-Office", "KADDRESSBOOK" ); | ||
303 | addCustomField( i18n( "IM Address" ), KABC::Field::Personal, | ||
304 | "X-IMAddress", "KADDRESSBOOK" ); | ||
305 | addCustomField( i18n( "Anniversary" ), KABC::Field::Personal, | ||
306 | "X-Anniversary", "KADDRESSBOOK" ); | ||
307 | |||
308 | //US added this field to become compatible with Opie/qtopia addressbook | ||
309 | // values can be "female" or "male" or "". An empty field represents undefined. | ||
310 | addCustomField( i18n( "Gender" ), KABC::Field::Personal, | ||
311 | "X-Gender", "KADDRESSBOOK" ); | ||
312 | addCustomField( i18n( "Children" ), KABC::Field::Personal, | ||
313 | "X-Children", "KADDRESSBOOK" ); | ||
314 | addCustomField( i18n( "FreeBusyUrl" ), KABC::Field::Personal, | ||
315 | "X-FreeBusyUrl", "KADDRESSBOOK" ); | ||
316 | addCustomField( i18n( "ExternalID" ), KABC::Field::Personal, | ||
317 | "X-ExternalID", "KADDRESSBOOK" ); | ||
249 | } | 318 | } |
250 | 319 | ||
251 | AddressBook::~AddressBook() | 320 | AddressBook::~AddressBook() |
252 | { | 321 | { |
253 | delete d->mConfig; d->mConfig = 0; | 322 | delete d->mConfig; d->mConfig = 0; |
254 | delete d->mManager; d->mManager = 0; | 323 | delete d->mManager; d->mManager = 0; |
255 | //US delete d->mErrorHandler; d->mErrorHandler = 0; | 324 | //US delete d->mErrorHandler; d->mErrorHandler = 0; |
256 | delete d; d = 0; | 325 | delete d; d = 0; |
257 | } | 326 | } |
258 | 327 | ||
259 | bool AddressBook::load() | 328 | bool AddressBook::load() |
260 | { | 329 | { |
261 | 330 | ||
262 | 331 | ||
263 | clear(); | 332 | clear(); |
264 | 333 | ||
265 | KRES::Manager<Resource>::ActiveIterator it; | 334 | KRES::Manager<Resource>::ActiveIterator it; |
266 | bool ok = true; | 335 | bool ok = true; |
267 | for ( it = d->mManager->activeBegin(); it != d->mManager->activeEnd(); ++it ) | 336 | for ( it = d->mManager->activeBegin(); it != d->mManager->activeEnd(); ++it ) |
268 | if ( !(*it)->load() ) { | 337 | if ( !(*it)->load() ) { |
269 | error( i18n("Unable to load resource '%1'").arg( (*it)->resourceName() ) ); | 338 | error( i18n("Unable to load resource '%1'").arg( (*it)->resourceName() ) ); |
270 | ok = false; | 339 | ok = false; |
271 | } | 340 | } |
272 | 341 | ||
273 | // mark all addressees as unchanged | 342 | // mark all addressees as unchanged |
274 | Addressee::List::Iterator addrIt; | 343 | Addressee::List::Iterator addrIt; |
275 | for ( addrIt = d->mAddressees.begin(); addrIt != d->mAddressees.end(); ++addrIt ) | 344 | for ( addrIt = d->mAddressees.begin(); addrIt != d->mAddressees.end(); ++addrIt ) |
276 | (*addrIt).setChanged( false ); | 345 | (*addrIt).setChanged( false ); |
277 | 346 | ||
278 | return ok; | 347 | return ok; |
279 | } | 348 | } |
280 | 349 | ||
281 | bool AddressBook::save( Ticket *ticket ) | 350 | bool AddressBook::save( Ticket *ticket ) |
282 | { | 351 | { |
283 | kdDebug(5700) << "AddressBook::save()"<< endl; | 352 | kdDebug(5700) << "AddressBook::save()"<< endl; |
284 | 353 | ||
285 | if ( ticket->resource() ) { | 354 | if ( ticket->resource() ) { |
286 | deleteRemovedAddressees(); | 355 | deleteRemovedAddressees(); |
287 | |||
288 | return ticket->resource()->save( ticket ); | 356 | return ticket->resource()->save( ticket ); |
289 | } | 357 | } |
290 | 358 | ||
291 | return false; | 359 | return false; |
292 | } | 360 | } |
361 | bool AddressBook::saveAB() | ||
362 | { | ||
363 | bool ok = true; | ||
364 | |||
365 | deleteRemovedAddressees(); | ||
366 | |||
367 | KRES::Manager<Resource>::ActiveIterator it; | ||
368 | KRES::Manager<Resource> *manager = d->mManager; | ||
369 | for ( it = manager->activeBegin(); it != manager->activeEnd(); ++it ) { | ||
370 | if ( !(*it)->readOnly() && (*it)->isOpen() ) { | ||
371 | Ticket *ticket = requestSaveTicket( *it ); | ||
372 | // qDebug("StdAddressBook::save '%s'", (*it)->resourceName().latin1() ); | ||
373 | if ( !ticket ) { | ||
374 | error( i18n( "Unable to save to resource '%1'. It is locked." ) | ||
375 | .arg( (*it)->resourceName() ) ); | ||
376 | return false; | ||
377 | } | ||
378 | |||
379 | //if ( !save( ticket ) ) | ||
380 | if ( ticket->resource() ) { | ||
381 | if ( ! ticket->resource()->save( ticket ) ) | ||
382 | ok = false; | ||
383 | } else | ||
384 | ok = false; | ||
385 | |||
386 | } | ||
387 | } | ||
388 | return ok; | ||
389 | } | ||
293 | 390 | ||
294 | AddressBook::Iterator AddressBook::begin() | 391 | AddressBook::Iterator AddressBook::begin() |
295 | { | 392 | { |
296 | Iterator it = Iterator(); | 393 | Iterator it = Iterator(); |
297 | it.d->mIt = d->mAddressees.begin(); | 394 | it.d->mIt = d->mAddressees.begin(); |
298 | return it; | 395 | return it; |
299 | } | 396 | } |
300 | 397 | ||
301 | AddressBook::ConstIterator AddressBook::begin() const | 398 | AddressBook::ConstIterator AddressBook::begin() const |
302 | { | 399 | { |
303 | ConstIterator it = ConstIterator(); | 400 | ConstIterator it = ConstIterator(); |
304 | it.d->mIt = d->mAddressees.begin(); | 401 | it.d->mIt = d->mAddressees.begin(); |
305 | return it; | 402 | return it; |
306 | } | 403 | } |
307 | 404 | ||
308 | AddressBook::Iterator AddressBook::end() | 405 | AddressBook::Iterator AddressBook::end() |
309 | { | 406 | { |
310 | Iterator it = Iterator(); | 407 | Iterator it = Iterator(); |
311 | it.d->mIt = d->mAddressees.end(); | 408 | it.d->mIt = d->mAddressees.end(); |
312 | return it; | 409 | return it; |
313 | } | 410 | } |
314 | 411 | ||
315 | AddressBook::ConstIterator AddressBook::end() const | 412 | AddressBook::ConstIterator AddressBook::end() const |
316 | { | 413 | { |
diff --git a/kabc/addressbook.h b/kabc/addressbook.h index f89d7da..e43de31 100644 --- a/kabc/addressbook.h +++ b/kabc/addressbook.h | |||
@@ -120,48 +120,49 @@ class AddressBook : public QObject | |||
120 | virtual ~AddressBook(); | 120 | virtual ~AddressBook(); |
121 | 121 | ||
122 | /** | 122 | /** |
123 | Requests a ticket for saving the addressbook. Calling this function locks | 123 | Requests a ticket for saving the addressbook. Calling this function locks |
124 | the addressbook for all other processes. If the address book is already | 124 | the addressbook for all other processes. If the address book is already |
125 | locked the function returns 0. You need the returned @ref Ticket object | 125 | locked the function returns 0. You need the returned @ref Ticket object |
126 | for calling the @ref save() function. | 126 | for calling the @ref save() function. |
127 | 127 | ||
128 | @see save() | 128 | @see save() |
129 | */ | 129 | */ |
130 | Ticket *requestSaveTicket( Resource *resource=0 ); | 130 | Ticket *requestSaveTicket( Resource *resource=0 ); |
131 | 131 | ||
132 | /** | 132 | /** |
133 | Load address book from file. | 133 | Load address book from file. |
134 | */ | 134 | */ |
135 | bool load(); | 135 | bool load(); |
136 | 136 | ||
137 | /** | 137 | /** |
138 | Save address book. The address book is saved to the file, the Ticket | 138 | Save address book. The address book is saved to the file, the Ticket |
139 | object has been requested for by @ref requestSaveTicket(). | 139 | object has been requested for by @ref requestSaveTicket(). |
140 | 140 | ||
141 | @param ticket a ticket object returned by @ref requestSaveTicket() | 141 | @param ticket a ticket object returned by @ref requestSaveTicket() |
142 | */ | 142 | */ |
143 | bool save( Ticket *ticket ); | 143 | bool save( Ticket *ticket ); |
144 | bool saveAB( ); | ||
144 | 145 | ||
145 | /** | 146 | /** |
146 | Returns a iterator for first entry of address book. | 147 | Returns a iterator for first entry of address book. |
147 | */ | 148 | */ |
148 | Iterator begin(); | 149 | Iterator begin(); |
149 | 150 | ||
150 | /** | 151 | /** |
151 | Returns a const iterator for first entry of address book. | 152 | Returns a const iterator for first entry of address book. |
152 | */ | 153 | */ |
153 | ConstIterator begin() const; | 154 | ConstIterator begin() const; |
154 | 155 | ||
155 | /** | 156 | /** |
156 | Returns a iterator for first entry of address book. | 157 | Returns a iterator for first entry of address book. |
157 | */ | 158 | */ |
158 | Iterator end(); | 159 | Iterator end(); |
159 | 160 | ||
160 | /** | 161 | /** |
161 | Returns a const iterator for first entry of address book. | 162 | Returns a const iterator for first entry of address book. |
162 | */ | 163 | */ |
163 | ConstIterator end() const; | 164 | ConstIterator end() const; |
164 | 165 | ||
165 | /** | 166 | /** |
166 | Removes all entries from address book. | 167 | Removes all entries from address book. |
167 | */ | 168 | */ |
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp index 49c3b19..e912941 100644 --- a/kaddressbook/kabcore.cpp +++ b/kaddressbook/kabcore.cpp | |||
@@ -127,105 +127,108 @@ $Id$ | |||
127 | #include <kabc/vcardconverter.h> | 127 | #include <kabc/vcardconverter.h> |
128 | 128 | ||
129 | 129 | ||
130 | #include "addresseeutil.h" | 130 | #include "addresseeutil.h" |
131 | #include "undocmds.h" | 131 | #include "undocmds.h" |
132 | #include "addresseeeditordialog.h" | 132 | #include "addresseeeditordialog.h" |
133 | #include "viewmanager.h" | 133 | #include "viewmanager.h" |
134 | #include "details/detailsviewcontainer.h" | 134 | #include "details/detailsviewcontainer.h" |
135 | #include "kabprefs.h" | 135 | #include "kabprefs.h" |
136 | #include "xxportmanager.h" | 136 | #include "xxportmanager.h" |
137 | #include "incsearchwidget.h" | 137 | #include "incsearchwidget.h" |
138 | #include "jumpbuttonbar.h" | 138 | #include "jumpbuttonbar.h" |
139 | #include "extensionmanager.h" | 139 | #include "extensionmanager.h" |
140 | #include "addresseeconfig.h" | 140 | #include "addresseeconfig.h" |
141 | #include <kcmultidialog.h> | 141 | #include <kcmultidialog.h> |
142 | 142 | ||
143 | #ifdef _WIN32_ | 143 | #ifdef _WIN32_ |
144 | 144 | ||
145 | #include "kaimportoldialog.h" | 145 | #include "kaimportoldialog.h" |
146 | #else | 146 | #else |
147 | #include <unistd.h> | 147 | #include <unistd.h> |
148 | #endif | 148 | #endif |
149 | // sync includes | 149 | // sync includes |
150 | #include <libkdepim/ksyncprofile.h> | 150 | #include <libkdepim/ksyncprofile.h> |
151 | #include <libkdepim/ksyncprefsdialog.h> | ||
151 | 152 | ||
152 | 153 | ||
153 | bool pasteWithNewUid = true; | 154 | bool pasteWithNewUid = true; |
154 | 155 | ||
155 | #ifdef KAB_EMBEDDED | 156 | #ifdef KAB_EMBEDDED |
156 | KABCore::KABCore( KAddressBookMain *client, bool readWrite, QWidget *parent, const char *name ) | 157 | KABCore::KABCore( KAddressBookMain *client, bool readWrite, QWidget *parent, const char *name ) |
157 | : QWidget( parent, name ), mGUIClient( client ), mViewManager( 0 ), | 158 | : QWidget( parent, name ), mGUIClient( client ), mViewManager( 0 ), |
158 | mExtensionManager( 0 ),mConfigureDialog( 0 ),/*US mLdapSearchDialog( 0 ),*/ | 159 | mExtensionManager( 0 ),mConfigureDialog( 0 ),/*US mLdapSearchDialog( 0 ),*/ |
159 | mReadWrite( readWrite ), mModified( false ), mMainWindow(client) | 160 | mReadWrite( readWrite ), mModified( false ), mMainWindow(client) |
160 | #else //KAB_EMBEDDED | 161 | #else //KAB_EMBEDDED |
161 | KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const char *name ) | 162 | KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const char *name ) |
162 | : QWidget( parent, name ), mGUIClient( client ), mViewManager( 0 ), | 163 | : QWidget( parent, name ), mGUIClient( client ), mViewManager( 0 ), |
163 | mExtensionManager( 0 ), mConfigureDialog( 0 ), mLdapSearchDialog( 0 ), | 164 | mExtensionManager( 0 ), mConfigureDialog( 0 ), mLdapSearchDialog( 0 ), |
164 | mReadWrite( readWrite ), mModified( false ) | 165 | mReadWrite( readWrite ), mModified( false ) |
165 | #endif //KAB_EMBEDDED | 166 | #endif //KAB_EMBEDDED |
166 | { | 167 | { |
167 | 168 | ||
168 | mBlockSaveFlag = false; | 169 | mBlockSaveFlag = false; |
169 | mExtensionBarSplitter = 0; | 170 | mExtensionBarSplitter = 0; |
170 | mIsPart = !parent->inherits( "KAddressBookMain" ); | 171 | mIsPart = !parent->inherits( "KAddressBookMain" ); |
171 | 172 | ||
172 | mAddressBook = KABC::StdAddressBook::self(); | 173 | mAddressBook = KABC::StdAddressBook::self(); |
173 | KABC::StdAddressBook::setAutomaticSave( false ); | 174 | KABC::StdAddressBook::setAutomaticSave( false ); |
174 | 175 | ||
175 | #ifndef KAB_EMBEDDED | 176 | #ifndef KAB_EMBEDDED |
176 | mAddressBook->setErrorHandler( new KABC::GUIErrorHandler ); | 177 | mAddressBook->setErrorHandler( new KABC::GUIErrorHandler ); |
177 | #endif //KAB_EMBEDDED | 178 | #endif //KAB_EMBEDDED |
178 | 179 | ||
179 | connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook * ) ), | 180 | connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook * ) ), |
180 | SLOT( addressBookChanged() ) ); | 181 | SLOT( addressBookChanged() ) ); |
181 | 182 | ||
183 | #if 0 | ||
184 | // LP moved to addressbook init method | ||
182 | mAddressBook->addCustomField( i18n( "Department" ), KABC::Field::Organization, | 185 | mAddressBook->addCustomField( i18n( "Department" ), KABC::Field::Organization, |
183 | "X-Department", "KADDRESSBOOK" ); | 186 | "X-Department", "KADDRESSBOOK" ); |
184 | mAddressBook->addCustomField( i18n( "Profession" ), KABC::Field::Organization, | 187 | mAddressBook->addCustomField( i18n( "Profession" ), KABC::Field::Organization, |
185 | "X-Profession", "KADDRESSBOOK" ); | 188 | "X-Profession", "KADDRESSBOOK" ); |
186 | mAddressBook->addCustomField( i18n( "Assistant's Name" ), KABC::Field::Organization, | 189 | mAddressBook->addCustomField( i18n( "Assistant's Name" ), KABC::Field::Organization, |
187 | "X-AssistantsName", "KADDRESSBOOK" ); | 190 | "X-AssistantsName", "KADDRESSBOOK" ); |
188 | mAddressBook->addCustomField( i18n( "Manager's Name" ), KABC::Field::Organization, | 191 | mAddressBook->addCustomField( i18n( "Manager's Name" ), KABC::Field::Organization, |
189 | "X-ManagersName", "KADDRESSBOOK" ); | 192 | "X-ManagersName", "KADDRESSBOOK" ); |
190 | mAddressBook->addCustomField( i18n( "Spouse's Name" ), KABC::Field::Personal, | 193 | mAddressBook->addCustomField( i18n( "Spouse's Name" ), KABC::Field::Personal, |
191 | "X-SpousesName", "KADDRESSBOOK" ); | 194 | "X-SpousesName", "KADDRESSBOOK" ); |
192 | mAddressBook->addCustomField( i18n( "Office" ), KABC::Field::Personal, | 195 | mAddressBook->addCustomField( i18n( "Office" ), KABC::Field::Personal, |
193 | "X-Office", "KADDRESSBOOK" ); | 196 | "X-Office", "KADDRESSBOOK" ); |
194 | mAddressBook->addCustomField( i18n( "IM Address" ), KABC::Field::Personal, | 197 | mAddressBook->addCustomField( i18n( "IM Address" ), KABC::Field::Personal, |
195 | "X-IMAddress", "KADDRESSBOOK" ); | 198 | "X-IMAddress", "KADDRESSBOOK" ); |
196 | mAddressBook->addCustomField( i18n( "Anniversary" ), KABC::Field::Personal, | 199 | mAddressBook->addCustomField( i18n( "Anniversary" ), KABC::Field::Personal, |
197 | "X-Anniversary", "KADDRESSBOOK" ); | 200 | "X-Anniversary", "KADDRESSBOOK" ); |
198 | 201 | ||
199 | //US added this field to become compatible with Opie/qtopia addressbook | 202 | //US added this field to become compatible with Opie/qtopia addressbook |
200 | // values can be "female" or "male" or "". An empty field represents undefined. | 203 | // values can be "female" or "male" or "". An empty field represents undefined. |
201 | mAddressBook->addCustomField( i18n( "Gender" ), KABC::Field::Personal, | 204 | mAddressBook->addCustomField( i18n( "Gender" ), KABC::Field::Personal, |
202 | "X-Gender", "KADDRESSBOOK" ); | 205 | "X-Gender", "KADDRESSBOOK" ); |
203 | mAddressBook->addCustomField( i18n( "Children" ), KABC::Field::Personal, | 206 | mAddressBook->addCustomField( i18n( "Children" ), KABC::Field::Personal, |
204 | "X-Children", "KADDRESSBOOK" ); | 207 | "X-Children", "KADDRESSBOOK" ); |
205 | mAddressBook->addCustomField( i18n( "FreeBusyUrl" ), KABC::Field::Personal, | 208 | mAddressBook->addCustomField( i18n( "FreeBusyUrl" ), KABC::Field::Personal, |
206 | "X-FreeBusyUrl", "KADDRESSBOOK" ); | 209 | "X-FreeBusyUrl", "KADDRESSBOOK" ); |
207 | 210 | #endif | |
208 | initGUI(); | 211 | initGUI(); |
209 | 212 | ||
210 | mIncSearchWidget->setFocus(); | 213 | mIncSearchWidget->setFocus(); |
211 | 214 | ||
212 | 215 | ||
213 | connect( mViewManager, SIGNAL( selected( const QString& ) ), | 216 | connect( mViewManager, SIGNAL( selected( const QString& ) ), |
214 | SLOT( setContactSelected( const QString& ) ) ); | 217 | SLOT( setContactSelected( const QString& ) ) ); |
215 | connect( mViewManager, SIGNAL( executed( const QString& ) ), | 218 | connect( mViewManager, SIGNAL( executed( const QString& ) ), |
216 | SLOT( executeContact( const QString& ) ) ); | 219 | SLOT( executeContact( const QString& ) ) ); |
217 | 220 | ||
218 | connect( mViewManager, SIGNAL( deleteRequest( ) ), | 221 | connect( mViewManager, SIGNAL( deleteRequest( ) ), |
219 | SLOT( deleteContacts( ) ) ); | 222 | SLOT( deleteContacts( ) ) ); |
220 | connect( mViewManager, SIGNAL( modified() ), | 223 | connect( mViewManager, SIGNAL( modified() ), |
221 | SLOT( setModified() ) ); | 224 | SLOT( setModified() ) ); |
222 | 225 | ||
223 | connect( mExtensionManager, SIGNAL( modified( const KABC::Addressee::List& ) ), this, SLOT( extensionModified( const KABC::Addressee::List& ) ) ); | 226 | connect( mExtensionManager, SIGNAL( modified( const KABC::Addressee::List& ) ), this, SLOT( extensionModified( const KABC::Addressee::List& ) ) ); |
224 | connect( mExtensionManager, SIGNAL( changedActiveExtension( int ) ), this, SLOT( extensionChanged( int ) ) ); | 227 | connect( mExtensionManager, SIGNAL( changedActiveExtension( int ) ), this, SLOT( extensionChanged( int ) ) ); |
225 | 228 | ||
226 | connect( mXXPortManager, SIGNAL( modified() ), | 229 | connect( mXXPortManager, SIGNAL( modified() ), |
227 | SLOT( setModified() ) ); | 230 | SLOT( setModified() ) ); |
228 | 231 | ||
229 | connect( mJumpButtonBar, SIGNAL( jumpToLetter( const QString& ) ), | 232 | connect( mJumpButtonBar, SIGNAL( jumpToLetter( const QString& ) ), |
230 | SLOT( incrementalSearch( const QString& ) ) ); | 233 | SLOT( incrementalSearch( const QString& ) ) ); |
231 | connect( mIncSearchWidget, SIGNAL( fieldChanged() ), | 234 | connect( mIncSearchWidget, SIGNAL( fieldChanged() ), |
@@ -2174,50 +2177,50 @@ void KABCore::slotSyncMenu( int action ) | |||
2174 | mCurrentSyncName = KABPrefs::instance()->mLocalMachineName ; | 2177 | mCurrentSyncName = KABPrefs::instance()->mLocalMachineName ; |
2175 | KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); | 2178 | KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); |
2176 | KSyncProfile* temp = new KSyncProfile (); | 2179 | KSyncProfile* temp = new KSyncProfile (); |
2177 | temp->setName(KABPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); | 2180 | temp->setName(KABPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); |
2178 | temp->readConfig(&config); | 2181 | temp->readConfig(&config); |
2179 | KABPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); | 2182 | KABPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); |
2180 | KABPrefs::instance()->mSyncAlgoPrefs = temp->getSyncPrefs(); | 2183 | KABPrefs::instance()->mSyncAlgoPrefs = temp->getSyncPrefs(); |
2181 | KABPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); | 2184 | KABPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); |
2182 | KABPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); | 2185 | KABPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); |
2183 | KABPrefs::instance()->mWriteBackInFuture = 0; | 2186 | KABPrefs::instance()->mWriteBackInFuture = 0; |
2184 | if ( temp->getWriteBackFuture() ) | 2187 | if ( temp->getWriteBackFuture() ) |
2185 | KABPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); | 2188 | KABPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); |
2186 | KABPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync(); | 2189 | KABPrefs::instance()->mShowSyncSummary = temp->getShowSummaryAfterSync(); |
2187 | if ( action == 1000 ) { | 2190 | if ( action == 1000 ) { |
2188 | syncSharp(); | 2191 | syncSharp(); |
2189 | 2192 | ||
2190 | } else if ( action == 1001 ) { | 2193 | } else if ( action == 1001 ) { |
2191 | syncLocalFile(); | 2194 | syncLocalFile(); |
2192 | 2195 | ||
2193 | } else if ( action == 1002 ) { | 2196 | } else if ( action == 1002 ) { |
2194 | quickSyncLocalFile(); | 2197 | quickSyncLocalFile(); |
2195 | 2198 | ||
2196 | } else if ( action >= 1003 ) { | 2199 | } else if ( action >= 1003 ) { |
2197 | if ( temp->getIsLocalFileSync() ) { | 2200 | if ( temp->getIsLocalFileSync() ) { |
2198 | if ( syncWithFile( temp->getRemoteFileName( ), false ) ) | 2201 | if ( syncWithFile( temp->getRemoteFileNameAB( ), false ) ) |
2199 | KABPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName(); | 2202 | KABPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileNameAB(); |
2200 | } else { | 2203 | } else { |
2201 | if ( temp->getIsPhoneSync() ) { | 2204 | if ( temp->getIsPhoneSync() ) { |
2202 | KABPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ; | 2205 | KABPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ; |
2203 | KABPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( ); | 2206 | KABPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( ); |
2204 | KABPrefs::instance()->mPhoneModel = temp->getPhoneModel( ); | 2207 | KABPrefs::instance()->mPhoneModel = temp->getPhoneModel( ); |
2205 | syncPhone(); | 2208 | syncPhone(); |
2206 | } else | 2209 | } else |
2207 | syncRemote( temp ); | 2210 | syncRemote( temp ); |
2208 | 2211 | ||
2209 | } | 2212 | } |
2210 | } | 2213 | } |
2211 | delete temp; | 2214 | delete temp; |
2212 | mBlockSaveFlag = false; | 2215 | mBlockSaveFlag = false; |
2213 | } | 2216 | } |
2214 | 2217 | ||
2215 | void KABCore::syncLocalFile() | 2218 | void KABCore::syncLocalFile() |
2216 | { | 2219 | { |
2217 | 2220 | ||
2218 | QString fn =KABPrefs::instance()->mLastSyncedLocalFile; | 2221 | QString fn =KABPrefs::instance()->mLastSyncedLocalFile; |
2219 | 2222 | ||
2220 | fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.ics/*.vcs)"), this ); | 2223 | fn =KFileDialog:: getOpenFileName( fn, i18n("Sync filename(*.ics/*.vcs)"), this ); |
2221 | if ( fn == "" ) | 2224 | if ( fn == "" ) |
2222 | return; | 2225 | return; |
2223 | if ( syncWithFile( fn, false ) ) { | 2226 | if ( syncWithFile( fn, false ) ) { |
@@ -2296,143 +2299,143 @@ void KABCore::multiSync( bool askforPrefs ) | |||
2296 | if ( num > 1 ) | 2299 | if ( num > 1 ) |
2297 | ringSync(); | 2300 | ringSync(); |
2298 | mBlockSaveFlag = false; | 2301 | mBlockSaveFlag = false; |
2299 | if ( num ) | 2302 | if ( num ) |
2300 | save(); | 2303 | save(); |
2301 | if ( num ) | 2304 | if ( num ) |
2302 | setCaption(i18n("%1 profiles synced. Multiple sync completed!").arg(num) ); | 2305 | setCaption(i18n("%1 profiles synced. Multiple sync completed!").arg(num) ); |
2303 | else | 2306 | else |
2304 | setCaption(i18n("Nothing synced! No profiles defined for multisync!")); | 2307 | setCaption(i18n("Nothing synced! No profiles defined for multisync!")); |
2305 | return; | 2308 | return; |
2306 | } | 2309 | } |
2307 | int KABCore::ringSync() | 2310 | int KABCore::ringSync() |
2308 | { | 2311 | { |
2309 | int syncedProfiles = 0; | 2312 | int syncedProfiles = 0; |
2310 | int i; | 2313 | int i; |
2311 | QTime timer; | 2314 | QTime timer; |
2312 | KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); | 2315 | KConfig config ( locateLocal( "config","ksyncprofilesrc" ) ); |
2313 | QStringList syncProfileNames = KABPrefs::instance()->mSyncProfileNames; | 2316 | QStringList syncProfileNames = KABPrefs::instance()->mSyncProfileNames; |
2314 | KSyncProfile* temp = new KSyncProfile (); | 2317 | KSyncProfile* temp = new KSyncProfile (); |
2315 | KABPrefs::instance()->mAskForPreferences = false; | 2318 | KABPrefs::instance()->mAskForPreferences = false; |
2316 | for ( i = 0; i < syncProfileNames.count(); ++i ) { | 2319 | for ( i = 0; i < syncProfileNames.count(); ++i ) { |
2317 | mCurrentSyncProfile = i; | 2320 | mCurrentSyncProfile = i; |
2318 | temp->setName(syncProfileNames[mCurrentSyncProfile]); | 2321 | temp->setName(syncProfileNames[mCurrentSyncProfile]); |
2319 | temp->readConfig(&config); | 2322 | temp->readConfig(&config); |
2320 | if ( temp->getIncludeInRingSync() && ( i < 1 || i > 2 )) { | 2323 | if ( temp->getIncludeInRingSyncAB() && ( i < 1 || i > 2 )) { |
2321 | setCaption(i18n("Profile ")+syncProfileNames[mCurrentSyncProfile]+ i18n(" is synced ... ")); | 2324 | setCaption(i18n("Profile ")+syncProfileNames[mCurrentSyncProfile]+ i18n(" is synced ... ")); |
2322 | ++syncedProfiles; | 2325 | ++syncedProfiles; |
2323 | // KABPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); | 2326 | // KABPrefs::instance()->mAskForPreferences = temp->getAskForPreferences(); |
2324 | KABPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); | 2327 | KABPrefs::instance()->mWriteBackFile = temp->getWriteBackFile(); |
2325 | KABPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); | 2328 | KABPrefs::instance()->mWriteBackExistingOnly = temp->getWriteBackExisting(); |
2326 | KABPrefs::instance()->mWriteBackInFuture = 0; | 2329 | KABPrefs::instance()->mWriteBackInFuture = 0; |
2327 | if ( temp->getWriteBackFuture() ) | 2330 | if ( temp->getWriteBackFuture() ) |
2328 | KABPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); | 2331 | KABPrefs::instance()->mWriteBackInFuture = temp->getWriteBackFutureWeeks( ); |
2329 | KABPrefs::instance()->mShowSyncSummary = false; | 2332 | KABPrefs::instance()->mShowSyncSummary = false; |
2330 | mCurrentSyncDevice = syncProfileNames[i] ; | 2333 | mCurrentSyncDevice = syncProfileNames[i] ; |
2331 | mCurrentSyncName = KABPrefs::instance()->mLocalMachineName; | 2334 | mCurrentSyncName = KABPrefs::instance()->mLocalMachineName; |
2332 | if ( i == 0 ) { | 2335 | if ( i == 0 ) { |
2333 | syncSharp(); | 2336 | syncSharp(); |
2334 | } else { | 2337 | } else { |
2335 | if ( temp->getIsLocalFileSync() ) { | 2338 | if ( temp->getIsLocalFileSync() ) { |
2336 | if ( syncWithFile( temp->getRemoteFileName( ), true ) ) | 2339 | if ( syncWithFile( temp->getRemoteFileNameAB( ), true ) ) |
2337 | KABPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileName(); | 2340 | KABPrefs::instance()->mLastSyncedLocalFile = temp->getRemoteFileNameAB(); |
2338 | } else { | 2341 | } else { |
2339 | if ( temp->getIsPhoneSync() ) { | 2342 | if ( temp->getIsPhoneSync() ) { |
2340 | KABPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ; | 2343 | KABPrefs::instance()->mPhoneDevice = temp->getPhoneDevice( ) ; |
2341 | KABPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( ); | 2344 | KABPrefs::instance()->mPhoneConnection = temp->getPhoneConnection( ); |
2342 | KABPrefs::instance()->mPhoneModel = temp->getPhoneModel( ); | 2345 | KABPrefs::instance()->mPhoneModel = temp->getPhoneModel( ); |
2343 | syncPhone(); | 2346 | syncPhone(); |
2344 | } else | 2347 | } else |
2345 | syncRemote( temp, false ); | 2348 | syncRemote( temp, false ); |
2346 | 2349 | ||
2347 | } | 2350 | } |
2348 | } | 2351 | } |
2349 | timer.start(); | 2352 | timer.start(); |
2350 | setCaption(i18n("Multiple sync in progress ... please wait!") ); | 2353 | setCaption(i18n("Multiple sync in progress ... please wait!") ); |
2351 | while ( timer.elapsed () < 2000 ) { | 2354 | while ( timer.elapsed () < 2000 ) { |
2352 | qApp->processEvents(); | 2355 | qApp->processEvents(); |
2353 | #ifndef _WIN32_ | 2356 | #ifndef _WIN32_ |
2354 | sleep (1); | 2357 | sleep (1); |
2355 | #endif | 2358 | #endif |
2356 | } | 2359 | } |
2357 | 2360 | ||
2358 | } | 2361 | } |
2359 | 2362 | ||
2360 | } | 2363 | } |
2361 | delete temp; | 2364 | delete temp; |
2362 | return syncedProfiles; | 2365 | return syncedProfiles; |
2363 | } | 2366 | } |
2364 | 2367 | ||
2365 | void KABCore::syncRemote( KSyncProfile* prof, bool ask) | 2368 | void KABCore::syncRemote( KSyncProfile* prof, bool ask) |
2366 | { | 2369 | { |
2367 | QString question; | 2370 | QString question; |
2368 | if ( ask ) { | 2371 | if ( ask ) { |
2369 | question = i18n("Do you really want\nto remote sync\nwith profile \n")+ prof->getName()+" ?\n"; | 2372 | question = i18n("Do you really want\nto remote sync\nwith profile \n")+ prof->getName()+" ?\n"; |
2370 | if ( QMessageBox::information( this, i18n("KO/Pi Sync"), | 2373 | if ( QMessageBox::information( this, i18n("KO/Pi Sync"), |
2371 | question, | 2374 | question, |
2372 | i18n("Yes"), i18n("No"), | 2375 | i18n("Yes"), i18n("No"), |
2373 | 0, 0 ) != 0 ) | 2376 | 0, 0 ) != 0 ) |
2374 | return; | 2377 | return; |
2375 | } | 2378 | } |
2376 | QString command = prof->getPreSyncCommand(); | 2379 | QString command = prof->getPreSyncCommandAB(); |
2377 | int fi; | 2380 | int fi; |
2378 | if ( (fi = command.find("$PWD$")) > 0 ) { | 2381 | if ( (fi = command.find("$PWD$")) > 0 ) { |
2379 | QString pwd = getPassword(); | 2382 | QString pwd = getPassword(); |
2380 | command = command.left( fi )+ pwd + command.mid( fi+5 ); | 2383 | command = command.left( fi )+ pwd + command.mid( fi+5 ); |
2381 | 2384 | ||
2382 | } | 2385 | } |
2383 | int maxlen = 30; | 2386 | int maxlen = 30; |
2384 | if ( QApplication::desktop()->width() > 320 ) | 2387 | if ( QApplication::desktop()->width() > 320 ) |
2385 | maxlen += 25; | 2388 | maxlen += 25; |
2386 | setCaption ( i18n( "Copy remote file to local machine..." ) ); | 2389 | setCaption ( i18n( "Copy remote file to local machine..." ) ); |
2387 | int fileSize = 0; | 2390 | int fileSize = 0; |
2388 | int result = system ( command ); | 2391 | int result = system ( command ); |
2389 | // 0 : okay | 2392 | // 0 : okay |
2390 | // 256: no such file or dir | 2393 | // 256: no such file or dir |
2391 | // | 2394 | // |
2392 | qDebug("KO: Remote copy result(0 = okay): %d ",result ); | 2395 | qDebug("KO: Remote copy result(0 = okay): %d ",result ); |
2393 | if ( result != 0 ) { | 2396 | if ( result != 0 ) { |
2394 | int len = maxlen; | 2397 | int len = maxlen; |
2395 | while ( len < command.length() ) { | 2398 | while ( len < command.length() ) { |
2396 | command.insert( len , "\n" ); | 2399 | command.insert( len , "\n" ); |
2397 | len += maxlen +2; | 2400 | len += maxlen +2; |
2398 | } | 2401 | } |
2399 | question = i18n("Sorry, the copy command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n").arg (command) ; | 2402 | question = i18n("Sorry, the copy command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n").arg (command) ; |
2400 | QMessageBox::information( this, i18n("KO/Pi Sync - ERROR"), | 2403 | QMessageBox::information( this, i18n("KO/Pi Sync - ERROR"), |
2401 | question, | 2404 | question, |
2402 | i18n("Okay!")) ; | 2405 | i18n("Okay!")) ; |
2403 | setCaption ("KO/Pi"); | 2406 | setCaption ("KO/Pi"); |
2404 | return; | 2407 | return; |
2405 | } | 2408 | } |
2406 | setCaption ( i18n( "Copying succeed." ) ); | 2409 | setCaption ( i18n( "Copying succeed." ) ); |
2407 | //qDebug(" file **%s** ",prof->getLocalTempFile().latin1() ); | 2410 | //qDebug(" file **%s** ",prof->getLocalTempFile().latin1() ); |
2408 | if ( syncWithFile( prof->getLocalTempFile(), true ) ) { | 2411 | if ( syncWithFile( prof->getLocalTempFileAB(), true ) ) { |
2409 | // Event* e = mView->getLastSyncEvent(); | 2412 | // Event* e = mView->getLastSyncEvent(); |
2410 | // e->setReadOnly( false ); | 2413 | // e->setReadOnly( false ); |
2411 | // e->setLocation( KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); | 2414 | // e->setLocation( KOPrefs::instance()->mSyncProfileNames[mCurrentSyncProfile]); |
2412 | // e->setReadOnly( true ); | 2415 | // e->setReadOnly( true ); |
2413 | if ( KABPrefs::instance()->mWriteBackFile ) { | 2416 | if ( KABPrefs::instance()->mWriteBackFile ) { |
2414 | command = prof->getPostSyncCommand(); | 2417 | command = prof->getPostSyncCommandAB(); |
2415 | int fi; | 2418 | int fi; |
2416 | if ( (fi = command.find("$PWD$")) > 0 ) { | 2419 | if ( (fi = command.find("$PWD$")) > 0 ) { |
2417 | QString pwd = getPassword(); | 2420 | QString pwd = getPassword(); |
2418 | command = command.left( fi )+ pwd + command.mid( fi+5 ); | 2421 | command = command.left( fi )+ pwd + command.mid( fi+5 ); |
2419 | 2422 | ||
2420 | } | 2423 | } |
2421 | setCaption ( i18n( "Writing back file ..." ) ); | 2424 | setCaption ( i18n( "Writing back file ..." ) ); |
2422 | result = system ( command ); | 2425 | result = system ( command ); |
2423 | qDebug("KO: Writing back file result: %d ", result); | 2426 | qDebug("KO: Writing back file result: %d ", result); |
2424 | if ( result != 0 ) { | 2427 | if ( result != 0 ) { |
2425 | setCaption ( i18n( "Writing back file result: " )+QString::number( result ) ); | 2428 | setCaption ( i18n( "Writing back file result: " )+QString::number( result ) ); |
2426 | return; | 2429 | return; |
2427 | } else { | 2430 | } else { |
2428 | setCaption ( i18n( "Syncronization sucessfully completed" ) ); | 2431 | setCaption ( i18n( "Syncronization sucessfully completed" ) ); |
2429 | } | 2432 | } |
2430 | } | 2433 | } |
2431 | } | 2434 | } |
2432 | return; | 2435 | return; |
2433 | } | 2436 | } |
2434 | #include <qpushbutton.h> | 2437 | #include <qpushbutton.h> |
2435 | #include <qradiobutton.h> | 2438 | #include <qradiobutton.h> |
2436 | #include <qbuttongroup.h> | 2439 | #include <qbuttongroup.h> |
2437 | void KABCore::edit_sync_options() | 2440 | void KABCore::edit_sync_options() |
2438 | { | 2441 | { |
@@ -2489,55 +2492,121 @@ void KABCore::edit_sync_options() | |||
2489 | QString KABCore::getPassword( ) | 2492 | QString KABCore::getPassword( ) |
2490 | { | 2493 | { |
2491 | QString retfile = ""; | 2494 | QString retfile = ""; |
2492 | QDialog dia ( this, "input-dialog", true ); | 2495 | QDialog dia ( this, "input-dialog", true ); |
2493 | QLineEdit lab ( &dia ); | 2496 | QLineEdit lab ( &dia ); |
2494 | lab.setEchoMode( QLineEdit::Password ); | 2497 | lab.setEchoMode( QLineEdit::Password ); |
2495 | QVBoxLayout lay( &dia ); | 2498 | QVBoxLayout lay( &dia ); |
2496 | lay.setMargin(7); | 2499 | lay.setMargin(7); |
2497 | lay.setSpacing(7); | 2500 | lay.setSpacing(7); |
2498 | lay.addWidget( &lab); | 2501 | lay.addWidget( &lab); |
2499 | dia.setFixedSize( 230,50 ); | 2502 | dia.setFixedSize( 230,50 ); |
2500 | dia.setCaption( i18n("Enter password") ); | 2503 | dia.setCaption( i18n("Enter password") ); |
2501 | QPushButton pb ( "OK", &dia); | 2504 | QPushButton pb ( "OK", &dia); |
2502 | lay.addWidget( &pb ); | 2505 | lay.addWidget( &pb ); |
2503 | connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); | 2506 | connect(&pb, SIGNAL( clicked() ), &dia, SLOT ( accept() ) ); |
2504 | dia.show(); | 2507 | dia.show(); |
2505 | int res = dia.exec(); | 2508 | int res = dia.exec(); |
2506 | if ( res ) | 2509 | if ( res ) |
2507 | retfile = lab.text(); | 2510 | retfile = lab.text(); |
2508 | dia.hide(); | 2511 | dia.hide(); |
2509 | qApp->processEvents(); | 2512 | qApp->processEvents(); |
2510 | return retfile; | 2513 | return retfile; |
2511 | 2514 | ||
2512 | } | 2515 | } |
2516 | bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBook* remote,int mode) | ||
2517 | { | ||
2513 | 2518 | ||
2519 | } | ||
2514 | bool KABCore::syncAB(QString filename, int mode) | 2520 | bool KABCore::syncAB(QString filename, int mode) |
2515 | { | 2521 | { |
2516 | 2522 | ||
2523 | |||
2524 | |||
2525 | mGlobalSyncMode = SYNC_MODE_NORMAL; | ||
2526 | AddressBook abLocal(filename,"syncContact"); | ||
2527 | bool syncOK = false; | ||
2528 | if ( abLocal.load() ) { | ||
2529 | qDebug("AB loaded %s mode %d",filename.latin1(), mode ); | ||
2530 | AddressBook::Iterator it; | ||
2531 | QStringList vcards; | ||
2532 | for ( it = abLocal.begin(); it != abLocal.end(); ++it ) { | ||
2533 | qDebug("Name %s ", (*it).familyName().latin1()); | ||
2534 | } | ||
2535 | syncOK = synchronizeAddressbooks( mAddressBook, &abLocal, mode ); | ||
2536 | if ( syncOK ) { | ||
2537 | if ( KABPrefs::instance()->mWriteBackFile ) | ||
2538 | { | ||
2539 | abLocal.saveAB(); | ||
2540 | } | ||
2541 | } | ||
2542 | setModified(); | ||
2543 | |||
2544 | } | ||
2545 | if ( syncOK ) | ||
2546 | ;//updateView(); | ||
2547 | return syncOK; | ||
2548 | #if 0 | ||
2549 | mGlobalSyncMode = SYNC_MODE_NORMAL; | ||
2550 | CalendarLocal* calendar = new CalendarLocal(); | ||
2551 | calendar->setTimeZoneId(KOPrefs::instance()->mTimeZoneId); | ||
2552 | FileStorage* storage = new FileStorage( calendar ); | ||
2553 | bool syncOK = false; | ||
2554 | storage->setFileName( filename ); | ||
2555 | // qDebug("loading ... "); | ||
2556 | if ( storage->load(KOPrefs::instance()->mUseQuicksave) ) { | ||
2557 | getEventViewerDialog()->setSyncMode( true ); | ||
2558 | syncOK = synchronizeCalendar( mCalendar, calendar, mode ); | ||
2559 | getEventViewerDialog()->setSyncMode( false ); | ||
2560 | if ( syncOK ) { | ||
2561 | if ( KOPrefs::instance()->mWriteBackFile ) | ||
2562 | { | ||
2563 | storage->setSaveFormat( new ICalFormat( KOPrefs::instance()->mUseQuicksave) ); | ||
2564 | storage->save(); | ||
2565 | } | ||
2566 | } | ||
2567 | setModified(); | ||
2568 | } | ||
2569 | delete storage; | ||
2570 | delete calendar; | ||
2571 | if ( syncOK ) | ||
2572 | updateView(); | ||
2573 | return syncOK; | ||
2574 | #endif | ||
2517 | } | 2575 | } |
2518 | 2576 | ||
2519 | 2577 | ||
2520 | void KABCore::confSync() | 2578 | void KABCore::confSync() |
2521 | { | 2579 | { |
2522 | //mView->confSync(); | 2580 | static KSyncPrefsDialog* sp = 0; |
2523 | qDebug("pending KABCore::confSync() "); | 2581 | if ( ! sp ) { |
2582 | sp = new KSyncPrefsDialog( this, "syncprefs", true ); | ||
2583 | } | ||
2584 | sp->usrReadConfig(); | ||
2585 | #ifndef DESKTOP_VERSION | ||
2586 | sp->showMaximized(); | ||
2587 | #else | ||
2588 | sp->show(); | ||
2589 | #endif | ||
2590 | sp->exec(); | ||
2591 | KABPrefs::instance()->mSyncProfileNames = sp->getSyncProfileNames(); | ||
2592 | KABPrefs::instance()->mLocalMachineName = sp->getLocalMachineName (); | ||
2524 | fillSyncMenu(); | 2593 | fillSyncMenu(); |
2525 | } | 2594 | } |
2526 | void KABCore::syncSharp() | 2595 | void KABCore::syncSharp() |
2527 | { | 2596 | { |
2528 | if ( mModified ) | 2597 | if ( mModified ) |
2529 | save(); | 2598 | save(); |
2530 | qDebug("pending syncSharp() "); | 2599 | qDebug("pending syncSharp() "); |
2531 | //mView->syncSharp(); | 2600 | //mView->syncSharp(); |
2532 | mModified = true ; | 2601 | setModified(); |
2533 | 2602 | ||
2534 | } | 2603 | } |
2535 | void KABCore::syncPhone() | 2604 | void KABCore::syncPhone() |
2536 | { | 2605 | { |
2537 | if ( mModified ) | 2606 | if ( mModified ) |
2538 | save(); | 2607 | save(); |
2539 | qDebug("pending syncPhone(); "); | 2608 | qDebug("pending syncPhone(); "); |
2540 | //mView->syncPhone(); | 2609 | //mView->syncPhone(); |
2541 | setModified(); | 2610 | setModified(); |
2542 | 2611 | ||
2543 | } | 2612 | } |
diff --git a/kaddressbook/kabcore.h b/kaddressbook/kabcore.h index 10ce8f4..4487a8a 100644 --- a/kaddressbook/kabcore.h +++ b/kaddressbook/kabcore.h | |||
@@ -435,44 +435,47 @@ class KABCore : public QWidget | |||
435 | QPopupMenu *settingsMenu; | 435 | QPopupMenu *settingsMenu; |
436 | QPopupMenu *changeMenu; | 436 | QPopupMenu *changeMenu; |
437 | //US QAction *mActionSave; | 437 | //US QAction *mActionSave; |
438 | QPopupMenu *ImportMenu; | 438 | QPopupMenu *ImportMenu; |
439 | QPopupMenu *ExportMenu; | 439 | QPopupMenu *ExportMenu; |
440 | //LR additional methods | 440 | //LR additional methods |
441 | KAction *mActionRemoveVoice; | 441 | KAction *mActionRemoveVoice; |
442 | KAction * mActionImportOL; | 442 | KAction * mActionImportOL; |
443 | 443 | ||
444 | #ifndef KAB_EMBEDDED | 444 | #ifndef KAB_EMBEDDED |
445 | KAddressBookService *mAddressBookService; | 445 | KAddressBookService *mAddressBookService; |
446 | #endif //KAB_EMBEDDED | 446 | #endif //KAB_EMBEDDED |
447 | 447 | ||
448 | class KABCorePrivate; | 448 | class KABCorePrivate; |
449 | KABCorePrivate *d; | 449 | KABCorePrivate *d; |
450 | bool mBlockSaveFlag; | 450 | bool mBlockSaveFlag; |
451 | 451 | ||
452 | #ifdef KAB_EMBEDDED | 452 | #ifdef KAB_EMBEDDED |
453 | KAddressBookMain *mMainWindow; // should be the same like mGUIClient | 453 | KAddressBookMain *mMainWindow; // should be the same like mGUIClient |
454 | #endif //KAB_EMBEDDED | 454 | #endif //KAB_EMBEDDED |
455 | // LR ******************************* | 455 | // LR ******************************* |
456 | // sync stuff! | 456 | // sync stuff! |
457 | QPopupMenu *syncMenu; | 457 | QPopupMenu *syncMenu; |
458 | void fillSyncMenu(); | 458 | void fillSyncMenu(); |
459 | void confSync(); | ||
460 | QString mCurrentSyncDevice; | 459 | QString mCurrentSyncDevice; |
461 | QString mCurrentSyncName; | 460 | QString mCurrentSyncName; |
462 | void quickSyncLocalFile(); | 461 | void quickSyncLocalFile(); |
463 | bool syncWithFile( QString fn , bool quick ); | 462 | bool syncWithFile( QString fn , bool quick ); |
464 | void KABCore::syncLocalFile(); | 463 | void KABCore::syncLocalFile(); |
465 | void KABCore::syncPhone(); | 464 | void KABCore::syncPhone(); |
466 | void KABCore::syncSharp(); | 465 | void KABCore::syncSharp(); |
467 | void multiSync( bool askforPrefs ); | 466 | void multiSync( bool askforPrefs ); |
468 | int mCurrentSyncProfile ; | 467 | int mCurrentSyncProfile ; |
469 | void syncRemote( KSyncProfile* prof, bool ask = true); | 468 | void syncRemote( KSyncProfile* prof, bool ask = true); |
470 | void edit_sync_options(); | 469 | void edit_sync_options(); |
471 | bool syncAB(QString filename, int mode); | 470 | bool syncAB(QString filename, int mode); |
472 | int ringSync(); | 471 | int ringSync(); |
473 | QString getPassword( ); | 472 | QString getPassword( ); |
473 | int mGlobalSyncMode; | ||
474 | bool synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBook* remote,int mode); | ||
475 | public slots: | ||
476 | void confSync(); | ||
474 | // ********************* | 477 | // ********************* |
475 | 478 | ||
476 | }; | 479 | }; |
477 | 480 | ||
478 | #endif | 481 | #endif |