summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2004-10-27 22:35:41 (UTC)
committer zautrix <zautrix>2004-10-27 22:35:41 (UTC)
commit5afbc6ae0908ce12fd5abb1c4eadf9c61a01503c (patch) (unidiff)
tree914ce70d7e5a1afcd2da0c2fda34b959d65d0462
parent9c88346fc757fd1dc54b3fca151a2a610159d8cf (diff)
downloadkdepimpi-5afbc6ae0908ce12fd5abb1c4eadf9c61a01503c.zip
kdepimpi-5afbc6ae0908ce12fd5abb1c4eadf9c61a01503c.tar.gz
kdepimpi-5afbc6ae0908ce12fd5abb1c4eadf9c61a01503c.tar.bz2
pwm close fix
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/kabcore.cpp6
-rw-r--r--kaddressbook/kabcore.h1
-rw-r--r--libkdepim/externalapphandler.cpp6
-rw-r--r--libkdepim/externalapphandler.h1
-rw-r--r--pwmanager/pwmanager/pwminit.cpp10
5 files changed, 24 insertions, 0 deletions
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp
index 4964a6c..d1dcb6e 100644
--- a/kaddressbook/kabcore.cpp
+++ b/kaddressbook/kabcore.cpp
@@ -233,128 +233,129 @@ KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const
233 connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook * ) ), 233 connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook * ) ),
234 SLOT( addressBookChanged() ) ); 234 SLOT( addressBookChanged() ) );
235 235
236#if 0 236#if 0
237 // LP moved to addressbook init method 237 // LP moved to addressbook init method
238 mAddressBook->addCustomField( i18n( "Department" ), KABC::Field::Organization, 238 mAddressBook->addCustomField( i18n( "Department" ), KABC::Field::Organization,
239 "X-Department", "KADDRESSBOOK" ); 239 "X-Department", "KADDRESSBOOK" );
240 mAddressBook->addCustomField( i18n( "Profession" ), KABC::Field::Organization, 240 mAddressBook->addCustomField( i18n( "Profession" ), KABC::Field::Organization,
241 "X-Profession", "KADDRESSBOOK" ); 241 "X-Profession", "KADDRESSBOOK" );
242 mAddressBook->addCustomField( i18n( "Assistant's Name" ), KABC::Field::Organization, 242 mAddressBook->addCustomField( i18n( "Assistant's Name" ), KABC::Field::Organization,
243 "X-AssistantsName", "KADDRESSBOOK" ); 243 "X-AssistantsName", "KADDRESSBOOK" );
244 mAddressBook->addCustomField( i18n( "Manager's Name" ), KABC::Field::Organization, 244 mAddressBook->addCustomField( i18n( "Manager's Name" ), KABC::Field::Organization,
245 "X-ManagersName", "KADDRESSBOOK" ); 245 "X-ManagersName", "KADDRESSBOOK" );
246 mAddressBook->addCustomField( i18n( "Spouse's Name" ), KABC::Field::Personal, 246 mAddressBook->addCustomField( i18n( "Spouse's Name" ), KABC::Field::Personal,
247 "X-SpousesName", "KADDRESSBOOK" ); 247 "X-SpousesName", "KADDRESSBOOK" );
248 mAddressBook->addCustomField( i18n( "Office" ), KABC::Field::Personal, 248 mAddressBook->addCustomField( i18n( "Office" ), KABC::Field::Personal,
249 "X-Office", "KADDRESSBOOK" ); 249 "X-Office", "KADDRESSBOOK" );
250 mAddressBook->addCustomField( i18n( "IM Address" ), KABC::Field::Personal, 250 mAddressBook->addCustomField( i18n( "IM Address" ), KABC::Field::Personal,
251 "X-IMAddress", "KADDRESSBOOK" ); 251 "X-IMAddress", "KADDRESSBOOK" );
252 mAddressBook->addCustomField( i18n( "Anniversary" ), KABC::Field::Personal, 252 mAddressBook->addCustomField( i18n( "Anniversary" ), KABC::Field::Personal,
253 "X-Anniversary", "KADDRESSBOOK" ); 253 "X-Anniversary", "KADDRESSBOOK" );
254 254
255 //US added this field to become compatible with Opie/qtopia addressbook 255 //US added this field to become compatible with Opie/qtopia addressbook
256 // values can be "female" or "male" or "". An empty field represents undefined. 256 // values can be "female" or "male" or "". An empty field represents undefined.
257 mAddressBook->addCustomField( i18n( "Gender" ), KABC::Field::Personal, 257 mAddressBook->addCustomField( i18n( "Gender" ), KABC::Field::Personal,
258 "X-Gender", "KADDRESSBOOK" ); 258 "X-Gender", "KADDRESSBOOK" );
259 mAddressBook->addCustomField( i18n( "Children" ), KABC::Field::Personal, 259 mAddressBook->addCustomField( i18n( "Children" ), KABC::Field::Personal,
260 "X-Children", "KADDRESSBOOK" ); 260 "X-Children", "KADDRESSBOOK" );
261 mAddressBook->addCustomField( i18n( "FreeBusyUrl" ), KABC::Field::Personal, 261 mAddressBook->addCustomField( i18n( "FreeBusyUrl" ), KABC::Field::Personal,
262 "X-FreeBusyUrl", "KADDRESSBOOK" ); 262 "X-FreeBusyUrl", "KADDRESSBOOK" );
263#endif 263#endif
264 initGUI(); 264 initGUI();
265 265
266 mIncSearchWidget->setFocus(); 266 mIncSearchWidget->setFocus();
267 267
268 268
269 connect( mViewManager, SIGNAL( selected( const QString& ) ), 269 connect( mViewManager, SIGNAL( selected( const QString& ) ),
270 SLOT( setContactSelected( const QString& ) ) ); 270 SLOT( setContactSelected( const QString& ) ) );
271 connect( mViewManager, SIGNAL( executed( const QString& ) ), 271 connect( mViewManager, SIGNAL( executed( const QString& ) ),
272 SLOT( executeContact( const QString& ) ) ); 272 SLOT( executeContact( const QString& ) ) );
273 273
274 connect( mViewManager, SIGNAL( deleteRequest( ) ), 274 connect( mViewManager, SIGNAL( deleteRequest( ) ),
275 SLOT( deleteContacts( ) ) ); 275 SLOT( deleteContacts( ) ) );
276 connect( mViewManager, SIGNAL( modified() ), 276 connect( mViewManager, SIGNAL( modified() ),
277 SLOT( setModified() ) ); 277 SLOT( setModified() ) );
278 278
279 connect( mExtensionManager, SIGNAL( modified( const KABC::Addressee::List& ) ), this, SLOT( extensionModified( const KABC::Addressee::List& ) ) ); 279 connect( mExtensionManager, SIGNAL( modified( const KABC::Addressee::List& ) ), this, SLOT( extensionModified( const KABC::Addressee::List& ) ) );
280 connect( mExtensionManager, SIGNAL( changedActiveExtension( int ) ), this, SLOT( extensionChanged( int ) ) ); 280 connect( mExtensionManager, SIGNAL( changedActiveExtension( int ) ), this, SLOT( extensionChanged( int ) ) );
281 281
282 connect( mXXPortManager, SIGNAL( modified() ), 282 connect( mXXPortManager, SIGNAL( modified() ),
283 SLOT( setModified() ) ); 283 SLOT( setModified() ) );
284 284
285 connect( mJumpButtonBar, SIGNAL( jumpToLetter( const QString& ) ), 285 connect( mJumpButtonBar, SIGNAL( jumpToLetter( const QString& ) ),
286 SLOT( incrementalSearch( const QString& ) ) ); 286 SLOT( incrementalSearch( const QString& ) ) );
287 connect( mIncSearchWidget, SIGNAL( fieldChanged() ), 287 connect( mIncSearchWidget, SIGNAL( fieldChanged() ),
288 mJumpButtonBar, SLOT( recreateButtons() ) ); 288 mJumpButtonBar, SLOT( recreateButtons() ) );
289 289
290 connect( mDetails, SIGNAL( sendEmail( const QString& ) ), 290 connect( mDetails, SIGNAL( sendEmail( const QString& ) ),
291 SLOT( sendMail( const QString& ) ) ); 291 SLOT( sendMail( const QString& ) ) );
292 292
293 293
294 connect( ExternalAppHandler::instance(), SIGNAL (requestForNameEmailUidList(const QString&, const QString&)),this, SLOT(requestForNameEmailUidList(const QString&, const QString&))); 294 connect( ExternalAppHandler::instance(), SIGNAL (requestForNameEmailUidList(const QString&, const QString&)),this, SLOT(requestForNameEmailUidList(const QString&, const QString&)));
295 connect( ExternalAppHandler::instance(), SIGNAL (requestForDetails(const QString&, const QString&, const QString&, const QString&, const QString&)),this, SLOT(requestForDetails(const QString&, const QString&, const QString&, const QString&, const QString&))); 295 connect( ExternalAppHandler::instance(), SIGNAL (requestForDetails(const QString&, const QString&, const QString&, const QString&, const QString&)),this, SLOT(requestForDetails(const QString&, const QString&, const QString&, const QString&, const QString&)));
296 connect( ExternalAppHandler::instance(), SIGNAL (requestForBirthdayList(const QString&, const QString&)),this, SLOT(requestForBirthdayList(const QString&, const QString&))); 296 connect( ExternalAppHandler::instance(), SIGNAL (requestForBirthdayList(const QString&, const QString&)),this, SLOT(requestForBirthdayList(const QString&, const QString&)));
297 connect( ExternalAppHandler::instance(), SIGNAL (nextView()),this, SLOT(setDetailsToggle()));
297 298
298 299
299#ifndef KAB_EMBEDDED 300#ifndef KAB_EMBEDDED
300 connect( mViewManager, SIGNAL( urlDropped( const KURL& ) ), 301 connect( mViewManager, SIGNAL( urlDropped( const KURL& ) ),
301 mXXPortManager, SLOT( importVCard( const KURL& ) ) ); 302 mXXPortManager, SLOT( importVCard( const KURL& ) ) );
302 303
303 connect( mDetails, SIGNAL( browse( const QString& ) ), 304 connect( mDetails, SIGNAL( browse( const QString& ) ),
304 SLOT( browse( const QString& ) ) ); 305 SLOT( browse( const QString& ) ) );
305 306
306 307
307 mAddressBookService = new KAddressBookService( this ); 308 mAddressBookService = new KAddressBookService( this );
308 309
309#endif //KAB_EMBEDDED 310#endif //KAB_EMBEDDED
310 311
311 mMessageTimer = new QTimer( this ); 312 mMessageTimer = new QTimer( this );
312 connect( mMessageTimer, SIGNAL( timeout() ), this, SLOT( setCaptionBack() ) ); 313 connect( mMessageTimer, SIGNAL( timeout() ), this, SLOT( setCaptionBack() ) );
313 mEditorDialog = 0; 314 mEditorDialog = 0;
314 createAddresseeEditorDialog( this ); 315 createAddresseeEditorDialog( this );
315 setModified( false ); 316 setModified( false );
316 mBRdisabled = false; 317 mBRdisabled = false;
317#ifndef DESKTOP_VERSION 318#ifndef DESKTOP_VERSION
318 infrared = 0; 319 infrared = 0;
319#endif 320#endif
320 //toggleBeamReceive( ); 321 //toggleBeamReceive( );
321} 322}
322 323
323KABCore::~KABCore() 324KABCore::~KABCore()
324{ 325{
325 // save(); 326 // save();
326 //saveSettings(); 327 //saveSettings();
327 //KABPrefs::instance()->writeConfig(); 328 //KABPrefs::instance()->writeConfig();
328 delete AddresseeConfig::instance(); 329 delete AddresseeConfig::instance();
329 mAddressBook = 0; 330 mAddressBook = 0;
330 KABC::StdAddressBook::close(); 331 KABC::StdAddressBook::close();
331 332
332 delete syncManager; 333 delete syncManager;
333#ifndef DESKTOP_VERSION 334#ifndef DESKTOP_VERSION
334 if ( infrared ) 335 if ( infrared )
335 delete infrared; 336 delete infrared;
336#endif 337#endif
337} 338}
338void KABCore::receive( const QCString& cmsg, const QByteArray& data ) 339void KABCore::receive( const QCString& cmsg, const QByteArray& data )
339{ 340{
340 qDebug("KA: QCOP message received: %s ", cmsg.data() ); 341 qDebug("KA: QCOP message received: %s ", cmsg.data() );
341 if ( cmsg == "setDocument(QString)" ) { 342 if ( cmsg == "setDocument(QString)" ) {
342 QDataStream stream( data, IO_ReadOnly ); 343 QDataStream stream( data, IO_ReadOnly );
343 QString fileName; 344 QString fileName;
344 stream >> fileName; 345 stream >> fileName;
345 recieve( fileName ); 346 recieve( fileName );
346 return; 347 return;
347 } 348 }
348} 349}
349void KABCore::toggleBeamReceive( ) 350void KABCore::toggleBeamReceive( )
350{ 351{
351 if ( mBRdisabled ) 352 if ( mBRdisabled )
352 return; 353 return;
353#ifndef DESKTOP_VERSION 354#ifndef DESKTOP_VERSION
354 if ( infrared ) { 355 if ( infrared ) {
355 qDebug("AB disable BeamReceive "); 356 qDebug("AB disable BeamReceive ");
356 delete infrared; 357 delete infrared;
357 infrared = 0; 358 infrared = 0;
358 mActionBR->setChecked(false); 359 mActionBR->setChecked(false);
359 return; 360 return;
360 } 361 }
@@ -1225,128 +1226,133 @@ void KABCore::save()
1225 KABC::StdAddressBook *b = dynamic_cast<KABC::StdAddressBook*>( mAddressBook ); 1226 KABC::StdAddressBook *b = dynamic_cast<KABC::StdAddressBook*>( mAddressBook );
1226 if ( !b || !b->save() ) { 1227 if ( !b || !b->save() ) {
1227 KMessageBox::error( this, text, i18n( "Unable to Save" ) ); 1228 KMessageBox::error( this, text, i18n( "Unable to Save" ) );
1228 } 1229 }
1229#else //KAB_EMBEDDED 1230#else //KAB_EMBEDDED
1230 KABC::StdAddressBook *b = (KABC::StdAddressBook*)( mAddressBook ); 1231 KABC::StdAddressBook *b = (KABC::StdAddressBook*)( mAddressBook );
1231 if ( !b || !b->save() ) { 1232 if ( !b || !b->save() ) {
1232 QMessageBox::critical( this, i18n( "Unable to Save" ), text, i18n("Ok")); 1233 QMessageBox::critical( this, i18n( "Unable to Save" ), text, i18n("Ok"));
1233 } 1234 }
1234#endif //KAB_EMBEDDED 1235#endif //KAB_EMBEDDED
1235 1236
1236 message(i18n("Addressbook saved!")); 1237 message(i18n("Addressbook saved!"));
1237 setModified( false ); 1238 setModified( false );
1238 syncManager->setBlockSave(false); 1239 syncManager->setBlockSave(false);
1239} 1240}
1240 1241
1241 1242
1242void KABCore::undo() 1243void KABCore::undo()
1243{ 1244{
1244 UndoStack::instance()->undo(); 1245 UndoStack::instance()->undo();
1245 1246
1246 // Refresh the view 1247 // Refresh the view
1247 mViewManager->refreshView(); 1248 mViewManager->refreshView();
1248} 1249}
1249 1250
1250void KABCore::redo() 1251void KABCore::redo()
1251{ 1252{
1252 RedoStack::instance()->redo(); 1253 RedoStack::instance()->redo();
1253 1254
1254 // Refresh the view 1255 // Refresh the view
1255 mViewManager->refreshView(); 1256 mViewManager->refreshView();
1256} 1257}
1257 1258
1258void KABCore::setJumpButtonBarVisible( bool visible ) 1259void KABCore::setJumpButtonBarVisible( bool visible )
1259{ 1260{
1260 if (mMultipleViewsAtOnce) 1261 if (mMultipleViewsAtOnce)
1261 { 1262 {
1262 if ( visible ) 1263 if ( visible )
1263 mJumpButtonBar->show(); 1264 mJumpButtonBar->show();
1264 else 1265 else
1265 mJumpButtonBar->hide(); 1266 mJumpButtonBar->hide();
1266 } 1267 }
1267 else 1268 else
1268 { 1269 {
1269 // show the jumpbar only if "the details are hidden" == "viewmanager are shown" 1270 // show the jumpbar only if "the details are hidden" == "viewmanager are shown"
1270 if (mViewManager->isVisible()) 1271 if (mViewManager->isVisible())
1271 { 1272 {
1272 if ( visible ) 1273 if ( visible )
1273 mJumpButtonBar->show(); 1274 mJumpButtonBar->show();
1274 else 1275 else
1275 mJumpButtonBar->hide(); 1276 mJumpButtonBar->hide();
1276 } 1277 }
1277 else 1278 else
1278 { 1279 {
1279 mJumpButtonBar->hide(); 1280 mJumpButtonBar->hide();
1280 } 1281 }
1281 } 1282 }
1282} 1283}
1283 1284
1284 1285
1285void KABCore::setDetailsToState() 1286void KABCore::setDetailsToState()
1286{ 1287{
1287 setDetailsVisible( mActionDetails->isChecked() ); 1288 setDetailsVisible( mActionDetails->isChecked() );
1288} 1289}
1290void KABCore::setDetailsToggle()
1291{
1292 mActionDetails->setChecked( !mActionDetails->isChecked() );
1293 setDetailsToState();
1294}
1289 1295
1290 1296
1291 1297
1292void KABCore::setDetailsVisible( bool visible ) 1298void KABCore::setDetailsVisible( bool visible )
1293{ 1299{
1294 if (visible && mDetails->isHidden()) 1300 if (visible && mDetails->isHidden())
1295 { 1301 {
1296 KABC::Addressee::List addrList = mViewManager->selectedAddressees(); 1302 KABC::Addressee::List addrList = mViewManager->selectedAddressees();
1297 if ( addrList.count() > 0 ) 1303 if ( addrList.count() > 0 )
1298 mDetails->setAddressee( addrList[ 0 ] ); 1304 mDetails->setAddressee( addrList[ 0 ] );
1299 } 1305 }
1300 1306
1301 // mMultipleViewsAtOnce=false: mDetails is always visible. But we switch between 1307 // mMultipleViewsAtOnce=false: mDetails is always visible. But we switch between
1302 // the listview and the detailview. We do that by changing the splitbar size. 1308 // the listview and the detailview. We do that by changing the splitbar size.
1303 if (mMultipleViewsAtOnce) 1309 if (mMultipleViewsAtOnce)
1304 { 1310 {
1305 if ( visible ) 1311 if ( visible )
1306 mDetails->show(); 1312 mDetails->show();
1307 else 1313 else
1308 mDetails->hide(); 1314 mDetails->hide();
1309 } 1315 }
1310 else 1316 else
1311 { 1317 {
1312 if ( visible ) { 1318 if ( visible ) {
1313 mViewManager->hide(); 1319 mViewManager->hide();
1314 mDetails->show(); 1320 mDetails->show();
1315 mIncSearchWidget->setFocus(); 1321 mIncSearchWidget->setFocus();
1316 } 1322 }
1317 else { 1323 else {
1318 mViewManager->show(); 1324 mViewManager->show();
1319 mDetails->hide(); 1325 mDetails->hide();
1320 mViewManager->setFocusAV(); 1326 mViewManager->setFocusAV();
1321 } 1327 }
1322 setJumpButtonBarVisible( !visible ); 1328 setJumpButtonBarVisible( !visible );
1323 } 1329 }
1324 1330
1325} 1331}
1326 1332
1327void KABCore::extensionChanged( int id ) 1333void KABCore::extensionChanged( int id )
1328{ 1334{
1329 //change the details view only for non desktop systems 1335 //change the details view only for non desktop systems
1330#ifndef DESKTOP_VERSION 1336#ifndef DESKTOP_VERSION
1331 1337
1332 if (id == 0) 1338 if (id == 0)
1333 { 1339 {
1334 //the user disabled the extension. 1340 //the user disabled the extension.
1335 1341
1336 if (mMultipleViewsAtOnce) 1342 if (mMultipleViewsAtOnce)
1337 { // enable detailsview again 1343 { // enable detailsview again
1338 setDetailsVisible( true ); 1344 setDetailsVisible( true );
1339 mActionDetails->setChecked( true ); 1345 mActionDetails->setChecked( true );
1340 } 1346 }
1341 else 1347 else
1342 { //go back to the listview 1348 { //go back to the listview
1343 setDetailsVisible( false ); 1349 setDetailsVisible( false );
1344 mActionDetails->setChecked( false ); 1350 mActionDetails->setChecked( false );
1345 mActionDetails->setEnabled(true); 1351 mActionDetails->setEnabled(true);
1346 } 1352 }
1347 1353
1348 } 1354 }
1349 else 1355 else
1350 { 1356 {
1351 //the user enabled the extension. 1357 //the user enabled the extension.
1352 setDetailsVisible( false ); 1358 setDetailsVisible( false );
diff --git a/kaddressbook/kabcore.h b/kaddressbook/kabcore.h
index a288505..6831ec9 100644
--- a/kaddressbook/kabcore.h
+++ b/kaddressbook/kabcore.h
@@ -85,128 +85,129 @@ class KABCore : public QWidget, public KSyncInterface
85 85
86#ifdef KAB_EMBEDDED 86#ifdef KAB_EMBEDDED
87 //US added functionality 87 //US added functionality
88 QPopupMenu* getViewMenu() {return viewMenu;} 88 QPopupMenu* getViewMenu() {return viewMenu;}
89 QPopupMenu* getFilterMenu() {return filterMenu;} 89 QPopupMenu* getFilterMenu() {return filterMenu;}
90 QPopupMenu* getSettingsMenu() {return settingsMenu;} 90 QPopupMenu* getSettingsMenu() {return settingsMenu;}
91 void addActionsManually(); 91 void addActionsManually();
92#endif //KAB_EMBEDDED 92#endif //KAB_EMBEDDED
93 /** 93 /**
94 Restores the global settings. 94 Restores the global settings.
95 */ 95 */
96 void restoreSettings(); 96 void restoreSettings();
97 97
98 /** 98 /**
99 Saves the global settings. 99 Saves the global settings.
100 */ 100 */
101 void saveSettings(); 101 void saveSettings();
102 102
103 /** 103 /**
104 Returns a pointer to the StdAddressBook of the application. 104 Returns a pointer to the StdAddressBook of the application.
105 */ 105 */
106 KABC::AddressBook *addressBook() const; 106 KABC::AddressBook *addressBook() const;
107 107
108 /** 108 /**
109 Returns a pointer to the KConfig object of the application. 109 Returns a pointer to the KConfig object of the application.
110 */ 110 */
111 static KConfig *config(); 111 static KConfig *config();
112 112
113 /** 113 /**
114 Returns a pointer to the global KActionCollection object. So 114 Returns a pointer to the global KActionCollection object. So
115 other classes can register their actions easily. 115 other classes can register their actions easily.
116 */ 116 */
117 KActionCollection *actionCollection() const; 117 KActionCollection *actionCollection() const;
118 118
119 /** 119 /**
120 Returns the current search field of the Incremental Search Widget. 120 Returns the current search field of the Incremental Search Widget.
121 */ 121 */
122 KABC::Field *currentSearchField() const; 122 KABC::Field *currentSearchField() const;
123 123
124 /** 124 /**
125 Returns the uid list of the currently selected contacts. 125 Returns the uid list of the currently selected contacts.
126 */ 126 */
127 QStringList selectedUIDs() const; 127 QStringList selectedUIDs() const;
128 128
129 /** 129 /**
130 Displays the ResourceSelectDialog and returns the selected 130 Displays the ResourceSelectDialog and returns the selected
131 resource or a null pointer if no resource was selected by 131 resource or a null pointer if no resource was selected by
132 the user. 132 the user.
133 */ 133 */
134 KABC::Resource *requestResource( QWidget *parent ); 134 KABC::Resource *requestResource( QWidget *parent );
135 135
136#ifndef KAB_EMBEDDED 136#ifndef KAB_EMBEDDED
137 static KAboutData *createAboutData(); 137 static KAboutData *createAboutData();
138#endif //KAB_EMBEDDED 138#endif //KAB_EMBEDDED
139 139
140#ifdef KAB_EMBEDDED 140#ifdef KAB_EMBEDDED
141 inline QPopupMenu* getImportMenu() { return ImportMenu;} 141 inline QPopupMenu* getImportMenu() { return ImportMenu;}
142 inline QPopupMenu* getExportMenu() { return ExportMenu;} 142 inline QPopupMenu* getExportMenu() { return ExportMenu;}
143#endif //KAB_EMBEDDED 143#endif //KAB_EMBEDDED
144 144
145 public slots: 145 public slots:
146#ifdef KAB_EMBEDDED 146#ifdef KAB_EMBEDDED
147 void createAboutData(); 147 void createAboutData();
148#endif //KAB_EMBEDDED 148#endif //KAB_EMBEDDED
149 void setDetailsToggle();
149 150
150 void showLicence(); 151 void showLicence();
151 void faq(); 152 void faq();
152 void whatsnew() ; 153 void whatsnew() ;
153 void synchowto() ; 154 void synchowto() ;
154 void writeToPhone(); 155 void writeToPhone();
155 156
156 /** 157 /**
157 Is called whenever a contact is selected in the view. 158 Is called whenever a contact is selected in the view.
158 */ 159 */
159 void setContactSelected( const QString &uid ); 160 void setContactSelected( const QString &uid );
160 161
161 /** 162 /**
162 Opens the preferred mail composer with all selected contacts as 163 Opens the preferred mail composer with all selected contacts as
163 arguments. 164 arguments.
164 */ 165 */
165 void sendMail(); 166 void sendMail();
166 167
167 /** 168 /**
168 Opens the preferred mail composer with the given contacts as 169 Opens the preferred mail composer with the given contacts as
169 arguments. 170 arguments.
170 */ 171 */
171 void sendMail( const QString& email ); 172 void sendMail( const QString& email );
172 173
173 174
174 void mailVCard(); 175 void mailVCard();
175 void mailVCard(const QStringList& uids); 176 void mailVCard(const QStringList& uids);
176 177
177 /** 178 /**
178 Beams the "WhoAmI contact. 179 Beams the "WhoAmI contact.
179 */ 180 */
180 void beamMySelf(); 181 void beamMySelf();
181 182
182 void beamVCard(); 183 void beamVCard();
183 void export2phone(); 184 void export2phone();
184 void beamVCard(const QStringList& uids); 185 void beamVCard(const QStringList& uids);
185 void beamDone( Ir *ir ); 186 void beamDone( Ir *ir );
186 187
187 188
188 /** 189 /**
189 Starts the preferred web browser with the given URL as argument. 190 Starts the preferred web browser with the given URL as argument.
190 */ 191 */
191 void browse( const QString& url ); 192 void browse( const QString& url );
192 193
193 /** 194 /**
194 Select all contacts in the view. 195 Select all contacts in the view.
195 */ 196 */
196 void selectAllContacts(); 197 void selectAllContacts();
197 198
198 /** 199 /**
199 Deletes all selected contacts from the address book. 200 Deletes all selected contacts from the address book.
200 */ 201 */
201 void deleteContacts(); 202 void deleteContacts();
202 203
203 /** 204 /**
204 Deletes given contacts from the address book. 205 Deletes given contacts from the address book.
205 206
206 @param uids The uids of the contacts, which shall be deleted. 207 @param uids The uids of the contacts, which shall be deleted.
207 */ 208 */
208 void deleteContacts( const QStringList &uids ); 209 void deleteContacts( const QStringList &uids );
209 210
210 /** 211 /**
211 Copys the selected contacts into clipboard for later pasting. 212 Copys the selected contacts into clipboard for later pasting.
212 */ 213 */
diff --git a/libkdepim/externalapphandler.cpp b/libkdepim/externalapphandler.cpp
index 9085673..9f12152 100644
--- a/libkdepim/externalapphandler.cpp
+++ b/libkdepim/externalapphandler.cpp
@@ -1055,127 +1055,133 @@ QString& ExternalAppHandler::translateMessage(QString& message, const QString& p
1055{ 1055{
1056 message = message.replace( QRegExp("%1"), param1 ); 1056 message = message.replace( QRegExp("%1"), param1 );
1057 return message.replace( QRegExp("%2"), param2 ); 1057 return message.replace( QRegExp("%2"), param2 );
1058} 1058}
1059 1059
1060/************************************************************************** 1060/**************************************************************************
1061 * 1061 *
1062 **************************************************************************/ 1062 **************************************************************************/
1063 1063
1064void ExternalAppHandler::passParameters(QCopEnvelope* e, const QString& parameters, const QString& param1 , const QString& param2) const 1064void ExternalAppHandler::passParameters(QCopEnvelope* e, const QString& parameters, const QString& param1 , const QString& param2) const
1065{ 1065{
1066#ifndef DESKTOP_VERSION 1066#ifndef DESKTOP_VERSION
1067 QMap<QString, QString> valmap; 1067 QMap<QString, QString> valmap;
1068 bool useValMap = false; 1068 bool useValMap = false;
1069 1069
1070 // first extract all parts of the parameters. 1070 // first extract all parts of the parameters.
1071 QStringList paramlist = QStringList::split(";", parameters); 1071 QStringList paramlist = QStringList::split(";", parameters);
1072 1072
1073 //Now check how many parts we have. 1073 //Now check how many parts we have.
1074 //=0 :no params to pass 1074 //=0 :no params to pass
1075 //>0 :parameters to pass 1075 //>0 :parameters to pass
1076 for ( QStringList::Iterator it = paramlist.begin(); it != paramlist.end(); ++it ) 1076 for ( QStringList::Iterator it = paramlist.begin(); it != paramlist.end(); ++it )
1077 { 1077 {
1078 QString param = (*it); 1078 QString param = (*it);
1079 QStringList keyvallist = QStringList::split("=", param); 1079 QStringList keyvallist = QStringList::split("=", param);
1080 1080
1081 //if we have keyvalue pairs, we assume that we pass a map to the envelope 1081 //if we have keyvalue pairs, we assume that we pass a map to the envelope
1082 QStringList::Iterator it2 = keyvallist.begin(); 1082 QStringList::Iterator it2 = keyvallist.begin();
1083 QString key = (*it2); 1083 QString key = (*it2);
1084 key = key.replace( QRegExp("%1"), param1 ); 1084 key = key.replace( QRegExp("%1"), param1 );
1085 key = key.replace( QRegExp("%2"), param2 ); 1085 key = key.replace( QRegExp("%2"), param2 );
1086 ++it2; 1086 ++it2;
1087 1087
1088 if(it2 != keyvallist.end()) 1088 if(it2 != keyvallist.end())
1089 { 1089 {
1090 QString value = (*it2); 1090 QString value = (*it2);
1091 value = value.replace( QRegExp("%1"), param1 ); 1091 value = value.replace( QRegExp("%1"), param1 );
1092 value = value.replace( QRegExp("%2"), param2 ); 1092 value = value.replace( QRegExp("%2"), param2 );
1093 1093
1094 valmap.insert(key, value); 1094 valmap.insert(key, value);
1095 useValMap = true; 1095 useValMap = true;
1096 } 1096 }
1097 else 1097 else
1098 { 1098 {
1099 // qDebug("pass parameter << %s", key.latin1()); 1099 // qDebug("pass parameter << %s", key.latin1());
1100 (*e) << key; 1100 (*e) << key;
1101 } 1101 }
1102 } 1102 }
1103 1103
1104 if (useValMap == true) 1104 if (useValMap == true)
1105 (*e) << valmap; 1105 (*e) << valmap;
1106 1106
1107#endif 1107#endif
1108 1108
1109} 1109}
1110 1110
1111 1111
1112 1112
1113/************************************************************************** 1113/**************************************************************************
1114 * 1114 *
1115 **************************************************************************/ 1115 **************************************************************************/
1116 1116
1117void ExternalAppHandler::appMessage( const QCString& cmsg, const QByteArray& data ) 1117void ExternalAppHandler::appMessage( const QCString& cmsg, const QByteArray& data )
1118{ 1118{
1119
1120 if ( cmsg == "nextView()" ) {
1121 emit nextView();
1122 return;
1123 }
1124
1119 bool res = mNameEmailUidListFromKAPITransfer->appMessage( cmsg, data ); 1125 bool res = mNameEmailUidListFromKAPITransfer->appMessage( cmsg, data );
1120 if (!res) 1126 if (!res)
1121 res = mBirthdayListFromKAPITransfer->appMessage( cmsg, data ); 1127 res = mBirthdayListFromKAPITransfer->appMessage( cmsg, data );
1122 1128
1123 if (!res) 1129 if (!res)
1124 res = mDisplayDetails->appMessage( cmsg, data ); 1130 res = mDisplayDetails->appMessage( cmsg, data );
1125 1131
1126// if (!res) 1132// if (!res)
1127// res = mNameEmailUidListFromKAPITransfer->appMessage( cmsg, data ); 1133// res = mNameEmailUidListFromKAPITransfer->appMessage( cmsg, data );
1128} 1134}
1129 1135
1130 1136
1131 1137
1132bool ExternalAppHandler::requestNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid) 1138bool ExternalAppHandler::requestNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid)
1133{ 1139{
1134 mNameEmailUidListFromKAPITransfer->setSourceChannel(sourceChannel); 1140 mNameEmailUidListFromKAPITransfer->setSourceChannel(sourceChannel);
1135 return mNameEmailUidListFromKAPITransfer->sendMessageToTarget(sessionuid); 1141 return mNameEmailUidListFromKAPITransfer->sendMessageToTarget(sessionuid);
1136} 1142}
1137 1143
1138bool ExternalAppHandler::returnNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& list1, const QStringList& list2, const QStringList& list3) 1144bool ExternalAppHandler::returnNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& list1, const QStringList& list2, const QStringList& list3)
1139{ 1145{
1140 QStringList list4, list5, list6; 1146 QStringList list4, list5, list6;
1141 1147
1142 mNameEmailUidListFromKAPITransfer->setSourceChannel(sourceChannel); 1148 mNameEmailUidListFromKAPITransfer->setSourceChannel(sourceChannel);
1143 return mNameEmailUidListFromKAPITransfer->sendMessageToSource(sessionuid, list1, list2, list3, list4, list5, list6); 1149 return mNameEmailUidListFromKAPITransfer->sendMessageToSource(sessionuid, list1, list2, list3, list4, list5, list6);
1144} 1150}
1145 1151
1146bool ExternalAppHandler::requestFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QString& email) 1152bool ExternalAppHandler::requestFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QString& email)
1147{ 1153{
1148 mFindByEmailFromKAPITransfer->setSourceChannel(sourceChannel); 1154 mFindByEmailFromKAPITransfer->setSourceChannel(sourceChannel);
1149 return mFindByEmailFromKAPITransfer->sendMessageToTarget(sessionuid, email); 1155 return mFindByEmailFromKAPITransfer->sendMessageToTarget(sessionuid, email);
1150} 1156}
1151 1157
1152bool ExternalAppHandler::returnFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& list1, const QStringList& list2, const QStringList& list3) 1158bool ExternalAppHandler::returnFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& list1, const QStringList& list2, const QStringList& list3)
1153{ 1159{
1154 QStringList list4, list5, list6; 1160 QStringList list4, list5, list6;
1155 1161
1156 mFindByEmailFromKAPITransfer->setSourceChannel(sourceChannel); 1162 mFindByEmailFromKAPITransfer->setSourceChannel(sourceChannel);
1157 return mFindByEmailFromKAPITransfer->sendMessageToSource(sessionuid, list1, list2, list3, list4, list5, list6); 1163 return mFindByEmailFromKAPITransfer->sendMessageToSource(sessionuid, list1, list2, list3, list4, list5, list6);
1158} 1164}
1159 1165
1160bool ExternalAppHandler::requestDetailsFromKAPI(const QString& name, const QString& email, const QString& uid) 1166bool ExternalAppHandler::requestDetailsFromKAPI(const QString& name, const QString& email, const QString& uid)
1161{ 1167{
1162 mDisplayDetails->setSourceChannel(""); 1168 mDisplayDetails->setSourceChannel("");
1163 return mDisplayDetails->sendMessageToTarget("", name, email, uid); 1169 return mDisplayDetails->sendMessageToTarget("", name, email, uid);
1164} 1170}
1165 1171
1166bool ExternalAppHandler::requestBirthdayListFromKAPI(const QString& sourceChannel, const QString& sessionuid) 1172bool ExternalAppHandler::requestBirthdayListFromKAPI(const QString& sourceChannel, const QString& sessionuid)
1167{ 1173{
1168 mBirthdayListFromKAPITransfer->setSourceChannel(sourceChannel); 1174 mBirthdayListFromKAPITransfer->setSourceChannel(sourceChannel);
1169 return mBirthdayListFromKAPITransfer->sendMessageToTarget(sessionuid); 1175 return mBirthdayListFromKAPITransfer->sendMessageToTarget(sessionuid);
1170} 1176}
1171 1177
1172bool ExternalAppHandler::returnBirthdayListFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& list1, const QStringList& list2, const QStringList& list3, const QStringList& list4, const QStringList& list5, const QStringList& list6) 1178bool ExternalAppHandler::returnBirthdayListFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& list1, const QStringList& list2, const QStringList& list3, const QStringList& list4, const QStringList& list5, const QStringList& list6)
1173{ 1179{
1174 mBirthdayListFromKAPITransfer->setSourceChannel(sourceChannel); 1180 mBirthdayListFromKAPITransfer->setSourceChannel(sourceChannel);
1175 return mBirthdayListFromKAPITransfer->sendMessageToSource(sessionuid, list1, list2, list3, list4, list5, list6); 1181 return mBirthdayListFromKAPITransfer->sendMessageToSource(sessionuid, list1, list2, list3, list4, list5, list6);
1176} 1182}
1177 1183
1178 1184
1179 1185
1180 1186
1181 1187
diff --git a/libkdepim/externalapphandler.h b/libkdepim/externalapphandler.h
index 6f5d345..52a64e1 100644
--- a/libkdepim/externalapphandler.h
+++ b/libkdepim/externalapphandler.h
@@ -172,120 +172,121 @@ class ExternalAppHandler : public QObject
172 172
173 //calls the emailapplication and creates a mail with parameter emailadress as recipients 173 //calls the emailapplication and creates a mail with parameter emailadress as recipients
174 bool mailToOneContact( const QString& name, const QString& emailadress ); 174 bool mailToOneContact( const QString& name, const QString& emailadress );
175 175
176 //calls the emailapplication and creates a mail with parameter as recipients 176 //calls the emailapplication and creates a mail with parameter as recipients
177 // parameters format is 177 // parameters format is
178 // NAME <EMAIL>:SUBJECT 178 // NAME <EMAIL>:SUBJECT
179 bool mailToOneContact( const QString& adressline ); 179 bool mailToOneContact( const QString& adressline );
180 180
181 //calls the phoneapplication with the number 181 //calls the phoneapplication with the number
182 bool callByPhone( const QString& phonenumber ); 182 bool callByPhone( const QString& phonenumber );
183 183
184 //calls the smsapplication with the number 184 //calls the smsapplication with the number
185 bool callBySMS( const QString& phonenumber ); 185 bool callBySMS( const QString& phonenumber );
186 186
187 //calls the pagerapplication with the number 187 //calls the pagerapplication with the number
188 bool callByPager( const QString& pagernumber ); 188 bool callByPager( const QString& pagernumber );
189 189
190 //calls the faxapplication with the number 190 //calls the faxapplication with the number
191 bool callByFax( const QString& faxnumber ); 191 bool callByFax( const QString& faxnumber );
192 192
193 //calls the sipapplication with the number 193 //calls the sipapplication with the number
194 bool callBySIP( const QString& sipnumber ); 194 bool callBySIP( const QString& sipnumber );
195 195
196 bool isEmailAppAvailable(); 196 bool isEmailAppAvailable();
197 bool isSMSAppAvailable(); 197 bool isSMSAppAvailable();
198 bool isPhoneAppAvailable(); 198 bool isPhoneAppAvailable();
199 bool isFaxAppAvailable(); 199 bool isFaxAppAvailable();
200 bool isPagerAppAvailable(); 200 bool isPagerAppAvailable();
201 bool isSIPAppAvailable(); 201 bool isSIPAppAvailable();
202 202
203 203
204 //Call this method on the source when you want to select names from the addressbook by using QCop 204 //Call this method on the source when you want to select names from the addressbook by using QCop
205 bool requestNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid); 205 bool requestNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid);
206 //Call this method on the target when you want to return the name/email map to the source (client). 206 //Call this method on the target when you want to return the name/email map to the source (client).
207 bool returnNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& name, const QStringList& email, const QStringList& uid); 207 bool returnNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& name, const QStringList& email, const QStringList& uid);
208 208
209 209
210 210
211 bool requestFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QString& email); 211 bool requestFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QString& email);
212 bool returnFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& name, const QStringList& email, const QStringList& uid); 212 bool returnFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& name, const QStringList& email, const QStringList& uid);
213 213
214 bool requestDetailsFromKAPI(const QString& name, const QString& email, const QString& uid); 214 bool requestDetailsFromKAPI(const QString& name, const QString& email, const QString& uid);
215 215
216 216
217 217
218 bool requestBirthdayListFromKAPI(const QString& sourceChannel, const QString& sessionuid); 218 bool requestBirthdayListFromKAPI(const QString& sourceChannel, const QString& sessionuid);
219 bool returnBirthdayListFromKAPI(const QString& sourceChannel, const QString& sessionuid, 219 bool returnBirthdayListFromKAPI(const QString& sourceChannel, const QString& sessionuid,
220 const QStringList& birthdayList, const QStringList& anniversaryList, 220 const QStringList& birthdayList, const QStringList& anniversaryList,
221 const QStringList& realNameList, const QStringList& emailList, 221 const QStringList& realNameList, const QStringList& emailList,
222 const QStringList& assembledNameList, const QStringList& uidList); 222 const QStringList& assembledNameList, const QStringList& uidList);
223 223
224 224
225 //loadConfig clears the cache and checks again if the applications are available or not 225 //loadConfig clears the cache and checks again if the applications are available or not
226 void loadConfig(); 226 void loadConfig();
227 227
228 QList<DefaultAppItem> getAvailableDefaultItems(Types); 228 QList<DefaultAppItem> getAvailableDefaultItems(Types);
229 DefaultAppItem* getDefaultItem(Types, int); 229 DefaultAppItem* getDefaultItem(Types, int);
230 230
231 public slots: 231 public slots:
232 void appMessage( const QCString& msg, const QByteArray& data ); 232 void appMessage( const QCString& msg, const QByteArray& data );
233 233
234 234
235 signals: 235 signals:
236 void nextView();
236 // Emmitted when the target app receives a request from the source app 237 // Emmitted when the target app receives a request from the source app
237 void requestForNameEmailUidList(const QString& sourceChannel, const QString& uid); 238 void requestForNameEmailUidList(const QString& sourceChannel, const QString& uid);
238 239
239 // Emitted when the source app recieves a list of name/email pairs (=addresses) from another target app. Usually Ka/Pi 240 // Emitted when the source app recieves a list of name/email pairs (=addresses) from another target app. Usually Ka/Pi
240 // The first parameter is a uniqueid. It can be used to identify the event 241 // The first parameter is a uniqueid. It can be used to identify the event
241 void receivedNameEmailUidListEvent(const QString& uid, const QStringList& nameList, const QStringList& emailList, const QStringList& uidList); 242 void receivedNameEmailUidListEvent(const QString& uid, const QStringList& nameList, const QStringList& emailList, const QStringList& uidList);
242 243
243 void requestFindByEmail(const QString& sourceChannel, const QString& uid, const QString& email); 244 void requestFindByEmail(const QString& sourceChannel, const QString& uid, const QString& email);
244 void receivedFindByEmailEvent(const QString& uid, const QStringList& nameList, const QStringList& emailList, const QStringList& uidList); 245 void receivedFindByEmailEvent(const QString& uid, const QStringList& nameList, const QStringList& emailList, const QStringList& uidList);
245 246
246 void requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid); 247 void requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid);
247 248
248 249
249 // Emmitted when the target app receives a request from the source app 250 // Emmitted when the target app receives a request from the source app
250 void requestForBirthdayList(const QString& sourceChannel, const QString& uid); 251 void requestForBirthdayList(const QString& sourceChannel, const QString& uid);
251 252
252 // Emitted when the source app recieves a list of name/email pairs (=addresses) from another target app. Usually Ka/Pi 253 // Emitted when the source app recieves a list of name/email pairs (=addresses) from another target app. Usually Ka/Pi
253 // The first parameter is a uniqueid. It can be used to identify the event 254 // The first parameter is a uniqueid. It can be used to identify the event
254 void receivedBirthdayListEvent(const QString& uid, const QStringList& birthdayList, 255 void receivedBirthdayListEvent(const QString& uid, const QStringList& birthdayList,
255 const QStringList& anniversaryList, const QStringList& realNameList, 256 const QStringList& anniversaryList, const QStringList& realNameList,
256 const QStringList& emailList, const QStringList& assembledNameList, 257 const QStringList& emailList, const QStringList& assembledNameList,
257 const QStringList& uidList); 258 const QStringList& uidList);
258 259
259 260
260 private: 261 private:
261 ExternalAppHandler(); 262 ExternalAppHandler();
262 QList<DefaultAppItem> mDefaultItems; 263 QList<DefaultAppItem> mDefaultItems;
263 264
264 Availability mEmailAppAvailable; 265 Availability mEmailAppAvailable;
265 Availability mPhoneAppAvailable; 266 Availability mPhoneAppAvailable;
266 Availability mFaxAppAvailable; 267 Availability mFaxAppAvailable;
267 Availability mSMSAppAvailable; 268 Availability mSMSAppAvailable;
268 Availability mPagerAppAvailable; 269 Availability mPagerAppAvailable;
269 Availability mSIPAppAvailable; 270 Availability mSIPAppAvailable;
270 271
271 QCopListTransferItem* mNameEmailUidListFromKAPITransfer; 272 QCopListTransferItem* mNameEmailUidListFromKAPITransfer;
272 QCopListTransferItem* mFindByEmailFromKAPITransfer; 273 QCopListTransferItem* mFindByEmailFromKAPITransfer;
273 QCopTransferItem* mDisplayDetails; 274 QCopTransferItem* mDisplayDetails;
274 QCopListTransferItem* mBirthdayListFromKAPITransfer; 275 QCopListTransferItem* mBirthdayListFromKAPITransfer;
275 276
276 277
277 void addDefaultAppItem(Types type, int id, const QString& label, const QString& channel, const QString& message, const QString& parameters, const QString& message2, const QString& parameters2); 278 void addDefaultAppItem(Types type, int id, const QString& label, const QString& channel, const QString& message, const QString& parameters, const QString& message2, const QString& parameters2);
278 279
279 QString& translateMessage(QString& message, const QString& param1, const QString& param2) const; 280 QString& translateMessage(QString& message, const QString& param1, const QString& param2) const;
280 void passParameters(QCopEnvelope* e, const QString& parameters, const QString& param1, const QString& param2) const; 281 void passParameters(QCopEnvelope* e, const QString& parameters, const QString& param1, const QString& param2) const;
281 282
282 283
283 static ExternalAppHandler *sInstance; 284 static ExternalAppHandler *sInstance;
284 285
285 private slots: 286 private slots:
286 void receivedNameEmailUidList_Slot(const QString& uid, const QStringList& nameList, const QStringList& emailList, const QStringList& uidList, const QStringList&, const QStringList&, const QStringList& ); 287 void receivedNameEmailUidList_Slot(const QString& uid, const QStringList& nameList, const QStringList& emailList, const QStringList& uidList, const QStringList&, const QStringList&, const QStringList& );
287 288
288}; 289};
289 290
290 291
291#endif 292#endif
diff --git a/pwmanager/pwmanager/pwminit.cpp b/pwmanager/pwmanager/pwminit.cpp
index fbd17a7..68f3637 100644
--- a/pwmanager/pwmanager/pwminit.cpp
+++ b/pwmanager/pwmanager/pwminit.cpp
@@ -124,128 +124,137 @@ PwMInit::~PwMInit()
124 delete_ifnot_null(_keycard); 124 delete_ifnot_null(_keycard);
125#endif // CONFIG_KEYCARD 125#endif // CONFIG_KEYCARD
126 delete_ifnot_null(_tray); 126 delete_ifnot_null(_tray);
127 127
128 Randomizer::cleanup(); 128 Randomizer::cleanup();
129#ifndef PWM_EMBEDDED 129#ifndef PWM_EMBEDDED
130 Configuration::cleanup(); 130 Configuration::cleanup();
131#endif 131#endif
132} 132}
133 133
134void PwMInit::initializeApp() 134void PwMInit::initializeApp()
135{ 135{
136 //qDebug("PwMInit::initializeApp() "); 136 //qDebug("PwMInit::initializeApp() ");
137 PWM_ASSERT(runStatus == unknown); 137 PWM_ASSERT(runStatus == unknown);
138 runStatus = init; 138 runStatus = init;
139 initPosixSignalHandler(); 139 initPosixSignalHandler();
140 Randomizer::init(); 140 Randomizer::init();
141#ifndef PWM_EMBEDDED 141#ifndef PWM_EMBEDDED
142 Configuration::init(); 142 Configuration::init();
143#endif 143#endif
144 initDCOP(); 144 initDCOP();
145 initKWalletEmu(); 145 initKWalletEmu();
146 initKeycard(); 146 initKeycard();
147 initTray(); 147 initTray();
148 handleCmdLineArgs(); 148 handleCmdLineArgs();
149 bool openDeeplocked = false; 149 bool openDeeplocked = false;
150 if (conf()->confGlobAutostartDeepLocked() || 150 if (conf()->confGlobAutostartDeepLocked() ||
151 savedCmd.open_deeplocked) 151 savedCmd.open_deeplocked)
152 openDeeplocked = true; 152 openDeeplocked = true;
153 if ( false ){ 153 if ( false ){
154 // LR is not working 154 // LR is not working
155 //if (conf()->confWndAutoMinimizeOnStart() || 155 //if (conf()->confWndAutoMinimizeOnStart() ||
156 // savedCmd.minToTray) { 156 // savedCmd.minToTray) {
157 PwMDoc *newDoc = createDoc(); 157 PwMDoc *newDoc = createDoc();
158 qDebug(" createDoc()"); 158 qDebug(" createDoc()");
159 if (!newDoc->openDocUi(newDoc, 159 if (!newDoc->openDocUi(newDoc,
160 conf()->confGlobAutoStart(), 160 conf()->confGlobAutoStart(),
161 openDeeplocked)) { 161 openDeeplocked)) {
162 delete newDoc; 162 delete newDoc;
163 } 163 }
164 164
165 //US ENH for embedded devices: in the case of failure, open a document the default way 165 //US ENH for embedded devices: in the case of failure, open a document the default way
166 createMainWnd(conf()->confGlobAutoStart(), 166 createMainWnd(conf()->confGlobAutoStart(),
167 openDeeplocked, 167 openDeeplocked,
168 true, 168 true,
169 0, 169 0,
170 savedCmd.minimized); 170 savedCmd.minimized);
171 171
172 172
173 173
174 174
175 //} 175 //}
176 } else { 176 } else {
177 createMainWnd(conf()->confGlobAutoStart(), 177 createMainWnd(conf()->confGlobAutoStart(),
178 openDeeplocked, 178 openDeeplocked,
179 true, 179 true,
180 0, 180 0,
181 savedCmd.minimized); 181 savedCmd.minimized);
182 } 182 }
183 runStatus = running; 183 runStatus = running;
184} 184}
185 185
186void PwMInit::shutdownApp(int exitStatus) 186void PwMInit::shutdownApp(int exitStatus)
187{ 187{
188
189
190 PwM * iii;
191 while ( iii = _mainWndList.first() ) {
192 disconnect(iii, SIGNAL(closed(PwM *)),
193 this, SLOT(mainWndClosed(PwM *)));
194 mainWndClosed((iii));
195 }
196
188 printDebug(string("PwMInit::shutdownApp(") 197 printDebug(string("PwMInit::shutdownApp(")
189 + tostr(exitStatus) + ") called."); 198 + tostr(exitStatus) + ") called.");
190 PWM_ASSERT((runStatus == running) || (runStatus == init)); 199 PWM_ASSERT((runStatus == running) || (runStatus == init));
191 runStatus = shutdown; 200 runStatus = shutdown;
192 QApplication::exit(exitStatus); 201 QApplication::exit(exitStatus);
193 /* The destructor of PwMInit is called when control 202 /* The destructor of PwMInit is called when control
194 * leaves main() 203 * leaves main()
195 */ 204 */
196} 205}
197 206
198void PwMInit::initPosixSignalHandler() 207void PwMInit::initPosixSignalHandler()
199{ 208{
200 signal(SIGINT, sig_handler); 209 signal(SIGINT, sig_handler);
201 signal(SIGTERM, sig_handler); 210 signal(SIGTERM, sig_handler);
202} 211}
203 212
204void PwMInit::initDCOP() 213void PwMInit::initDCOP()
205{ 214{
206#ifndef PWM_EMBEDDED 215#ifndef PWM_EMBEDDED
207 _dcopClient = app->dcopClient(); 216 _dcopClient = app->dcopClient();
208 _dcopClient->setNotifications(true); 217 _dcopClient->setNotifications(true);
209#endif 218#endif
210 219
211} 220}
212 221
213void PwMInit::initKWalletEmu(bool forceDisable, bool forceReload) 222void PwMInit::initKWalletEmu(bool forceDisable, bool forceReload)
214{ 223{
215#ifdef CONFIG_KWALLETIF 224#ifdef CONFIG_KWALLETIF
216 if (!conf()->confGlobKwalletEmu() || 225 if (!conf()->confGlobKwalletEmu() ||
217 forceDisable) { 226 forceDisable) {
218 delete_ifnot_null(_kwalletEmu); 227 delete_ifnot_null(_kwalletEmu);
219 return; 228 return;
220 } 229 }
221 try { 230 try {
222 if (_kwalletEmu && forceReload) 231 if (_kwalletEmu && forceReload)
223 delete_and_null(_kwalletEmu); 232 delete_and_null(_kwalletEmu);
224 if (!_kwalletEmu) 233 if (!_kwalletEmu)
225 _kwalletEmu = new KWalletEmu(this); 234 _kwalletEmu = new KWalletEmu(this);
226 } catch (PwMException e) { 235 } catch (PwMException e) {
227 string errMsg("initializing KWallet emulation failed. ID: "); 236 string errMsg("initializing KWallet emulation failed. ID: ");
228 errMsg += tostr(static_cast<int>(e.getId())); 237 errMsg += tostr(static_cast<int>(e.getId()));
229 errMsg += " err-message: "; 238 errMsg += " err-message: ";
230 errMsg += e.getMessage(); 239 errMsg += e.getMessage();
231 printWarn(errMsg); 240 printWarn(errMsg);
232 return; 241 return;
233 } 242 }
234#else // CONFIG_KWALLETIF 243#else // CONFIG_KWALLETIF
235 PARAM_UNUSED(forceDisable); 244 PARAM_UNUSED(forceDisable);
236 PARAM_UNUSED(forceReload); 245 PARAM_UNUSED(forceReload);
237#endif // CONFIG_KWALLETIF 246#endif // CONFIG_KWALLETIF
238} 247}
239 248
240void PwMInit::initKeycard() 249void PwMInit::initKeycard()
241{ 250{
242#ifdef CONFIG_KEYCARD 251#ifdef CONFIG_KEYCARD
243 PWM_ASSERT(!_keycard); 252 PWM_ASSERT(!_keycard);
244 _keycard = new PwMKeyCard(this); 253 _keycard = new PwMKeyCard(this);
245#endif // CONFIG_KEYCARD 254#endif // CONFIG_KEYCARD
246} 255}
247 256
248void PwMInit::initTray() 257void PwMInit::initTray()
249{ 258{
250#ifdef PWM_EMBEDDED 259#ifdef PWM_EMBEDDED
251 //US ENH : embedded version does not support a tray 260 //US ENH : embedded version does not support a tray
@@ -363,128 +372,129 @@ void PwMInit::mainWndClosed(PwM *wnd)
363#endif 372#endif
364again: 373again:
365 374
366 if (wnd->isForceMinimizeToTray()) { 375 if (wnd->isForceMinimizeToTray()) {
367 if (unlikely(!_tray)) { 376 if (unlikely(!_tray)) {
368 /* This should not happen! If we set forceMinimizeToTray , 377 /* This should not happen! If we set forceMinimizeToTray ,
369 * we must be sure that _tray exists. 378 * we must be sure that _tray exists.
370 */ 379 */
371 BUG(); 380 BUG();
372 wnd->setForceMinimizeToTray(false); 381 wnd->setForceMinimizeToTray(false);
373 goto again; 382 goto again;
374 } 383 }
375 doMinimizeToTray = true; 384 doMinimizeToTray = true;
376 } else { 385 } else {
377 // Ask to minimize to tray. If not, delete doc. 386 // Ask to minimize to tray. If not, delete doc.
378 if (_tray && 387 if (_tray &&
379 runStatus != shutdown && 388 runStatus != shutdown &&
380 !wnd->isForceQuit() && 389 !wnd->isForceQuit() &&
381 !wnd->curDoc()->isDeleted()) { 390 !wnd->curDoc()->isDeleted()) {
382 if (conf()->confWndClose()) 391 if (conf()->confWndClose())
383 doDeleteDoc = true; 392 doDeleteDoc = true;
384 else 393 else
385 doMinimizeToTray = true; 394 doMinimizeToTray = true;
386 } else { 395 } else {
387 doDeleteDoc = true; 396 doDeleteDoc = true;
388 } 397 }
389 } 398 }
390 399
391 if (doMinimizeToTray) { 400 if (doMinimizeToTray) {
392 qDebug("doMinimizeToTray "); 401 qDebug("doMinimizeToTray ");
393 PWM_ASSERT(_tray); 402 PWM_ASSERT(_tray);
394 int mmlock = conf()->confGlobMinimizeLock(); 403 int mmlock = conf()->confGlobMinimizeLock();
395 switch (mmlock) { 404 switch (mmlock) {
396 case 0: // don't lock anything 405 case 0: // don't lock anything
397 break; 406 break;
398 case 1: // normal lock 407 case 1: // normal lock
399 wnd->curDoc()->lockAll(true); 408 wnd->curDoc()->lockAll(true);
400 break; 409 break;
401 case 2: // deep-lock 410 case 2: // deep-lock
402 wnd->curDoc()->deepLock(); 411 wnd->curDoc()->deepLock();
403 break; 412 break;
404 default: 413 default:
405 WARN(); 414 WARN();
406 } 415 }
407 } else if (doDeleteDoc) { 416 } else if (doDeleteDoc) {
408 qDebug("doDeleteDoc "); 417 qDebug("doDeleteDoc ");
409 if (!wnd->curDoc()->tryDelete()) { 418 if (!wnd->curDoc()->tryDelete()) {
410 /* We failed deleting the doc, 419 /* We failed deleting the doc,
411 * so open a new window with it, again. 420 * so open a new window with it, again.
412 */ 421 */
413 createMainWnd(QString::null, false, 422 createMainWnd(QString::null, false,
414 false, wnd->curDoc()); 423 false, wnd->curDoc());
415 } 424 }
416 } 425 }
417#ifndef PWM_EMBEDDED 426#ifndef PWM_EMBEDDED
418 // find the closed window in the "mainWndList" and delete it. 427 // find the closed window in the "mainWndList" and delete it.
419 QValueList<PwM *>::iterator i = _mainWndList.begin(), 428 QValueList<PwM *>::iterator i = _mainWndList.begin(),
420 end = _mainWndList.end(); 429 end = _mainWndList.end();
421#else 430#else
422 // find the closed window in the "mainWndList" and delete it. 431 // find the closed window in the "mainWndList" and delete it.
423 QValueList<PwM *>::Iterator i = _mainWndList.begin(), 432 QValueList<PwM *>::Iterator i = _mainWndList.begin(),
424 end = _mainWndList.end(); 433 end = _mainWndList.end();
425#endif 434#endif
426 while (i != end) { 435 while (i != end) {
436 //qDebug("iii %x end %x wnd %x", (*i), (*end), wnd);
427 if (*i == wnd) { 437 if (*i == wnd) {
428#ifndef PWM_EMBEDDED 438#ifndef PWM_EMBEDDED
429 _mainWndList.erase(i); 439 _mainWndList.erase(i);
430#else 440#else
431 _mainWndList.remove(i); 441 _mainWndList.remove(i);
432#endif 442#endif
433 443
434 if ( app->mainWidget() == wnd ) { 444 if ( app->mainWidget() == wnd ) {
435 if ( _mainWndList.count() ) { 445 if ( _mainWndList.count() ) {
436#ifndef DESKTOP_VERSION 446#ifndef DESKTOP_VERSION
437 app->showMainWidget(_mainWndList.first() ); 447 app->showMainWidget(_mainWndList.first() );
438#endif //DESKTOP_VERSION 448#endif //DESKTOP_VERSION
439 449
440 } 450 }
441 } 451 }
442 delete wnd; 452 delete wnd;
443 goto out_success; 453 goto out_success;
444 } 454 }
445 ++i; 455 ++i;
446 } 456 }
447 BUG(); 457 BUG();
448out_success: 458out_success:
449#ifndef PWM_EMBEDDED 459#ifndef PWM_EMBEDDED
450 if (!_mainWndList.size()) 460 if (!_mainWndList.size())
451#else 461#else
452 if (!_mainWndList.count()) 462 if (!_mainWndList.count())
453#endif 463#endif
454 464
455 { 465 {
456 /* If there's no main window and no tray icon 466 /* If there's no main window and no tray icon
457 * left, we have no user interface, so we can 467 * left, we have no user interface, so we can
458 * shut down the application. 468 * shut down the application.
459 */ 469 */
460 if (!_tray) { 470 if (!_tray) {
461#ifndef PWM_EMBEDDED 471#ifndef PWM_EMBEDDED
462 dcopClient()->setAcceptCalls(true); 472 dcopClient()->setAcceptCalls(true);
463 dcopClient()->resume(); 473 dcopClient()->resume();
464#endif 474#endif
465 shutdownApp(0); 475 shutdownApp(0);
466 return; 476 return;
467 } 477 }
468 /* There is no widget left, so set 478 /* There is no widget left, so set
469 * _curWidget to 0 479 * _curWidget to 0
470 */ 480 */
471 resetCurWidget(); 481 resetCurWidget();
472 } 482 }
473#ifndef PWM_EMBEDDED 483#ifndef PWM_EMBEDDED
474 dcopClient()->setAcceptCalls(true); 484 dcopClient()->setAcceptCalls(true);
475 dcopClient()->resume(); 485 dcopClient()->resume();
476#endif 486#endif
477} 487}
478 488
479void PwMInit::trayIconClosed(PwMTray *tray) 489void PwMInit::trayIconClosed(PwMTray *tray)
480{ 490{
481 if (runStatus != running) 491 if (runStatus != running)
482 return; 492 return;
483 PARAM_UNUSED(tray); 493 PARAM_UNUSED(tray);
484 PWM_ASSERT(tray == _tray); 494 PWM_ASSERT(tray == _tray);
485 /* If there's no main wnd left we have to 495 /* If there's no main wnd left we have to
486 * shutdown the app (same as in mainWndClosed()) 496 * shutdown the app (same as in mainWndClosed())
487 */ 497 */
488#ifndef PWM_EMBEDDED 498#ifndef PWM_EMBEDDED
489 if (!_mainWndList.size()) 499 if (!_mainWndList.size())
490 shutdownApp(0); 500 shutdownApp(0);