summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/kabcore.cpp27
-rw-r--r--kaddressbook/kabcore.h1
2 files changed, 27 insertions, 1 deletions
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp
index 7be5db8..7acf1ee 100644
--- a/kaddressbook/kabcore.cpp
+++ b/kaddressbook/kabcore.cpp
@@ -71,485 +71,486 @@ $Id$
71#include <kaboutdata.h> 71#include <kaboutdata.h>
72#include <libkdepim/categoryselectdialog.h> 72#include <libkdepim/categoryselectdialog.h>
73 73
74#include "addresseeutil.h" 74#include "addresseeutil.h"
75#include "addresseeeditordialog.h" 75#include "addresseeeditordialog.h"
76#include "extensionmanager.h" 76#include "extensionmanager.h"
77#include "kstdaction.h" 77#include "kstdaction.h"
78#include "kaddressbookservice.h" 78#include "kaddressbookservice.h"
79#include "ldapsearchdialog.h" 79#include "ldapsearchdialog.h"
80#include "printing/printingwizard.h" 80#include "printing/printingwizard.h"
81#else // KAB_EMBEDDED 81#else // KAB_EMBEDDED
82 82
83#include <kapplication.h> 83#include <kapplication.h>
84#include "KDGanttMinimizeSplitter.h" 84#include "KDGanttMinimizeSplitter.h"
85#include "kaddressbookmain.h" 85#include "kaddressbookmain.h"
86#include "kactioncollection.h" 86#include "kactioncollection.h"
87#include "addresseedialog.h" 87#include "addresseedialog.h"
88//US 88//US
89#include <addresseeview.h> 89#include <addresseeview.h>
90 90
91#include <qapp.h> 91#include <qapp.h>
92#include <qmenubar.h> 92#include <qmenubar.h>
93//#include <qtoolbar.h> 93//#include <qtoolbar.h>
94#include <qmessagebox.h> 94#include <qmessagebox.h>
95#include <kdebug.h> 95#include <kdebug.h>
96#include <kiconloader.h> // needed for SmallIcon 96#include <kiconloader.h> // needed for SmallIcon
97#include <kresources/kcmkresources.h> 97#include <kresources/kcmkresources.h>
98#include <ktoolbar.h> 98#include <ktoolbar.h>
99 99
100 100
101//#include <qlabel.h> 101//#include <qlabel.h>
102 102
103 103
104#ifndef DESKTOP_VERSION 104#ifndef DESKTOP_VERSION
105#include <qpe/ir.h> 105#include <qpe/ir.h>
106#include <qpe/qpemenubar.h> 106#include <qpe/qpemenubar.h>
107#include <qtopia/qcopenvelope_qws.h> 107#include <qtopia/qcopenvelope_qws.h>
108#else 108#else
109 109
110#include <qmenubar.h> 110#include <qmenubar.h>
111#endif 111#endif
112 112
113#endif // KAB_EMBEDDED 113#endif // KAB_EMBEDDED
114#include "kcmconfigs/kcmkabconfig.h" 114#include "kcmconfigs/kcmkabconfig.h"
115#include "kcmconfigs/kcmkdepimconfig.h" 115#include "kcmconfigs/kcmkdepimconfig.h"
116#include "kpimglobalprefs.h" 116#include "kpimglobalprefs.h"
117#include "externalapphandler.h" 117#include "externalapphandler.h"
118#include "xxportselectdialog.h" 118#include "xxportselectdialog.h"
119 119
120 120
121#include <kresources/selectdialog.h> 121#include <kresources/selectdialog.h>
122#include <kmessagebox.h> 122#include <kmessagebox.h>
123 123
124#include <picture.h> 124#include <picture.h>
125#include <resource.h> 125#include <resource.h>
126 126
127//US#include <qsplitter.h> 127//US#include <qsplitter.h>
128#include <qmap.h> 128#include <qmap.h>
129#include <qdir.h> 129#include <qdir.h>
130#include <qfile.h> 130#include <qfile.h>
131#include <qvbox.h> 131#include <qvbox.h>
132#include <qlayout.h> 132#include <qlayout.h>
133#include <qclipboard.h> 133#include <qclipboard.h>
134#include <qtextstream.h> 134#include <qtextstream.h>
135#include <qradiobutton.h> 135#include <qradiobutton.h>
136#include <qbuttongroup.h> 136#include <qbuttongroup.h>
137 137
138#include <libkdepim/categoryselectdialog.h> 138#include <libkdepim/categoryselectdialog.h>
139#include <libkdepim/categoryeditdialog.h> 139#include <libkdepim/categoryeditdialog.h>
140#include <kabc/vcardconverter.h> 140#include <kabc/vcardconverter.h>
141 141
142 142
143#include "addresseeutil.h" 143#include "addresseeutil.h"
144#include "undocmds.h" 144#include "undocmds.h"
145#include "addresseeeditordialog.h" 145#include "addresseeeditordialog.h"
146#include "viewmanager.h" 146#include "viewmanager.h"
147#include "details/detailsviewcontainer.h" 147#include "details/detailsviewcontainer.h"
148#include "kabprefs.h" 148#include "kabprefs.h"
149#include "xxportmanager.h" 149#include "xxportmanager.h"
150#include "incsearchwidget.h" 150#include "incsearchwidget.h"
151#include "jumpbuttonbar.h" 151#include "jumpbuttonbar.h"
152#include "extensionmanager.h" 152#include "extensionmanager.h"
153#include "addresseeconfig.h" 153#include "addresseeconfig.h"
154#include <kcmultidialog.h> 154#include <kcmultidialog.h>
155 155
156#ifdef _WIN32_ 156#ifdef _WIN32_
157 157
158#include "kaimportoldialog.h" 158#include "kaimportoldialog.h"
159#else 159#else
160#include <unistd.h> 160#include <unistd.h>
161#endif 161#endif
162// sync includes 162// sync includes
163#include <libkdepim/ksyncprofile.h> 163#include <libkdepim/ksyncprofile.h>
164#include <libkdepim/ksyncprefsdialog.h> 164#include <libkdepim/ksyncprefsdialog.h>
165 165
166 166
167class KABCatPrefs : public QDialog 167class KABCatPrefs : public QDialog
168{ 168{
169 public: 169 public:
170 KABCatPrefs( QWidget *parent=0, const char *name=0 ) : 170 KABCatPrefs( QWidget *parent=0, const char *name=0 ) :
171 QDialog( parent, name, true ) 171 QDialog( parent, name, true )
172 { 172 {
173 setCaption( i18n("Manage new Categories") ); 173 setCaption( i18n("Manage new Categories") );
174 QVBoxLayout* lay = new QVBoxLayout( this ); 174 QVBoxLayout* lay = new QVBoxLayout( this );
175 lay->setSpacing( 3 ); 175 lay->setSpacing( 3 );
176 lay->setMargin( 3 ); 176 lay->setMargin( 3 );
177 QLabel * lab = new QLabel( i18n("After importing/loading/syncing\nthere may be new categories in\naddressees\nwhich are not in the category list.\nPlease choose what to do:\n "), this ); 177 QLabel * lab = new QLabel( i18n("After importing/loading/syncing\nthere may be new categories in\naddressees\nwhich are not in the category list.\nPlease choose what to do:\n "), this );
178 lay->addWidget( lab ); 178 lay->addWidget( lab );
179 QButtonGroup* format = new QButtonGroup( 1, Horizontal, i18n("New categories not in list:"), this ); 179 QButtonGroup* format = new QButtonGroup( 1, Horizontal, i18n("New categories not in list:"), this );
180 lay->addWidget( format ); 180 lay->addWidget( format );
181 format->setExclusive ( true ) ; 181 format->setExclusive ( true ) ;
182 addCatBut = new QRadioButton(i18n("Add to category list"), format ); 182 addCatBut = new QRadioButton(i18n("Add to category list"), format );
183 new QRadioButton(i18n("Remove from addressees"), format ); 183 new QRadioButton(i18n("Remove from addressees"), format );
184 addCatBut->setChecked( true ); 184 addCatBut->setChecked( true );
185 QPushButton * ok = new QPushButton( i18n("OK"), this ); 185 QPushButton * ok = new QPushButton( i18n("OK"), this );
186 lay->addWidget( ok ); 186 lay->addWidget( ok );
187 QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); 187 QPushButton * cancel = new QPushButton( i18n("Cancel"), this );
188 lay->addWidget( cancel ); 188 lay->addWidget( cancel );
189 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); 189 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) );
190 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); 190 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) );
191 resize( 200, 200 ); 191 resize( 200, 200 );
192 } 192 }
193 193
194 bool addCat() { return addCatBut->isChecked(); } 194 bool addCat() { return addCatBut->isChecked(); }
195private: 195private:
196 QRadioButton* addCatBut; 196 QRadioButton* addCatBut;
197}; 197};
198 198
199 199
200 200
201class KAex2phonePrefs : public QDialog 201class KAex2phonePrefs : public QDialog
202{ 202{
203 public: 203 public:
204 KAex2phonePrefs( QWidget *parent=0, const char *name=0 ) : 204 KAex2phonePrefs( QWidget *parent=0, const char *name=0 ) :
205 QDialog( parent, name, true ) 205 QDialog( parent, name, true )
206 { 206 {
207 setCaption( i18n("Export to phone options") ); 207 setCaption( i18n("Export to phone options") );
208 QVBoxLayout* lay = new QVBoxLayout( this ); 208 QVBoxLayout* lay = new QVBoxLayout( this );
209 lay->setSpacing( 3 ); 209 lay->setSpacing( 3 );
210 lay->setMargin( 3 ); 210 lay->setMargin( 3 );
211 QLabel *lab; 211 QLabel *lab;
212 lay->addWidget(lab = new QLabel( i18n("Please read Help-Sync Howto\nto know what settings to use."), this ) ); 212 lay->addWidget(lab = new QLabel( i18n("Please read Help-Sync Howto\nto know what settings to use."), this ) );
213 lab->setAlignment (AlignHCenter ); 213 lab->setAlignment (AlignHCenter );
214 QHBox* temphb; 214 QHBox* temphb;
215 temphb = new QHBox( this ); 215 temphb = new QHBox( this );
216 new QLabel( i18n("I/O device: "), temphb ); 216 new QLabel( i18n("I/O device: "), temphb );
217 mPhoneDevice = new QLineEdit( temphb); 217 mPhoneDevice = new QLineEdit( temphb);
218 lay->addWidget( temphb ); 218 lay->addWidget( temphb );
219 temphb = new QHBox( this ); 219 temphb = new QHBox( this );
220 new QLabel( i18n("Connection: "), temphb ); 220 new QLabel( i18n("Connection: "), temphb );
221 mPhoneConnection = new QLineEdit( temphb); 221 mPhoneConnection = new QLineEdit( temphb);
222 lay->addWidget( temphb ); 222 lay->addWidget( temphb );
223 temphb = new QHBox( this ); 223 temphb = new QHBox( this );
224 new QLabel( i18n("Model(opt.): "), temphb ); 224 new QLabel( i18n("Model(opt.): "), temphb );
225 mPhoneModel = new QLineEdit( temphb); 225 mPhoneModel = new QLineEdit( temphb);
226 lay->addWidget( temphb ); 226 lay->addWidget( temphb );
227 // mWriteToSim = new QCheckBox( i18n("Write Contacts to SIM card\n(if not, write to phone memory)"), this ); 227 // mWriteToSim = new QCheckBox( i18n("Write Contacts to SIM card\n(if not, write to phone memory)"), this );
228 // lay->addWidget( mWriteToSim ); 228 // lay->addWidget( mWriteToSim );
229 lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\ncontact data on phone!"), this ) ); 229 lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\ncontact data on phone!"), this ) );
230 lab->setAlignment (AlignHCenter ); 230 lab->setAlignment (AlignHCenter );
231 QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this ); 231 QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this );
232 lay->addWidget( ok ); 232 lay->addWidget( ok );
233 QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); 233 QPushButton * cancel = new QPushButton( i18n("Cancel"), this );
234 lay->addWidget( cancel ); 234 lay->addWidget( cancel );
235 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); 235 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) );
236 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); 236 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) );
237 resize( 220, 240 ); 237 resize( 220, 240 );
238 238
239 } 239 }
240 240
241public: 241public:
242 QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel; 242 QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel;
243 QCheckBox* mWriteToSim; 243 QCheckBox* mWriteToSim;
244}; 244};
245 245
246 246
247bool pasteWithNewUid = true; 247bool pasteWithNewUid = true;
248 248
249#ifdef KAB_EMBEDDED 249#ifdef KAB_EMBEDDED
250KABCore::KABCore( KAddressBookMain *client, bool readWrite, QWidget *parent, const char *name ) 250KABCore::KABCore( KAddressBookMain *client, bool readWrite, QWidget *parent, const char *name )
251 : QWidget( parent, name ), KSyncInterface(), mGUIClient( client ), mViewManager( 0 ), 251 : QWidget( parent, name ), KSyncInterface(), mGUIClient( client ), mViewManager( 0 ),
252 mExtensionManager( 0 ),mConfigureDialog( 0 ),/*US mLdapSearchDialog( 0 ),*/ 252 mExtensionManager( 0 ),mConfigureDialog( 0 ),/*US mLdapSearchDialog( 0 ),*/
253 mReadWrite( readWrite ), mModified( false ), mMainWindow(client) 253 mReadWrite( readWrite ), mModified( false ), mMainWindow(client)
254#else //KAB_EMBEDDED 254#else //KAB_EMBEDDED
255KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const char *name ) 255KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const char *name )
256 : QWidget( parent, name ), KSyncInterface(), mGUIClient( client ), mViewManager( 0 ), 256 : QWidget( parent, name ), KSyncInterface(), mGUIClient( client ), mViewManager( 0 ),
257 mExtensionManager( 0 ), mConfigureDialog( 0 ), mLdapSearchDialog( 0 ), 257 mExtensionManager( 0 ), mConfigureDialog( 0 ), mLdapSearchDialog( 0 ),
258 mReadWrite( readWrite ), mModified( false ) 258 mReadWrite( readWrite ), mModified( false )
259#endif //KAB_EMBEDDED 259#endif //KAB_EMBEDDED
260{ 260{
261 // syncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)this, KSyncManager::KAPI, KABPrefs::instance(), syncMenu); 261 // syncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)this, KSyncManager::KAPI, KABPrefs::instance(), syncMenu);
262 // syncManager->setBlockSave(false); 262 // syncManager->setBlockSave(false);
263 mMiniSplitter = 0;
263 mExtensionBarSplitter = 0; 264 mExtensionBarSplitter = 0;
264 mIsPart = !parent->inherits( "KAddressBookMain" ); 265 mIsPart = !parent->inherits( "KAddressBookMain" );
265 mAddressBook = KABC::StdAddressBook::self(); 266 mAddressBook = KABC::StdAddressBook::self();
266 KABC::StdAddressBook::setAutomaticSave( false ); 267 KABC::StdAddressBook::setAutomaticSave( false );
267 268
268#ifndef KAB_EMBEDDED 269#ifndef KAB_EMBEDDED
269 mAddressBook->setErrorHandler( new KABC::GUIErrorHandler ); 270 mAddressBook->setErrorHandler( new KABC::GUIErrorHandler );
270#endif //KAB_EMBEDDED 271#endif //KAB_EMBEDDED
271 272
272 connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook * ) ), 273 connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook * ) ),
273 SLOT( addressBookChanged() ) ); 274 SLOT( addressBookChanged() ) );
274 275
275#if 0 276#if 0
276 // LP moved to addressbook init method 277 // LP moved to addressbook init method
277 mAddressBook->addCustomField( i18n( "Department" ), KABC::Field::Organization, 278 mAddressBook->addCustomField( i18n( "Department" ), KABC::Field::Organization,
278 "X-Department", "KADDRESSBOOK" ); 279 "X-Department", "KADDRESSBOOK" );
279 mAddressBook->addCustomField( i18n( "Profession" ), KABC::Field::Organization, 280 mAddressBook->addCustomField( i18n( "Profession" ), KABC::Field::Organization,
280 "X-Profession", "KADDRESSBOOK" ); 281 "X-Profession", "KADDRESSBOOK" );
281 mAddressBook->addCustomField( i18n( "Assistant's Name" ), KABC::Field::Organization, 282 mAddressBook->addCustomField( i18n( "Assistant's Name" ), KABC::Field::Organization,
282 "X-AssistantsName", "KADDRESSBOOK" ); 283 "X-AssistantsName", "KADDRESSBOOK" );
283 mAddressBook->addCustomField( i18n( "Manager's Name" ), KABC::Field::Organization, 284 mAddressBook->addCustomField( i18n( "Manager's Name" ), KABC::Field::Organization,
284 "X-ManagersName", "KADDRESSBOOK" ); 285 "X-ManagersName", "KADDRESSBOOK" );
285 mAddressBook->addCustomField( i18n( "Spouse's Name" ), KABC::Field::Personal, 286 mAddressBook->addCustomField( i18n( "Spouse's Name" ), KABC::Field::Personal,
286 "X-SpousesName", "KADDRESSBOOK" ); 287 "X-SpousesName", "KADDRESSBOOK" );
287 mAddressBook->addCustomField( i18n( "Office" ), KABC::Field::Personal, 288 mAddressBook->addCustomField( i18n( "Office" ), KABC::Field::Personal,
288 "X-Office", "KADDRESSBOOK" ); 289 "X-Office", "KADDRESSBOOK" );
289 mAddressBook->addCustomField( i18n( "IM Address" ), KABC::Field::Personal, 290 mAddressBook->addCustomField( i18n( "IM Address" ), KABC::Field::Personal,
290 "X-IMAddress", "KADDRESSBOOK" ); 291 "X-IMAddress", "KADDRESSBOOK" );
291 mAddressBook->addCustomField( i18n( "Anniversary" ), KABC::Field::Personal, 292 mAddressBook->addCustomField( i18n( "Anniversary" ), KABC::Field::Personal,
292 "X-Anniversary", "KADDRESSBOOK" ); 293 "X-Anniversary", "KADDRESSBOOK" );
293 294
294 //US added this field to become compatible with Opie/qtopia addressbook 295 //US added this field to become compatible with Opie/qtopia addressbook
295 // values can be "female" or "male" or "". An empty field represents undefined. 296 // values can be "female" or "male" or "". An empty field represents undefined.
296 mAddressBook->addCustomField( i18n( "Gender" ), KABC::Field::Personal, 297 mAddressBook->addCustomField( i18n( "Gender" ), KABC::Field::Personal,
297 "X-Gender", "KADDRESSBOOK" ); 298 "X-Gender", "KADDRESSBOOK" );
298 mAddressBook->addCustomField( i18n( "Children" ), KABC::Field::Personal, 299 mAddressBook->addCustomField( i18n( "Children" ), KABC::Field::Personal,
299 "X-Children", "KADDRESSBOOK" ); 300 "X-Children", "KADDRESSBOOK" );
300 mAddressBook->addCustomField( i18n( "FreeBusyUrl" ), KABC::Field::Personal, 301 mAddressBook->addCustomField( i18n( "FreeBusyUrl" ), KABC::Field::Personal,
301 "X-FreeBusyUrl", "KADDRESSBOOK" ); 302 "X-FreeBusyUrl", "KADDRESSBOOK" );
302#endif 303#endif
303 initGUI(); 304 initGUI();
304 305
305 mIncSearchWidget->setFocus(); 306 mIncSearchWidget->setFocus();
306 307
307 308
308 connect( mViewManager, SIGNAL( selected( const QString& ) ), 309 connect( mViewManager, SIGNAL( selected( const QString& ) ),
309 SLOT( setContactSelected( const QString& ) ) ); 310 SLOT( setContactSelected( const QString& ) ) );
310 connect( mViewManager, SIGNAL( executed( const QString& ) ), 311 connect( mViewManager, SIGNAL( executed( const QString& ) ),
311 SLOT( executeContact( const QString& ) ) ); 312 SLOT( executeContact( const QString& ) ) );
312 313
313 connect( mViewManager, SIGNAL( deleteRequest( ) ), 314 connect( mViewManager, SIGNAL( deleteRequest( ) ),
314 SLOT( deleteContacts( ) ) ); 315 SLOT( deleteContacts( ) ) );
315 connect( mViewManager, SIGNAL( modified() ), 316 connect( mViewManager, SIGNAL( modified() ),
316 SLOT( setModified() ) ); 317 SLOT( setModified() ) );
317 318
318 connect( mExtensionManager, SIGNAL( modified( const KABC::Addressee::List& ) ), this, SLOT( extensionModified( const KABC::Addressee::List& ) ) ); 319 connect( mExtensionManager, SIGNAL( modified( const KABC::Addressee::List& ) ), this, SLOT( extensionModified( const KABC::Addressee::List& ) ) );
319 connect( mExtensionManager, SIGNAL( changedActiveExtension( int ) ), this, SLOT( extensionChanged( int ) ) ); 320 connect( mExtensionManager, SIGNAL( changedActiveExtension( int ) ), this, SLOT( extensionChanged( int ) ) );
320 321
321 connect( mXXPortManager, SIGNAL( modified() ), 322 connect( mXXPortManager, SIGNAL( modified() ),
322 SLOT( setModified() ) ); 323 SLOT( setModified() ) );
323 324
324 connect( mJumpButtonBar, SIGNAL( jumpToLetter( const QString& ) ), 325 connect( mJumpButtonBar, SIGNAL( jumpToLetter( const QString& ) ),
325 SLOT( incrementalSearch( const QString& ) ) ); 326 SLOT( incrementalSearch( const QString& ) ) );
326 connect( mIncSearchWidget, SIGNAL( fieldChanged() ), 327 connect( mIncSearchWidget, SIGNAL( fieldChanged() ),
327 mJumpButtonBar, SLOT( recreateButtons() ) ); 328 mJumpButtonBar, SLOT( recreateButtons() ) );
328 329
329 connect( mDetails, SIGNAL( sendEmail( const QString& ) ), 330 connect( mDetails, SIGNAL( sendEmail( const QString& ) ),
330 SLOT( sendMail( const QString& ) ) ); 331 SLOT( sendMail( const QString& ) ) );
331 332
332 333
333 connect( ExternalAppHandler::instance(), SIGNAL (requestForNameEmailUidList(const QString&, const QString&)),this, SLOT(requestForNameEmailUidList(const QString&, const QString&))); 334 connect( ExternalAppHandler::instance(), SIGNAL (requestForNameEmailUidList(const QString&, const QString&)),this, SLOT(requestForNameEmailUidList(const QString&, const QString&)));
334 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&))); 335 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&)));
335 connect( ExternalAppHandler::instance(), SIGNAL (requestForBirthdayList(const QString&, const QString&)),this, SLOT(requestForBirthdayList(const QString&, const QString&))); 336 connect( ExternalAppHandler::instance(), SIGNAL (requestForBirthdayList(const QString&, const QString&)),this, SLOT(requestForBirthdayList(const QString&, const QString&)));
336 connect( ExternalAppHandler::instance(), SIGNAL (nextView()),this, SLOT(setDetailsToggle())); 337 connect( ExternalAppHandler::instance(), SIGNAL (nextView()),this, SLOT(setDetailsToggle()));
337 338
338 339
339#ifndef KAB_EMBEDDED 340#ifndef KAB_EMBEDDED
340 connect( mViewManager, SIGNAL( urlDropped( const KURL& ) ), 341 connect( mViewManager, SIGNAL( urlDropped( const KURL& ) ),
341 mXXPortManager, SLOT( importVCard( const KURL& ) ) ); 342 mXXPortManager, SLOT( importVCard( const KURL& ) ) );
342 343
343 connect( mDetails, SIGNAL( browse( const QString& ) ), 344 connect( mDetails, SIGNAL( browse( const QString& ) ),
344 SLOT( browse( const QString& ) ) ); 345 SLOT( browse( const QString& ) ) );
345 346
346 347
347 mAddressBookService = new KAddressBookService( this ); 348 mAddressBookService = new KAddressBookService( this );
348 349
349#endif //KAB_EMBEDDED 350#endif //KAB_EMBEDDED
350 351
351 mMessageTimer = new QTimer( this ); 352 mMessageTimer = new QTimer( this );
352 connect( mMessageTimer, SIGNAL( timeout() ), this, SLOT( setCaptionBack() ) ); 353 connect( mMessageTimer, SIGNAL( timeout() ), this, SLOT( setCaptionBack() ) );
353 mEditorDialog = 0; 354 mEditorDialog = 0;
354 createAddresseeEditorDialog( this ); 355 createAddresseeEditorDialog( this );
355 setModified( false ); 356 setModified( false );
356 mBRdisabled = false; 357 mBRdisabled = false;
357#ifndef DESKTOP_VERSION 358#ifndef DESKTOP_VERSION
358 infrared = 0; 359 infrared = 0;
359#endif 360#endif
360 //toggleBeamReceive( ); 361 //toggleBeamReceive( );
361 362
362 // we have a toolbar repainting error on the Zaurus when starting KA/Pi 363 // we have a toolbar repainting error on the Zaurus when starting KA/Pi
363 QTimer::singleShot( 1, this , SLOT ( updateToolBar())); 364 QTimer::singleShot( 1000, this , SLOT ( updateToolBar()));
364} 365}
365 366
366void KABCore::updateToolBar() 367void KABCore::updateToolBar()
367{ 368{
368 mMainWindow->toolBar()->repaint(); 369 mMainWindow->toolBar()->repaint();
369} 370}
370KABCore::~KABCore() 371KABCore::~KABCore()
371{ 372{
372 // save(); 373 // save();
373 //saveSettings(); 374 //saveSettings();
374 //KABPrefs::instance()->writeConfig(); 375 //KABPrefs::instance()->writeConfig();
375 delete AddresseeConfig::instance(); 376 delete AddresseeConfig::instance();
376 mAddressBook = 0; 377 mAddressBook = 0;
377 KABC::StdAddressBook::close(); 378 KABC::StdAddressBook::close();
378 379
379 delete syncManager; 380 delete syncManager;
380#ifndef DESKTOP_VERSION 381#ifndef DESKTOP_VERSION
381 if ( infrared ) 382 if ( infrared )
382 delete infrared; 383 delete infrared;
383#endif 384#endif
384} 385}
385void KABCore::receive( const QCString& cmsg, const QByteArray& data ) 386void KABCore::receive( const QCString& cmsg, const QByteArray& data )
386{ 387{
387 qDebug("KA: QCOP message received: %s ", cmsg.data() ); 388 qDebug("KA: QCOP message received: %s ", cmsg.data() );
388 if ( cmsg == "setDocument(QString)" ) { 389 if ( cmsg == "setDocument(QString)" ) {
389 QDataStream stream( data, IO_ReadOnly ); 390 QDataStream stream( data, IO_ReadOnly );
390 QString fileName; 391 QString fileName;
391 stream >> fileName; 392 stream >> fileName;
392 recieve( fileName ); 393 recieve( fileName );
393 return; 394 return;
394 } 395 }
395} 396}
396void KABCore::toggleBeamReceive( ) 397void KABCore::toggleBeamReceive( )
397{ 398{
398 if ( mBRdisabled ) 399 if ( mBRdisabled )
399 return; 400 return;
400#ifndef DESKTOP_VERSION 401#ifndef DESKTOP_VERSION
401 if ( infrared ) { 402 if ( infrared ) {
402 qDebug("AB disable BeamReceive "); 403 qDebug("AB disable BeamReceive ");
403 delete infrared; 404 delete infrared;
404 infrared = 0; 405 infrared = 0;
405 mActionBR->setChecked(false); 406 mActionBR->setChecked(false);
406 return; 407 return;
407 } 408 }
408 qDebug("AB enable BeamReceive "); 409 qDebug("AB enable BeamReceive ");
409 mActionBR->setChecked(true); 410 mActionBR->setChecked(true);
410 411
411 infrared = new QCopChannel("QPE/Application/addressbook",this, "channelAB" ) ; 412 infrared = new QCopChannel("QPE/Application/addressbook",this, "channelAB" ) ;
412 QObject::connect( infrared, SIGNAL (received ( const QCString &, const QByteArray & )),this, SLOT(receive( const QCString&, const QByteArray& ))); 413 QObject::connect( infrared, SIGNAL (received ( const QCString &, const QByteArray & )),this, SLOT(receive( const QCString&, const QByteArray& )));
413#endif 414#endif
414} 415}
415 416
416 417
417void KABCore::disableBR(bool b) 418void KABCore::disableBR(bool b)
418{ 419{
419#ifndef DESKTOP_VERSION 420#ifndef DESKTOP_VERSION
420 if ( b ) { 421 if ( b ) {
421 if ( infrared ) { 422 if ( infrared ) {
422 toggleBeamReceive( ); 423 toggleBeamReceive( );
423 } 424 }
424 mBRdisabled = true; 425 mBRdisabled = true;
425 } else { 426 } else {
426 if ( mBRdisabled ) { 427 if ( mBRdisabled ) {
427 mBRdisabled = false; 428 mBRdisabled = false;
428 //toggleBeamReceive( ); 429 //toggleBeamReceive( );
429 } 430 }
430 } 431 }
431#endif 432#endif
432 433
433} 434}
434void KABCore::recieve( QString fn ) 435void KABCore::recieve( QString fn )
435{ 436{
436 //qDebug("KABCore::recieve "); 437 //qDebug("KABCore::recieve ");
437 int count = mAddressBook->importFromFile( fn, true ); 438 int count = mAddressBook->importFromFile( fn, true );
438 if ( count ) 439 if ( count )
439 setModified( true ); 440 setModified( true );
440 mViewManager->refreshView(); 441 mViewManager->refreshView();
441 message(i18n("%1 contact(s) received!").arg( count )); 442 message(i18n("%1 contact(s) received!").arg( count ));
442 topLevelWidget()->showMaximized(); 443 topLevelWidget()->showMaximized();
443 topLevelWidget()->raise(); 444 topLevelWidget()->raise();
444} 445}
445void KABCore::restoreSettings() 446void KABCore::restoreSettings()
446{ 447{
447 mMultipleViewsAtOnce = KABPrefs::instance()->mMultipleViewsAtOnce; 448 mMultipleViewsAtOnce = KABPrefs::instance()->mMultipleViewsAtOnce;
448 449
449 bool state; 450 bool state;
450 451
451 if (mMultipleViewsAtOnce) 452 if (mMultipleViewsAtOnce)
452 state = KABPrefs::instance()->mDetailsPageVisible; 453 state = KABPrefs::instance()->mDetailsPageVisible;
453 else 454 else
454 state = false; 455 state = false;
455 456
456 mActionDetails->setChecked( state ); 457 mActionDetails->setChecked( state );
457 setDetailsVisible( state ); 458 setDetailsVisible( state );
458 459
459 state = KABPrefs::instance()->mJumpButtonBarVisible; 460 state = KABPrefs::instance()->mJumpButtonBarVisible;
460 461
461 mActionJumpBar->setChecked( state ); 462 mActionJumpBar->setChecked( state );
462 setJumpButtonBarVisible( state ); 463 setJumpButtonBarVisible( state );
463/*US 464/*US
464 QValueList<int> splitterSize = KABPrefs::instance()->mDetailsSplitter; 465 QValueList<int> splitterSize = KABPrefs::instance()->mDetailsSplitter;
465 if ( splitterSize.count() == 0 ) { 466 if ( splitterSize.count() == 0 ) {
466 splitterSize.append( width() / 2 ); 467 splitterSize.append( width() / 2 );
467 splitterSize.append( width() / 2 ); 468 splitterSize.append( width() / 2 );
468 } 469 }
469 mMiniSplitter->setSizes( splitterSize ); 470 mMiniSplitter->setSizes( splitterSize );
470 if ( mExtensionBarSplitter ) { 471 if ( mExtensionBarSplitter ) {
471 splitterSize = KABPrefs::instance()->mExtensionsSplitter; 472 splitterSize = KABPrefs::instance()->mExtensionsSplitter;
472 if ( splitterSize.count() == 0 ) { 473 if ( splitterSize.count() == 0 ) {
473 splitterSize.append( width() / 2 ); 474 splitterSize.append( width() / 2 );
474 splitterSize.append( width() / 2 ); 475 splitterSize.append( width() / 2 );
475 } 476 }
476 mExtensionBarSplitter->setSizes( splitterSize ); 477 mExtensionBarSplitter->setSizes( splitterSize );
477 478
478 } 479 }
479*/ 480*/
480 mViewManager->restoreSettings(); 481 mViewManager->restoreSettings();
481 mIncSearchWidget->setCurrentItem( KABPrefs::instance()->mCurrentIncSearchField ); 482 mIncSearchWidget->setCurrentItem( KABPrefs::instance()->mCurrentIncSearchField );
482 mExtensionManager->restoreSettings(); 483 mExtensionManager->restoreSettings();
483#ifdef DESKTOP_VERSION 484#ifdef DESKTOP_VERSION
484 int wid = width(); 485 int wid = width();
485 if ( wid < 10 ) 486 if ( wid < 10 )
486 wid = 400; 487 wid = 400;
487#else 488#else
488 int wid = QApplication::desktop()->width(); 489 int wid = QApplication::desktop()->width();
489 if ( wid < 640 ) 490 if ( wid < 640 )
490 wid = QApplication::desktop()->height(); 491 wid = QApplication::desktop()->height();
491#endif 492#endif
492 QValueList<int> splitterSize;// = KABPrefs::instance()->mDetailsSplitter; 493 QValueList<int> splitterSize;// = KABPrefs::instance()->mDetailsSplitter;
493 if ( true /*splitterSize.count() == 0*/ ) { 494 if ( true /*splitterSize.count() == 0*/ ) {
494 splitterSize.append( wid / 2 ); 495 splitterSize.append( wid / 2 );
495 splitterSize.append( wid / 2 ); 496 splitterSize.append( wid / 2 );
496 } 497 }
497 mMiniSplitter->setSizes( splitterSize ); 498 mMiniSplitter->setSizes( splitterSize );
498 if ( mExtensionBarSplitter ) { 499 if ( mExtensionBarSplitter ) {
499 //splitterSize = KABPrefs::instance()->mExtensionsSplitter; 500 //splitterSize = KABPrefs::instance()->mExtensionsSplitter;
500 if ( true /*splitterSize.count() == 0*/ ) { 501 if ( true /*splitterSize.count() == 0*/ ) {
501 splitterSize.append( wid / 2 ); 502 splitterSize.append( wid / 2 );
502 splitterSize.append( wid / 2 ); 503 splitterSize.append( wid / 2 );
503 } 504 }
504 mExtensionBarSplitter->setSizes( splitterSize ); 505 mExtensionBarSplitter->setSizes( splitterSize );
505 506
506 } 507 }
507 508
508 509
509} 510}
510 511
511void KABCore::saveSettings() 512void KABCore::saveSettings()
512{ 513{
513 KABPrefs::instance()->mJumpButtonBarVisible = mActionJumpBar->isChecked(); 514 KABPrefs::instance()->mJumpButtonBarVisible = mActionJumpBar->isChecked();
514 if ( mExtensionBarSplitter ) 515 if ( mExtensionBarSplitter )
515 KABPrefs::instance()->mExtensionsSplitter = mExtensionBarSplitter->sizes(); 516 KABPrefs::instance()->mExtensionsSplitter = mExtensionBarSplitter->sizes();
516 KABPrefs::instance()->mDetailsPageVisible = mActionDetails->isChecked(); 517 KABPrefs::instance()->mDetailsPageVisible = mActionDetails->isChecked();
517 KABPrefs::instance()->mDetailsSplitter = mMiniSplitter->sizes(); 518 KABPrefs::instance()->mDetailsSplitter = mMiniSplitter->sizes();
518#ifndef KAB_EMBEDDED 519#ifndef KAB_EMBEDDED
519 520
520 KABPrefs::instance()->mExtensionsSplitter = mExtensionBarSplitter->sizes(); 521 KABPrefs::instance()->mExtensionsSplitter = mExtensionBarSplitter->sizes();
521 KABPrefs::instance()->mDetailsSplitter = mDetailsSplitter->sizes(); 522 KABPrefs::instance()->mDetailsSplitter = mDetailsSplitter->sizes();
522#endif //KAB_EMBEDDED 523#endif //KAB_EMBEDDED
523 mExtensionManager->saveSettings(); 524 mExtensionManager->saveSettings();
524 mViewManager->saveSettings(); 525 mViewManager->saveSettings();
525 526
526 KABPrefs::instance()->mCurrentIncSearchField = mIncSearchWidget->currentItem(); 527 KABPrefs::instance()->mCurrentIncSearchField = mIncSearchWidget->currentItem();
527} 528}
528 529
529KABC::AddressBook *KABCore::addressBook() const 530KABC::AddressBook *KABCore::addressBook() const
530{ 531{
531 return mAddressBook; 532 return mAddressBook;
532} 533}
533 534
534KConfig *KABCore::config() 535KConfig *KABCore::config()
535{ 536{
536#ifndef KAB_EMBEDDED 537#ifndef KAB_EMBEDDED
537 return KABPrefs::instance()->config(); 538 return KABPrefs::instance()->config();
538#else //KAB_EMBEDDED 539#else //KAB_EMBEDDED
539 return KABPrefs::instance()->getConfig(); 540 return KABPrefs::instance()->getConfig();
540#endif //KAB_EMBEDDED 541#endif //KAB_EMBEDDED
541} 542}
542 543
543KActionCollection *KABCore::actionCollection() const 544KActionCollection *KABCore::actionCollection() const
544{ 545{
545 return mGUIClient->actionCollection(); 546 return mGUIClient->actionCollection();
546} 547}
547 548
548KABC::Field *KABCore::currentSearchField() const 549KABC::Field *KABCore::currentSearchField() const
549{ 550{
550 if (mIncSearchWidget) 551 if (mIncSearchWidget)
551 return mIncSearchWidget->currentField(); 552 return mIncSearchWidget->currentField();
552 else 553 else
553 return 0; 554 return 0;
554} 555}
555 556
@@ -587,387 +588,411 @@ void KABCore::createAboutData()
587#ifndef KAB_EMBEDDED 588#ifndef KAB_EMBEDDED
588 KAboutData *about = new KAboutData( "kaddressbook", I18N_NOOP( "KAddressBook" ), 589 KAboutData *about = new KAboutData( "kaddressbook", I18N_NOOP( "KAddressBook" ),
589 "3.1", I18N_NOOP( "The KDE Address Book" ), 590 "3.1", I18N_NOOP( "The KDE Address Book" ),
590 KAboutData::License_GPL_V2, 591 KAboutData::License_GPL_V2,
591 I18N_NOOP( "(c) 1997-2003, The KDE PIM Team" ) ); 592 I18N_NOOP( "(c) 1997-2003, The KDE PIM Team" ) );
592 about->addAuthor( "Tobias Koenig", I18N_NOOP( "Current maintainer " ), "tokoe@kde.org" ); 593 about->addAuthor( "Tobias Koenig", I18N_NOOP( "Current maintainer " ), "tokoe@kde.org" );
593 about->addAuthor( "Don Sanders", I18N_NOOP( "Original author " ) ); 594 about->addAuthor( "Don Sanders", I18N_NOOP( "Original author " ) );
594 about->addAuthor( "Cornelius Schumacher", 595 about->addAuthor( "Cornelius Schumacher",
595 I18N_NOOP( "Co-maintainer, libkabc port, CSV import/export " ), 596 I18N_NOOP( "Co-maintainer, libkabc port, CSV import/export " ),
596 "schumacher@kde.org" ); 597 "schumacher@kde.org" );
597 about->addAuthor( "Mike Pilone", I18N_NOOP( "GUI and framework redesign " ), 598 about->addAuthor( "Mike Pilone", I18N_NOOP( "GUI and framework redesign " ),
598 "mpilone@slac.com" ); 599 "mpilone@slac.com" );
599 about->addAuthor( "Greg Stern", I18N_NOOP( "DCOP interface" ) ); 600 about->addAuthor( "Greg Stern", I18N_NOOP( "DCOP interface" ) );
600 about->addAuthor( "Mark Westcott", I18N_NOOP( "Contact pinning" ) ); 601 about->addAuthor( "Mark Westcott", I18N_NOOP( "Contact pinning" ) );
601 about->addAuthor( "Michel Boyer de la Giroday", I18N_NOOP( "LDAP Lookup\n" ), 602 about->addAuthor( "Michel Boyer de la Giroday", I18N_NOOP( "LDAP Lookup\n" ),
602 "michel@klaralvdalens-datakonsult.se" ); 603 "michel@klaralvdalens-datakonsult.se" );
603 about->addAuthor( "Steffen Hansen", I18N_NOOP( "LDAP Lookup " ), 604 about->addAuthor( "Steffen Hansen", I18N_NOOP( "LDAP Lookup " ),
604 "hansen@kde.org" ); 605 "hansen@kde.org" );
605 606
606 return about; 607 return about;
607#endif //KAB_EMBEDDED 608#endif //KAB_EMBEDDED
608 609
609 QString version; 610 QString version;
610#include <../version> 611#include <../version>
611 QMessageBox::about( this, "About KAddressbook/Pi", 612 QMessageBox::about( this, "About KAddressbook/Pi",
612 "KAddressbook/Platform-independent\n" 613 "KAddressbook/Platform-independent\n"
613 "(KA/Pi) " +version + " - " + 614 "(KA/Pi) " +version + " - " +
614#ifdef DESKTOP_VERSION 615#ifdef DESKTOP_VERSION
615 "Desktop Edition\n" 616 "Desktop Edition\n"
616#else 617#else
617 "PDA-Edition\n" 618 "PDA-Edition\n"
618 "for: Zaurus 5500 / 7x0 / 8x0\n" 619 "for: Zaurus 5500 / 7x0 / 8x0\n"
619#endif 620#endif
620 621
621 "(c) 2004 Ulf Schenk\n" 622 "(c) 2004 Ulf Schenk\n"
622 "(c) 2004 Lutz Rogowski\n" 623 "(c) 2004 Lutz Rogowski\n"
623 "(c) 1997-2003, The KDE PIM Team\n" 624 "(c) 1997-2003, The KDE PIM Team\n"
624 "Tobias Koenig Current maintainer\ntokoe@kde.org\n" 625 "Tobias Koenig Current maintainer\ntokoe@kde.org\n"
625 "Don Sanders Original author\n" 626 "Don Sanders Original author\n"
626 "Cornelius Schumacher Co-maintainer\nschumacher@kde.org\n" 627 "Cornelius Schumacher Co-maintainer\nschumacher@kde.org\n"
627 "Mike Pilone GUI and framework redesign\nmpilone@slac.com\n" 628 "Mike Pilone GUI and framework redesign\nmpilone@slac.com\n"
628 "Greg Stern DCOP interface\n" 629 "Greg Stern DCOP interface\n"
629 "Mark Westcot Contact pinning\n" 630 "Mark Westcot Contact pinning\n"
630 "Michel Boyer de la Giroday LDAP Lookup\n" "michel@klaralvdalens-datakonsult.se\n" 631 "Michel Boyer de la Giroday LDAP Lookup\n" "michel@klaralvdalens-datakonsult.se\n"
631 "Steffen Hansen LDAP Lookup\nhansen@kde.org\n" 632 "Steffen Hansen LDAP Lookup\nhansen@kde.org\n"
632#ifdef _WIN32_ 633#ifdef _WIN32_
633 "(c) 2004 Lutz Rogowski Import from OL\nrogowski@kde.org\n" 634 "(c) 2004 Lutz Rogowski Import from OL\nrogowski@kde.org\n"
634#endif 635#endif
635 ); 636 );
636} 637}
637 638
638void KABCore::setContactSelected( const QString &uid ) 639void KABCore::setContactSelected( const QString &uid )
639{ 640{
640 KABC::Addressee addr = mAddressBook->findByUid( uid ); 641 KABC::Addressee addr = mAddressBook->findByUid( uid );
641 if ( !mDetails->isHidden() ) 642 if ( !mDetails->isHidden() )
642 mDetails->setAddressee( addr ); 643 mDetails->setAddressee( addr );
643 644
644 if ( !addr.isEmpty() ) { 645 if ( !addr.isEmpty() ) {
645 emit contactSelected( addr.formattedName() ); 646 emit contactSelected( addr.formattedName() );
646 KABC::Picture pic = addr.photo(); 647 KABC::Picture pic = addr.photo();
647 if ( pic.isIntern() ) { 648 if ( pic.isIntern() ) {
648//US emit contactSelected( pic.data() ); 649//US emit contactSelected( pic.data() );
649//US instead use: 650//US instead use:
650 QPixmap px; 651 QPixmap px;
651 if (pic.data().isNull() != true) 652 if (pic.data().isNull() != true)
652 { 653 {
653 px.convertFromImage(pic.data()); 654 px.convertFromImage(pic.data());
654 } 655 }
655 656
656 emit contactSelected( px ); 657 emit contactSelected( px );
657 } 658 }
658 } 659 }
659 660
660 661
661 mExtensionManager->setSelectionChanged(); 662 mExtensionManager->setSelectionChanged();
662 663
663 // update the actions 664 // update the actions
664 bool selected = !uid.isEmpty(); 665 bool selected = !uid.isEmpty();
665 666
666 if ( mReadWrite ) { 667 if ( mReadWrite ) {
667 mActionCut->setEnabled( selected ); 668 mActionCut->setEnabled( selected );
668 mActionPaste->setEnabled( selected ); 669 mActionPaste->setEnabled( selected );
669 } 670 }
670 671
671 mActionCopy->setEnabled( selected ); 672 mActionCopy->setEnabled( selected );
672 mActionDelete->setEnabled( selected ); 673 mActionDelete->setEnabled( selected );
673 mActionEditAddressee->setEnabled( selected ); 674 mActionEditAddressee->setEnabled( selected );
674 mActionMail->setEnabled( selected ); 675 mActionMail->setEnabled( selected );
675 mActionMailVCard->setEnabled( selected ); 676 mActionMailVCard->setEnabled( selected );
676 //if (mActionBeam) 677 //if (mActionBeam)
677 //mActionBeam->setEnabled( selected ); 678 //mActionBeam->setEnabled( selected );
678 679
679 if (mActionBeamVCard) 680 if (mActionBeamVCard)
680 mActionBeamVCard->setEnabled( selected ); 681 mActionBeamVCard->setEnabled( selected );
681 682
682 mActionWhoAmI->setEnabled( selected ); 683 mActionWhoAmI->setEnabled( selected );
683} 684}
684 685
685void KABCore::sendMail() 686void KABCore::sendMail()
686{ 687{
687 sendMail( mViewManager->selectedEmails().join( ", " ) ); 688 sendMail( mViewManager->selectedEmails().join( ", " ) );
688} 689}
689 690
690void KABCore::sendMail( const QString& emaillist ) 691void KABCore::sendMail( const QString& emaillist )
691{ 692{
692 // the parameter has the form "name1 <abc@aol.com>,name2 <abc@aol.com>;... " 693 // the parameter has the form "name1 <abc@aol.com>,name2 <abc@aol.com>;... "
693 if (emaillist.contains(",") > 0) 694 if (emaillist.contains(",") > 0)
694 ExternalAppHandler::instance()->mailToMultipleContacts( emaillist, QString::null ); 695 ExternalAppHandler::instance()->mailToMultipleContacts( emaillist, QString::null );
695 else 696 else
696 ExternalAppHandler::instance()->mailToOneContact( emaillist ); 697 ExternalAppHandler::instance()->mailToOneContact( emaillist );
697} 698}
698 699
699 700
700 701
701void KABCore::mailVCard() 702void KABCore::mailVCard()
702{ 703{
703 QStringList uids = mViewManager->selectedUids(); 704 QStringList uids = mViewManager->selectedUids();
704 if ( !uids.isEmpty() ) 705 if ( !uids.isEmpty() )
705 mailVCard( uids ); 706 mailVCard( uids );
706} 707}
707 708
708void KABCore::mailVCard( const QStringList& uids ) 709void KABCore::mailVCard( const QStringList& uids )
709{ 710{
710 QStringList urls; 711 QStringList urls;
711 712
712// QString tmpdir = locateLocal("tmp", KGlobal::getAppName()); 713// QString tmpdir = locateLocal("tmp", KGlobal::getAppName());
713 714
714 QString dirName = "/tmp/" + KApplication::randomString( 8 ); 715 QString dirName = "/tmp/" + KApplication::randomString( 8 );
715 716
716 717
717 718
718 QDir().mkdir( dirName, true ); 719 QDir().mkdir( dirName, true );
719 720
720 for( QStringList::ConstIterator it = uids.begin(); it != uids.end(); ++it ) { 721 for( QStringList::ConstIterator it = uids.begin(); it != uids.end(); ++it ) {
721 KABC::Addressee a = mAddressBook->findByUid( *it ); 722 KABC::Addressee a = mAddressBook->findByUid( *it );
722 723
723 if ( a.isEmpty() ) 724 if ( a.isEmpty() )
724 continue; 725 continue;
725 726
726 QString name = a.givenName() + "_" + a.familyName() + ".vcf"; 727 QString name = a.givenName() + "_" + a.familyName() + ".vcf";
727 728
728 QString fileName = dirName + "/" + name; 729 QString fileName = dirName + "/" + name;
729 730
730 QFile outFile(fileName); 731 QFile outFile(fileName);
731 732
732 if ( outFile.open(IO_WriteOnly) ) { // file opened successfully 733 if ( outFile.open(IO_WriteOnly) ) { // file opened successfully
733 KABC::VCardConverter converter; 734 KABC::VCardConverter converter;
734 QString vcard; 735 QString vcard;
735 736
736 converter.addresseeToVCard( a, vcard ); 737 converter.addresseeToVCard( a, vcard );
737 738
738 QTextStream t( &outFile ); // use a text stream 739 QTextStream t( &outFile ); // use a text stream
739 t.setEncoding( QTextStream::UnicodeUTF8 ); 740 t.setEncoding( QTextStream::UnicodeUTF8 );
740 t << vcard; 741 t << vcard;
741 742
742 outFile.close(); 743 outFile.close();
743 744
744 urls.append( fileName ); 745 urls.append( fileName );
745 } 746 }
746 } 747 }
747 748
748 bool result = ExternalAppHandler::instance()->mailToMultipleContacts( QString::null, urls.join(", ") ); 749 bool result = ExternalAppHandler::instance()->mailToMultipleContacts( QString::null, urls.join(", ") );
749 750
750 751
751/*US 752/*US
752 kapp->invokeMailer( QString::null, QString::null, QString::null, 753 kapp->invokeMailer( QString::null, QString::null, QString::null,
753 QString::null, // subject 754 QString::null, // subject
754 QString::null, // body 755 QString::null, // body
755 QString::null, 756 QString::null,
756 urls ); // attachments 757 urls ); // attachments
757*/ 758*/
758 759
759} 760}
760 761
761/** 762/**
762 Beams the "WhoAmI contact. 763 Beams the "WhoAmI contact.
763*/ 764*/
764void KABCore::beamMySelf() 765void KABCore::beamMySelf()
765{ 766{
766 KABC::Addressee a = KABC::StdAddressBook::self()->whoAmI(); 767 KABC::Addressee a = KABC::StdAddressBook::self()->whoAmI();
767 if (!a.isEmpty()) 768 if (!a.isEmpty())
768 { 769 {
769 QStringList uids; 770 QStringList uids;
770 uids << a.uid(); 771 uids << a.uid();
771 772
772 beamVCard(uids); 773 beamVCard(uids);
773 } else { 774 } else {
774 KMessageBox::information( this, i18n( "Your personal contact is\nnot set! Please select it\nand set it with menu:\nSettings - Set Who Am I\n" ) ); 775 KMessageBox::information( this, i18n( "Your personal contact is\nnot set! Please select it\nand set it with menu:\nSettings - Set Who Am I\n" ) );
775 776
776 777
777 } 778 }
778} 779}
780void KABCore::resizeEvent(QResizeEvent* e )
781{
782 if ( !mMiniSplitter )
783 return;
784 if ( QApplication::desktop()->width() >= 480 ) {
785 int fac = QApplication::desktop()->width()/QApplication::desktop()->height();
786 if ( fac > 0 ) { // e.g. 640x480
787 if ( mMiniSplitter->orientation() == Qt::Vertical ) {
788 mMiniSplitter->setOrientation( Qt::Horizontal);
789 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right );
790 if ( QApplication::desktop()->width() <= 640 )
791 topLevelWidget()->showMaximized();
792 }
793 } else {// e.g. 480x640
794 if ( mMiniSplitter->orientation() == Qt::Horizontal ) {
795 mMiniSplitter->setOrientation( Qt::Vertical );
796 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Down );
797 if ( QApplication::desktop()->width() <= 640 )
798 topLevelWidget()->showMaximized();
799 }
800 }
801 }
779 802
803}
780void KABCore::export2phone() 804void KABCore::export2phone()
781{ 805{
806
782 QStringList uids; 807 QStringList uids;
783 XXPortSelectDialog dlg( this, false, this ); 808 XXPortSelectDialog dlg( this, false, this );
784 if ( dlg.exec() ) 809 if ( dlg.exec() )
785 uids = dlg.uids(); 810 uids = dlg.uids();
786 else 811 else
787 return; 812 return;
788 if ( uids.isEmpty() ) 813 if ( uids.isEmpty() )
789 return; 814 return;
790 // qDebug("count %d ", uids.count()); 815 // qDebug("count %d ", uids.count());
791 816
792 KAex2phonePrefs ex2phone; 817 KAex2phonePrefs ex2phone;
793 ex2phone.mPhoneConnection->setText( KPimGlobalPrefs::instance()->mEx2PhoneConnection ); 818 ex2phone.mPhoneConnection->setText( KPimGlobalPrefs::instance()->mEx2PhoneConnection );
794 ex2phone.mPhoneDevice->setText( KPimGlobalPrefs::instance()->mEx2PhoneDevice ); 819 ex2phone.mPhoneDevice->setText( KPimGlobalPrefs::instance()->mEx2PhoneDevice );
795 ex2phone.mPhoneModel->setText( KPimGlobalPrefs::instance()->mEx2PhoneModel ); 820 ex2phone.mPhoneModel->setText( KPimGlobalPrefs::instance()->mEx2PhoneModel );
796 821
797 if ( !ex2phone.exec() ) { 822 if ( !ex2phone.exec() ) {
798 return; 823 return;
799 } 824 }
800 KPimGlobalPrefs::instance()->mEx2PhoneConnection = ex2phone.mPhoneConnection->text(); 825 KPimGlobalPrefs::instance()->mEx2PhoneConnection = ex2phone.mPhoneConnection->text();
801 KPimGlobalPrefs::instance()->mEx2PhoneDevice = ex2phone.mPhoneDevice->text(); 826 KPimGlobalPrefs::instance()->mEx2PhoneDevice = ex2phone.mPhoneDevice->text();
802 KPimGlobalPrefs::instance()->mEx2PhoneModel = ex2phone.mPhoneModel->text(); 827 KPimGlobalPrefs::instance()->mEx2PhoneModel = ex2phone.mPhoneModel->text();
803 828
804 829
805 PhoneAccess::writeConfig( KPimGlobalPrefs::instance()->mEx2PhoneDevice, 830 PhoneAccess::writeConfig( KPimGlobalPrefs::instance()->mEx2PhoneDevice,
806 KPimGlobalPrefs::instance()->mEx2PhoneConnection, 831 KPimGlobalPrefs::instance()->mEx2PhoneConnection,
807 KPimGlobalPrefs::instance()->mEx2PhoneModel ); 832 KPimGlobalPrefs::instance()->mEx2PhoneModel );
808 833
809 QString fileName = getPhoneFile(); 834 QString fileName = getPhoneFile();
810 if ( ! mAddressBook->export2PhoneFormat( uids ,fileName ) ) 835 if ( ! mAddressBook->export2PhoneFormat( uids ,fileName ) )
811 return; 836 return;
812 837
813 message(i18n("Exporting to phone...")); 838 message(i18n("Exporting to phone..."));
814 QTimer::singleShot( 1, this , SLOT ( writeToPhone())); 839 QTimer::singleShot( 1, this , SLOT ( writeToPhone()));
815 840
816} 841}
817QString KABCore::getPhoneFile() 842QString KABCore::getPhoneFile()
818{ 843{
819#ifdef DESKTOP_VERSION 844#ifdef DESKTOP_VERSION
820 return locateLocal("tmp", "phonefile.vcf"); 845 return locateLocal("tmp", "phonefile.vcf");
821#else 846#else
822 return "/tmp/phonefile.vcf"; 847 return "/tmp/phonefile.vcf";
823#endif 848#endif
824 849
825} 850}
826void KABCore::writeToPhone( ) 851void KABCore::writeToPhone( )
827{ 852{
828 if ( PhoneAccess::writeToPhone( getPhoneFile() ) ) 853 if ( PhoneAccess::writeToPhone( getPhoneFile() ) )
829 message(i18n("Export to phone finished!")); 854 message(i18n("Export to phone finished!"));
830 else 855 else
831 qDebug(i18n("Error exporting to phone")); 856 qDebug(i18n("Error exporting to phone"));
832} 857}
833void KABCore::beamVCard() 858void KABCore::beamVCard()
834{ 859{
835 QStringList uids = mViewManager->selectedUids(); 860 QStringList uids = mViewManager->selectedUids();
836 if ( !uids.isEmpty() ) 861 if ( !uids.isEmpty() )
837 beamVCard( uids ); 862 beamVCard( uids );
838} 863}
839 864
840 865
841void KABCore::beamVCard(const QStringList& uids) 866void KABCore::beamVCard(const QStringList& uids)
842{ 867{
843 868
844 // LR: we should use the /tmp dir on the Zaurus, 869 // LR: we should use the /tmp dir on the Zaurus,
845 // because: /tmp = RAM, (HOME)/kdepim = flash memory 870 // because: /tmp = RAM, (HOME)/kdepim = flash memory
846 871
847#ifdef DESKTOP_VERSION 872#ifdef DESKTOP_VERSION
848 QString fileName = locateLocal("tmp", "kapibeamfile.vcf"); 873 QString fileName = locateLocal("tmp", "kapibeamfile.vcf");
849#else 874#else
850 QString fileName = "/tmp/kapibeamfile.vcf"; 875 QString fileName = "/tmp/kapibeamfile.vcf";
851#endif 876#endif
852 877
853 KABC::VCardConverter converter; 878 KABC::VCardConverter converter;
854 QString description; 879 QString description;
855 QString datastream; 880 QString datastream;
856 for( QStringList::ConstIterator it = uids.begin(); it != uids.end(); ++it ) { 881 for( QStringList::ConstIterator it = uids.begin(); it != uids.end(); ++it ) {
857 KABC::Addressee a = mAddressBook->findByUid( *it ); 882 KABC::Addressee a = mAddressBook->findByUid( *it );
858 883
859 if ( a.isEmpty() ) 884 if ( a.isEmpty() )
860 continue; 885 continue;
861 886
862 if (description.isEmpty()) 887 if (description.isEmpty())
863 description = a.formattedName(); 888 description = a.formattedName();
864 889
865 QString vcard; 890 QString vcard;
866 converter.addresseeToVCard( a, vcard ); 891 converter.addresseeToVCard( a, vcard );
867 int start = 0; 892 int start = 0;
868 int next; 893 int next;
869 while ( (next = vcard.find("TYPE=", start) )>= 0 ) { 894 while ( (next = vcard.find("TYPE=", start) )>= 0 ) {
870 int semi = vcard.find(";", next); 895 int semi = vcard.find(";", next);
871 int dopp = vcard.find(":", next); 896 int dopp = vcard.find(":", next);
872 int sep; 897 int sep;
873 if ( semi < dopp && semi >= 0 ) 898 if ( semi < dopp && semi >= 0 )
874 sep = semi ; 899 sep = semi ;
875 else 900 else
876 sep = dopp; 901 sep = dopp;
877 datastream +=vcard.mid( start, next - start); 902 datastream +=vcard.mid( start, next - start);
878 datastream +=vcard.mid( next+5,sep -next -5 ).upper(); 903 datastream +=vcard.mid( next+5,sep -next -5 ).upper();
879 start = sep; 904 start = sep;
880 } 905 }
881 datastream += vcard.mid( start,vcard.length() ); 906 datastream += vcard.mid( start,vcard.length() );
882 } 907 }
883#ifndef DESKTOP_VERSION 908#ifndef DESKTOP_VERSION
884 QFile outFile(fileName); 909 QFile outFile(fileName);
885 if ( outFile.open(IO_WriteOnly) ) { 910 if ( outFile.open(IO_WriteOnly) ) {
886 datastream.replace ( QRegExp("VERSION:3.0") , "VERSION:2.1" ); 911 datastream.replace ( QRegExp("VERSION:3.0") , "VERSION:2.1" );
887 QTextStream t( &outFile ); // use a text stream 912 QTextStream t( &outFile ); // use a text stream
888 //t.setEncoding( QTextStream::UnicodeUTF8 ); 913 //t.setEncoding( QTextStream::UnicodeUTF8 );
889 t.setEncoding( QTextStream::Latin1 ); 914 t.setEncoding( QTextStream::Latin1 );
890 t <<datastream.latin1(); 915 t <<datastream.latin1();
891 outFile.close(); 916 outFile.close();
892 Ir *ir = new Ir( this ); 917 Ir *ir = new Ir( this );
893 connect( ir, SIGNAL( done(Ir*) ), this, SLOT( beamDone(Ir*) ) ); 918 connect( ir, SIGNAL( done(Ir*) ), this, SLOT( beamDone(Ir*) ) );
894 ir->send( fileName, description, "text/x-vCard" ); 919 ir->send( fileName, description, "text/x-vCard" );
895 } else { 920 } else {
896 qDebug("Error open temp beam file "); 921 qDebug("Error open temp beam file ");
897 return; 922 return;
898 } 923 }
899#endif 924#endif
900 925
901} 926}
902 927
903void KABCore::beamDone( Ir *ir ) 928void KABCore::beamDone( Ir *ir )
904{ 929{
905#ifndef DESKTOP_VERSION 930#ifndef DESKTOP_VERSION
906 delete ir; 931 delete ir;
907#endif 932#endif
908 topLevelWidget()->raise(); 933 topLevelWidget()->raise();
909 message( i18n("Beaming finished!") ); 934 message( i18n("Beaming finished!") );
910} 935}
911 936
912 937
913void KABCore::browse( const QString& url ) 938void KABCore::browse( const QString& url )
914{ 939{
915#ifndef KAB_EMBEDDED 940#ifndef KAB_EMBEDDED
916 kapp->invokeBrowser( url ); 941 kapp->invokeBrowser( url );
917#else //KAB_EMBEDDED 942#else //KAB_EMBEDDED
918 qDebug("KABCore::browse must be fixed"); 943 qDebug("KABCore::browse must be fixed");
919#endif //KAB_EMBEDDED 944#endif //KAB_EMBEDDED
920} 945}
921 946
922void KABCore::selectAllContacts() 947void KABCore::selectAllContacts()
923{ 948{
924 mViewManager->setSelected( QString::null, true ); 949 mViewManager->setSelected( QString::null, true );
925} 950}
926 951
927void KABCore::deleteContacts() 952void KABCore::deleteContacts()
928{ 953{
929 QStringList uidList = mViewManager->selectedUids(); 954 QStringList uidList = mViewManager->selectedUids();
930 deleteContacts( uidList ); 955 deleteContacts( uidList );
931} 956}
932 957
933void KABCore::deleteContacts( const QStringList &uids ) 958void KABCore::deleteContacts( const QStringList &uids )
934{ 959{
935 if ( uids.count() > 0 ) { 960 if ( uids.count() > 0 ) {
936 PwDeleteCommand *command = new PwDeleteCommand( mAddressBook, uids ); 961 PwDeleteCommand *command = new PwDeleteCommand( mAddressBook, uids );
937 UndoStack::instance()->push( command ); 962 UndoStack::instance()->push( command );
938 RedoStack::instance()->clear(); 963 RedoStack::instance()->clear();
939 964
940 // now if we deleted anything, refresh 965 // now if we deleted anything, refresh
941 setContactSelected( QString::null ); 966 setContactSelected( QString::null );
942 setModified( true ); 967 setModified( true );
943 } 968 }
944} 969}
945 970
946void KABCore::copyContacts() 971void KABCore::copyContacts()
947{ 972{
948 KABC::Addressee::List addrList = mViewManager->selectedAddressees(); 973 KABC::Addressee::List addrList = mViewManager->selectedAddressees();
949 974
950 QString clipText = AddresseeUtil::addresseesToClipboard( addrList ); 975 QString clipText = AddresseeUtil::addresseesToClipboard( addrList );
951 976
952 kdDebug(5720) << "KABCore::copyContacts: " << clipText << endl; 977 kdDebug(5720) << "KABCore::copyContacts: " << clipText << endl;
953 978
954 QClipboard *cb = QApplication::clipboard(); 979 QClipboard *cb = QApplication::clipboard();
955 cb->setText( clipText ); 980 cb->setText( clipText );
956} 981}
957 982
958void KABCore::cutContacts() 983void KABCore::cutContacts()
959{ 984{
960 QStringList uidList = mViewManager->selectedUids(); 985 QStringList uidList = mViewManager->selectedUids();
961 986
962//US if ( uidList.size() > 0 ) { 987//US if ( uidList.size() > 0 ) {
963 if ( uidList.count() > 0 ) { 988 if ( uidList.count() > 0 ) {
964 PwCutCommand *command = new PwCutCommand( mAddressBook, uidList ); 989 PwCutCommand *command = new PwCutCommand( mAddressBook, uidList );
965 UndoStack::instance()->push( command ); 990 UndoStack::instance()->push( command );
966 RedoStack::instance()->clear(); 991 RedoStack::instance()->clear();
967 992
968 setModified( true ); 993 setModified( true );
969 } 994 }
970} 995}
971 996
972void KABCore::pasteContacts() 997void KABCore::pasteContacts()
973{ 998{
diff --git a/kaddressbook/kabcore.h b/kaddressbook/kabcore.h
index 0a52838..fe2d3a2 100644
--- a/kaddressbook/kabcore.h
+++ b/kaddressbook/kabcore.h
@@ -193,321 +193,322 @@ class KABCore : public QWidget, public KSyncInterface
193 */ 193 */
194 void browse( const QString& url ); 194 void browse( const QString& url );
195 195
196 /** 196 /**
197 Select all contacts in the view. 197 Select all contacts in the view.
198 */ 198 */
199 void selectAllContacts(); 199 void selectAllContacts();
200 200
201 /** 201 /**
202 Deletes all selected contacts from the address book. 202 Deletes all selected contacts from the address book.
203 */ 203 */
204 void deleteContacts(); 204 void deleteContacts();
205 205
206 /** 206 /**
207 Deletes given contacts from the address book. 207 Deletes given contacts from the address book.
208 208
209 @param uids The uids of the contacts, which shall be deleted. 209 @param uids The uids of the contacts, which shall be deleted.
210 */ 210 */
211 void deleteContacts( const QStringList &uids ); 211 void deleteContacts( const QStringList &uids );
212 212
213 /** 213 /**
214 Copys the selected contacts into clipboard for later pasting. 214 Copys the selected contacts into clipboard for later pasting.
215 */ 215 */
216 void copyContacts(); 216 void copyContacts();
217 217
218 /** 218 /**
219 Cuts the selected contacts and stores them for later pasting. 219 Cuts the selected contacts and stores them for later pasting.
220 */ 220 */
221 void cutContacts(); 221 void cutContacts();
222 222
223 /** 223 /**
224 Paste contacts from clipboard into the address book. 224 Paste contacts from clipboard into the address book.
225 */ 225 */
226 void pasteContacts(); 226 void pasteContacts();
227 227
228 /** 228 /**
229 Paste given contacts into the address book. 229 Paste given contacts into the address book.
230 230
231 @param list The list of addressee, which shall be pasted. 231 @param list The list of addressee, which shall be pasted.
232 */ 232 */
233 void pasteContacts( KABC::Addressee::List &list ); 233 void pasteContacts( KABC::Addressee::List &list );
234 234
235 /** 235 /**
236 Sets the whoAmI contact, that is used by many other programs to 236 Sets the whoAmI contact, that is used by many other programs to
237 get personal information about the current user. 237 get personal information about the current user.
238 */ 238 */
239 void setWhoAmI(); 239 void setWhoAmI();
240 240
241 /** 241 /**
242 Displays the category dialog and applies the result to all 242 Displays the category dialog and applies the result to all
243 selected contacts. 243 selected contacts.
244 */ 244 */
245 void setCategories(); 245 void setCategories();
246 void manageCategories(); 246 void manageCategories();
247 void editCategories(); 247 void editCategories();
248 248
249 /** 249 /**
250 Sets the field list of the Incremental Search Widget. 250 Sets the field list of the Incremental Search Widget.
251 */ 251 */
252 void setSearchFields( const KABC::Field::List &fields ); 252 void setSearchFields( const KABC::Field::List &fields );
253 253
254 /** 254 /**
255 Search with the current search field for a contact, that matches 255 Search with the current search field for a contact, that matches
256 the given text, and selects it in the view. 256 the given text, and selects it in the view.
257 */ 257 */
258 void incrementalSearch( const QString& text ); 258 void incrementalSearch( const QString& text );
259 259
260 /** 260 /**
261 Marks the address book as modified. 261 Marks the address book as modified.
262 */ 262 */
263 void setModified(); 263 void setModified();
264 /** 264 /**
265 Marks the address book as modified without refreshing the view. 265 Marks the address book as modified without refreshing the view.
266 */ 266 */
267 void setModifiedWOrefresh(); 267 void setModifiedWOrefresh();
268 268
269 /** 269 /**
270 Marks the address book as modified concerning the argument. 270 Marks the address book as modified concerning the argument.
271 */ 271 */
272 void setModified( bool modified ); 272 void setModified( bool modified );
273 273
274 /** 274 /**
275 Returns whether the address book is modified. 275 Returns whether the address book is modified.
276 */ 276 */
277 bool modified() const; 277 bool modified() const;
278 278
279 /** 279 /**
280 Called whenever an contact is modified in the contact editor 280 Called whenever an contact is modified in the contact editor
281 dialog or the quick edit. 281 dialog or the quick edit.
282 */ 282 */
283 void contactModified( const KABC::Addressee &addr ); 283 void contactModified( const KABC::Addressee &addr );
284 284
285 /** 285 /**
286 DCOP METHODS. 286 DCOP METHODS.
287 */ 287 */
288 void addEmail( QString addr ); 288 void addEmail( QString addr );
289 void importVCard( const KURL& url, bool showPreview ); 289 void importVCard( const KURL& url, bool showPreview );
290 void importVCard( const QString& vCard, bool showPreview ); 290 void importVCard( const QString& vCard, bool showPreview );
291 void newContact(); 291 void newContact();
292 QString getNameByPhone( const QString& phone ); 292 QString getNameByPhone( const QString& phone );
293 /** 293 /**
294 END DCOP METHODS 294 END DCOP METHODS
295 */ 295 */
296 296
297 /** 297 /**
298 Saves the contents of the AddressBook back to disk. 298 Saves the contents of the AddressBook back to disk.
299 */ 299 */
300 void save(); 300 void save();
301 301
302 /** 302 /**
303 Undos the last command using the undo stack. 303 Undos the last command using the undo stack.
304 */ 304 */
305 void undo(); 305 void undo();
306 306
307 /** 307 /**
308 Redos the last command that was undone, using the redo stack. 308 Redos the last command that was undone, using the redo stack.
309 */ 309 */
310 void redo(); 310 void redo();
311 311
312 /** 312 /**
313 Shows the edit dialog for the given uid. If the uid is QString::null, 313 Shows the edit dialog for the given uid. If the uid is QString::null,
314 the method will try to find a selected addressee in the view. 314 the method will try to find a selected addressee in the view.
315 */ 315 */
316 void editContact( const QString &uid /*US = QString::null*/ ); 316 void editContact( const QString &uid /*US = QString::null*/ );
317//US added a second method without defaultparameter 317//US added a second method without defaultparameter
318 void editContact2(); 318 void editContact2();
319 319
320 /** 320 /**
321 Shows or edits the detail view for the given uid. If the uid is QString::null, 321 Shows or edits the detail view for the given uid. If the uid is QString::null,
322 the method will try to find a selected addressee in the view. 322 the method will try to find a selected addressee in the view.
323 */ 323 */
324 void executeContact( const QString &uid /*US = QString::null*/ ); 324 void executeContact( const QString &uid /*US = QString::null*/ );
325 325
326 /** 326 /**
327 Launches the configuration dialog. 327 Launches the configuration dialog.
328 */ 328 */
329 void openConfigDialog(); 329 void openConfigDialog();
330 330
331 /** 331 /**
332 Launches the ldap search dialog. 332 Launches the ldap search dialog.
333 */ 333 */
334 void openLDAPDialog(); 334 void openLDAPDialog();
335 335
336 /** 336 /**
337 Creates a KAddressBookPrinter, which will display the print 337 Creates a KAddressBookPrinter, which will display the print
338 dialog and do the printing. 338 dialog and do the printing.
339 */ 339 */
340 void print(); 340 void print();
341 341
342 /** 342 /**
343 Registers a new GUI client, so plugins can register its actions. 343 Registers a new GUI client, so plugins can register its actions.
344 */ 344 */
345 void addGUIClient( KXMLGUIClient *client ); 345 void addGUIClient( KXMLGUIClient *client );
346 346
347 void requestForNameEmailUidList(const QString& sourceChannel, const QString& sessionuid); 347 void requestForNameEmailUidList(const QString& sourceChannel, const QString& sessionuid);
348 void requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid); 348 void requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid);
349 void requestForBirthdayList(const QString& sourceChannel, const QString& sessionuid); 349 void requestForBirthdayList(const QString& sourceChannel, const QString& sessionuid);
350 350
351 351
352 signals: 352 signals:
353 void contactSelected( const QString &name ); 353 void contactSelected( const QString &name );
354 void contactSelected( const QPixmap &pixmap ); 354 void contactSelected( const QPixmap &pixmap );
355 public slots: 355 public slots:
356 void recieve(QString cmsg ); 356 void recieve(QString cmsg );
357 void getFile( bool success ); 357 void getFile( bool success );
358 void syncFileRequest(); 358 void syncFileRequest();
359 void setDetailsVisible( bool visible ); 359 void setDetailsVisible( bool visible );
360 void setDetailsToState(); 360 void setDetailsToState();
361 // void slotSyncMenu( int ); 361 // void slotSyncMenu( int );
362 private slots: 362 private slots:
363 void updateToolBar(); 363 void updateToolBar();
364 void receive( const QCString& cmsg, const QByteArray& data ); 364 void receive( const QCString& cmsg, const QByteArray& data );
365 void toggleBeamReceive( ); 365 void toggleBeamReceive( );
366 void disableBR(bool); 366 void disableBR(bool);
367 void setJumpButtonBarVisible( bool visible ); 367 void setJumpButtonBarVisible( bool visible );
368 void setCaptionBack(); 368 void setCaptionBack();
369 void importFromOL(); 369 void importFromOL();
370 void extensionModified( const KABC::Addressee::List &list ); 370 void extensionModified( const KABC::Addressee::List &list );
371 void extensionChanged( int id ); 371 void extensionChanged( int id );
372 void clipboardDataChanged(); 372 void clipboardDataChanged();
373 void updateActionMenu(); 373 void updateActionMenu();
374 void configureKeyBindings(); 374 void configureKeyBindings();
375 void removeVoice(); 375 void removeVoice();
376#ifdef KAB_EMBEDDED 376#ifdef KAB_EMBEDDED
377 void configureResources(); 377 void configureResources();
378#endif //KAB_EMBEDDED 378#endif //KAB_EMBEDDED
379 379
380 void slotEditorDestroyed( const QString &uid ); 380 void slotEditorDestroyed( const QString &uid );
381 void configurationChanged(); 381 void configurationChanged();
382 void addressBookChanged(); 382 void addressBookChanged();
383 383
384 private: 384 private:
385 void resizeEvent(QResizeEvent* e );
385 bool mBRdisabled; 386 bool mBRdisabled;
386#ifndef DESKTOP_VERSION 387#ifndef DESKTOP_VERSION
387 QCopChannel* infrared; 388 QCopChannel* infrared;
388#endif 389#endif
389 QTimer *mMessageTimer; 390 QTimer *mMessageTimer;
390 void initGUI(); 391 void initGUI();
391 void initActions(); 392 void initActions();
392 QString getPhoneFile(); 393 QString getPhoneFile();
393 394
394 AddresseeEditorDialog *createAddresseeEditorDialog( QWidget *parent, 395 AddresseeEditorDialog *createAddresseeEditorDialog( QWidget *parent,
395 const char *name = 0 ); 396 const char *name = 0 );
396 397
397 KXMLGUIClient *mGUIClient; 398 KXMLGUIClient *mGUIClient;
398 399
399 KABC::AddressBook *mAddressBook; 400 KABC::AddressBook *mAddressBook;
400 401
401 ViewManager *mViewManager; 402 ViewManager *mViewManager;
402 // QSplitter *mDetailsSplitter; 403 // QSplitter *mDetailsSplitter;
403 KDGanttMinimizeSplitter *mExtensionBarSplitter; 404 KDGanttMinimizeSplitter *mExtensionBarSplitter;
404 ViewContainer *mDetails; 405 ViewContainer *mDetails;
405 KDGanttMinimizeSplitter* mMiniSplitter; 406 KDGanttMinimizeSplitter* mMiniSplitter;
406 XXPortManager *mXXPortManager; 407 XXPortManager *mXXPortManager;
407 JumpButtonBar *mJumpButtonBar; 408 JumpButtonBar *mJumpButtonBar;
408 IncSearchWidget *mIncSearchWidget; 409 IncSearchWidget *mIncSearchWidget;
409 ExtensionManager *mExtensionManager; 410 ExtensionManager *mExtensionManager;
410 411
411 KCMultiDialog *mConfigureDialog; 412 KCMultiDialog *mConfigureDialog;
412 413
413#ifndef KAB_EMBEDDED 414#ifndef KAB_EMBEDDED
414 LDAPSearchDialog *mLdapSearchDialog; 415 LDAPSearchDialog *mLdapSearchDialog;
415#endif //KAB_EMBEDDED 416#endif //KAB_EMBEDDED
416 // QDict<AddresseeEditorDialog> mEditorDict; 417 // QDict<AddresseeEditorDialog> mEditorDict;
417 AddresseeEditorDialog *mEditorDialog; 418 AddresseeEditorDialog *mEditorDialog;
418 bool mReadWrite; 419 bool mReadWrite;
419 bool mModified; 420 bool mModified;
420 bool mIsPart; 421 bool mIsPart;
421 bool mMultipleViewsAtOnce; 422 bool mMultipleViewsAtOnce;
422 423
423 424
424 //US file menu 425 //US file menu
425 KAction *mActionMail; 426 KAction *mActionMail;
426 KAction *mActionBeam; 427 KAction *mActionBeam;
427 KToggleAction *mActionBR; 428 KToggleAction *mActionBR;
428 KAction *mActionExport2phone; 429 KAction *mActionExport2phone;
429 KAction* mActionPrint; 430 KAction* mActionPrint;
430 KAction* mActionNewContact; 431 KAction* mActionNewContact;
431 KAction *mActionSave; 432 KAction *mActionSave;
432 KAction *mActionEditAddressee; 433 KAction *mActionEditAddressee;
433 KAction *mActionMailVCard; 434 KAction *mActionMailVCard;
434 KAction *mActionBeamVCard; 435 KAction *mActionBeamVCard;
435 436
436 KAction *mActionQuit; 437 KAction *mActionQuit;
437 438
438 //US edit menu 439 //US edit menu
439 KAction *mActionCopy; 440 KAction *mActionCopy;
440 KAction *mActionCut; 441 KAction *mActionCut;
441 KAction *mActionPaste; 442 KAction *mActionPaste;
442 KAction *mActionSelectAll; 443 KAction *mActionSelectAll;
443 KAction *mActionUndo; 444 KAction *mActionUndo;
444 KAction *mActionRedo; 445 KAction *mActionRedo;
445 KAction *mActionDelete; 446 KAction *mActionDelete;
446 447
447 //US settings menu 448 //US settings menu
448 KAction *mActionConfigResources; 449 KAction *mActionConfigResources;
449 KAction *mActionConfigKAddressbook; 450 KAction *mActionConfigKAddressbook;
450 KAction *mActionConfigShortcuts; 451 KAction *mActionConfigShortcuts;
451 KAction *mActionConfigureToolbars; 452 KAction *mActionConfigureToolbars;
452 KAction *mActionKeyBindings; 453 KAction *mActionKeyBindings;
453 KToggleAction *mActionJumpBar; 454 KToggleAction *mActionJumpBar;
454 KToggleAction *mActionDetails; 455 KToggleAction *mActionDetails;
455 KAction *mActionWhoAmI; 456 KAction *mActionWhoAmI;
456 KAction *mActionCategories; 457 KAction *mActionCategories;
457 KAction *mActionEditCategories; 458 KAction *mActionEditCategories;
458 KAction *mActionManageCategories; 459 KAction *mActionManageCategories;
459 KAction *mActionAboutKAddressbook; 460 KAction *mActionAboutKAddressbook;
460 KAction *mActionLicence; 461 KAction *mActionLicence;
461 KAction *mActionFaq; 462 KAction *mActionFaq;
462 KAction *mActionWN; 463 KAction *mActionWN;
463 KAction *mActionSyncHowto; 464 KAction *mActionSyncHowto;
464 KAction *mActionKdeSyncHowto; 465 KAction *mActionKdeSyncHowto;
465 KAction *mActionMultiSyncHowto; 466 KAction *mActionMultiSyncHowto;
466 467
467 KAction *mActionDeleteView; 468 KAction *mActionDeleteView;
468 469
469 QPopupMenu *viewMenu; 470 QPopupMenu *viewMenu;
470 QPopupMenu *filterMenu; 471 QPopupMenu *filterMenu;
471 QPopupMenu *settingsMenu; 472 QPopupMenu *settingsMenu;
472 QPopupMenu *changeMenu; 473 QPopupMenu *changeMenu;
473//US QAction *mActionSave; 474//US QAction *mActionSave;
474 QPopupMenu *ImportMenu; 475 QPopupMenu *ImportMenu;
475 QPopupMenu *ExportMenu; 476 QPopupMenu *ExportMenu;
476 //LR additional methods 477 //LR additional methods
477 KAction *mActionRemoveVoice; 478 KAction *mActionRemoveVoice;
478 KAction * mActionImportOL; 479 KAction * mActionImportOL;
479 480
480#ifndef KAB_EMBEDDED 481#ifndef KAB_EMBEDDED
481 KAddressBookService *mAddressBookService; 482 KAddressBookService *mAddressBookService;
482#endif //KAB_EMBEDDED 483#endif //KAB_EMBEDDED
483 484
484 class KABCorePrivate; 485 class KABCorePrivate;
485 KABCorePrivate *d; 486 KABCorePrivate *d;
486 //US bool mBlockSaveFlag; 487 //US bool mBlockSaveFlag;
487 488
488#ifdef KAB_EMBEDDED 489#ifdef KAB_EMBEDDED
489 KAddressBookMain *mMainWindow; // should be the same like mGUIClient 490 KAddressBookMain *mMainWindow; // should be the same like mGUIClient
490#endif //KAB_EMBEDDED 491#endif //KAB_EMBEDDED
491 492
492 //this are the overwritten callbackmethods from the syncinterface 493 //this are the overwritten callbackmethods from the syncinterface
493 virtual bool sync(KSyncManager* manager, QString filename, int mode); 494 virtual bool sync(KSyncManager* manager, QString filename, int mode);
494 virtual bool syncExternal(KSyncManager* manager, QString resource); 495 virtual bool syncExternal(KSyncManager* manager, QString resource);
495 virtual void removeSyncInfo( QString syncProfile); 496 virtual void removeSyncInfo( QString syncProfile);
496 bool syncPhone(); 497 bool syncPhone();
497 void message( QString m ); 498 void message( QString m );
498 499
499 // LR ******************************* 500 // LR *******************************
500 // sync stuff! 501 // sync stuff!
501 QString sentSyncFile(); 502 QString sentSyncFile();
502 QPopupMenu *syncMenu; 503 QPopupMenu *syncMenu;
503 KSyncManager* syncManager; 504 KSyncManager* syncManager;
504 int mGlobalSyncMode; 505 int mGlobalSyncMode;
505 bool synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBook* remote,int mode); 506 bool synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBook* remote,int mode);
506 KABC::Addressee getLastSyncAddressee(); 507 KABC::Addressee getLastSyncAddressee();
507 QDateTime mLastAddressbookSync; 508 QDateTime mLastAddressbookSync;
508 int takeAddressee( KABC::Addressee* local, KABC::Addressee* remote, int mode , bool full ); 509 int takeAddressee( KABC::Addressee* local, KABC::Addressee* remote, int mode , bool full );
509 // ********************* 510 // *********************
510 511
511}; 512};
512 513
513#endif 514#endif