summaryrefslogtreecommitdiffabout
path: root/kaddressbook
authorulf69 <ulf69>2004-08-17 00:09:26 (UTC)
committer ulf69 <ulf69>2004-08-17 00:09:26 (UTC)
commitab3b10a5018152dedbdb64d0d5a4bd8ec752ccdb (patch) (unidiff)
treea9f62469297dda2981807b5235e7812cac72f44c /kaddressbook
parent0e46d151bca931ff5c69a637d91cfcc381094e0b (diff)
downloadkdepimpi-ab3b10a5018152dedbdb64d0d5a4bd8ec752ccdb.zip
kdepimpi-ab3b10a5018152dedbdb64d0d5a4bd8ec752ccdb.tar.gz
kdepimpi-ab3b10a5018152dedbdb64d0d5a4bd8ec752ccdb.tar.bz2
QCop implementation for KOrganizer to access Ka/pi directly
Diffstat (limited to 'kaddressbook') (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/kabcore.cpp33
-rw-r--r--kaddressbook/kabcore.h3
-rw-r--r--kaddressbook/mainembedded.cpp19
3 files changed, 46 insertions, 9 deletions
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp
index 6807bed..e7c815e 100644
--- a/kaddressbook/kabcore.cpp
+++ b/kaddressbook/kabcore.cpp
@@ -6,128 +6,130 @@
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 "addresseedialog.h"
71
70#include <qapp.h> 72#include <qapp.h>
71#include <qmenubar.h> 73#include <qmenubar.h>
72//#include <qtoolbar.h> 74//#include <qtoolbar.h>
73#include <qmessagebox.h> 75#include <qmessagebox.h>
74#include <kdebug.h> 76#include <kdebug.h>
75#include <kiconloader.h> // needed for SmallIcon 77#include <kiconloader.h> // needed for SmallIcon
76#include <kresources/kcmkresources.h> 78#include <kresources/kcmkresources.h>
77#include <ktoolbar.h> 79#include <ktoolbar.h>
78 80
79 81
80//#include <qlabel.h> 82//#include <qlabel.h>
81 83
82 84
83#ifndef DESKTOP_VERSION 85#ifndef DESKTOP_VERSION
84#include <qpe/ir.h> 86#include <qpe/ir.h>
85#endif 87#endif
86 88
87#endif // KAB_EMBEDDED 89#endif // KAB_EMBEDDED
88#include "kcmconfigs/kcmkabconfig.h" 90#include "kcmconfigs/kcmkabconfig.h"
89#include "kcmconfigs/kcmkdepimconfig.h" 91#include "kcmconfigs/kcmkdepimconfig.h"
90#include "kpimglobalprefs.h" 92#include "kpimglobalprefs.h"
91#include "externalapphandler.h" 93#include "externalapphandler.h"
92 94
93 95
94#include <kresources/selectdialog.h> 96#include <kresources/selectdialog.h>
95#include <kmessagebox.h> 97#include <kmessagebox.h>
96 98
97#include <picture.h> 99#include <picture.h>
98#include <resource.h> 100#include <resource.h>
99 101
100//US#include <qsplitter.h> 102//US#include <qsplitter.h>
101#include <qmap.h> 103#include <qmap.h>
102#include <qdir.h> 104#include <qdir.h>
103#include <qfile.h> 105#include <qfile.h>
104#include <qvbox.h> 106#include <qvbox.h>
105#include <qlayout.h> 107#include <qlayout.h>
106#include <qclipboard.h> 108#include <qclipboard.h>
107#include <qtextstream.h> 109#include <qtextstream.h>
108 110
109#include <libkdepim/categoryselectdialog.h> 111#include <libkdepim/categoryselectdialog.h>
110#include <kabc/vcardconverter.h> 112#include <kabc/vcardconverter.h>
111 113
112 114
113#include "addresseeutil.h" 115#include "addresseeutil.h"
114#include "undocmds.h" 116#include "undocmds.h"
115#include "addresseeeditordialog.h" 117#include "addresseeeditordialog.h"
116#include "viewmanager.h" 118#include "viewmanager.h"
117#include "details/detailsviewcontainer.h" 119#include "details/detailsviewcontainer.h"
118#include "kabprefs.h" 120#include "kabprefs.h"
119#include "xxportmanager.h" 121#include "xxportmanager.h"
120#include "incsearchwidget.h" 122#include "incsearchwidget.h"
121#include "jumpbuttonbar.h" 123#include "jumpbuttonbar.h"
122#include "extensionmanager.h" 124#include "extensionmanager.h"
123#include "addresseeconfig.h" 125#include "addresseeconfig.h"
124#include <kcmultidialog.h> 126#include <kcmultidialog.h>
125 127
126#ifdef _WIN32_ 128#ifdef _WIN32_
127 129
128#include "kaimportoldialog.h" 130#include "kaimportoldialog.h"
129#endif 131#endif
130 132
131bool pasteWithNewUid = true; 133bool pasteWithNewUid = true;
132 134
133#ifdef KAB_EMBEDDED 135#ifdef KAB_EMBEDDED
@@ -150,135 +152,140 @@ KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const
150 KABC::StdAddressBook::setAutomaticSave( false ); 152 KABC::StdAddressBook::setAutomaticSave( false );
151 153
152#ifndef KAB_EMBEDDED 154#ifndef KAB_EMBEDDED
153 mAddressBook->setErrorHandler( new KABC::GUIErrorHandler ); 155 mAddressBook->setErrorHandler( new KABC::GUIErrorHandler );
154#endif //KAB_EMBEDDED 156#endif //KAB_EMBEDDED
155 157
156 connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook * ) ), 158 connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook * ) ),
157 SLOT( addressBookChanged() ) ); 159 SLOT( addressBookChanged() ) );
158 160
159 mAddressBook->addCustomField( i18n( "Department" ), KABC::Field::Organization, 161 mAddressBook->addCustomField( i18n( "Department" ), KABC::Field::Organization,
160 "X-Department", "KADDRESSBOOK" ); 162 "X-Department", "KADDRESSBOOK" );
161 mAddressBook->addCustomField( i18n( "Profession" ), KABC::Field::Organization, 163 mAddressBook->addCustomField( i18n( "Profession" ), KABC::Field::Organization,
162 "X-Profession", "KADDRESSBOOK" ); 164 "X-Profession", "KADDRESSBOOK" );
163 mAddressBook->addCustomField( i18n( "Assistant's Name" ), KABC::Field::Organization, 165 mAddressBook->addCustomField( i18n( "Assistant's Name" ), KABC::Field::Organization,
164 "X-AssistantsName", "KADDRESSBOOK" ); 166 "X-AssistantsName", "KADDRESSBOOK" );
165 mAddressBook->addCustomField( i18n( "Manager's Name" ), KABC::Field::Organization, 167 mAddressBook->addCustomField( i18n( "Manager's Name" ), KABC::Field::Organization,
166 "X-ManagersName", "KADDRESSBOOK" ); 168 "X-ManagersName", "KADDRESSBOOK" );
167 mAddressBook->addCustomField( i18n( "Spouse's Name" ), KABC::Field::Personal, 169 mAddressBook->addCustomField( i18n( "Spouse's Name" ), KABC::Field::Personal,
168 "X-SpousesName", "KADDRESSBOOK" ); 170 "X-SpousesName", "KADDRESSBOOK" );
169 mAddressBook->addCustomField( i18n( "Office" ), KABC::Field::Personal, 171 mAddressBook->addCustomField( i18n( "Office" ), KABC::Field::Personal,
170 "X-Office", "KADDRESSBOOK" ); 172 "X-Office", "KADDRESSBOOK" );
171 mAddressBook->addCustomField( i18n( "IM Address" ), KABC::Field::Personal, 173 mAddressBook->addCustomField( i18n( "IM Address" ), KABC::Field::Personal,
172 "X-IMAddress", "KADDRESSBOOK" ); 174 "X-IMAddress", "KADDRESSBOOK" );
173 mAddressBook->addCustomField( i18n( "Anniversary" ), KABC::Field::Personal, 175 mAddressBook->addCustomField( i18n( "Anniversary" ), KABC::Field::Personal,
174 "X-Anniversary", "KADDRESSBOOK" ); 176 "X-Anniversary", "KADDRESSBOOK" );
175 177
176 //US added this field to become compatible with Opie/qtopia addressbook 178 //US added this field to become compatible with Opie/qtopia addressbook
177 // values can be "female" or "male" or "". An empty field represents undefined. 179 // values can be "female" or "male" or "". An empty field represents undefined.
178 mAddressBook->addCustomField( i18n( "Gender" ), KABC::Field::Personal, 180 mAddressBook->addCustomField( i18n( "Gender" ), KABC::Field::Personal,
179 "X-Gender", "KADDRESSBOOK" ); 181 "X-Gender", "KADDRESSBOOK" );
180 mAddressBook->addCustomField( i18n( "Children" ), KABC::Field::Personal, 182 mAddressBook->addCustomField( i18n( "Children" ), KABC::Field::Personal,
181 "X-Children", "KADDRESSBOOK" ); 183 "X-Children", "KADDRESSBOOK" );
182 mAddressBook->addCustomField( i18n( "FreeBusyUrl" ), KABC::Field::Personal, 184 mAddressBook->addCustomField( i18n( "FreeBusyUrl" ), KABC::Field::Personal,
183 "X-FreeBusyUrl", "KADDRESSBOOK" ); 185 "X-FreeBusyUrl", "KADDRESSBOOK" );
184 186
185 initGUI(); 187 initGUI();
186 188
187 mIncSearchWidget->setFocus(); 189 mIncSearchWidget->setFocus();
188 190
189 191
190 connect( mViewManager, SIGNAL( selected( const QString& ) ), 192 connect( mViewManager, SIGNAL( selected( const QString& ) ),
191 SLOT( setContactSelected( const QString& ) ) ); 193 SLOT( setContactSelected( const QString& ) ) );
192 connect( mViewManager, SIGNAL( executed( const QString& ) ), 194 connect( mViewManager, SIGNAL( executed( const QString& ) ),
193 SLOT( executeContact( const QString& ) ) ); 195 SLOT( executeContact( const QString& ) ) );
194 196
195 connect( mViewManager, SIGNAL( deleteRequest( ) ), 197 connect( mViewManager, SIGNAL( deleteRequest( ) ),
196 SLOT( deleteContacts( ) ) ); 198 SLOT( deleteContacts( ) ) );
197 connect( mViewManager, SIGNAL( modified() ), 199 connect( mViewManager, SIGNAL( modified() ),
198 SLOT( setModified() ) ); 200 SLOT( setModified() ) );
199 201
200 connect( mExtensionManager, SIGNAL( modified( const KABC::Addressee::List& ) ), this, SLOT( extensionModified( const KABC::Addressee::List& ) ) ); 202 connect( mExtensionManager, SIGNAL( modified( const KABC::Addressee::List& ) ), this, SLOT( extensionModified( const KABC::Addressee::List& ) ) );
201 connect( mExtensionManager, SIGNAL( changedActiveExtension( int ) ), this, SLOT( extensionChanged( int ) ) ); 203 connect( mExtensionManager, SIGNAL( changedActiveExtension( int ) ), this, SLOT( extensionChanged( int ) ) );
202 204
203 connect( mXXPortManager, SIGNAL( modified() ), 205 connect( mXXPortManager, SIGNAL( modified() ),
204 SLOT( setModified() ) ); 206 SLOT( setModified() ) );
205 207
206 connect( mJumpButtonBar, SIGNAL( jumpToLetter( const QString& ) ), 208 connect( mJumpButtonBar, SIGNAL( jumpToLetter( const QString& ) ),
207 SLOT( incrementalSearch( const QString& ) ) ); 209 SLOT( incrementalSearch( const QString& ) ) );
208 connect( mIncSearchWidget, SIGNAL( fieldChanged() ), 210 connect( mIncSearchWidget, SIGNAL( fieldChanged() ),
209 mJumpButtonBar, SLOT( recreateButtons() ) ); 211 mJumpButtonBar, SLOT( recreateButtons() ) );
210 212
211 connect( mDetails, SIGNAL( sendEmail( const QString& ) ), 213 connect( mDetails, SIGNAL( sendEmail( const QString& ) ),
212 SLOT( sendMail( const QString& ) ) ); 214 SLOT( sendMail( const QString& ) ) );
213 215
216
217 connect( ExternalAppHandler::instance(), SIGNAL (requestForNameEmailUidList(const QString&, const QString&, const QString&)),this, SLOT(requestForNameEmailUidList(const QString&, const QString&, const QString&)));
218
219
214#ifndef KAB_EMBEDDED 220#ifndef KAB_EMBEDDED
215 connect( mViewManager, SIGNAL( urlDropped( const KURL& ) ), 221 connect( mViewManager, SIGNAL( urlDropped( const KURL& ) ),
216 mXXPortManager, SLOT( importVCard( const KURL& ) ) ); 222 mXXPortManager, SLOT( importVCard( const KURL& ) ) );
217 223
218 connect( mDetails, SIGNAL( browse( const QString& ) ), 224 connect( mDetails, SIGNAL( browse( const QString& ) ),
219 SLOT( browse( const QString& ) ) ); 225 SLOT( browse( const QString& ) ) );
220 226
227
221 mAddressBookService = new KAddressBookService( this ); 228 mAddressBookService = new KAddressBookService( this );
222 229
223#endif //KAB_EMBEDDED 230#endif //KAB_EMBEDDED
224 mEditorDialog = 0; 231 mEditorDialog = 0;
225 createAddresseeEditorDialog( this ); 232 createAddresseeEditorDialog( this );
226 setModified( false ); 233 setModified( false );
227} 234}
228 235
229KABCore::~KABCore() 236KABCore::~KABCore()
230{ 237{
231 // save(); 238 // save();
232 //saveSettings(); 239 //saveSettings();
233 //KABPrefs::instance()->writeConfig(); 240 //KABPrefs::instance()->writeConfig();
234 delete AddresseeConfig::instance(); 241 delete AddresseeConfig::instance();
235 mAddressBook = 0; 242 mAddressBook = 0;
236 KABC::StdAddressBook::close(); 243 KABC::StdAddressBook::close();
237} 244}
238 245
239void KABCore::restoreSettings() 246void KABCore::restoreSettings()
240{ 247{
241 mMultipleViewsAtOnce = KABPrefs::instance()->mMultipleViewsAtOnce; 248 mMultipleViewsAtOnce = KABPrefs::instance()->mMultipleViewsAtOnce;
242 249
243 bool state; 250 bool state;
244 251
245 if (mMultipleViewsAtOnce) 252 if (mMultipleViewsAtOnce)
246 state = KABPrefs::instance()->mDetailsPageVisible; 253 state = KABPrefs::instance()->mDetailsPageVisible;
247 else 254 else
248 state = false; 255 state = false;
249 256
250 mActionDetails->setChecked( state ); 257 mActionDetails->setChecked( state );
251 setDetailsVisible( state ); 258 setDetailsVisible( state );
252 259
253 state = KABPrefs::instance()->mJumpButtonBarVisible; 260 state = KABPrefs::instance()->mJumpButtonBarVisible;
254 261
255 mActionJumpBar->setChecked( state ); 262 mActionJumpBar->setChecked( state );
256 setJumpButtonBarVisible( state ); 263 setJumpButtonBarVisible( state );
257/*US 264/*US
258 QValueList<int> splitterSize = KABPrefs::instance()->mDetailsSplitter; 265 QValueList<int> splitterSize = KABPrefs::instance()->mDetailsSplitter;
259 if ( splitterSize.count() == 0 ) { 266 if ( splitterSize.count() == 0 ) {
260 splitterSize.append( width() / 2 ); 267 splitterSize.append( width() / 2 );
261 splitterSize.append( width() / 2 ); 268 splitterSize.append( width() / 2 );
262 } 269 }
263 mMiniSplitter->setSizes( splitterSize ); 270 mMiniSplitter->setSizes( splitterSize );
264 if ( mExtensionBarSplitter ) { 271 if ( mExtensionBarSplitter ) {
265 splitterSize = KABPrefs::instance()->mExtensionsSplitter; 272 splitterSize = KABPrefs::instance()->mExtensionsSplitter;
266 if ( splitterSize.count() == 0 ) { 273 if ( splitterSize.count() == 0 ) {
267 splitterSize.append( width() / 2 ); 274 splitterSize.append( width() / 2 );
268 splitterSize.append( width() / 2 ); 275 splitterSize.append( width() / 2 );
269 } 276 }
270 mExtensionBarSplitter->setSizes( splitterSize ); 277 mExtensionBarSplitter->setSizes( splitterSize );
271 278
272 } 279 }
273*/ 280*/
274 mViewManager->restoreSettings(); 281 mViewManager->restoreSettings();
275 mIncSearchWidget->setCurrentItem( KABPrefs::instance()->mCurrentIncSearchField ); 282 mIncSearchWidget->setCurrentItem( KABPrefs::instance()->mCurrentIncSearchField );
276 mExtensionManager->restoreSettings(); 283 mExtensionManager->restoreSettings();
277 284
278 QValueList<int> splitterSize = KABPrefs::instance()->mDetailsSplitter; 285 QValueList<int> splitterSize = KABPrefs::instance()->mDetailsSplitter;
279 if ( splitterSize.count() == 0 ) { 286 if ( splitterSize.count() == 0 ) {
280 splitterSize.append( width() / 2 ); 287 splitterSize.append( width() / 2 );
281 splitterSize.append( width() / 2 ); 288 splitterSize.append( width() / 2 );
282 } 289 }
283 mMiniSplitter->setSizes( splitterSize ); 290 mMiniSplitter->setSizes( splitterSize );
284 if ( mExtensionBarSplitter ) { 291 if ( mExtensionBarSplitter ) {
@@ -1904,68 +1911,94 @@ void KABCore::removeVoice()
1904 if ((*phoneIt).type() - PhoneNumber::Voice ) { 1911 if ((*phoneIt).type() - PhoneNumber::Voice ) {
1905 (*phoneIt).setType((*phoneIt).type() - PhoneNumber::Voice ); 1912 (*phoneIt).setType((*phoneIt).type() - PhoneNumber::Voice );
1906 (*it).insertPhoneNumber( (*phoneIt) ); 1913 (*it).insertPhoneNumber( (*phoneIt) );
1907 found = true; 1914 found = true;
1908 } 1915 }
1909 } 1916 }
1910 1917
1911 } 1918 }
1912 if ( found ) 1919 if ( found )
1913 contactModified((*it) ); 1920 contactModified((*it) );
1914 } 1921 }
1915} 1922}
1916 1923
1917 1924
1918 1925
1919void KABCore::clipboardDataChanged() 1926void KABCore::clipboardDataChanged()
1920{ 1927{
1921 1928
1922 if ( mReadWrite ) 1929 if ( mReadWrite )
1923 mActionPaste->setEnabled( !QApplication::clipboard()->text().isEmpty() ); 1930 mActionPaste->setEnabled( !QApplication::clipboard()->text().isEmpty() );
1924 1931
1925} 1932}
1926 1933
1927void KABCore::updateActionMenu() 1934void KABCore::updateActionMenu()
1928{ 1935{
1929 UndoStack *undo = UndoStack::instance(); 1936 UndoStack *undo = UndoStack::instance();
1930 RedoStack *redo = RedoStack::instance(); 1937 RedoStack *redo = RedoStack::instance();
1931 1938
1932 if ( undo->isEmpty() ) 1939 if ( undo->isEmpty() )
1933 mActionUndo->setText( i18n( "Undo" ) ); 1940 mActionUndo->setText( i18n( "Undo" ) );
1934 else 1941 else
1935 mActionUndo->setText( i18n( "Undo %1" ).arg( undo->top()->name() ) ); 1942 mActionUndo->setText( i18n( "Undo %1" ).arg( undo->top()->name() ) );
1936 1943
1937 mActionUndo->setEnabled( !undo->isEmpty() ); 1944 mActionUndo->setEnabled( !undo->isEmpty() );
1938 1945
1939 if ( !redo->top() ) 1946 if ( !redo->top() )
1940 mActionRedo->setText( i18n( "Redo" ) ); 1947 mActionRedo->setText( i18n( "Redo" ) );
1941 else 1948 else
1942 mActionRedo->setText( i18n( "Redo %1" ).arg( redo->top()->name() ) ); 1949 mActionRedo->setText( i18n( "Redo %1" ).arg( redo->top()->name() ) );
1943 1950
1944 mActionRedo->setEnabled( !redo->isEmpty() ); 1951 mActionRedo->setEnabled( !redo->isEmpty() );
1945} 1952}
1946 1953
1947void KABCore::configureKeyBindings() 1954void KABCore::configureKeyBindings()
1948{ 1955{
1949#ifndef KAB_EMBEDDED 1956#ifndef KAB_EMBEDDED
1950 KKeyDialog::configure( actionCollection(), true ); 1957 KKeyDialog::configure( actionCollection(), true );
1951#else //KAB_EMBEDDED 1958#else //KAB_EMBEDDED
1952 qDebug("KABCore::configureKeyBindings() not implemented"); 1959 qDebug("KABCore::configureKeyBindings() not implemented");
1953#endif //KAB_EMBEDDED 1960#endif //KAB_EMBEDDED
1954} 1961}
1955 1962
1956#ifdef KAB_EMBEDDED 1963#ifdef KAB_EMBEDDED
1957void KABCore::configureResources() 1964void KABCore::configureResources()
1958{ 1965{
1959 KRES::KCMKResources dlg( this, "" , 0 ); 1966 KRES::KCMKResources dlg( this, "" , 0 );
1960 1967
1961 if ( !dlg.exec() ) 1968 if ( !dlg.exec() )
1962 return; 1969 return;
1963 KMessageBox::information( this, i18n("Please restart to get the \nchanged resources (re)loaded!\n") ); 1970 KMessageBox::information( this, i18n("Please restart to get the \nchanged resources (re)loaded!\n") );
1964} 1971}
1965#endif //KAB_EMBEDDED 1972#endif //KAB_EMBEDDED
1966 1973
1967 1974
1975/* this method will be called through the QCop interface from Ko/Pi to select addresses
1976 * for the attendees list of an event.
1977 */
1978void KABCore::requestForNameEmailUidList(const QString& sourceChannel, const QString& uid, const QString& param1)
1979{
1980 //param1 is usually empty for this kind of request
1981
1982 QStringList nameList;
1983 QStringList emailList;
1984 QStringList uidList;
1985
1986 KABC::Addressee::List list = KABC::AddresseeDialog::getAddressees(this);
1987 uint i=0;
1988 for (i=0; i < list.count(); i++)
1989 {
1990 nameList.append(list[i].realName());
1991 emailList.append(list[i].preferredEmail());
1992 uidList.append(list[i].uid());
1993 }
1994
1995 bool res = ExternalAppHandler::instance()->returnNameEmailUidListFromKAPI(sourceChannel, uid, nameList, emailList, uidList);
1996
1997}
1998
1999
2000
1968 2001
1969#ifndef KAB_EMBEDDED 2002#ifndef KAB_EMBEDDED
1970#include "kabcore.moc" 2003#include "kabcore.moc"
1971#endif //KAB_EMBEDDED 2004#endif //KAB_EMBEDDED
diff --git a/kaddressbook/kabcore.h b/kaddressbook/kabcore.h
index d4d28f1..fe778af 100644
--- a/kaddressbook/kabcore.h
+++ b/kaddressbook/kabcore.h
@@ -267,128 +267,131 @@ class KABCore : public QWidget
267 void contactModified( const KABC::Addressee &addr ); 267 void contactModified( const KABC::Addressee &addr );
268 268
269 /** 269 /**
270 DCOP METHODS. 270 DCOP METHODS.
271 */ 271 */
272 void addEmail( QString addr ); 272 void addEmail( QString addr );
273 void importVCard( const KURL& url, bool showPreview ); 273 void importVCard( const KURL& url, bool showPreview );
274 void importVCard( const QString& vCard, bool showPreview ); 274 void importVCard( const QString& vCard, bool showPreview );
275 void newContact(); 275 void newContact();
276 QString getNameByPhone( const QString& phone ); 276 QString getNameByPhone( const QString& phone );
277 /** 277 /**
278 END DCOP METHODS 278 END DCOP METHODS
279 */ 279 */
280 280
281 /** 281 /**
282 Saves the contents of the AddressBook back to disk. 282 Saves the contents of the AddressBook back to disk.
283 */ 283 */
284 void save(); 284 void save();
285 285
286 /** 286 /**
287 Undos the last command using the undo stack. 287 Undos the last command using the undo stack.
288 */ 288 */
289 void undo(); 289 void undo();
290 290
291 /** 291 /**
292 Redos the last command that was undone, using the redo stack. 292 Redos the last command that was undone, using the redo stack.
293 */ 293 */
294 void redo(); 294 void redo();
295 295
296 /** 296 /**
297 Shows the edit dialog for the given uid. If the uid is QString::null, 297 Shows the edit dialog for the given uid. If the uid is QString::null,
298 the method will try to find a selected addressee in the view. 298 the method will try to find a selected addressee in the view.
299 */ 299 */
300 void editContact( const QString &uid /*US = QString::null*/ ); 300 void editContact( const QString &uid /*US = QString::null*/ );
301//US added a second method without defaultparameter 301//US added a second method without defaultparameter
302 void editContact2(); 302 void editContact2();
303 303
304 /** 304 /**
305 Shows or edits the detail view for the given uid. If the uid is QString::null, 305 Shows or edits the detail view for the given uid. If the uid is QString::null,
306 the method will try to find a selected addressee in the view. 306 the method will try to find a selected addressee in the view.
307 */ 307 */
308 void executeContact( const QString &uid /*US = QString::null*/ ); 308 void executeContact( const QString &uid /*US = QString::null*/ );
309 309
310 /** 310 /**
311 Launches the configuration dialog. 311 Launches the configuration dialog.
312 */ 312 */
313 void openConfigDialog(); 313 void openConfigDialog();
314 314
315 /** 315 /**
316 Launches the ldap search dialog. 316 Launches the ldap search dialog.
317 */ 317 */
318 void openLDAPDialog(); 318 void openLDAPDialog();
319 319
320 /** 320 /**
321 Creates a KAddressBookPrinter, which will display the print 321 Creates a KAddressBookPrinter, which will display the print
322 dialog and do the printing. 322 dialog and do the printing.
323 */ 323 */
324 void print(); 324 void print();
325 325
326 /** 326 /**
327 Registers a new GUI client, so plugins can register its actions. 327 Registers a new GUI client, so plugins can register its actions.
328 */ 328 */
329 void addGUIClient( KXMLGUIClient *client ); 329 void addGUIClient( KXMLGUIClient *client );
330 330
331 void requestForNameEmailUidList(const QString& sourceChannel, const QString& uid, const QString& param1);
332
333
331 signals: 334 signals:
332 void contactSelected( const QString &name ); 335 void contactSelected( const QString &name );
333 void contactSelected( const QPixmap &pixmap ); 336 void contactSelected( const QPixmap &pixmap );
334 public slots: 337 public slots:
335 void setDetailsVisible( bool visible ); 338 void setDetailsVisible( bool visible );
336 void setDetailsToState(); 339 void setDetailsToState();
337 private slots: 340 private slots:
338 void setJumpButtonBarVisible( bool visible ); 341 void setJumpButtonBarVisible( bool visible );
339 void importFromOL(); 342 void importFromOL();
340 void extensionModified( const KABC::Addressee::List &list ); 343 void extensionModified( const KABC::Addressee::List &list );
341 void extensionChanged( int id ); 344 void extensionChanged( int id );
342 void clipboardDataChanged(); 345 void clipboardDataChanged();
343 void updateActionMenu(); 346 void updateActionMenu();
344 void configureKeyBindings(); 347 void configureKeyBindings();
345 void removeVoice(); 348 void removeVoice();
346#ifdef KAB_EMBEDDED 349#ifdef KAB_EMBEDDED
347 void configureResources(); 350 void configureResources();
348#endif //KAB_EMBEDDED 351#endif //KAB_EMBEDDED
349 352
350 void slotEditorDestroyed( const QString &uid ); 353 void slotEditorDestroyed( const QString &uid );
351 void configurationChanged(); 354 void configurationChanged();
352 void addressBookChanged(); 355 void addressBookChanged();
353 356
354 private: 357 private:
355 void initGUI(); 358 void initGUI();
356 void initActions(); 359 void initActions();
357 360
358 AddresseeEditorDialog *createAddresseeEditorDialog( QWidget *parent, 361 AddresseeEditorDialog *createAddresseeEditorDialog( QWidget *parent,
359 const char *name = 0 ); 362 const char *name = 0 );
360 363
361 KXMLGUIClient *mGUIClient; 364 KXMLGUIClient *mGUIClient;
362 365
363 KABC::AddressBook *mAddressBook; 366 KABC::AddressBook *mAddressBook;
364 367
365 ViewManager *mViewManager; 368 ViewManager *mViewManager;
366 // QSplitter *mDetailsSplitter; 369 // QSplitter *mDetailsSplitter;
367 KDGanttMinimizeSplitter *mExtensionBarSplitter; 370 KDGanttMinimizeSplitter *mExtensionBarSplitter;
368 ViewContainer *mDetails; 371 ViewContainer *mDetails;
369 KDGanttMinimizeSplitter* mMiniSplitter; 372 KDGanttMinimizeSplitter* mMiniSplitter;
370 XXPortManager *mXXPortManager; 373 XXPortManager *mXXPortManager;
371 JumpButtonBar *mJumpButtonBar; 374 JumpButtonBar *mJumpButtonBar;
372 IncSearchWidget *mIncSearchWidget; 375 IncSearchWidget *mIncSearchWidget;
373 ExtensionManager *mExtensionManager; 376 ExtensionManager *mExtensionManager;
374 377
375 KCMultiDialog *mConfigureDialog; 378 KCMultiDialog *mConfigureDialog;
376 379
377#ifndef KAB_EMBEDDED 380#ifndef KAB_EMBEDDED
378 LDAPSearchDialog *mLdapSearchDialog; 381 LDAPSearchDialog *mLdapSearchDialog;
379#endif //KAB_EMBEDDED 382#endif //KAB_EMBEDDED
380 // QDict<AddresseeEditorDialog> mEditorDict; 383 // QDict<AddresseeEditorDialog> mEditorDict;
381 AddresseeEditorDialog *mEditorDialog; 384 AddresseeEditorDialog *mEditorDialog;
382 bool mReadWrite; 385 bool mReadWrite;
383 bool mModified; 386 bool mModified;
384 bool mIsPart; 387 bool mIsPart;
385 bool mMultipleViewsAtOnce; 388 bool mMultipleViewsAtOnce;
386 389
387 390
388 //US file menu 391 //US file menu
389 KAction *mActionMail; 392 KAction *mActionMail;
390 KAction *mActionBeam; 393 KAction *mActionBeam;
391 KAction* mActionPrint; 394 KAction* mActionPrint;
392 KAction* mActionNewContact; 395 KAction* mActionNewContact;
393 KAction *mActionSave; 396 KAction *mActionSave;
394 KAction *mActionEditAddressee; 397 KAction *mActionEditAddressee;
diff --git a/kaddressbook/mainembedded.cpp b/kaddressbook/mainembedded.cpp
index 7f368eb..850e5b2 100644
--- a/kaddressbook/mainembedded.cpp
+++ b/kaddressbook/mainembedded.cpp
@@ -1,130 +1,131 @@
1#ifndef DESKTOP_VERSION 1#ifndef DESKTOP_VERSION
2#include <qpe/qpeapplication.h> 2#include <qpe/qpeapplication.h>
3#include <stdlib.h> 3#include <stdlib.h>
4#else 4#else
5#include <qapplication.h> 5#include <qapplication.h>
6#include <qwindowsstyle.h> 6#include <qwindowsstyle.h>
7#include <qplatinumstyle.h> 7#include <qplatinumstyle.h>
8#include <qmainwindow.h> 8#include <qmainwindow.h>
9#endif 9#endif
10 10
11#include <kstandarddirs.h> 11#include <kstandarddirs.h>
12#include <kglobal.h> 12#include <kglobal.h>
13#include <stdio.h> 13#include <stdio.h>
14#include <qdir.h> 14#include <qdir.h>
15#include "kaddressbookmain.h" 15#include "kaddressbookmain.h"
16#include "externalapphandler.h"
16 17
17int main( int argc, char **argv ) 18int main( int argc, char **argv )
18{ 19{
19#ifndef DESKTOP_VERSION 20#ifndef DESKTOP_VERSION
20 QPEApplication a( argc, argv ); 21 QPEApplication a( argc, argv );
21 a.setKeepRunning (); 22 a.setKeepRunning ();
22#else 23#else
23 QApplication a( argc, argv ); 24 QApplication a( argc, argv );
24 QApplication::setStyle( new QPlatinumStyle ()); 25 QApplication::setStyle( new QPlatinumStyle ());
25#endif 26#endif
26 27
27 bool exitHelp = false; 28 bool exitHelp = false;
28 if ( argc > 1 ) { 29 if ( argc > 1 ) {
29 QString command = argv[1]; 30 QString command = argv[1];
30 if ( command == "-help" ){ 31 if ( command == "-help" ){
31 printf("KA/E command line commands:\n"); 32 printf("KA/E command line commands:\n");
32 printf(" no command: Start KA/E in usual way\n"); 33 printf(" no command: Start KA/E in usual way\n");
33 printf(" -help: This output\n"); 34 printf(" -help: This output\n");
34 printf(" KA/E is exiting now. Bye!\n"); 35 printf(" KA/E is exiting now. Bye!\n");
35 exitHelp = true; 36 exitHelp = true;
36 } 37 }
37 } 38 }
38 if ( ! exitHelp ) { 39 if ( ! exitHelp ) {
39 40
40 KGlobal::setAppName( "kaddressbook" ); 41 KGlobal::setAppName( "kaddressbook" );
41#ifndef DESKTOP_VERSION 42#ifndef DESKTOP_VERSION
42 if ( QApplication::desktop()->width() > 320 ) 43 if ( QApplication::desktop()->width() > 320 )
43 KGlobal::iconLoader()->setIconPath(QString(getenv("QPEDIR"))+"/pics/kdepim/kaddressbook/icons22/"); 44 KGlobal::iconLoader()->setIconPath(QString(getenv("QPEDIR"))+"/pics/kdepim/kaddressbook/icons22/");
44 else 45 else
45 KGlobal::iconLoader()->setIconPath(QString(getenv("QPEDIR"))+"/pics/kdepim/kaddressbook/icons16/"); 46 KGlobal::iconLoader()->setIconPath(QString(getenv("QPEDIR"))+"/pics/kdepim/kaddressbook/icons16/");
46#else 47#else
47 QString fileName ; 48 QString fileName ;
48 fileName = qApp->applicationDirPath () + "/kdepim/kaddressbook/icons22/"; 49 fileName = qApp->applicationDirPath () + "/kdepim/kaddressbook/icons22/";
49 KGlobal::iconLoader()->setIconPath(QDir::convertSeparators(fileName)); 50 KGlobal::iconLoader()->setIconPath(QDir::convertSeparators(fileName));
50 QApplication::addLibraryPath ( qApp->applicationDirPath () ); 51 QApplication::addLibraryPath ( qApp->applicationDirPath () );
51 52
52#endif 53#endif
53 KStandardDirs::setAppDir( QDir::convertSeparators(locateLocal("data", "kaddressbook"))); 54 KStandardDirs::setAppDir( QDir::convertSeparators(locateLocal("data", "kaddressbook")));
54 KAddressBookMain m ; 55 KAddressBookMain m ;
55//US MainWindow m; 56//US MainWindow m;
56//US QObject::connect( &a, SIGNAL (appMessage ( const QCString &, const QByteArray & )),&m, SLOT(recieve( const QCString&, const QByteArray& ))); 57 QObject::connect(&a, SIGNAL (appMessage ( const QCString &, const QByteArray & )), ExternalAppHandler::instance(), SLOT (appMessage ( const QCString &, const QByteArray & )));
57 58
58#ifndef DESKTOP_VERSION 59#ifndef DESKTOP_VERSION
59 a.showMainWidget( &m ); 60 a.showMainWidget( &m );
60#else 61#else
61 a.setMainWidget( &m ); 62 a.setMainWidget( &m );
62 m.resize (640, 480 ); 63 m.resize (640, 480 );
63 m.show(); 64 m.show();
64#endif 65#endif
65 a.exec(); 66 a.exec();
66 67
67 } 68 }
68 qDebug("KA: Bye! "); 69 qDebug("KA: Bye! ");
69} 70}
70 71
71/* 72/*
72#include <stdlib.h> 73#include <stdlib.h>
73 74
74#include <qstring.h> 75#include <qstring.h>
75 76
76#include <kabc/stdaddressbook.h> 77#include <kabc/stdaddressbook.h>
77#include <kaboutdata.h> 78#include <kaboutdata.h>
78#include <kcmdlineargs.h> 79#include <kcmdlineargs.h>
79#include <kcrash.h> 80#include <kcrash.h>
80#include <kdebug.h> 81#include <kdebug.h>
81#include <klocale.h> 82#include <klocale.h>
82#include <kstartupinfo.h> 83#include <kstartupinfo.h>
83#include <kuniqueapplication.h> 84#include <kuniqueapplication.h>
84#include <kwin.h> 85#include <kwin.h>
85 86
86#include "kaddressbookmain.h" 87#include "kaddressbookmain.h"
87#include "kabcore.h" 88#include "kabcore.h"
88 89
89extern "C" { 90extern "C" {
90 91
91void crashHandler( int ) 92void crashHandler( int )
92{ 93{
93 KABC::StdAddressBook::handleCrash(); 94 KABC::StdAddressBook::handleCrash();
94 ::exit( 0 ); 95 ::exit( 0 );
95} 96}
96 97
97} 98}
98 99
99class KAddressBookApp : public KUniqueApplication { 100class KAddressBookApp : public KUniqueApplication {
100 public: 101 public:
101 KAddressBookApp() : mMainWin( 0 ) {} 102 KAddressBookApp() : mMainWin( 0 ) {}
102 ~KAddressBookApp() {} 103 ~KAddressBookApp() {}
103 104
104 int newInstance(); 105 int newInstance();
105 106
106 private: 107 private:
107 KAddressBookMain *mMainWin; 108 KAddressBookMain *mMainWin;
108}; 109};
109 110
110int KAddressBookApp::newInstance() 111int KAddressBookApp::newInstance()
111{ 112{
112 if ( isRestored() ) { 113 if ( isRestored() ) {
113 // There can only be one main window 114 // There can only be one main window
114 if ( KMainWindow::canBeRestored( 1 ) ) { 115 if ( KMainWindow::canBeRestored( 1 ) ) {
115 mMainWin = new KAddressBookMain; 116 mMainWin = new KAddressBookMain;
116 mMainWin->show(); 117 mMainWin->show();
117 mMainWin->restore( 1 ); 118 mMainWin->restore( 1 );
118 } 119 }
119 } else { 120 } else {
120 KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); 121 KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
121 122
122 QCString addrStr = args->getOption( "addr" ); 123 QCString addrStr = args->getOption( "addr" );
123 QCString uidStr = args->getOption( "uid" ); 124 QCString uidStr = args->getOption( "uid" );
124 QString addr; 125 QString addr;
125 QString uid; 126 QString uid;
126 if ( !addrStr.isEmpty() ) 127 if ( !addrStr.isEmpty() )
127 addr = QString::fromLocal8Bit( addrStr ); 128 addr = QString::fromLocal8Bit( addrStr );
128 if ( !uidStr.isEmpty() ) 129 if ( !uidStr.isEmpty() )
129 uid = QString::fromLocal8Bit( uidStr ); 130 uid = QString::fromLocal8Bit( uidStr );
130 131