summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2004-07-05 09:51:38 (UTC)
committer zautrix <zautrix>2004-07-05 09:51:38 (UTC)
commit93f9b1e0a8935210b03a094ce18949b7197041aa (patch) (unidiff)
treef9d4a531755ead00068367f56c4987446e59af13
parent5c5c1354afa5d24768ceefe5b7dd8733ff7bd5f0 (diff)
downloadkdepimpi-93f9b1e0a8935210b03a094ce18949b7197041aa.zip
kdepimpi-93f9b1e0a8935210b03a094ce18949b7197041aa.tar.gz
kdepimpi-93f9b1e0a8935210b03a094ce18949b7197041aa.tar.bz2
Fixed searching order
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/kabcore.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp
index b06e1bc..7cba9aa 100644
--- a/kaddressbook/kabcore.cpp
+++ b/kaddressbook/kabcore.cpp
@@ -1,1603 +1,1603 @@
1/* 1/*
2 This file is part of KAddressbook. 2 This file is part of KAddressbook.
3 Copyright (c) 2003 Tobias Koenig <tokoe@kde.org> 3 Copyright (c) 2003 Tobias Koenig <tokoe@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
23 23
24#include "kabcore.h" 24#include "kabcore.h"
25 25
26#include <stdaddressbook.h> 26#include <stdaddressbook.h>
27#include <klocale.h> 27#include <klocale.h>
28 28
29#ifndef KAB_EMBEDDED 29#ifndef KAB_EMBEDDED
30#include <qclipboard.h> 30#include <qclipboard.h>
31#include <qdir.h> 31#include <qdir.h>
32#include <qfile.h> 32#include <qfile.h>
33#include <qapplicaton.h> 33#include <qapplicaton.h>
34#include <qlayout.h> 34#include <qlayout.h>
35#include <qregexp.h> 35#include <qregexp.h>
36#include <qvbox.h> 36#include <qvbox.h>
37#include <kabc/addresseelist.h> 37#include <kabc/addresseelist.h>
38#include <kabc/errorhandler.h> 38#include <kabc/errorhandler.h>
39#include <kabc/resource.h> 39#include <kabc/resource.h>
40#include <kabc/vcardconverter.h> 40#include <kabc/vcardconverter.h>
41#include <kapplication.h> 41#include <kapplication.h>
42#include <kactionclasses.h> 42#include <kactionclasses.h>
43#include <kcmultidialog.h> 43#include <kcmultidialog.h>
44#include <kdebug.h> 44#include <kdebug.h>
45#include <kdeversion.h> 45#include <kdeversion.h>
46#include <kkeydialog.h> 46#include <kkeydialog.h>
47#include <kmessagebox.h> 47#include <kmessagebox.h>
48#include <kprinter.h> 48#include <kprinter.h>
49#include <kprotocolinfo.h> 49#include <kprotocolinfo.h>
50#include <kresources/selectdialog.h> 50#include <kresources/selectdialog.h>
51#include <kstandarddirs.h> 51#include <kstandarddirs.h>
52#include <ktempfile.h> 52#include <ktempfile.h>
53#include <kxmlguiclient.h> 53#include <kxmlguiclient.h>
54#include <kaboutdata.h> 54#include <kaboutdata.h>
55#include <libkdepim/categoryselectdialog.h> 55#include <libkdepim/categoryselectdialog.h>
56 56
57#include "addresseeutil.h" 57#include "addresseeutil.h"
58#include "addresseeeditordialog.h" 58#include "addresseeeditordialog.h"
59#include "extensionmanager.h" 59#include "extensionmanager.h"
60#include "kstdaction.h" 60#include "kstdaction.h"
61#include "kaddressbookservice.h" 61#include "kaddressbookservice.h"
62#include "ldapsearchdialog.h" 62#include "ldapsearchdialog.h"
63#include "printing/printingwizard.h" 63#include "printing/printingwizard.h"
64#else // KAB_EMBEDDED 64#else // KAB_EMBEDDED
65 65
66#include <kapplication.h> 66#include <kapplication.h>
67#include "KDGanttMinimizeSplitter.h" 67#include "KDGanttMinimizeSplitter.h"
68#include "kaddressbookmain.h" 68#include "kaddressbookmain.h"
69#include "kactioncollection.h" 69#include "kactioncollection.h"
70#include <qapp.h> 70#include <qapp.h>
71#include <qmenubar.h> 71#include <qmenubar.h>
72//#include <qtoolbar.h> 72//#include <qtoolbar.h>
73#include <qmessagebox.h> 73#include <qmessagebox.h>
74#include <kdebug.h> 74#include <kdebug.h>
75#include <kiconloader.h> // needed for SmallIcon 75#include <kiconloader.h> // needed for SmallIcon
76#include <kresources/kcmkresources.h> 76#include <kresources/kcmkresources.h>
77#include <ktoolbar.h> 77#include <ktoolbar.h>
78 78
79#include <kcmkabconfig.h> 79#include <kcmkabconfig.h>
80 80
81//US#include <qpe/resource.h> // needed for Resource::loadPixmap 81//US#include <qpe/resource.h> // needed for Resource::loadPixmap
82//#include <qlabel.h> 82//#include <qlabel.h>
83#endif // KAB_EMBEDDED 83#endif // KAB_EMBEDDED
84#include <kcmkabconfig.h> 84#include <kcmkabconfig.h>
85 85
86 86
87#include <kresources/selectdialog.h> 87#include <kresources/selectdialog.h>
88#include <kmessagebox.h> 88#include <kmessagebox.h>
89 89
90#include <picture.h> 90#include <picture.h>
91#include <resource.h> 91#include <resource.h>
92 92
93//US#include <qsplitter.h> 93//US#include <qsplitter.h>
94#include <qvbox.h> 94#include <qvbox.h>
95#include <qlayout.h> 95#include <qlayout.h>
96#include <qclipboard.h> 96#include <qclipboard.h>
97 97
98#include <libkdepim/categoryselectdialog.h> 98#include <libkdepim/categoryselectdialog.h>
99 99
100#include "addresseeutil.h" 100#include "addresseeutil.h"
101#include "undocmds.h" 101#include "undocmds.h"
102#include "addresseeeditordialog.h" 102#include "addresseeeditordialog.h"
103#include "viewmanager.h" 103#include "viewmanager.h"
104#include "details/detailsviewcontainer.h" 104#include "details/detailsviewcontainer.h"
105#include "kabprefs.h" 105#include "kabprefs.h"
106#include "xxportmanager.h" 106#include "xxportmanager.h"
107#include "incsearchwidget.h" 107#include "incsearchwidget.h"
108#include "jumpbuttonbar.h" 108#include "jumpbuttonbar.h"
109#include "extensionmanager.h" 109#include "extensionmanager.h"
110#include "addresseeconfig.h" 110#include "addresseeconfig.h"
111#include <kcmultidialog.h> 111#include <kcmultidialog.h>
112 112
113 113
114#ifdef KAB_EMBEDDED 114#ifdef KAB_EMBEDDED
115KABCore::KABCore( KAddressBookMain *client, bool readWrite, QWidget *parent, const char *name ) 115KABCore::KABCore( KAddressBookMain *client, bool readWrite, QWidget *parent, const char *name )
116 : QWidget( parent, name ), mGUIClient( client ), mViewManager( 0 ), 116 : QWidget( parent, name ), mGUIClient( client ), mViewManager( 0 ),
117 mExtensionManager( 0 ),mConfigureDialog( 0 ),/*US mLdapSearchDialog( 0 ),*/ 117 mExtensionManager( 0 ),mConfigureDialog( 0 ),/*US mLdapSearchDialog( 0 ),*/
118 mReadWrite( readWrite ), mModified( false ), mMainWindow(client) 118 mReadWrite( readWrite ), mModified( false ), mMainWindow(client)
119#else //KAB_EMBEDDED 119#else //KAB_EMBEDDED
120KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const char *name ) 120KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const char *name )
121 : QWidget( parent, name ), mGUIClient( client ), mViewManager( 0 ), 121 : QWidget( parent, name ), mGUIClient( client ), mViewManager( 0 ),
122 mExtensionManager( 0 ), mConfigureDialog( 0 ), mLdapSearchDialog( 0 ), 122 mExtensionManager( 0 ), mConfigureDialog( 0 ), mLdapSearchDialog( 0 ),
123 mReadWrite( readWrite ), mModified( false ) 123 mReadWrite( readWrite ), mModified( false )
124#endif //KAB_EMBEDDED 124#endif //KAB_EMBEDDED
125{ 125{
126#ifdef KAB_EMBEDDED 126#ifdef KAB_EMBEDDED
127 //US we define here our own global actioncollection. 127 //US we define here our own global actioncollection.
128 //mActionCollection = new KActionCollection(this); 128 //mActionCollection = new KActionCollection(this);
129#endif //KAB_EMBEDDED 129#endif //KAB_EMBEDDED
130 mExtensionBarSplitter = 0; 130 mExtensionBarSplitter = 0;
131 mIsPart = !parent->inherits( "KAddressBookMain" ); 131 mIsPart = !parent->inherits( "KAddressBookMain" );
132 132
133 mAddressBook = KABC::StdAddressBook::self(); 133 mAddressBook = KABC::StdAddressBook::self();
134 KABC::StdAddressBook::setAutomaticSave( true ); 134 KABC::StdAddressBook::setAutomaticSave( true );
135 135
136#ifndef KAB_EMBEDDED 136#ifndef KAB_EMBEDDED
137 mAddressBook->setErrorHandler( new KABC::GUIErrorHandler ); 137 mAddressBook->setErrorHandler( new KABC::GUIErrorHandler );
138#endif //KAB_EMBEDDED 138#endif //KAB_EMBEDDED
139 139
140 connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook * ) ), 140 connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook * ) ),
141 SLOT( addressBookChanged() ) ); 141 SLOT( addressBookChanged() ) );
142 142
143 mAddressBook->addCustomField( i18n( "Department" ), KABC::Field::Organization, 143 mAddressBook->addCustomField( i18n( "Department" ), KABC::Field::Organization,
144 "X-Department", "KADDRESSBOOK" ); 144 "X-Department", "KADDRESSBOOK" );
145 mAddressBook->addCustomField( i18n( "Profession" ), KABC::Field::Organization, 145 mAddressBook->addCustomField( i18n( "Profession" ), KABC::Field::Organization,
146 "X-Profession", "KADDRESSBOOK" ); 146 "X-Profession", "KADDRESSBOOK" );
147 mAddressBook->addCustomField( i18n( "Assistant's Name" ), KABC::Field::Organization, 147 mAddressBook->addCustomField( i18n( "Assistant's Name" ), KABC::Field::Organization,
148 "X-AssistantsName", "KADDRESSBOOK" ); 148 "X-AssistantsName", "KADDRESSBOOK" );
149 mAddressBook->addCustomField( i18n( "Manager's Name" ), KABC::Field::Organization, 149 mAddressBook->addCustomField( i18n( "Manager's Name" ), KABC::Field::Organization,
150 "X-ManagersName", "KADDRESSBOOK" ); 150 "X-ManagersName", "KADDRESSBOOK" );
151 mAddressBook->addCustomField( i18n( "Spouse's Name" ), KABC::Field::Personal, 151 mAddressBook->addCustomField( i18n( "Spouse's Name" ), KABC::Field::Personal,
152 "X-SpousesName", "KADDRESSBOOK" ); 152 "X-SpousesName", "KADDRESSBOOK" );
153 mAddressBook->addCustomField( i18n( "Office" ), KABC::Field::Personal, 153 mAddressBook->addCustomField( i18n( "Office" ), KABC::Field::Personal,
154 "X-Office", "KADDRESSBOOK" ); 154 "X-Office", "KADDRESSBOOK" );
155 mAddressBook->addCustomField( i18n( "IM Address" ), KABC::Field::Personal, 155 mAddressBook->addCustomField( i18n( "IM Address" ), KABC::Field::Personal,
156 "X-IMAddress", "KADDRESSBOOK" ); 156 "X-IMAddress", "KADDRESSBOOK" );
157 mAddressBook->addCustomField( i18n( "Anniversary" ), KABC::Field::Personal, 157 mAddressBook->addCustomField( i18n( "Anniversary" ), KABC::Field::Personal,
158 "X-Anniversary", "KADDRESSBOOK" ); 158 "X-Anniversary", "KADDRESSBOOK" );
159 159
160//US added this field to become compatible with Opie addressbook 160//US added this field to become compatible with Opie addressbook
161 mAddressBook->addCustomField( i18n( "Gender" ), KABC::Field::Personal, 161 mAddressBook->addCustomField( i18n( "Gender" ), KABC::Field::Personal,
162 "X-Gender", "KADDRESSBOOK" ); 162 "X-Gender", "KADDRESSBOOK" );
163 mAddressBook->addCustomField( i18n( "Children" ), KABC::Field::Personal, 163 mAddressBook->addCustomField( i18n( "Children" ), KABC::Field::Personal,
164 "X-Children", "KADDRESSBOOK" ); 164 "X-Children", "KADDRESSBOOK" );
165 165
166 initGUI(); 166 initGUI();
167 167
168 mIncSearchWidget->setFocus(); 168 mIncSearchWidget->setFocus();
169 169
170 170
171 connect( mViewManager, SIGNAL( selected( const QString& ) ), 171 connect( mViewManager, SIGNAL( selected( const QString& ) ),
172 SLOT( setContactSelected( const QString& ) ) ); 172 SLOT( setContactSelected( const QString& ) ) );
173 connect( mViewManager, SIGNAL( executed( const QString& ) ), 173 connect( mViewManager, SIGNAL( executed( const QString& ) ),
174 SLOT( editContact( const QString& ) ) ); 174 SLOT( editContact( const QString& ) ) );
175 connect( mViewManager, SIGNAL( deleteRequest( ) ), 175 connect( mViewManager, SIGNAL( deleteRequest( ) ),
176 SLOT( deleteContacts( ) ) ); 176 SLOT( deleteContacts( ) ) );
177 connect( mViewManager, SIGNAL( modified() ), 177 connect( mViewManager, SIGNAL( modified() ),
178 SLOT( setModified() ) ); 178 SLOT( setModified() ) );
179 179
180 connect( mExtensionManager, SIGNAL( modified( const KABC::Addressee::List& ) ), this, SLOT( extensionModified( const KABC::Addressee::List& ) ) ); 180 connect( mExtensionManager, SIGNAL( modified( const KABC::Addressee::List& ) ), this, SLOT( extensionModified( const KABC::Addressee::List& ) ) );
181 181
182 connect( mXXPortManager, SIGNAL( modified() ), 182 connect( mXXPortManager, SIGNAL( modified() ),
183 SLOT( setModified() ) ); 183 SLOT( setModified() ) );
184 184
185 connect( mJumpButtonBar, SIGNAL( jumpToLetter( const QString& ) ), 185 connect( mJumpButtonBar, SIGNAL( jumpToLetter( const QString& ) ),
186 SLOT( incrementalSearch( const QString& ) ) ); 186 SLOT( incrementalSearch( const QString& ) ) );
187 connect( mIncSearchWidget, SIGNAL( fieldChanged() ), 187 connect( mIncSearchWidget, SIGNAL( fieldChanged() ),
188 mJumpButtonBar, SLOT( recreateButtons() ) ); 188 mJumpButtonBar, SLOT( recreateButtons() ) );
189 189
190#ifndef KAB_EMBEDDED 190#ifndef KAB_EMBEDDED
191 connect( mViewManager, SIGNAL( urlDropped( const KURL& ) ), 191 connect( mViewManager, SIGNAL( urlDropped( const KURL& ) ),
192 mXXPortManager, SLOT( importVCard( const KURL& ) ) ); 192 mXXPortManager, SLOT( importVCard( const KURL& ) ) );
193 193
194 connect( mDetails, SIGNAL( sendEmail( const QString& ) ), 194 connect( mDetails, SIGNAL( sendEmail( const QString& ) ),
195 SLOT( sendMail( const QString& ) ) ); 195 SLOT( sendMail( const QString& ) ) );
196 connect( mDetails, SIGNAL( browse( const QString& ) ), 196 connect( mDetails, SIGNAL( browse( const QString& ) ),
197 SLOT( browse( const QString& ) ) ); 197 SLOT( browse( const QString& ) ) );
198 198
199 mAddressBookService = new KAddressBookService( this ); 199 mAddressBookService = new KAddressBookService( this );
200 200
201#endif //KAB_EMBEDDED 201#endif //KAB_EMBEDDED
202 mEditorDialog = 0; 202 mEditorDialog = 0;
203 createAddresseeEditorDialog( this ); 203 createAddresseeEditorDialog( this );
204 setModified( false ); 204 setModified( false );
205} 205}
206 206
207KABCore::~KABCore() 207KABCore::~KABCore()
208{ 208{
209 // save(); 209 // save();
210 //saveSettings(); 210 //saveSettings();
211 //KABPrefs::instance()->writeConfig(); 211 //KABPrefs::instance()->writeConfig();
212 delete AddresseeConfig::instance(); 212 delete AddresseeConfig::instance();
213 mAddressBook = 0; 213 mAddressBook = 0;
214 KABC::StdAddressBook::close(); 214 KABC::StdAddressBook::close();
215 215
216#ifdef KAB_EMBEDDED 216#ifdef KAB_EMBEDDED
217 //US we define here our own global actioncollection. 217 //US we define here our own global actioncollection.
218 // delete mActionCollection; 218 // delete mActionCollection;
219#endif //KAB_EMBEDDED 219#endif //KAB_EMBEDDED
220 220
221} 221}
222 222
223void KABCore::restoreSettings() 223void KABCore::restoreSettings()
224{ 224{
225 bool state = KABPrefs::instance()->mJumpButtonBarVisible; 225 bool state = KABPrefs::instance()->mJumpButtonBarVisible;
226 226
227 mActionJumpBar->setChecked( state ); 227 mActionJumpBar->setChecked( state );
228 setJumpButtonBarVisible( state ); 228 setJumpButtonBarVisible( state );
229 229
230 state = KABPrefs::instance()->mDetailsPageVisible; 230 state = KABPrefs::instance()->mDetailsPageVisible;
231 231
232 mActionDetails->setChecked( state ); 232 mActionDetails->setChecked( state );
233 setDetailsVisible( state ); 233 setDetailsVisible( state );
234 QValueList<int> splitterSize = KABPrefs::instance()->mDetailsSplitter; 234 QValueList<int> splitterSize = KABPrefs::instance()->mDetailsSplitter;
235 if ( splitterSize.count() == 0 ) { 235 if ( splitterSize.count() == 0 ) {
236 splitterSize.append( width() / 2 ); 236 splitterSize.append( width() / 2 );
237 splitterSize.append( width() / 2 ); 237 splitterSize.append( width() / 2 );
238 } 238 }
239 mMiniSplitter->setSizes( splitterSize ); 239 mMiniSplitter->setSizes( splitterSize );
240 if ( mExtensionBarSplitter ) { 240 if ( mExtensionBarSplitter ) {
241 splitterSize = KABPrefs::instance()->mExtensionsSplitter; 241 splitterSize = KABPrefs::instance()->mExtensionsSplitter;
242 if ( splitterSize.count() == 0 ) { 242 if ( splitterSize.count() == 0 ) {
243 splitterSize.append( width() / 2 ); 243 splitterSize.append( width() / 2 );
244 splitterSize.append( width() / 2 ); 244 splitterSize.append( width() / 2 );
245 } 245 }
246 mExtensionBarSplitter->setSizes( splitterSize ); 246 mExtensionBarSplitter->setSizes( splitterSize );
247 247
248 } 248 }
249#ifndef KAB_EMBEDDED 249#ifndef KAB_EMBEDDED
250 QValueList<int> splitterSize = KABPrefs::instance()->mExtensionsSplitter; 250 QValueList<int> splitterSize = KABPrefs::instance()->mExtensionsSplitter;
251 if ( splitterSize.count() == 0 ) { 251 if ( splitterSize.count() == 0 ) {
252 splitterSize.append( width() / 2 ); 252 splitterSize.append( width() / 2 );
253 splitterSize.append( width() / 2 ); 253 splitterSize.append( width() / 2 );
254 } 254 }
255 mExtensionBarSplitter->setSizes( splitterSize ); 255 mExtensionBarSplitter->setSizes( splitterSize );
256 256
257 splitterSize = KABPrefs::instance()->mDetailsSplitter; 257 splitterSize = KABPrefs::instance()->mDetailsSplitter;
258 if ( splitterSize.count() == 0 ) { 258 if ( splitterSize.count() == 0 ) {
259 splitterSize.append( height() / 2 ); 259 splitterSize.append( height() / 2 );
260 splitterSize.append( height() / 2 ); 260 splitterSize.append( height() / 2 );
261 } 261 }
262 mDetailsSplitter->setSizes( splitterSize ); 262 mDetailsSplitter->setSizes( splitterSize );
263 263
264 mExtensionManager->restoreSettings(); 264 mExtensionManager->restoreSettings();
265 265
266#endif //KAB_EMBEDDED 266#endif //KAB_EMBEDDED
267 267
268 mIncSearchWidget->setCurrentItem( KABPrefs::instance()->mCurrentIncSearchField ); 268 mIncSearchWidget->setCurrentItem( KABPrefs::instance()->mCurrentIncSearchField );
269 269
270 mViewManager->restoreSettings(); 270 mViewManager->restoreSettings();
271 mExtensionManager->restoreSettings(); 271 mExtensionManager->restoreSettings();
272} 272}
273 273
274void KABCore::saveSettings() 274void KABCore::saveSettings()
275{ 275{
276 KABPrefs::instance()->mJumpButtonBarVisible = mActionJumpBar->isChecked(); 276 KABPrefs::instance()->mJumpButtonBarVisible = mActionJumpBar->isChecked();
277 if ( mExtensionBarSplitter ) 277 if ( mExtensionBarSplitter )
278 KABPrefs::instance()->mExtensionsSplitter = mExtensionBarSplitter->sizes(); 278 KABPrefs::instance()->mExtensionsSplitter = mExtensionBarSplitter->sizes();
279 KABPrefs::instance()->mDetailsPageVisible = mActionDetails->isChecked(); 279 KABPrefs::instance()->mDetailsPageVisible = mActionDetails->isChecked();
280 KABPrefs::instance()->mDetailsSplitter = mMiniSplitter->sizes(); 280 KABPrefs::instance()->mDetailsSplitter = mMiniSplitter->sizes();
281#ifndef KAB_EMBEDDED 281#ifndef KAB_EMBEDDED
282 282
283 KABPrefs::instance()->mExtensionsSplitter = mExtensionBarSplitter->sizes(); 283 KABPrefs::instance()->mExtensionsSplitter = mExtensionBarSplitter->sizes();
284 KABPrefs::instance()->mDetailsSplitter = mDetailsSplitter->sizes(); 284 KABPrefs::instance()->mDetailsSplitter = mDetailsSplitter->sizes();
285#endif //KAB_EMBEDDED 285#endif //KAB_EMBEDDED
286 mExtensionManager->saveSettings(); 286 mExtensionManager->saveSettings();
287 mViewManager->saveSettings(); 287 mViewManager->saveSettings();
288 288
289 KABPrefs::instance()->mCurrentIncSearchField = mIncSearchWidget->currentItem(); 289 KABPrefs::instance()->mCurrentIncSearchField = mIncSearchWidget->currentItem();
290 290
291} 291}
292 292
293KABC::AddressBook *KABCore::addressBook() const 293KABC::AddressBook *KABCore::addressBook() const
294{ 294{
295 return mAddressBook; 295 return mAddressBook;
296} 296}
297 297
298KConfig *KABCore::config() 298KConfig *KABCore::config()
299{ 299{
300#ifndef KAB_EMBEDDED 300#ifndef KAB_EMBEDDED
301 return KABPrefs::instance()->config(); 301 return KABPrefs::instance()->config();
302#else //KAB_EMBEDDED 302#else //KAB_EMBEDDED
303 return KABPrefs::instance()->getConfig(); 303 return KABPrefs::instance()->getConfig();
304#endif //KAB_EMBEDDED 304#endif //KAB_EMBEDDED
305} 305}
306 306
307KActionCollection *KABCore::actionCollection() const 307KActionCollection *KABCore::actionCollection() const
308{ 308{
309 return mGUIClient->actionCollection(); 309 return mGUIClient->actionCollection();
310} 310}
311 311
312KABC::Field *KABCore::currentSearchField() const 312KABC::Field *KABCore::currentSearchField() const
313{ 313{
314 if (mIncSearchWidget) 314 if (mIncSearchWidget)
315 return mIncSearchWidget->currentField(); 315 return mIncSearchWidget->currentField();
316 else 316 else
317 return 0; 317 return 0;
318} 318}
319 319
320QStringList KABCore::selectedUIDs() const 320QStringList KABCore::selectedUIDs() const
321{ 321{
322 return mViewManager->selectedUids(); 322 return mViewManager->selectedUids();
323} 323}
324 324
325KABC::Resource *KABCore::requestResource( QWidget *parent ) 325KABC::Resource *KABCore::requestResource( QWidget *parent )
326{ 326{
327 QPtrList<KABC::Resource> kabcResources = addressBook()->resources(); 327 QPtrList<KABC::Resource> kabcResources = addressBook()->resources();
328 328
329 QPtrList<KRES::Resource> kresResources; 329 QPtrList<KRES::Resource> kresResources;
330 QPtrListIterator<KABC::Resource> resIt( kabcResources ); 330 QPtrListIterator<KABC::Resource> resIt( kabcResources );
331 KABC::Resource *resource; 331 KABC::Resource *resource;
332 while ( ( resource = resIt.current() ) != 0 ) { 332 while ( ( resource = resIt.current() ) != 0 ) {
333 ++resIt; 333 ++resIt;
334 if ( !resource->readOnly() ) { 334 if ( !resource->readOnly() ) {
335 KRES::Resource *res = static_cast<KRES::Resource*>( resource ); 335 KRES::Resource *res = static_cast<KRES::Resource*>( resource );
336 if ( res ) 336 if ( res )
337 kresResources.append( res ); 337 kresResources.append( res );
338 } 338 }
339 } 339 }
340 340
341 KRES::Resource *res = KRES::SelectDialog::getResource( kresResources, parent ); 341 KRES::Resource *res = KRES::SelectDialog::getResource( kresResources, parent );
342 return static_cast<KABC::Resource*>( res ); 342 return static_cast<KABC::Resource*>( res );
343} 343}
344 344
345#ifndef KAB_EMBEDDED 345#ifndef KAB_EMBEDDED
346KAboutData *KABCore::createAboutData() 346KAboutData *KABCore::createAboutData()
347#else //KAB_EMBEDDED 347#else //KAB_EMBEDDED
348void KABCore::createAboutData() 348void KABCore::createAboutData()
349#endif //KAB_EMBEDDED 349#endif //KAB_EMBEDDED
350{ 350{
351#ifndef KAB_EMBEDDED 351#ifndef KAB_EMBEDDED
352 KAboutData *about = new KAboutData( "kaddressbook", I18N_NOOP( "KAddressBook" ), 352 KAboutData *about = new KAboutData( "kaddressbook", I18N_NOOP( "KAddressBook" ),
353 "3.1", I18N_NOOP( "The KDE Address Book" ), 353 "3.1", I18N_NOOP( "The KDE Address Book" ),
354 KAboutData::License_GPL_V2, 354 KAboutData::License_GPL_V2,
355 I18N_NOOP( "(c) 1997-2003, The KDE PIM Team" ) ); 355 I18N_NOOP( "(c) 1997-2003, The KDE PIM Team" ) );
356 about->addAuthor( "Tobias Koenig", I18N_NOOP( "Current maintainer " ), "tokoe@kde.org" ); 356 about->addAuthor( "Tobias Koenig", I18N_NOOP( "Current maintainer " ), "tokoe@kde.org" );
357 about->addAuthor( "Don Sanders", I18N_NOOP( "Original author " ) ); 357 about->addAuthor( "Don Sanders", I18N_NOOP( "Original author " ) );
358 about->addAuthor( "Cornelius Schumacher", 358 about->addAuthor( "Cornelius Schumacher",
359 I18N_NOOP( "Co-maintainer, libkabc port, CSV import/export " ), 359 I18N_NOOP( "Co-maintainer, libkabc port, CSV import/export " ),
360 "schumacher@kde.org" ); 360 "schumacher@kde.org" );
361 about->addAuthor( "Mike Pilone", I18N_NOOP( "GUI and framework redesign " ), 361 about->addAuthor( "Mike Pilone", I18N_NOOP( "GUI and framework redesign " ),
362 "mpilone@slac.com" ); 362 "mpilone@slac.com" );
363 about->addAuthor( "Greg Stern", I18N_NOOP( "DCOP interface" ) ); 363 about->addAuthor( "Greg Stern", I18N_NOOP( "DCOP interface" ) );
364 about->addAuthor( "Mark Westcott", I18N_NOOP( "Contact pinning" ) ); 364 about->addAuthor( "Mark Westcott", I18N_NOOP( "Contact pinning" ) );
365 about->addAuthor( "Michel Boyer de la Giroday", I18N_NOOP( "LDAP Lookup\n" ), 365 about->addAuthor( "Michel Boyer de la Giroday", I18N_NOOP( "LDAP Lookup\n" ),
366 "michel@klaralvdalens-datakonsult.se" ); 366 "michel@klaralvdalens-datakonsult.se" );
367 about->addAuthor( "Steffen Hansen", I18N_NOOP( "LDAP Lookup " ), 367 about->addAuthor( "Steffen Hansen", I18N_NOOP( "LDAP Lookup " ),
368 "hansen@kde.org" ); 368 "hansen@kde.org" );
369 369
370 return about; 370 return about;
371#endif //KAB_EMBEDDED 371#endif //KAB_EMBEDDED
372 372
373 QString version; 373 QString version;
374#include <../version> 374#include <../version>
375 QMessageBox::about( this, "About KAddressbook/Pi", 375 QMessageBox::about( this, "About KAddressbook/Pi",
376 "KAddressbook/Platform-independent\n" 376 "KAddressbook/Platform-independent\n"
377 "(KA/Pi) " +version + " - " + 377 "(KA/Pi) " +version + " - " +
378#ifdef DESKTOP_VERSION 378#ifdef DESKTOP_VERSION
379 "Desktop Edition\n" 379 "Desktop Edition\n"
380#else 380#else
381 "PDA-Edition\n" 381 "PDA-Edition\n"
382 "for: Zaurus 5500 / 7x0 / 8x0\n" 382 "for: Zaurus 5500 / 7x0 / 8x0\n"
383#endif 383#endif
384 384
385 "(c) 2004 Ulf Schenk\n" 385 "(c) 2004 Ulf Schenk\n"
386 "(c) 1997-2003, The KDE PIM Team\n" 386 "(c) 1997-2003, The KDE PIM Team\n"
387 "Tobias Koenig Current maintainer tokoe@kde.org\n" 387 "Tobias Koenig Current maintainer tokoe@kde.org\n"
388 "Don Sanders Original author\n" 388 "Don Sanders Original author\n"
389 "Cornelius Schumacher Co-maintainer schumacher@kde.org\n" 389 "Cornelius Schumacher Co-maintainer schumacher@kde.org\n"
390 "Mike Pilone GUI and framework redesign mpilone@slac.com\n" 390 "Mike Pilone GUI and framework redesign mpilone@slac.com\n"
391 "Greg Stern DCOP interface\n" 391 "Greg Stern DCOP interface\n"
392 "Mark Westcot Contact pinning\n" 392 "Mark Westcot Contact pinning\n"
393 "Michel Boyer de la Giroday LDAP Lookup\n" "michel@klaralvdalens-datakonsult.se\n" 393 "Michel Boyer de la Giroday LDAP Lookup\n" "michel@klaralvdalens-datakonsult.se\n"
394 "Steffen Hansen LDAP Lookup hansen@kde.org\n" ); 394 "Steffen Hansen LDAP Lookup hansen@kde.org\n" );
395} 395}
396 396
397void KABCore::setContactSelected( const QString &uid ) 397void KABCore::setContactSelected( const QString &uid )
398{ 398{
399 KABC::Addressee addr = mAddressBook->findByUid( uid ); 399 KABC::Addressee addr = mAddressBook->findByUid( uid );
400 if ( !mDetails->isHidden() ) 400 if ( !mDetails->isHidden() )
401 mDetails->setAddressee( addr ); 401 mDetails->setAddressee( addr );
402 402
403 if ( !addr.isEmpty() ) { 403 if ( !addr.isEmpty() ) {
404 emit contactSelected( addr.formattedName() ); 404 emit contactSelected( addr.formattedName() );
405 KABC::Picture pic = addr.photo(); 405 KABC::Picture pic = addr.photo();
406 if ( pic.isIntern() ) { 406 if ( pic.isIntern() ) {
407//US emit contactSelected( pic.data() ); 407//US emit contactSelected( pic.data() );
408//US instead use: 408//US instead use:
409 QPixmap px; 409 QPixmap px;
410 if (pic.data().isNull() != true) 410 if (pic.data().isNull() != true)
411 { 411 {
412 px.convertFromImage(pic.data()); 412 px.convertFromImage(pic.data());
413 } 413 }
414 414
415 emit contactSelected( px ); 415 emit contactSelected( px );
416 } 416 }
417 } 417 }
418 418
419 419
420 mExtensionManager->setSelectionChanged(); 420 mExtensionManager->setSelectionChanged();
421 421
422 // update the actions 422 // update the actions
423 bool selected = !uid.isEmpty(); 423 bool selected = !uid.isEmpty();
424 424
425 if ( mReadWrite ) { 425 if ( mReadWrite ) {
426 mActionCut->setEnabled( selected ); 426 mActionCut->setEnabled( selected );
427 mActionPaste->setEnabled( selected ); 427 mActionPaste->setEnabled( selected );
428 } 428 }
429 429
430 mActionCopy->setEnabled( selected ); 430 mActionCopy->setEnabled( selected );
431 mActionDelete->setEnabled( selected ); 431 mActionDelete->setEnabled( selected );
432 mActionEditAddressee->setEnabled( selected ); 432 mActionEditAddressee->setEnabled( selected );
433 mActionMail->setEnabled( selected ); 433 mActionMail->setEnabled( selected );
434 mActionMailVCard->setEnabled( selected ); 434 mActionMailVCard->setEnabled( selected );
435 mActionWhoAmI->setEnabled( selected ); 435 mActionWhoAmI->setEnabled( selected );
436 mActionCategories->setEnabled( selected ); 436 mActionCategories->setEnabled( selected );
437} 437}
438 438
439void KABCore::sendMail() 439void KABCore::sendMail()
440{ 440{
441#ifndef KAB_EMBEDDED 441#ifndef KAB_EMBEDDED
442 sendMail( mViewManager->selectedEmails().join( ", " ) ); 442 sendMail( mViewManager->selectedEmails().join( ", " ) );
443#else //KAB_EMBEDDED 443#else //KAB_EMBEDDED
444 qDebug("KABCore::sendMail() ust be fixed"); 444 qDebug("KABCore::sendMail() ust be fixed");
445#endif //KAB_EMBEDDED 445#endif //KAB_EMBEDDED
446} 446}
447 447
448void KABCore::sendMail( const QString& email ) 448void KABCore::sendMail( const QString& email )
449{ 449{
450#ifndef KAB_EMBEDDED 450#ifndef KAB_EMBEDDED
451 kapp->invokeMailer( email, "" ); 451 kapp->invokeMailer( email, "" );
452#else //KAB_EMBEDDED 452#else //KAB_EMBEDDED
453 qDebug("KABCore::sendMail(const QString& email) ust be fixed"); 453 qDebug("KABCore::sendMail(const QString& email) ust be fixed");
454#endif //KAB_EMBEDDED 454#endif //KAB_EMBEDDED
455} 455}
456 456
457void KABCore::mailVCard() 457void KABCore::mailVCard()
458{ 458{
459#ifndef KAB_EMBEDDED 459#ifndef KAB_EMBEDDED
460 QStringList uids = mViewManager->selectedUids(); 460 QStringList uids = mViewManager->selectedUids();
461 if ( !uids.isEmpty() ) 461 if ( !uids.isEmpty() )
462 mailVCard( uids ); 462 mailVCard( uids );
463#else //KAB_EMBEDDED 463#else //KAB_EMBEDDED
464 qDebug("KABCore::mailVCard() must be fixed"); 464 qDebug("KABCore::mailVCard() must be fixed");
465#endif //KAB_EMBEDDED 465#endif //KAB_EMBEDDED
466} 466}
467 467
468void KABCore::mailVCard( const QStringList& uids ) 468void KABCore::mailVCard( const QStringList& uids )
469{ 469{
470#ifndef KAB_EMBEDDED 470#ifndef KAB_EMBEDDED
471 QStringList urls; 471 QStringList urls;
472 472
473 // Create a temp dir, so that we can put the files in it with proper names 473 // Create a temp dir, so that we can put the files in it with proper names
474 KTempFile tempDir; 474 KTempFile tempDir;
475 if ( tempDir.status() != 0 ) { 475 if ( tempDir.status() != 0 ) {
476 kdWarning() << strerror( tempDir.status() ) << endl; 476 kdWarning() << strerror( tempDir.status() ) << endl;
477 return; 477 return;
478 } 478 }
479 479
480 QString dirName = tempDir.name(); 480 QString dirName = tempDir.name();
481 tempDir.unlink(); 481 tempDir.unlink();
482 QDir().mkdir( dirName, true ); 482 QDir().mkdir( dirName, true );
483 483
484 for( QStringList::ConstIterator it = uids.begin(); it != uids.end(); ++it ) { 484 for( QStringList::ConstIterator it = uids.begin(); it != uids.end(); ++it ) {
485 KABC::Addressee a = mAddressBook->findByUid( *it ); 485 KABC::Addressee a = mAddressBook->findByUid( *it );
486 486
487 if ( a.isEmpty() ) 487 if ( a.isEmpty() )
488 continue; 488 continue;
489 489
490 QString name = a.givenName() + "_" + a.familyName() + ".vcf"; 490 QString name = a.givenName() + "_" + a.familyName() + ".vcf";
491 491
492 QString fileName = dirName + "/" + name; 492 QString fileName = dirName + "/" + name;
493 493
494 QFile outFile(fileName); 494 QFile outFile(fileName);
495 if ( outFile.open(IO_WriteOnly) ) { // file opened successfully 495 if ( outFile.open(IO_WriteOnly) ) { // file opened successfully
496 KABC::VCardConverter converter; 496 KABC::VCardConverter converter;
497 QString vcard; 497 QString vcard;
498 498
499 converter.addresseeToVCard( a, vcard ); 499 converter.addresseeToVCard( a, vcard );
500 500
501 QTextStream t( &outFile ); // use a text stream 501 QTextStream t( &outFile ); // use a text stream
502 t.setEncoding( QTextStream::UnicodeUTF8 ); 502 t.setEncoding( QTextStream::UnicodeUTF8 );
503 t << vcard; 503 t << vcard;
504 504
505 outFile.close(); 505 outFile.close();
506 506
507 urls.append( fileName ); 507 urls.append( fileName );
508 } 508 }
509 } 509 }
510 510
511 kapp->invokeMailer( QString::null, QString::null, QString::null, 511 kapp->invokeMailer( QString::null, QString::null, QString::null,
512 QString::null, // subject 512 QString::null, // subject
513 QString::null, // body 513 QString::null, // body
514 QString::null, 514 QString::null,
515 urls ); // attachments 515 urls ); // attachments
516#else //KAB_EMBEDDED 516#else //KAB_EMBEDDED
517 qDebug("KABCore::mailVCard( must be fixed"); 517 qDebug("KABCore::mailVCard( must be fixed");
518#endif //KAB_EMBEDDED 518#endif //KAB_EMBEDDED
519 519
520} 520}
521 521
522void KABCore::browse( const QString& url ) 522void KABCore::browse( const QString& url )
523{ 523{
524#ifndef KAB_EMBEDDED 524#ifndef KAB_EMBEDDED
525 kapp->invokeBrowser( url ); 525 kapp->invokeBrowser( url );
526#else //KAB_EMBEDDED 526#else //KAB_EMBEDDED
527 qDebug("KABCore::browse must be fixed"); 527 qDebug("KABCore::browse must be fixed");
528#endif //KAB_EMBEDDED 528#endif //KAB_EMBEDDED
529} 529}
530 530
531void KABCore::selectAllContacts() 531void KABCore::selectAllContacts()
532{ 532{
533 mViewManager->setSelected( QString::null, true ); 533 mViewManager->setSelected( QString::null, true );
534} 534}
535 535
536void KABCore::deleteContacts() 536void KABCore::deleteContacts()
537{ 537{
538 QStringList uidList = mViewManager->selectedUids(); 538 QStringList uidList = mViewManager->selectedUids();
539 deleteContacts( uidList ); 539 deleteContacts( uidList );
540} 540}
541 541
542void KABCore::deleteContacts( const QStringList &uids ) 542void KABCore::deleteContacts( const QStringList &uids )
543{ 543{
544 if ( uids.count() > 0 ) { 544 if ( uids.count() > 0 ) {
545 PwDeleteCommand *command = new PwDeleteCommand( mAddressBook, uids ); 545 PwDeleteCommand *command = new PwDeleteCommand( mAddressBook, uids );
546 UndoStack::instance()->push( command ); 546 UndoStack::instance()->push( command );
547 RedoStack::instance()->clear(); 547 RedoStack::instance()->clear();
548 548
549 // now if we deleted anything, refresh 549 // now if we deleted anything, refresh
550 setContactSelected( QString::null ); 550 setContactSelected( QString::null );
551 setModified( true ); 551 setModified( true );
552 } 552 }
553} 553}
554 554
555void KABCore::copyContacts() 555void KABCore::copyContacts()
556{ 556{
557 KABC::Addressee::List addrList = mViewManager->selectedAddressees(); 557 KABC::Addressee::List addrList = mViewManager->selectedAddressees();
558 558
559 QString clipText = AddresseeUtil::addresseesToClipboard( addrList ); 559 QString clipText = AddresseeUtil::addresseesToClipboard( addrList );
560 560
561 kdDebug(5720) << "KABCore::copyContacts: " << clipText << endl; 561 kdDebug(5720) << "KABCore::copyContacts: " << clipText << endl;
562 562
563 QClipboard *cb = QApplication::clipboard(); 563 QClipboard *cb = QApplication::clipboard();
564 cb->setText( clipText ); 564 cb->setText( clipText );
565} 565}
566 566
567void KABCore::cutContacts() 567void KABCore::cutContacts()
568{ 568{
569 QStringList uidList = mViewManager->selectedUids(); 569 QStringList uidList = mViewManager->selectedUids();
570 570
571//US if ( uidList.size() > 0 ) { 571//US if ( uidList.size() > 0 ) {
572 if ( uidList.count() > 0 ) { 572 if ( uidList.count() > 0 ) {
573 PwCutCommand *command = new PwCutCommand( mAddressBook, uidList ); 573 PwCutCommand *command = new PwCutCommand( mAddressBook, uidList );
574 UndoStack::instance()->push( command ); 574 UndoStack::instance()->push( command );
575 RedoStack::instance()->clear(); 575 RedoStack::instance()->clear();
576 576
577 setModified( true ); 577 setModified( true );
578 } 578 }
579} 579}
580 580
581void KABCore::pasteContacts() 581void KABCore::pasteContacts()
582{ 582{
583 QClipboard *cb = QApplication::clipboard(); 583 QClipboard *cb = QApplication::clipboard();
584 584
585 KABC::Addressee::List list = AddresseeUtil::clipboardToAddressees( cb->text() ); 585 KABC::Addressee::List list = AddresseeUtil::clipboardToAddressees( cb->text() );
586 586
587 pasteContacts( list ); 587 pasteContacts( list );
588} 588}
589 589
590void KABCore::pasteContacts( KABC::Addressee::List &list ) 590void KABCore::pasteContacts( KABC::Addressee::List &list )
591{ 591{
592 KABC::Resource *resource = requestResource( this ); 592 KABC::Resource *resource = requestResource( this );
593 KABC::Addressee::List::Iterator it; 593 KABC::Addressee::List::Iterator it;
594 for ( it = list.begin(); it != list.end(); ++it ) 594 for ( it = list.begin(); it != list.end(); ++it )
595 (*it).setResource( resource ); 595 (*it).setResource( resource );
596 596
597 PwPasteCommand *command = new PwPasteCommand( this, list ); 597 PwPasteCommand *command = new PwPasteCommand( this, list );
598 UndoStack::instance()->push( command ); 598 UndoStack::instance()->push( command );
599 RedoStack::instance()->clear(); 599 RedoStack::instance()->clear();
600 600
601 setModified( true ); 601 setModified( true );
602} 602}
603 603
604void KABCore::setWhoAmI() 604void KABCore::setWhoAmI()
605{ 605{
606 KABC::Addressee::List addrList = mViewManager->selectedAddressees(); 606 KABC::Addressee::List addrList = mViewManager->selectedAddressees();
607 607
608 if ( addrList.count() > 1 ) { 608 if ( addrList.count() > 1 ) {
609 KMessageBox::sorry( this, i18n( "Please select only one contact." ) ); 609 KMessageBox::sorry( this, i18n( "Please select only one contact." ) );
610 return; 610 return;
611 } 611 }
612 612
613 QString text( i18n( "<qt>Do you really want to use <b>%1</b> as your new personal contact?</qt>" ) ); 613 QString text( i18n( "<qt>Do you really want to use <b>%1</b> as your new personal contact?</qt>" ) );
614 if ( KMessageBox::questionYesNo( this, text.arg( addrList[ 0 ].assembledName() ) ) == KMessageBox::Yes ) 614 if ( KMessageBox::questionYesNo( this, text.arg( addrList[ 0 ].assembledName() ) ) == KMessageBox::Yes )
615 static_cast<KABC::StdAddressBook*>( KABC::StdAddressBook::self() )->setWhoAmI( addrList[ 0 ] ); 615 static_cast<KABC::StdAddressBook*>( KABC::StdAddressBook::self() )->setWhoAmI( addrList[ 0 ] );
616} 616}
617 617
618void KABCore::setCategories() 618void KABCore::setCategories()
619{ 619{
620 KPIM::CategorySelectDialog dlg( KABPrefs::instance(), this, "", true ); 620 KPIM::CategorySelectDialog dlg( KABPrefs::instance(), this, "", true );
621 if ( !dlg.exec() ) 621 if ( !dlg.exec() )
622 return; 622 return;
623 623
624 bool merge = false; 624 bool merge = false;
625 QString msg = i18n( "Merge with existing categories?" ); 625 QString msg = i18n( "Merge with existing categories?" );
626 if ( KMessageBox::questionYesNo( this, msg ) == KMessageBox::Yes ) 626 if ( KMessageBox::questionYesNo( this, msg ) == KMessageBox::Yes )
627 merge = true; 627 merge = true;
628 628
629 QStringList categories = dlg.selectedCategories(); 629 QStringList categories = dlg.selectedCategories();
630 630
631 QStringList uids = mViewManager->selectedUids(); 631 QStringList uids = mViewManager->selectedUids();
632 QStringList::Iterator it; 632 QStringList::Iterator it;
633 for ( it = uids.begin(); it != uids.end(); ++it ) { 633 for ( it = uids.begin(); it != uids.end(); ++it ) {
634 KABC::Addressee addr = mAddressBook->findByUid( *it ); 634 KABC::Addressee addr = mAddressBook->findByUid( *it );
635 if ( !addr.isEmpty() ) { 635 if ( !addr.isEmpty() ) {
636 if ( !merge ) 636 if ( !merge )
637 addr.setCategories( categories ); 637 addr.setCategories( categories );
638 else { 638 else {
639 QStringList addrCategories = addr.categories(); 639 QStringList addrCategories = addr.categories();
640 QStringList::Iterator catIt; 640 QStringList::Iterator catIt;
641 for ( catIt = categories.begin(); catIt != categories.end(); ++catIt ) { 641 for ( catIt = categories.begin(); catIt != categories.end(); ++catIt ) {
642 if ( !addrCategories.contains( *catIt ) ) 642 if ( !addrCategories.contains( *catIt ) )
643 addrCategories.append( *catIt ); 643 addrCategories.append( *catIt );
644 } 644 }
645 addr.setCategories( addrCategories ); 645 addr.setCategories( addrCategories );
646 } 646 }
647 647
648 mAddressBook->insertAddressee( addr ); 648 mAddressBook->insertAddressee( addr );
649 } 649 }
650 } 650 }
651 651
652 if ( uids.count() > 0 ) 652 if ( uids.count() > 0 )
653 setModified( true ); 653 setModified( true );
654} 654}
655 655
656void KABCore::setSearchFields( const KABC::Field::List &fields ) 656void KABCore::setSearchFields( const KABC::Field::List &fields )
657{ 657{
658 mIncSearchWidget->setFields( fields ); 658 mIncSearchWidget->setFields( fields );
659} 659}
660 660
661void KABCore::incrementalSearch( const QString& text ) 661void KABCore::incrementalSearch( const QString& text )
662{ 662{
663 mViewManager->setSelected( QString::null, false ); 663 mViewManager->setSelected( QString::null, false );
664 664
665 if ( !text.isEmpty() ) { 665 if ( !text.isEmpty() ) {
666 KABC::Field *field = mIncSearchWidget->currentField(); 666 KABC::Field *field = mIncSearchWidget->currentField();
667 667
668 QString pattern = text.lower(); 668 QString pattern = text.lower();
669 669
670#if KDE_VERSION >= 319 670#if 1 //KDE_VERSION >= 319
671 KABC::AddresseeList list( mAddressBook->allAddressees() ); 671 KABC::AddresseeList list( mAddressBook->allAddressees() );
672 if ( field ) { 672 if ( field ) {
673 list.sortByField( field ); 673 list.sortByField( field );
674 KABC::AddresseeList::Iterator it; 674 KABC::AddresseeList::Iterator it;
675 for ( it = list.begin(); it != list.end(); ++it ) { 675 for ( it = list.begin(); it != list.end(); ++it ) {
676 if ( field->value( *it ).lower().startsWith( pattern ) ) { 676 if ( field->value( *it ).lower().startsWith( pattern ) ) {
677 mViewManager->setSelected( (*it).uid(), true ); 677 mViewManager->setSelected( (*it).uid(), true );
678 return; 678 return;
679 } 679 }
680 } 680 }
681 } else { 681 } else {
682 KABC::AddresseeList::Iterator it; 682 KABC::AddresseeList::Iterator it;
683 for ( it = list.begin(); it != list.end(); ++it ) { 683 for ( it = list.begin(); it != list.end(); ++it ) {
684 KABC::Field::List fieldList = mIncSearchWidget->fields(); 684 KABC::Field::List fieldList = mIncSearchWidget->fields();
685 KABC::Field::List::ConstIterator fieldIt; 685 KABC::Field::List::ConstIterator fieldIt;
686 for ( fieldIt = fieldList.begin(); fieldIt != fieldList.end(); ++fieldIt ) { 686 for ( fieldIt = fieldList.begin(); fieldIt != fieldList.end(); ++fieldIt ) {
687 if ( (*fieldIt)->value( *it ).lower().startsWith( pattern ) ) { 687 if ( (*fieldIt)->value( *it ).lower().startsWith( pattern ) ) {
688 mViewManager->setSelected( (*it).uid(), true ); 688 mViewManager->setSelected( (*it).uid(), true );
689 return; 689 return;
690 } 690 }
691 } 691 }
692 } 692 }
693 } 693 }
694#else 694#else
695 KABC::AddressBook::Iterator it; 695 KABC::AddressBook::Iterator it;
696 for ( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { 696 for ( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) {
697 if ( field ) { 697 if ( field ) {
698 if ( field->value( *it ).lower().startsWith( pattern ) ) { 698 if ( field->value( *it ).lower().startsWith( pattern ) ) {
699 mViewManager->setSelected( (*it).uid(), true ); 699 mViewManager->setSelected( (*it).uid(), true );
700 return; 700 return;
701 } 701 }
702 } else { 702 } else {
703 KABC::Field::List fieldList = mIncSearchWidget->fields(); 703 KABC::Field::List fieldList = mIncSearchWidget->fields();
704 KABC::Field::List::ConstIterator fieldIt; 704 KABC::Field::List::ConstIterator fieldIt;
705 for ( fieldIt = fieldList.begin(); fieldIt != fieldList.end(); ++fieldIt ) { 705 for ( fieldIt = fieldList.begin(); fieldIt != fieldList.end(); ++fieldIt ) {
706 if ( (*fieldIt)->value( *it ).lower().startsWith( pattern ) ) { 706 if ( (*fieldIt)->value( *it ).lower().startsWith( pattern ) ) {
707 mViewManager->setSelected( (*it).uid(), true ); 707 mViewManager->setSelected( (*it).uid(), true );
708 return; 708 return;
709 } 709 }
710 } 710 }
711 } 711 }
712 } 712 }
713#endif 713#endif
714 } 714 }
715} 715}
716 716
717void KABCore::setModified() 717void KABCore::setModified()
718{ 718{
719 setModified( true ); 719 setModified( true );
720} 720}
721 721
722void KABCore::setModifiedWOrefresh() 722void KABCore::setModifiedWOrefresh()
723{ 723{
724 // qDebug("KABCore::setModifiedWOrefresh() "); 724 // qDebug("KABCore::setModifiedWOrefresh() ");
725 mModified = true; 725 mModified = true;
726 mActionSave->setEnabled( mModified ); 726 mActionSave->setEnabled( mModified );
727#ifdef DESKTOP_VERSION 727#ifdef DESKTOP_VERSION
728 mDetails->refreshView(); 728 mDetails->refreshView();
729#endif 729#endif
730 730
731} 731}
732void KABCore::setModified( bool modified ) 732void KABCore::setModified( bool modified )
733{ 733{
734 mModified = modified; 734 mModified = modified;
735 mActionSave->setEnabled( mModified ); 735 mActionSave->setEnabled( mModified );
736 736
737 if ( modified ) 737 if ( modified )
738 mJumpButtonBar->recreateButtons(); 738 mJumpButtonBar->recreateButtons();
739 739
740 mViewManager->refreshView(); 740 mViewManager->refreshView();
741 mDetails->refreshView(); 741 mDetails->refreshView();
742 742
743} 743}
744 744
745bool KABCore::modified() const 745bool KABCore::modified() const
746{ 746{
747 return mModified; 747 return mModified;
748} 748}
749 749
750void KABCore::contactModified( const KABC::Addressee &addr ) 750void KABCore::contactModified( const KABC::Addressee &addr )
751{ 751{
752 752
753 Command *command = 0; 753 Command *command = 0;
754 QString uid; 754 QString uid;
755 755
756 // check if it exists already 756 // check if it exists already
757 KABC::Addressee origAddr = mAddressBook->findByUid( addr.uid() ); 757 KABC::Addressee origAddr = mAddressBook->findByUid( addr.uid() );
758 if ( origAddr.isEmpty() ) 758 if ( origAddr.isEmpty() )
759 command = new PwNewCommand( mAddressBook, addr ); 759 command = new PwNewCommand( mAddressBook, addr );
760 else { 760 else {
761 command = new PwEditCommand( mAddressBook, origAddr, addr ); 761 command = new PwEditCommand( mAddressBook, origAddr, addr );
762 uid = addr.uid(); 762 uid = addr.uid();
763 } 763 }
764 764
765 UndoStack::instance()->push( command ); 765 UndoStack::instance()->push( command );
766 RedoStack::instance()->clear(); 766 RedoStack::instance()->clear();
767 767
768 setModified( true ); 768 setModified( true );
769} 769}
770 770
771void KABCore::newContact() 771void KABCore::newContact()
772{ 772{
773 AddresseeEditorDialog *dialog = 0; 773 AddresseeEditorDialog *dialog = 0;
774 774
775 QPtrList<KABC::Resource> kabcResources = mAddressBook->resources(); 775 QPtrList<KABC::Resource> kabcResources = mAddressBook->resources();
776 776
777 QPtrList<KRES::Resource> kresResources; 777 QPtrList<KRES::Resource> kresResources;
778 QPtrListIterator<KABC::Resource> it( kabcResources ); 778 QPtrListIterator<KABC::Resource> it( kabcResources );
779 KABC::Resource *resource; 779 KABC::Resource *resource;
780 while ( ( resource = it.current() ) != 0 ) { 780 while ( ( resource = it.current() ) != 0 ) {
781 ++it; 781 ++it;
782 if ( !resource->readOnly() ) { 782 if ( !resource->readOnly() ) {
783 KRES::Resource *res = static_cast<KRES::Resource*>( resource ); 783 KRES::Resource *res = static_cast<KRES::Resource*>( resource );
784 if ( res ) 784 if ( res )
785 kresResources.append( res ); 785 kresResources.append( res );
786 } 786 }
787 } 787 }
788 788
789 KRES::Resource *res = KRES::SelectDialog::getResource( kresResources, this ); 789 KRES::Resource *res = KRES::SelectDialog::getResource( kresResources, this );
790 resource = static_cast<KABC::Resource*>( res ); 790 resource = static_cast<KABC::Resource*>( res );
791 791
792 if ( resource ) { 792 if ( resource ) {
793 KABC::Addressee addr; 793 KABC::Addressee addr;
794 addr.setResource( resource ); 794 addr.setResource( resource );
795 mEditorDialog->setAddressee( addr ); 795 mEditorDialog->setAddressee( addr );
796 KApplication::execDialog ( mEditorDialog ); 796 KApplication::execDialog ( mEditorDialog );
797 797
798 } else 798 } else
799 return; 799 return;
800 800
801 // mEditorDict.insert( dialog->addressee().uid(), dialog ); 801 // mEditorDict.insert( dialog->addressee().uid(), dialog );
802 802
803 dialog->show(); 803 dialog->show();
804 804
805} 805}
806 806
807void KABCore::addEmail( QString aStr ) 807void KABCore::addEmail( QString aStr )
808{ 808{
809#ifndef KAB_EMBEDDED 809#ifndef KAB_EMBEDDED
810 QString fullName, email; 810 QString fullName, email;
811 811
812 KABC::Addressee::parseEmailAddress( aStr, fullName, email ); 812 KABC::Addressee::parseEmailAddress( aStr, fullName, email );
813 813
814 // Try to lookup the addressee matching the email address 814 // Try to lookup the addressee matching the email address
815 bool found = false; 815 bool found = false;
816 QStringList emailList; 816 QStringList emailList;
817 KABC::AddressBook::Iterator it; 817 KABC::AddressBook::Iterator it;
818 for ( it = mAddressBook->begin(); !found && (it != mAddressBook->end()); ++it ) { 818 for ( it = mAddressBook->begin(); !found && (it != mAddressBook->end()); ++it ) {
819 emailList = (*it).emails(); 819 emailList = (*it).emails();
820 if ( emailList.contains( email ) > 0 ) { 820 if ( emailList.contains( email ) > 0 ) {
821 found = true; 821 found = true;
822 (*it).setNameFromString( fullName ); 822 (*it).setNameFromString( fullName );
823 editContact( (*it).uid() ); 823 editContact( (*it).uid() );
824 } 824 }
825 } 825 }
826 826
827 if ( !found ) { 827 if ( !found ) {
828 KABC::Addressee addr; 828 KABC::Addressee addr;
829 addr.setNameFromString( fullName ); 829 addr.setNameFromString( fullName );
830 addr.insertEmail( email, true ); 830 addr.insertEmail( email, true );
831 831
832 mAddressBook->insertAddressee( addr ); 832 mAddressBook->insertAddressee( addr );
833 mViewManager->refreshView( addr.uid() ); 833 mViewManager->refreshView( addr.uid() );
834 editContact( addr.uid() ); 834 editContact( addr.uid() );
835 } 835 }
836#else //KAB_EMBEDDED 836#else //KAB_EMBEDDED
837 qDebug("KABCore::addEmail finsih method"); 837 qDebug("KABCore::addEmail finsih method");
838#endif //KAB_EMBEDDED 838#endif //KAB_EMBEDDED
839} 839}
840 840
841void KABCore::importVCard( const KURL &url, bool showPreview ) 841void KABCore::importVCard( const KURL &url, bool showPreview )
842{ 842{
843 mXXPortManager->importVCard( url, showPreview ); 843 mXXPortManager->importVCard( url, showPreview );
844} 844}
845 845
846void KABCore::importVCard( const QString &vCard, bool showPreview ) 846void KABCore::importVCard( const QString &vCard, bool showPreview )
847{ 847{
848 mXXPortManager->importVCard( vCard, showPreview ); 848 mXXPortManager->importVCard( vCard, showPreview );
849} 849}
850 850
851//US added a second method without defaultparameter 851//US added a second method without defaultparameter
852void KABCore::editContact2() { 852void KABCore::editContact2() {
853 editContact( QString::null ); 853 editContact( QString::null );
854} 854}
855 855
856void KABCore::editContact( const QString &uid ) 856void KABCore::editContact( const QString &uid )
857{ 857{
858 858
859 if ( mExtensionManager->isQuickEditVisible() ) 859 if ( mExtensionManager->isQuickEditVisible() )
860 return; 860 return;
861 861
862 // First, locate the contact entry 862 // First, locate the contact entry
863 QString localUID = uid; 863 QString localUID = uid;
864 if ( localUID.isNull() ) { 864 if ( localUID.isNull() ) {
865 QStringList uidList = mViewManager->selectedUids(); 865 QStringList uidList = mViewManager->selectedUids();
866 if ( uidList.count() > 0 ) 866 if ( uidList.count() > 0 )
867 localUID = *( uidList.at( 0 ) ); 867 localUID = *( uidList.at( 0 ) );
868 } 868 }
869 869
870 KABC::Addressee addr = mAddressBook->findByUid( localUID ); 870 KABC::Addressee addr = mAddressBook->findByUid( localUID );
871 if ( !addr.isEmpty() ) { 871 if ( !addr.isEmpty() ) {
872 mEditorDialog->setAddressee( addr ); 872 mEditorDialog->setAddressee( addr );
873 KApplication::execDialog ( mEditorDialog ); 873 KApplication::execDialog ( mEditorDialog );
874 } 874 }
875} 875}
876 876
877void KABCore::save() 877void KABCore::save()
878{ 878{
879 if ( !mModified ) 879 if ( !mModified )
880 return; 880 return;
881 QString text = i18n( "There was an error while attempting to save\n the " 881 QString text = i18n( "There was an error while attempting to save\n the "
882 "address book. Please check that some \nother application is " 882 "address book. Please check that some \nother application is "
883 "not using it. " ); 883 "not using it. " );
884 statusMessage(i18n("Saving addressbook ... ")); 884 statusMessage(i18n("Saving addressbook ... "));
885#ifndef KAB_EMBEDDED 885#ifndef KAB_EMBEDDED
886 KABC::StdAddressBook *b = dynamic_cast<KABC::StdAddressBook*>( mAddressBook ); 886 KABC::StdAddressBook *b = dynamic_cast<KABC::StdAddressBook*>( mAddressBook );
887 if ( !b || !b->save() ) { 887 if ( !b || !b->save() ) {
888 KMessageBox::error( this, text, i18n( "Unable to Save" ) ); 888 KMessageBox::error( this, text, i18n( "Unable to Save" ) );
889 } 889 }
890#else //KAB_EMBEDDED 890#else //KAB_EMBEDDED
891 KABC::StdAddressBook *b = (KABC::StdAddressBook*)( mAddressBook ); 891 KABC::StdAddressBook *b = (KABC::StdAddressBook*)( mAddressBook );
892 if ( !b || !b->save() ) { 892 if ( !b || !b->save() ) {
893 QMessageBox::critical( this, i18n( "Unable to Save" ), text, i18n("Ok")); 893 QMessageBox::critical( this, i18n( "Unable to Save" ), text, i18n("Ok"));
894 } 894 }
895#endif //KAB_EMBEDDED 895#endif //KAB_EMBEDDED
896 896
897 statusMessage(i18n("Addressbook saved!")); 897 statusMessage(i18n("Addressbook saved!"));
898 setModified( false ); 898 setModified( false );
899} 899}
900 900
901void KABCore::statusMessage(QString mess , int time ) 901void KABCore::statusMessage(QString mess , int time )
902{ 902{
903 //topLevelWidget()->setCaption( mess ); 903 //topLevelWidget()->setCaption( mess );
904 // pending setting timer to revome message 904 // pending setting timer to revome message
905} 905}
906void KABCore::undo() 906void KABCore::undo()
907{ 907{
908 UndoStack::instance()->undo(); 908 UndoStack::instance()->undo();
909 909
910 // Refresh the view 910 // Refresh the view
911 mViewManager->refreshView(); 911 mViewManager->refreshView();
912} 912}
913 913
914void KABCore::redo() 914void KABCore::redo()
915{ 915{
916 RedoStack::instance()->redo(); 916 RedoStack::instance()->redo();
917 917
918 // Refresh the view 918 // Refresh the view
919 mViewManager->refreshView(); 919 mViewManager->refreshView();
920} 920}
921 921
922void KABCore::setJumpButtonBarVisible( bool visible ) 922void KABCore::setJumpButtonBarVisible( bool visible )
923{ 923{
924 if ( visible ) 924 if ( visible )
925 mJumpButtonBar->show(); 925 mJumpButtonBar->show();
926 else 926 else
927 mJumpButtonBar->hide(); 927 mJumpButtonBar->hide();
928} 928}
929void KABCore::setDetailsToState() 929void KABCore::setDetailsToState()
930{ 930{
931 setDetailsVisible( mActionDetails->isChecked() ); 931 setDetailsVisible( mActionDetails->isChecked() );
932} 932}
933 933
934void KABCore::setDetailsVisible( bool visible ) 934void KABCore::setDetailsVisible( bool visible )
935{ 935{
936 if ( visible ) 936 if ( visible )
937 mDetails->show(); 937 mDetails->show();
938 else 938 else
939 mDetails->hide(); 939 mDetails->hide();
940} 940}
941 941
942void KABCore::extensionModified( const KABC::Addressee::List &list ) 942void KABCore::extensionModified( const KABC::Addressee::List &list )
943{ 943{
944 944
945 if ( list.count() != 0 ) { 945 if ( list.count() != 0 ) {
946 KABC::Addressee::List::ConstIterator it; 946 KABC::Addressee::List::ConstIterator it;
947 for ( it = list.begin(); it != list.end(); ++it ) 947 for ( it = list.begin(); it != list.end(); ++it )
948 mAddressBook->insertAddressee( *it ); 948 mAddressBook->insertAddressee( *it );
949 if ( list.count() > 1 ) 949 if ( list.count() > 1 )
950 setModified(); 950 setModified();
951 else 951 else
952 setModifiedWOrefresh(); 952 setModifiedWOrefresh();
953 } 953 }
954 if ( list.count() == 0 ) 954 if ( list.count() == 0 )
955 mViewManager->refreshView(); 955 mViewManager->refreshView();
956 else 956 else
957 mViewManager->refreshView( list[ 0 ].uid() ); 957 mViewManager->refreshView( list[ 0 ].uid() );
958 958
959 959
960 960
961} 961}
962 962
963QString KABCore::getNameByPhone( const QString &phone ) 963QString KABCore::getNameByPhone( const QString &phone )
964{ 964{
965#ifndef KAB_EMBEDDED 965#ifndef KAB_EMBEDDED
966 QRegExp r( "[/*/-/ ]" ); 966 QRegExp r( "[/*/-/ ]" );
967 QString localPhone( phone ); 967 QString localPhone( phone );
968 968
969 bool found = false; 969 bool found = false;
970 QString ownerName = ""; 970 QString ownerName = "";
971 KABC::AddressBook::Iterator iter; 971 KABC::AddressBook::Iterator iter;
972 KABC::PhoneNumber::List::Iterator phoneIter; 972 KABC::PhoneNumber::List::Iterator phoneIter;
973 KABC::PhoneNumber::List phoneList; 973 KABC::PhoneNumber::List phoneList;
974 for ( iter = mAddressBook->begin(); !found && ( iter != mAddressBook->end() ); ++iter ) { 974 for ( iter = mAddressBook->begin(); !found && ( iter != mAddressBook->end() ); ++iter ) {
975 phoneList = (*iter).phoneNumbers(); 975 phoneList = (*iter).phoneNumbers();
976 for ( phoneIter = phoneList.begin(); !found && ( phoneIter != phoneList.end() ); 976 for ( phoneIter = phoneList.begin(); !found && ( phoneIter != phoneList.end() );
977 ++phoneIter) { 977 ++phoneIter) {
978 // Get rid of separator chars so just the numbers are compared. 978 // Get rid of separator chars so just the numbers are compared.
979 if ( (*phoneIter).number().replace( r, "" ) == localPhone.replace( r, "" ) ) { 979 if ( (*phoneIter).number().replace( r, "" ) == localPhone.replace( r, "" ) ) {
980 ownerName = (*iter).formattedName(); 980 ownerName = (*iter).formattedName();
981 found = true; 981 found = true;
982 } 982 }
983 } 983 }
984 } 984 }
985 985
986 return ownerName; 986 return ownerName;
987#else //KAB_EMBEDDED 987#else //KAB_EMBEDDED
988 qDebug("KABCore::getNameByPhone finsih method"); 988 qDebug("KABCore::getNameByPhone finsih method");
989 return ""; 989 return "";
990#endif //KAB_EMBEDDED 990#endif //KAB_EMBEDDED
991 991
992} 992}
993 993
994void KABCore::openConfigDialog() 994void KABCore::openConfigDialog()
995{ 995{
996 KCMultiDialog* ConfigureDialog = new KCMultiDialog( "PIM", this ,"kabconfigdialog", true ); 996 KCMultiDialog* ConfigureDialog = new KCMultiDialog( "PIM", this ,"kabconfigdialog", true );
997 KCMKabConfig* kabcfg = new KCMKabConfig( ConfigureDialog->getNewVBoxPage(i18n( "Addressbook")) , "KCMKabConfig" ); 997 KCMKabConfig* kabcfg = new KCMKabConfig( ConfigureDialog->getNewVBoxPage(i18n( "Addressbook")) , "KCMKabConfig" );
998 ConfigureDialog->addModule(kabcfg ); 998 ConfigureDialog->addModule(kabcfg );
999 connect( ConfigureDialog, SIGNAL( applyClicked() ), 999 connect( ConfigureDialog, SIGNAL( applyClicked() ),
1000 this, SLOT( configurationChanged() ) ); 1000 this, SLOT( configurationChanged() ) );
1001 connect( ConfigureDialog, SIGNAL( okClicked() ), 1001 connect( ConfigureDialog, SIGNAL( okClicked() ),
1002 this, SLOT( configurationChanged() ) ); 1002 this, SLOT( configurationChanged() ) );
1003 saveSettings(); 1003 saveSettings();
1004 ConfigureDialog->showMaximized(); 1004 ConfigureDialog->showMaximized();
1005 if ( ConfigureDialog->exec() ) 1005 if ( ConfigureDialog->exec() )
1006 KMessageBox::information( this, i18n("If you configured \nExtensions,\nplease restart!\n") ); 1006 KMessageBox::information( this, i18n("If you configured \nExtensions,\nplease restart!\n") );
1007 delete ConfigureDialog; 1007 delete ConfigureDialog;
1008} 1008}
1009 1009
1010void KABCore::openLDAPDialog() 1010void KABCore::openLDAPDialog()
1011{ 1011{
1012#ifndef KAB_EMBEDDED 1012#ifndef KAB_EMBEDDED
1013 if ( !mLdapSearchDialog ) { 1013 if ( !mLdapSearchDialog ) {
1014 mLdapSearchDialog = new LDAPSearchDialog( mAddressBook, this ); 1014 mLdapSearchDialog = new LDAPSearchDialog( mAddressBook, this );
1015 connect( mLdapSearchDialog, SIGNAL( addresseesAdded() ), mViewManager, 1015 connect( mLdapSearchDialog, SIGNAL( addresseesAdded() ), mViewManager,
1016 SLOT( refreshView() ) ); 1016 SLOT( refreshView() ) );
1017 connect( mLdapSearchDialog, SIGNAL( addresseesAdded() ), this, 1017 connect( mLdapSearchDialog, SIGNAL( addresseesAdded() ), this,
1018 SLOT( setModified() ) ); 1018 SLOT( setModified() ) );
1019 } else 1019 } else
1020 mLdapSearchDialog->restoreSettings(); 1020 mLdapSearchDialog->restoreSettings();
1021 1021
1022 if ( mLdapSearchDialog->isOK() ) 1022 if ( mLdapSearchDialog->isOK() )
1023 mLdapSearchDialog->exec(); 1023 mLdapSearchDialog->exec();
1024#else //KAB_EMBEDDED 1024#else //KAB_EMBEDDED
1025 qDebug("KABCore::openLDAPDialog() finsih method"); 1025 qDebug("KABCore::openLDAPDialog() finsih method");
1026#endif //KAB_EMBEDDED 1026#endif //KAB_EMBEDDED
1027} 1027}
1028 1028
1029void KABCore::print() 1029void KABCore::print()
1030{ 1030{
1031#ifndef KAB_EMBEDDED 1031#ifndef KAB_EMBEDDED
1032 KPrinter printer; 1032 KPrinter printer;
1033 if ( !printer.setup( this ) ) 1033 if ( !printer.setup( this ) )
1034 return; 1034 return;
1035 1035
1036 KABPrinting::PrintingWizard wizard( &printer, mAddressBook, 1036 KABPrinting::PrintingWizard wizard( &printer, mAddressBook,
1037 mViewManager->selectedUids(), this ); 1037 mViewManager->selectedUids(), this );
1038 1038
1039 wizard.exec(); 1039 wizard.exec();
1040#else //KAB_EMBEDDED 1040#else //KAB_EMBEDDED
1041 qDebug("KABCore::print() finsih method"); 1041 qDebug("KABCore::print() finsih method");
1042#endif //KAB_EMBEDDED 1042#endif //KAB_EMBEDDED
1043 1043
1044} 1044}
1045 1045
1046 1046
1047void KABCore::addGUIClient( KXMLGUIClient *client ) 1047void KABCore::addGUIClient( KXMLGUIClient *client )
1048{ 1048{
1049 if ( mGUIClient ) 1049 if ( mGUIClient )
1050 mGUIClient->insertChildClient( client ); 1050 mGUIClient->insertChildClient( client );
1051 else 1051 else
1052 KMessageBox::error( this, "no KXMLGUICLient"); 1052 KMessageBox::error( this, "no KXMLGUICLient");
1053} 1053}
1054 1054
1055 1055
1056void KABCore::configurationChanged() 1056void KABCore::configurationChanged()
1057{ 1057{
1058 mExtensionManager->reconfigure(); 1058 mExtensionManager->reconfigure();
1059} 1059}
1060 1060
1061void KABCore::addressBookChanged() 1061void KABCore::addressBookChanged()
1062{ 1062{
1063#ifndef KAB_EMBEDDED 1063#ifndef KAB_EMBEDDED
1064 QDictIterator<AddresseeEditorDialog> it( mEditorDict ); 1064 QDictIterator<AddresseeEditorDialog> it( mEditorDict );
1065 while ( it.current() ) { 1065 while ( it.current() ) {
1066 if ( it.current()->dirty() ) { 1066 if ( it.current()->dirty() ) {
1067 QString text = i18n( "Data has been changed externally. Unsaved " 1067 QString text = i18n( "Data has been changed externally. Unsaved "
1068 "changes will be lost." ); 1068 "changes will be lost." );
1069 KMessageBox::information( this, text ); 1069 KMessageBox::information( this, text );
1070 } 1070 }
1071 it.current()->setAddressee( mAddressBook->findByUid( it.currentKey() ) ); 1071 it.current()->setAddressee( mAddressBook->findByUid( it.currentKey() ) );
1072 ++it; 1072 ++it;
1073 } 1073 }
1074 1074
1075 mViewManager->refreshView(); 1075 mViewManager->refreshView();
1076#else //KAB_EMBEDDED 1076#else //KAB_EMBEDDED
1077 qDebug("KABCore::addressBookChanged() finsih method"); 1077 qDebug("KABCore::addressBookChanged() finsih method");
1078#endif //KAB_EMBEDDED 1078#endif //KAB_EMBEDDED
1079} 1079}
1080 1080
1081AddresseeEditorDialog *KABCore::createAddresseeEditorDialog( QWidget *parent, 1081AddresseeEditorDialog *KABCore::createAddresseeEditorDialog( QWidget *parent,
1082 const char *name ) 1082 const char *name )
1083{ 1083{
1084 1084
1085 if ( mEditorDialog == 0 ) { 1085 if ( mEditorDialog == 0 ) {
1086 mEditorDialog = new AddresseeEditorDialog( this, parent, 1086 mEditorDialog = new AddresseeEditorDialog( this, parent,
1087 name ? name : "editorDialog" ); 1087 name ? name : "editorDialog" );
1088 1088
1089 1089
1090 connect( mEditorDialog, SIGNAL( contactModified( const KABC::Addressee& ) ), 1090 connect( mEditorDialog, SIGNAL( contactModified( const KABC::Addressee& ) ),
1091 SLOT( contactModified( const KABC::Addressee& ) ) ); 1091 SLOT( contactModified( const KABC::Addressee& ) ) );
1092 //connect( mEditorDialog, SIGNAL( editorDestroyed( const QString& ) ), 1092 //connect( mEditorDialog, SIGNAL( editorDestroyed( const QString& ) ),
1093 // SLOT( slotEditorDestroyed( const QString& ) ) ); 1093 // SLOT( slotEditorDestroyed( const QString& ) ) );
1094 } 1094 }
1095 1095
1096 return mEditorDialog; 1096 return mEditorDialog;
1097} 1097}
1098 1098
1099void KABCore::slotEditorDestroyed( const QString &uid ) 1099void KABCore::slotEditorDestroyed( const QString &uid )
1100{ 1100{
1101 qDebug("KABCore::slotEditorDestroyed called. maybe a problem! "); 1101 qDebug("KABCore::slotEditorDestroyed called. maybe a problem! ");
1102 //mEditorDict.remove( uid ); 1102 //mEditorDict.remove( uid );
1103} 1103}
1104 1104
1105void KABCore::initGUI() 1105void KABCore::initGUI()
1106{ 1106{
1107#ifndef KAB_EMBEDDED 1107#ifndef KAB_EMBEDDED
1108 QHBoxLayout *topLayout = new QHBoxLayout( this ); 1108 QHBoxLayout *topLayout = new QHBoxLayout( this );
1109 topLayout->setSpacing( KDialogBase::spacingHint() ); 1109 topLayout->setSpacing( KDialogBase::spacingHint() );
1110 1110
1111 mExtensionBarSplitter = new QSplitter( this ); 1111 mExtensionBarSplitter = new QSplitter( this );
1112 mExtensionBarSplitter->setOrientation( Qt::Vertical ); 1112 mExtensionBarSplitter->setOrientation( Qt::Vertical );
1113 1113
1114 mDetailsSplitter = new QSplitter( mExtensionBarSplitter ); 1114 mDetailsSplitter = new QSplitter( mExtensionBarSplitter );
1115 1115
1116 QVBox *viewSpace = new QVBox( mDetailsSplitter ); 1116 QVBox *viewSpace = new QVBox( mDetailsSplitter );
1117 mIncSearchWidget = new IncSearchWidget( viewSpace ); 1117 mIncSearchWidget = new IncSearchWidget( viewSpace );
1118 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ), 1118 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ),
1119 SLOT( incrementalSearch( const QString& ) ) ); 1119 SLOT( incrementalSearch( const QString& ) ) );
1120 1120
1121 mViewManager = new ViewManager( this, viewSpace ); 1121 mViewManager = new ViewManager( this, viewSpace );
1122 viewSpace->setStretchFactor( mViewManager, 1 ); 1122 viewSpace->setStretchFactor( mViewManager, 1 );
1123 1123
1124 mDetails = new ViewContainer( mDetailsSplitter ); 1124 mDetails = new ViewContainer( mDetailsSplitter );
1125 1125
1126 mJumpButtonBar = new JumpButtonBar( this, this ); 1126 mJumpButtonBar = new JumpButtonBar( this, this );
1127 1127
1128 mExtensionManager = new ExtensionManager( this, mExtensionBarSplitter ); 1128 mExtensionManager = new ExtensionManager( this, mExtensionBarSplitter );
1129 1129
1130 topLayout->addWidget( mExtensionBarSplitter ); 1130 topLayout->addWidget( mExtensionBarSplitter );
1131 topLayout->setStretchFactor( mExtensionBarSplitter, 100 ); 1131 topLayout->setStretchFactor( mExtensionBarSplitter, 100 );
1132 topLayout->addWidget( mJumpButtonBar ); 1132 topLayout->addWidget( mJumpButtonBar );
1133 topLayout->setStretchFactor( mJumpButtonBar, 1 ); 1133 topLayout->setStretchFactor( mJumpButtonBar, 1 );
1134 1134
1135 mXXPortManager = new XXPortManager( this, this ); 1135 mXXPortManager = new XXPortManager( this, this );
1136 1136
1137#else //KAB_EMBEDDED 1137#else //KAB_EMBEDDED
1138 //US initialize viewMenu before settingup viewmanager. 1138 //US initialize viewMenu before settingup viewmanager.
1139 // Viewmanager needs this menu to plugin submenues. 1139 // Viewmanager needs this menu to plugin submenues.
1140 viewMenu = new QPopupMenu( this ); 1140 viewMenu = new QPopupMenu( this );
1141 settingsMenu = new QPopupMenu( this ); 1141 settingsMenu = new QPopupMenu( this );
1142 //filterMenu = new QPopupMenu( this ); 1142 //filterMenu = new QPopupMenu( this );
1143 ImportMenu = new QPopupMenu( this ); 1143 ImportMenu = new QPopupMenu( this );
1144 ExportMenu = new QPopupMenu( this ); 1144 ExportMenu = new QPopupMenu( this );
1145 1145
1146 1146
1147//US since we have no splitter for the embedded system, setup 1147//US since we have no splitter for the embedded system, setup
1148// a layout with two frames. One left and one right. 1148// a layout with two frames. One left and one right.
1149 1149
1150 QBoxLayout *topLayout; 1150 QBoxLayout *topLayout;
1151 1151
1152 // = new QHBoxLayout( this ); 1152 // = new QHBoxLayout( this );
1153// QBoxLayout *topLayout = (QBoxLayout*)layout(); 1153// QBoxLayout *topLayout = (QBoxLayout*)layout();
1154 1154
1155// QWidget *mainBox = new QWidget( this ); 1155// QWidget *mainBox = new QWidget( this );
1156// QBoxLayout * mainBoxLayout = new QHBoxLayout(mainBox); 1156// QBoxLayout * mainBoxLayout = new QHBoxLayout(mainBox);
1157 1157
1158#ifdef DESKTOP_VERSION 1158#ifdef DESKTOP_VERSION
1159 topLayout = new QHBoxLayout( this ); 1159 topLayout = new QHBoxLayout( this );
1160 1160
1161 1161
1162 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Horizontal, this); 1162 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Horizontal, this);
1163 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right ); 1163 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right );
1164 1164
1165 topLayout->addWidget(mMiniSplitter ); 1165 topLayout->addWidget(mMiniSplitter );
1166 1166
1167 mExtensionBarSplitter = new KDGanttMinimizeSplitter( Qt::Vertical,mMiniSplitter ); 1167 mExtensionBarSplitter = new KDGanttMinimizeSplitter( Qt::Vertical,mMiniSplitter );
1168 mExtensionBarSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Down ); 1168 mExtensionBarSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Down );
1169 mViewManager = new ViewManager( this, mExtensionBarSplitter ); 1169 mViewManager = new ViewManager( this, mExtensionBarSplitter );
1170 mDetails = new ViewContainer( mMiniSplitter ); 1170 mDetails = new ViewContainer( mMiniSplitter );
1171 mExtensionManager = new ExtensionManager( this, mExtensionBarSplitter ); 1171 mExtensionManager = new ExtensionManager( this, mExtensionBarSplitter );
1172#else 1172#else
1173 if ( QApplication::desktop()->width() > 480 ) { 1173 if ( QApplication::desktop()->width() > 480 ) {
1174 topLayout = new QHBoxLayout( this ); 1174 topLayout = new QHBoxLayout( this );
1175 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Horizontal, this); 1175 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Horizontal, this);
1176 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right ); 1176 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right );
1177 } else { 1177 } else {
1178 1178
1179 topLayout = new QHBoxLayout( this ); 1179 topLayout = new QHBoxLayout( this );
1180 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Vertical, this); 1180 mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Vertical, this);
1181 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Down ); 1181 mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Down );
1182 } 1182 }
1183 1183
1184 topLayout->addWidget(mMiniSplitter ); 1184 topLayout->addWidget(mMiniSplitter );
1185 mViewManager = new ViewManager( this, mMiniSplitter ); 1185 mViewManager = new ViewManager( this, mMiniSplitter );
1186 mDetails = new ViewContainer( mMiniSplitter ); 1186 mDetails = new ViewContainer( mMiniSplitter );
1187 1187
1188 1188
1189 mExtensionManager = new ExtensionManager( this, mMiniSplitter ); 1189 mExtensionManager = new ExtensionManager( this, mMiniSplitter );
1190#endif 1190#endif
1191 //eh->hide(); 1191 //eh->hide();
1192 // topLayout->addWidget(mExtensionManager ); 1192 // topLayout->addWidget(mExtensionManager );
1193 1193
1194 1194
1195/*US 1195/*US
1196#ifndef KAB_NOSPLITTER 1196#ifndef KAB_NOSPLITTER
1197 QHBoxLayout *topLayout = new QHBoxLayout( this ); 1197 QHBoxLayout *topLayout = new QHBoxLayout( this );
1198//US topLayout->setSpacing( KDialogBase::spacingHint() ); 1198//US topLayout->setSpacing( KDialogBase::spacingHint() );
1199 topLayout->setSpacing( 10 ); 1199 topLayout->setSpacing( 10 );
1200 1200
1201 mDetailsSplitter = new QSplitter( this ); 1201 mDetailsSplitter = new QSplitter( this );
1202 1202
1203 QVBox *viewSpace = new QVBox( mDetailsSplitter ); 1203 QVBox *viewSpace = new QVBox( mDetailsSplitter );
1204 1204
1205 mViewManager = new ViewManager( this, viewSpace ); 1205 mViewManager = new ViewManager( this, viewSpace );
1206 viewSpace->setStretchFactor( mViewManager, 1 ); 1206 viewSpace->setStretchFactor( mViewManager, 1 );
1207 1207
1208 mDetails = new ViewContainer( mDetailsSplitter ); 1208 mDetails = new ViewContainer( mDetailsSplitter );
1209 1209
1210 topLayout->addWidget( mDetailsSplitter ); 1210 topLayout->addWidget( mDetailsSplitter );
1211 topLayout->setStretchFactor( mDetailsSplitter, 100 ); 1211 topLayout->setStretchFactor( mDetailsSplitter, 100 );
1212#else //KAB_NOSPLITTER 1212#else //KAB_NOSPLITTER
1213 QHBoxLayout *topLayout = new QHBoxLayout( this ); 1213 QHBoxLayout *topLayout = new QHBoxLayout( this );
1214//US topLayout->setSpacing( KDialogBase::spacingHint() ); 1214//US topLayout->setSpacing( KDialogBase::spacingHint() );
1215 topLayout->setSpacing( 10 ); 1215 topLayout->setSpacing( 10 );
1216 1216
1217// mDetailsSplitter = new QSplitter( this ); 1217// mDetailsSplitter = new QSplitter( this );
1218 1218
1219 QVBox *viewSpace = new QVBox( this ); 1219 QVBox *viewSpace = new QVBox( this );
1220 1220
1221 mViewManager = new ViewManager( this, viewSpace ); 1221 mViewManager = new ViewManager( this, viewSpace );
1222 viewSpace->setStretchFactor( mViewManager, 1 ); 1222 viewSpace->setStretchFactor( mViewManager, 1 );
1223 1223
1224 mDetails = new ViewContainer( this ); 1224 mDetails = new ViewContainer( this );
1225 1225
1226 topLayout->addWidget( viewSpace ); 1226 topLayout->addWidget( viewSpace );
1227// topLayout->setStretchFactor( mDetailsSplitter, 100 ); 1227// topLayout->setStretchFactor( mDetailsSplitter, 100 );
1228 topLayout->addWidget( mDetails ); 1228 topLayout->addWidget( mDetails );
1229#endif //KAB_NOSPLITTER 1229#endif //KAB_NOSPLITTER
1230*/ 1230*/
1231 1231
1232 1232
1233#endif //KAB_EMBEDDED 1233#endif //KAB_EMBEDDED
1234 initActions(); 1234 initActions();
1235 1235
1236#ifdef KAB_EMBEDDED 1236#ifdef KAB_EMBEDDED
1237 addActionsManually(); 1237 addActionsManually();
1238 //US make sure the export and import menues are initialized before creating the xxPortManager. 1238 //US make sure the export and import menues are initialized before creating the xxPortManager.
1239 mXXPortManager = new XXPortManager( this, this ); 1239 mXXPortManager = new XXPortManager( this, this );
1240 1240
1241 // LR mIncSearchWidget = new IncSearchWidget( mMainWindow->getIconToolBar() ); 1241 // LR mIncSearchWidget = new IncSearchWidget( mMainWindow->getIconToolBar() );
1242 //mMainWindow->toolBar()->insertWidget(-1, 4, mIncSearchWidget); 1242 //mMainWindow->toolBar()->insertWidget(-1, 4, mIncSearchWidget);
1243 // mActionQuit->plug ( mMainWindow->toolBar()); 1243 // mActionQuit->plug ( mMainWindow->toolBar());
1244 //mIncSearchWidget = new IncSearchWidget( mMainWindow->toolBar() ); 1244 //mIncSearchWidget = new IncSearchWidget( mMainWindow->toolBar() );
1245 //mMainWindow->toolBar()->insertWidget(-1, 0, mIncSearchWidget); 1245 //mMainWindow->toolBar()->insertWidget(-1, 0, mIncSearchWidget);
1246 // mIncSearchWidget->hide(); 1246 // mIncSearchWidget->hide();
1247 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ), 1247 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ),
1248 SLOT( incrementalSearch( const QString& ) ) ); 1248 SLOT( incrementalSearch( const QString& ) ) );
1249 1249
1250 1250
1251 mJumpButtonBar = new JumpButtonBar( this, this ); 1251 mJumpButtonBar = new JumpButtonBar( this, this );
1252 1252
1253 topLayout->addWidget( mJumpButtonBar ); 1253 topLayout->addWidget( mJumpButtonBar );
1254//US topLayout->setStretchFactor( mJumpButtonBar, 10 ); 1254//US topLayout->setStretchFactor( mJumpButtonBar, 10 );
1255 1255
1256// mMainWindow->getIconToolBar()->raise(); 1256// mMainWindow->getIconToolBar()->raise();
1257 1257
1258#endif //KAB_EMBEDDED 1258#endif //KAB_EMBEDDED
1259 1259
1260} 1260}
1261void KABCore::initActions() 1261void KABCore::initActions()
1262{ 1262{
1263//US qDebug("KABCore::initActions(): mIsPart %i", mIsPart); 1263//US qDebug("KABCore::initActions(): mIsPart %i", mIsPart);
1264 1264
1265#ifndef KAB_EMBEDDED 1265#ifndef KAB_EMBEDDED
1266 connect( QApplication::clipboard(), SIGNAL( dataChanged() ), 1266 connect( QApplication::clipboard(), SIGNAL( dataChanged() ),
1267 SLOT( clipboardDataChanged() ) ); 1267 SLOT( clipboardDataChanged() ) );
1268#endif //KAB_EMBEDDED 1268#endif //KAB_EMBEDDED
1269 1269
1270 // file menu 1270 // file menu
1271 if ( mIsPart ) { 1271 if ( mIsPart ) {
1272 mActionMail = new KAction( i18n( "&Mail" ), "mail_generic", 0, this, 1272 mActionMail = new KAction( i18n( "&Mail" ), "mail_generic", 0, this,
1273 SLOT( sendMail() ), actionCollection(), 1273 SLOT( sendMail() ), actionCollection(),
1274 "kaddressbook_mail" ); 1274 "kaddressbook_mail" );
1275 mActionPrint = new KAction( i18n( "&Print" ), "fileprint", CTRL + Key_P, this, 1275 mActionPrint = new KAction( i18n( "&Print" ), "fileprint", CTRL + Key_P, this,
1276 SLOT( print() ), actionCollection(), "kaddressbook_print" ); 1276 SLOT( print() ), actionCollection(), "kaddressbook_print" );
1277 1277
1278 } else { 1278 } else {
1279 mActionMail = KStdAction::mail( this, SLOT( sendMail() ), actionCollection() ); 1279 mActionMail = KStdAction::mail( this, SLOT( sendMail() ), actionCollection() );
1280 mActionPrint = KStdAction::print( this, SLOT( print() ), actionCollection() ); 1280 mActionPrint = KStdAction::print( this, SLOT( print() ), actionCollection() );
1281 } 1281 }
1282 1282
1283 mActionSave = new KAction( i18n( "&Save" ), "filesave", CTRL+Key_S, this, 1283 mActionSave = new KAction( i18n( "&Save" ), "filesave", CTRL+Key_S, this,
1284 SLOT( save() ), actionCollection(), "file_sync" ); 1284 SLOT( save() ), actionCollection(), "file_sync" );
1285 1285
1286 mActionNewContact = new KAction( i18n( "&New Contact..." ), "filenew", CTRL+Key_N, this, 1286 mActionNewContact = new KAction( i18n( "&New Contact..." ), "filenew", CTRL+Key_N, this,
1287 SLOT( newContact() ), actionCollection(), "file_new_contact" ); 1287 SLOT( newContact() ), actionCollection(), "file_new_contact" );
1288 1288
1289 mActionMailVCard = new KAction(i18n("Mail &vCard..."), "mail_post_to", 0, 1289 mActionMailVCard = new KAction(i18n("Mail &vCard..."), "mail_post_to", 0,
1290 this, SLOT( mailVCard() ), 1290 this, SLOT( mailVCard() ),
1291 actionCollection(), "file_mail_vcard"); 1291 actionCollection(), "file_mail_vcard");
1292 1292
1293 mActionEditAddressee = new KAction( i18n( "&Edit Contact..." ), "edit", 0, 1293 mActionEditAddressee = new KAction( i18n( "&Edit Contact..." ), "edit", 0,
1294 this, SLOT( editContact2() ), 1294 this, SLOT( editContact2() ),
1295 actionCollection(), "file_properties" ); 1295 actionCollection(), "file_properties" );
1296 1296
1297#ifdef KAB_EMBEDDED 1297#ifdef KAB_EMBEDDED
1298 // mActionQuit = KStdAction::quit( mMainWindow, SLOT( exit() ), actionCollection() ); 1298 // mActionQuit = KStdAction::quit( mMainWindow, SLOT( exit() ), actionCollection() );
1299 mActionQuit = new KAction( i18n( "&Exit" ), "exit", 0, 1299 mActionQuit = new KAction( i18n( "&Exit" ), "exit", 0,
1300 mMainWindow, SLOT( exit() ), 1300 mMainWindow, SLOT( exit() ),
1301 actionCollection(), "quit" ); 1301 actionCollection(), "quit" );
1302#endif //KAB_EMBEDDED 1302#endif //KAB_EMBEDDED
1303 1303
1304 // edit menu 1304 // edit menu
1305 if ( mIsPart ) { 1305 if ( mIsPart ) {
1306 mActionCopy = new KAction( i18n( "&Copy" ), "editcopy", CTRL + Key_C, this, 1306 mActionCopy = new KAction( i18n( "&Copy" ), "editcopy", CTRL + Key_C, this,
1307 SLOT( copyContacts() ), actionCollection(), 1307 SLOT( copyContacts() ), actionCollection(),
1308 "kaddressbook_copy" ); 1308 "kaddressbook_copy" );
1309 mActionCut = new KAction( i18n( "Cu&t" ), "editcut", CTRL + Key_X, this, 1309 mActionCut = new KAction( i18n( "Cu&t" ), "editcut", CTRL + Key_X, this,
1310 SLOT( cutContacts() ), actionCollection(), 1310 SLOT( cutContacts() ), actionCollection(),
1311 "kaddressbook_cut" ); 1311 "kaddressbook_cut" );
1312 mActionPaste = new KAction( i18n( "&Paste" ), "editpaste", CTRL + Key_V, this, 1312 mActionPaste = new KAction( i18n( "&Paste" ), "editpaste", CTRL + Key_V, this,
1313 SLOT( pasteContacts() ), actionCollection(), 1313 SLOT( pasteContacts() ), actionCollection(),
1314 "kaddressbook_paste" ); 1314 "kaddressbook_paste" );
1315 mActionSelectAll = new KAction( i18n( "Select &All" ), CTRL + Key_A, this, 1315 mActionSelectAll = new KAction( i18n( "Select &All" ), CTRL + Key_A, this,
1316 SLOT( selectAllContacts() ), actionCollection(), 1316 SLOT( selectAllContacts() ), actionCollection(),
1317 "kaddressbook_select_all" ); 1317 "kaddressbook_select_all" );
1318 mActionUndo = new KAction( i18n( "&Undo" ), "undo", CTRL + Key_Z, this, 1318 mActionUndo = new KAction( i18n( "&Undo" ), "undo", CTRL + Key_Z, this,
1319 SLOT( undo() ), actionCollection(), 1319 SLOT( undo() ), actionCollection(),
1320 "kaddressbook_undo" ); 1320 "kaddressbook_undo" );
1321 mActionRedo = new KAction( i18n( "Re&do" ), "redo", CTRL + SHIFT + Key_Z, 1321 mActionRedo = new KAction( i18n( "Re&do" ), "redo", CTRL + SHIFT + Key_Z,
1322 this, SLOT( redo() ), actionCollection(), 1322 this, SLOT( redo() ), actionCollection(),
1323 "kaddressbook_redo" ); 1323 "kaddressbook_redo" );
1324 } else { 1324 } else {
1325 mActionCopy = KStdAction::copy( this, SLOT( copyContacts() ), actionCollection() ); 1325 mActionCopy = KStdAction::copy( this, SLOT( copyContacts() ), actionCollection() );
1326 mActionCut = KStdAction::cut( this, SLOT( cutContacts() ), actionCollection() ); 1326 mActionCut = KStdAction::cut( this, SLOT( cutContacts() ), actionCollection() );
1327 mActionPaste = KStdAction::paste( this, SLOT( pasteContacts() ), actionCollection() ); 1327 mActionPaste = KStdAction::paste( this, SLOT( pasteContacts() ), actionCollection() );
1328 mActionSelectAll = KStdAction::selectAll( this, SLOT( selectAllContacts() ), actionCollection() ); 1328 mActionSelectAll = KStdAction::selectAll( this, SLOT( selectAllContacts() ), actionCollection() );
1329 mActionUndo = KStdAction::undo( this, SLOT( undo() ), actionCollection() ); 1329 mActionUndo = KStdAction::undo( this, SLOT( undo() ), actionCollection() );
1330 mActionRedo = KStdAction::redo( this, SLOT( redo() ), actionCollection() ); 1330 mActionRedo = KStdAction::redo( this, SLOT( redo() ), actionCollection() );
1331 } 1331 }
1332 1332
1333 mActionDelete = new KAction( i18n( "&Delete Contact" ), "editdelete", 1333 mActionDelete = new KAction( i18n( "&Delete Contact" ), "editdelete",
1334 Key_Delete, this, SLOT( deleteContacts() ), 1334 Key_Delete, this, SLOT( deleteContacts() ),
1335 actionCollection(), "edit_delete" ); 1335 actionCollection(), "edit_delete" );
1336 1336
1337 mActionUndo->setEnabled( false ); 1337 mActionUndo->setEnabled( false );
1338 mActionRedo->setEnabled( false ); 1338 mActionRedo->setEnabled( false );
1339 1339
1340 // settings menu 1340 // settings menu
1341#ifdef KAB_EMBEDDED 1341#ifdef KAB_EMBEDDED
1342//US special menuentry to configure the addressbook resources. On KDE 1342//US special menuentry to configure the addressbook resources. On KDE
1343// you do that through the control center !!! 1343// you do that through the control center !!!
1344 mActionConfigResources = new KAction( i18n( "Configure &Resources..." ), "configure_resources", 0, this, 1344 mActionConfigResources = new KAction( i18n( "Configure &Resources..." ), "configure_resources", 0, this,
1345 SLOT( configureResources() ), actionCollection(), 1345 SLOT( configureResources() ), actionCollection(),
1346 "kaddressbook_configure_resources" ); 1346 "kaddressbook_configure_resources" );
1347#endif //KAB_EMBEDDED 1347#endif //KAB_EMBEDDED
1348 1348
1349 if ( mIsPart ) { 1349 if ( mIsPart ) {
1350 mActionConfigKAddressbook = new KAction( i18n( "&Configure KAddressBook..." ), "configure", 0, this, 1350 mActionConfigKAddressbook = new KAction( i18n( "&Configure KAddressBook..." ), "configure", 0, this,
1351 SLOT( openConfigDialog() ), actionCollection(), 1351 SLOT( openConfigDialog() ), actionCollection(),
1352 "kaddressbook_configure" ); 1352 "kaddressbook_configure" );
1353 1353
1354 mActionConfigShortcuts = new KAction( i18n( "Configure S&hortcuts..." ), "configure_shortcuts", 0, 1354 mActionConfigShortcuts = new KAction( i18n( "Configure S&hortcuts..." ), "configure_shortcuts", 0,
1355 this, SLOT( configureKeyBindings() ), actionCollection(), 1355 this, SLOT( configureKeyBindings() ), actionCollection(),
1356 "kaddressbook_configure_shortcuts" ); 1356 "kaddressbook_configure_shortcuts" );
1357#ifdef KAB_EMBEDDED 1357#ifdef KAB_EMBEDDED
1358 mActionConfigureToolbars = KStdAction::configureToolbars( this, SLOT( mMainWindow->configureToolbars() ), actionCollection() ); 1358 mActionConfigureToolbars = KStdAction::configureToolbars( this, SLOT( mMainWindow->configureToolbars() ), actionCollection() );
1359 mActionConfigureToolbars->setEnabled( false ); 1359 mActionConfigureToolbars->setEnabled( false );
1360#endif //KAB_EMBEDDED 1360#endif //KAB_EMBEDDED
1361 1361
1362 } else { 1362 } else {
1363 mActionConfigKAddressbook = KStdAction::preferences( this, SLOT( openConfigDialog() ), actionCollection() ); 1363 mActionConfigKAddressbook = KStdAction::preferences( this, SLOT( openConfigDialog() ), actionCollection() );
1364 1364
1365 mActionKeyBindings = KStdAction::keyBindings( this, SLOT( configureKeyBindings() ), actionCollection() ); 1365 mActionKeyBindings = KStdAction::keyBindings( this, SLOT( configureKeyBindings() ), actionCollection() );
1366 } 1366 }
1367 1367
1368 mActionJumpBar = new KToggleAction( i18n( "Show Jump Bar" ), 0, 0, 1368 mActionJumpBar = new KToggleAction( i18n( "Show Jump Bar" ), 0, 0,
1369 actionCollection(), "options_show_jump_bar" ); 1369 actionCollection(), "options_show_jump_bar" );
1370 connect( mActionJumpBar, SIGNAL( toggled( bool ) ), SLOT( setJumpButtonBarVisible( bool ) ) ); 1370 connect( mActionJumpBar, SIGNAL( toggled( bool ) ), SLOT( setJumpButtonBarVisible( bool ) ) );
1371 1371
1372 mActionDetails = new KToggleAction( i18n( "Show Details" ), 0, 0, 1372 mActionDetails = new KToggleAction( i18n( "Show Details" ), 0, 0,
1373 actionCollection(), "options_show_details" ); 1373 actionCollection(), "options_show_details" );
1374 connect( mActionDetails, SIGNAL( toggled( bool ) ), SLOT( setDetailsVisible( bool ) ) ); 1374 connect( mActionDetails, SIGNAL( toggled( bool ) ), SLOT( setDetailsVisible( bool ) ) );
1375 1375
1376 // misc 1376 // misc
1377 // only enable LDAP lookup if we can handle the protocol 1377 // only enable LDAP lookup if we can handle the protocol
1378#ifndef KAB_EMBEDDED 1378#ifndef KAB_EMBEDDED
1379 if ( KProtocolInfo::isKnownProtocol( KURL( "ldap://localhost" ) ) ) { 1379 if ( KProtocolInfo::isKnownProtocol( KURL( "ldap://localhost" ) ) ) {
1380 new KAction( i18n( "&Lookup Addresses in Directory" ), "find", 0, 1380 new KAction( i18n( "&Lookup Addresses in Directory" ), "find", 0,
1381 this, SLOT( openLDAPDialog() ), actionCollection(), 1381 this, SLOT( openLDAPDialog() ), actionCollection(),
1382 "ldap_lookup" ); 1382 "ldap_lookup" );
1383 } 1383 }
1384#else //KAB_EMBEDDED 1384#else //KAB_EMBEDDED
1385 //qDebug("KABCore::initActions() LDAP has to be implemented"); 1385 //qDebug("KABCore::initActions() LDAP has to be implemented");
1386#endif //KAB_EMBEDDED 1386#endif //KAB_EMBEDDED
1387 1387
1388 1388
1389 mActionWhoAmI = new KAction( i18n( "Set Who Am I" ), "personal", 0, this, 1389 mActionWhoAmI = new KAction( i18n( "Set Who Am I" ), "personal", 0, this,
1390 SLOT( setWhoAmI() ), actionCollection(), 1390 SLOT( setWhoAmI() ), actionCollection(),
1391 "set_personal" ); 1391 "set_personal" );
1392 1392
1393 mActionCategories = new KAction( i18n( "Set Categories" ), 0, this, 1393 mActionCategories = new KAction( i18n( "Set Categories" ), 0, this,
1394 SLOT( setCategories() ), actionCollection(), 1394 SLOT( setCategories() ), actionCollection(),
1395 "edit_set_categories" ); 1395 "edit_set_categories" );
1396 1396
1397#ifdef KAB_EMBEDDED 1397#ifdef KAB_EMBEDDED
1398 1398
1399 mActionAboutKAddressbook = new KAction( i18n( "&About KAddressBook" ), "kaddressbook2", 0, 1399 mActionAboutKAddressbook = new KAction( i18n( "&About KAddressBook" ), "kaddressbook2", 0,
1400 this, SLOT( createAboutData() ), actionCollection(), 1400 this, SLOT( createAboutData() ), actionCollection(),
1401 "kaddressbook_about_data" ); 1401 "kaddressbook_about_data" );
1402#endif //KAB_EMBEDDED 1402#endif //KAB_EMBEDDED
1403 1403
1404 clipboardDataChanged(); 1404 clipboardDataChanged();
1405 connect( UndoStack::instance(), SIGNAL( changed() ), SLOT( updateActionMenu() ) ); 1405 connect( UndoStack::instance(), SIGNAL( changed() ), SLOT( updateActionMenu() ) );
1406 connect( RedoStack::instance(), SIGNAL( changed() ), SLOT( updateActionMenu() ) ); 1406 connect( RedoStack::instance(), SIGNAL( changed() ), SLOT( updateActionMenu() ) );
1407} 1407}
1408 1408
1409//US we need this function, to plug all actions into the correct menues. 1409//US we need this function, to plug all actions into the correct menues.
1410// KDE uses a XML format to plug the actions, but we work her without this overhead. 1410// KDE uses a XML format to plug the actions, but we work her without this overhead.
1411void KABCore::addActionsManually() 1411void KABCore::addActionsManually()
1412{ 1412{
1413//US qDebug("KABCore::initActions(): mIsPart %i", mIsPart); 1413//US qDebug("KABCore::initActions(): mIsPart %i", mIsPart);
1414 1414
1415#ifdef KAB_EMBEDDED 1415#ifdef KAB_EMBEDDED
1416 QPopupMenu *fileMenu = new QPopupMenu( this ); 1416 QPopupMenu *fileMenu = new QPopupMenu( this );
1417 QPopupMenu *editMenu = new QPopupMenu( this ); 1417 QPopupMenu *editMenu = new QPopupMenu( this );
1418 QPopupMenu *helpMenu = new QPopupMenu( this ); 1418 QPopupMenu *helpMenu = new QPopupMenu( this );
1419 1419
1420 KToolBar* tb = mMainWindow->toolBar(); 1420 KToolBar* tb = mMainWindow->toolBar();
1421 1421
1422#ifdef DESKTOP_VERSION 1422#ifdef DESKTOP_VERSION
1423 QMenuBar* mb = mMainWindow->menuBar(); 1423 QMenuBar* mb = mMainWindow->menuBar();
1424 1424
1425 //US setup menubar. 1425 //US setup menubar.
1426 //Disable the following block if you do not want to have a menubar. 1426 //Disable the following block if you do not want to have a menubar.
1427 mb->insertItem( "&File", fileMenu ); 1427 mb->insertItem( "&File", fileMenu );
1428 mb->insertItem( "&Edit", editMenu ); 1428 mb->insertItem( "&Edit", editMenu );
1429 mb->insertItem( "&View", viewMenu ); 1429 mb->insertItem( "&View", viewMenu );
1430 mb->insertItem( "&Settings", settingsMenu ); 1430 mb->insertItem( "&Settings", settingsMenu );
1431 mb->insertItem( "&Help", helpMenu ); 1431 mb->insertItem( "&Help", helpMenu );
1432 mIncSearchWidget = new IncSearchWidget( tb ); 1432 mIncSearchWidget = new IncSearchWidget( tb );
1433 // tb->insertWidget(-1, 0, mIncSearchWidget); 1433 // tb->insertWidget(-1, 0, mIncSearchWidget);
1434 1434
1435#else 1435#else
1436 //US setup toolbar 1436 //US setup toolbar
1437 QMenuBar *menuBarTB = new QMenuBar( tb ); 1437 QMenuBar *menuBarTB = new QMenuBar( tb );
1438 QPopupMenu *popupBarTB = new QPopupMenu( this ); 1438 QPopupMenu *popupBarTB = new QPopupMenu( this );
1439 menuBarTB->insertItem( "ME", popupBarTB); 1439 menuBarTB->insertItem( "ME", popupBarTB);
1440 tb->insertWidget(-1, 0, menuBarTB); 1440 tb->insertWidget(-1, 0, menuBarTB);
1441 mIncSearchWidget = new IncSearchWidget( tb ); 1441 mIncSearchWidget = new IncSearchWidget( tb );
1442 1442
1443 tb->enableMoving(false); 1443 tb->enableMoving(false);
1444 popupBarTB->insertItem( "&File", fileMenu ); 1444 popupBarTB->insertItem( "&File", fileMenu );
1445 popupBarTB->insertItem( "&Edit", editMenu ); 1445 popupBarTB->insertItem( "&Edit", editMenu );
1446 popupBarTB->insertItem( "&View", viewMenu ); 1446 popupBarTB->insertItem( "&View", viewMenu );
1447 popupBarTB->insertItem( "&Settings", settingsMenu ); 1447 popupBarTB->insertItem( "&Settings", settingsMenu );
1448 mViewManager->getFilterAction()->plug ( popupBarTB); 1448 mViewManager->getFilterAction()->plug ( popupBarTB);
1449 popupBarTB->insertItem( "&Help", helpMenu ); 1449 popupBarTB->insertItem( "&Help", helpMenu );
1450 if (QApplication::desktop()->width() > 320 ) { 1450 if (QApplication::desktop()->width() > 320 ) {
1451 // mViewManager->getFilterAction()->plug ( tb); 1451 // mViewManager->getFilterAction()->plug ( tb);
1452 } 1452 }
1453#endif 1453#endif
1454 // mActionQuit->plug ( mMainWindow->toolBar()); 1454 // mActionQuit->plug ( mMainWindow->toolBar());
1455 1455
1456 1456
1457 1457
1458 //US Now connect the actions with the menue entries. 1458 //US Now connect the actions with the menue entries.
1459 mActionPrint->plug( fileMenu ); 1459 mActionPrint->plug( fileMenu );
1460 mActionMail->plug( fileMenu ); 1460 mActionMail->plug( fileMenu );
1461 fileMenu->insertSeparator(); 1461 fileMenu->insertSeparator();
1462 1462
1463 mActionNewContact->plug( fileMenu ); 1463 mActionNewContact->plug( fileMenu );
1464 mActionNewContact->plug( tb ); 1464 mActionNewContact->plug( tb );
1465 1465
1466 mActionEditAddressee->plug( fileMenu ); 1466 mActionEditAddressee->plug( fileMenu );
1467 fileMenu->insertSeparator(); 1467 fileMenu->insertSeparator();
1468 mActionSave->plug( fileMenu ); 1468 mActionSave->plug( fileMenu );
1469 fileMenu->insertItem( "&Import", ImportMenu ); 1469 fileMenu->insertItem( "&Import", ImportMenu );
1470 fileMenu->insertItem( "&Emport", ExportMenu ); 1470 fileMenu->insertItem( "&Emport", ExportMenu );
1471 fileMenu->insertSeparator(); 1471 fileMenu->insertSeparator();
1472 mActionMailVCard->plug( fileMenu ); 1472 mActionMailVCard->plug( fileMenu );
1473 fileMenu->insertSeparator(); 1473 fileMenu->insertSeparator();
1474 mActionQuit->plug( fileMenu ); 1474 mActionQuit->plug( fileMenu );
1475 1475
1476 1476
1477 // edit menu 1477 // edit menu
1478 mActionUndo->plug( editMenu ); 1478 mActionUndo->plug( editMenu );
1479 mActionRedo->plug( editMenu ); 1479 mActionRedo->plug( editMenu );
1480 editMenu->insertSeparator(); 1480 editMenu->insertSeparator();
1481 mActionCut->plug( editMenu ); 1481 mActionCut->plug( editMenu );
1482 mActionCopy->plug( editMenu ); 1482 mActionCopy->plug( editMenu );
1483 mActionPaste->plug( editMenu ); 1483 mActionPaste->plug( editMenu );
1484 mActionDelete->plug( editMenu ); 1484 mActionDelete->plug( editMenu );
1485 editMenu->insertSeparator(); 1485 editMenu->insertSeparator();
1486 mActionSelectAll->plug( editMenu ); 1486 mActionSelectAll->plug( editMenu );
1487 1487
1488 1488
1489 // settings menu 1489 // settings menu
1490//US special menuentry to configure the addressbook resources. On KDE 1490//US special menuentry to configure the addressbook resources. On KDE
1491// you do that through the control center !!! 1491// you do that through the control center !!!
1492 mActionConfigResources->plug( settingsMenu ); 1492 mActionConfigResources->plug( settingsMenu );
1493 settingsMenu->insertSeparator(); 1493 settingsMenu->insertSeparator();
1494 1494
1495 mActionConfigKAddressbook->plug( settingsMenu ); 1495 mActionConfigKAddressbook->plug( settingsMenu );
1496 1496
1497 if ( mIsPart ) { 1497 if ( mIsPart ) {
1498 mActionConfigShortcuts->plug( settingsMenu ); 1498 mActionConfigShortcuts->plug( settingsMenu );
1499 mActionConfigureToolbars->plug( settingsMenu ); 1499 mActionConfigureToolbars->plug( settingsMenu );
1500 1500
1501 } else { 1501 } else {
1502 mActionKeyBindings->plug( settingsMenu ); 1502 mActionKeyBindings->plug( settingsMenu );
1503 } 1503 }
1504 1504
1505 settingsMenu->insertSeparator(); 1505 settingsMenu->insertSeparator();
1506 1506
1507 mActionJumpBar->plug( settingsMenu ); 1507 mActionJumpBar->plug( settingsMenu );
1508 mActionDetails->plug( settingsMenu ); 1508 mActionDetails->plug( settingsMenu );
1509 settingsMenu->insertSeparator(); 1509 settingsMenu->insertSeparator();
1510 1510
1511 mActionWhoAmI->plug( settingsMenu ); 1511 mActionWhoAmI->plug( settingsMenu );
1512 mActionCategories->plug( settingsMenu ); 1512 mActionCategories->plug( settingsMenu );
1513 1513
1514 mActionAboutKAddressbook->plug( helpMenu ); 1514 mActionAboutKAddressbook->plug( helpMenu );
1515 1515
1516 1516
1517 if (QApplication::desktop()->width() > 320 ) { 1517 if (QApplication::desktop()->width() > 320 ) {
1518 1518
1519 mActionEditAddressee->plug( tb ); 1519 mActionEditAddressee->plug( tb );
1520 mActionSave->plug( tb ); 1520 mActionSave->plug( tb );
1521 mViewManager->getFilterAction()->plug ( tb); 1521 mViewManager->getFilterAction()->plug ( tb);
1522 if (QApplication::desktop()->width() > 480 ) { 1522 if (QApplication::desktop()->width() > 480 ) {
1523 mActionUndo->plug( tb ); 1523 mActionUndo->plug( tb );
1524 mActionDelete->plug( tb ); 1524 mActionDelete->plug( tb );
1525 mActionRedo->plug( tb ); 1525 mActionRedo->plug( tb );
1526 } 1526 }
1527 } 1527 }
1528 //mActionQuit->plug ( tb ); 1528 //mActionQuit->plug ( tb );
1529 // tb->insertWidget(-1, 0, mIncSearchWidget, 6); 1529 // tb->insertWidget(-1, 0, mIncSearchWidget, 6);
1530 1530
1531 //US link the searchwidget first to this. 1531 //US link the searchwidget first to this.
1532 // The real linkage to the toolbar happens later. 1532 // The real linkage to the toolbar happens later.
1533//US mIncSearchWidget->reparent(tb, 0, QPoint(50,0), TRUE); 1533//US mIncSearchWidget->reparent(tb, 0, QPoint(50,0), TRUE);
1534//US tb->insertItem( mIncSearchWidget ); 1534//US tb->insertItem( mIncSearchWidget );
1535/*US 1535/*US
1536 mIncSearchWidget = new IncSearchWidget( tb ); 1536 mIncSearchWidget = new IncSearchWidget( tb );
1537 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ), 1537 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ),
1538 SLOT( incrementalSearch( const QString& ) ) ); 1538 SLOT( incrementalSearch( const QString& ) ) );
1539 1539
1540 mJumpButtonBar = new JumpButtonBar( this, this ); 1540 mJumpButtonBar = new JumpButtonBar( this, this );
1541 1541
1542//US topLayout->addWidget( mJumpButtonBar ); 1542//US topLayout->addWidget( mJumpButtonBar );
1543 this->layout()->add( mJumpButtonBar ); 1543 this->layout()->add( mJumpButtonBar );
1544*/ 1544*/
1545 1545
1546#endif //KAB_EMBEDDED 1546#endif //KAB_EMBEDDED
1547} 1547}
1548 1548
1549 1549
1550 1550
1551void KABCore::clipboardDataChanged() 1551void KABCore::clipboardDataChanged()
1552{ 1552{
1553 1553
1554 if ( mReadWrite ) 1554 if ( mReadWrite )
1555 mActionPaste->setEnabled( !QApplication::clipboard()->text().isEmpty() ); 1555 mActionPaste->setEnabled( !QApplication::clipboard()->text().isEmpty() );
1556 1556
1557} 1557}
1558 1558
1559void KABCore::updateActionMenu() 1559void KABCore::updateActionMenu()
1560{ 1560{
1561 UndoStack *undo = UndoStack::instance(); 1561 UndoStack *undo = UndoStack::instance();
1562 RedoStack *redo = RedoStack::instance(); 1562 RedoStack *redo = RedoStack::instance();
1563 1563
1564 if ( undo->isEmpty() ) 1564 if ( undo->isEmpty() )
1565 mActionUndo->setText( i18n( "Undo" ) ); 1565 mActionUndo->setText( i18n( "Undo" ) );
1566 else 1566 else
1567 mActionUndo->setText( i18n( "Undo %1" ).arg( undo->top()->name() ) ); 1567 mActionUndo->setText( i18n( "Undo %1" ).arg( undo->top()->name() ) );
1568 1568
1569 mActionUndo->setEnabled( !undo->isEmpty() ); 1569 mActionUndo->setEnabled( !undo->isEmpty() );
1570 1570
1571 if ( !redo->top() ) 1571 if ( !redo->top() )
1572 mActionRedo->setText( i18n( "Redo" ) ); 1572 mActionRedo->setText( i18n( "Redo" ) );
1573 else 1573 else
1574 mActionRedo->setText( i18n( "Redo %1" ).arg( redo->top()->name() ) ); 1574 mActionRedo->setText( i18n( "Redo %1" ).arg( redo->top()->name() ) );
1575 1575
1576 mActionRedo->setEnabled( !redo->isEmpty() ); 1576 mActionRedo->setEnabled( !redo->isEmpty() );
1577} 1577}
1578 1578
1579void KABCore::configureKeyBindings() 1579void KABCore::configureKeyBindings()
1580{ 1580{
1581#ifndef KAB_EMBEDDED 1581#ifndef KAB_EMBEDDED
1582 KKeyDialog::configure( actionCollection(), true ); 1582 KKeyDialog::configure( actionCollection(), true );
1583#else //KAB_EMBEDDED 1583#else //KAB_EMBEDDED
1584 qDebug("KABCore::configureKeyBindings() not implemented"); 1584 qDebug("KABCore::configureKeyBindings() not implemented");
1585#endif //KAB_EMBEDDED 1585#endif //KAB_EMBEDDED
1586} 1586}
1587 1587
1588#ifdef KAB_EMBEDDED 1588#ifdef KAB_EMBEDDED
1589void KABCore::configureResources() 1589void KABCore::configureResources()
1590{ 1590{
1591 KRES::KCMKResources dlg( this, "" , 0 ); 1591 KRES::KCMKResources dlg( this, "" , 0 );
1592 1592
1593 if ( !dlg.exec() ) 1593 if ( !dlg.exec() )
1594 return; 1594 return;
1595 KMessageBox::information( this, i18n("Please restart to get the \nchanged resources (re)loaded!\n") ); 1595 KMessageBox::information( this, i18n("Please restart to get the \nchanged resources (re)loaded!\n") );
1596} 1596}
1597#endif //KAB_EMBEDDED 1597#endif //KAB_EMBEDDED
1598 1598
1599 1599
1600 1600
1601#ifndef KAB_EMBEDDED 1601#ifndef KAB_EMBEDDED
1602#include "kabcore.moc" 1602#include "kabcore.moc"
1603#endif //KAB_EMBEDDED 1603#endif //KAB_EMBEDDED