summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/jumpbuttonbar.cpp47
-rw-r--r--kaddressbook/kabcore.cpp6
2 files changed, 36 insertions, 17 deletions
diff --git a/kaddressbook/jumpbuttonbar.cpp b/kaddressbook/jumpbuttonbar.cpp
index e89ec52..32922a6 100644
--- a/kaddressbook/jumpbuttonbar.cpp
+++ b/kaddressbook/jumpbuttonbar.cpp
@@ -1,241 +1,256 @@
1/* 1/*
2 This file is part of KAddressBook. 2 This file is part of KAddressBook.
3 Copyright (c) 2002 Mike Pilone <mpilone@slac.com> 3 Copyright (c) 2002 Mike Pilone <mpilone@slac.com>
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 <qevent.h> 24#include <qevent.h>
25#include <qlayout.h> 25#include <qlayout.h>
26#include <qpushbutton.h> 26#include <qpushbutton.h>
27#include <qstring.h> 27#include <qstring.h>
28#include <qtl.h> 28#include <qtl.h>
29#include <qapplication.h> 29#include <qapplication.h>
30 30
31#include <kabc/addressbook.h> 31#include <kabc/addressbook.h>
32#include <kabc/field.h> 32#include <kabc/field.h>
33#include <kdebug.h> 33#include <kdebug.h>
34#include <klocale.h> 34#include <klocale.h>
35 35
36#include "kabcore.h" 36#include "kabcore.h"
37 37
38#include "jumpbuttonbar.h" 38#include "jumpbuttonbar.h"
39 39
40class JumpButton : public QPushButton 40class JumpButton : public QPushButton
41{ 41{
42 public: 42 public:
43 JumpButton( const QString &text, QWidget *parent, 43 JumpButton( const QString &text, QWidget *parent,
44 const QString &character ); 44 const QString &character );
45 45
46 void setCharacter( const QString &character ); 46 void setCharacter( const QString &character );
47 QString character() const; 47 QString character() const;
48 48
49 private: 49 private:
50 QString mCharacter; 50 QString mCharacter;
51}; 51};
52 52
53JumpButton::JumpButton( const QString &text, QWidget *parent, 53JumpButton::JumpButton( const QString &text, QWidget *parent,
54 const QString &character ) 54 const QString &character )
55 : QPushButton( text, parent ) 55 : QPushButton( text, parent )
56{ 56{
57 mCharacter = character; 57 mCharacter = character;
58} 58}
59 59
60void JumpButton::setCharacter( const QString &character ) 60void JumpButton::setCharacter( const QString &character )
61{ 61{
62 mCharacter = character; 62 mCharacter = character;
63 setText(mCharacter.upper() ); 63 setText(mCharacter.upper() );
64} 64}
65 65
66QString JumpButton::character() const 66QString JumpButton::character() const
67{ 67{
68 return mCharacter; 68 return mCharacter;
69} 69}
70 70
71JumpButtonBar::JumpButtonBar( KABCore *core, QWidget *parent, const char *name ) 71JumpButtonBar::JumpButtonBar( KABCore *core, QWidget *parent, const char *name )
72 : QWidget( parent, name ), mCore( core ) 72 : QWidget( parent, name ), mCore( core )
73{ 73{
74 if ( QApplication::desktop()->width() < 480 ) 74 if ( QApplication::desktop()->width() < 480 )
75 75
76 mButtonLayout = new QGridLayout( this, 2, 14 ); 76 mButtonLayout = new QGridLayout( this, 1, 18 );
77 else 77 else
78 mButtonLayout = new QGridLayout( this, 1, 28 ); 78 mButtonLayout = new QGridLayout( this, 1, 20 );
79 mButtonLayout->setAlignment( Qt::AlignTop ); 79 mButtonLayout->setAlignment( Qt::AlignTop );
80 80
81 recreateButtons(); 81 recreateButtons();
82} 82}
83 83
84JumpButtonBar::~JumpButtonBar() 84JumpButtonBar::~JumpButtonBar()
85{ 85{
86} 86}
87 87
88QSizePolicy JumpButtonBar::sizePolicy() const 88QSizePolicy JumpButtonBar::sizePolicy() const
89{ 89{
90#ifndef KAB_EMBEDDED 90#ifndef KAB_EMBEDDED
91 return QSizePolicy( QSizePolicy::Maximum, QSizePolicy::Minimum, 91 return QSizePolicy( QSizePolicy::Maximum, QSizePolicy::Minimum,
92 QSizePolicy::Vertically ); 92 QSizePolicy::Vertically );
93#else //KAB_EMBEDDED 93#else //KAB_EMBEDDED
94 return QSizePolicy( QSizePolicy::Maximum, QSizePolicy::Minimum); 94 return QSizePolicy( QSizePolicy::Maximum, QSizePolicy::Minimum);
95#endif //KAB_EMBEDDED 95#endif //KAB_EMBEDDED
96} 96}
97 97
98void JumpButtonBar::letterClicked() 98void JumpButtonBar::letterClicked()
99{ 99{
100 JumpButton *button = (JumpButton*)sender(); 100 JumpButton *button = (JumpButton*)sender();
101 QString character = button->character(); 101 QString character = button->character();
102 if ( character.length() == 2 ) 102 if ( character.length() == 2 )
103 character = character.left(1) +"-"+character.right(1); 103 character = character.left(1) +"-"+character.right(1);
104 if ( !character.isNull() ) 104 if ( !character.isNull() )
105 emit jumpToLetter( character ); 105 emit jumpToLetter( character );
106 //qDebug("emit *%s* ",character.latin1()); 106 //qDebug("emit *%s* ",character.latin1());
107} 107}
108 108
109void JumpButtonBar::recreateButtons() 109void JumpButtonBar::recreateButtons()
110{ 110{
111 // the easiest way to remove all buttons ;) 111 // the easiest way to remove all buttons ;)
112 //mButtons.setAutoDelete( true ); 112 //mButtons.setAutoDelete( true );
113 //mButtons.clear(); 113 //mButtons.clear();
114 //mButtons.setAutoDelete( false ); 114 //mButtons.setAutoDelete( false );
115 mCharacters.clear(); 115 mCharacters.clear();
116 116
117 QString character; 117 QString character;
118 118
119 KABC::AddressBook *ab = mCore->addressBook(); 119 KABC::AddressBook *ab = mCore->addressBook();
120 KABC::AddressBook::Iterator it; 120 KABC::AddressBook::Iterator it;
121 KABC::Field *field = mCore->currentSearchField(); 121 KABC::Field *field = mCore->currentSearchField();
122 if ( field ) { 122 if ( field ) {
123 setEnabled( true ); 123 setEnabled( true );
124 } else { 124 } else {
125 setEnabled( false ); 125 setEnabled( false );
126 return; 126 return;
127 } 127 }
128 mCharacters.append( "*"); 128 mCharacters.append( "*");
129 for ( it = ab->begin(); it != ab->end(); ++it ) { 129 for ( it = ab->begin(); it != ab->end(); ++it ) {
130 if ( !field->value( *it ).isEmpty() ) 130 if ( !field->value( *it ).isEmpty() )
131 character = field->value( *it )[ 0 ].lower(); 131 character = field->value( *it )[ 0 ].lower();
132 if ( character != "!" ) 132 if ( character != "!" )
133 if ( !character.isEmpty() && !mCharacters.contains( character ) ) 133 if ( !character.isEmpty() && !mCharacters.contains( character ) )
134 mCharacters.append( character ); 134 mCharacters.append( character );
135 } 135 }
136 if ( mCharacters.count() == 0 ) { 136 if ( mCharacters.count() == 0 ) {
137 setEnabled( false ); 137 setEnabled( false );
138 return; 138 return;
139 } 139 }
140 140
141 int maxRows = mCharacters.count() / 2; // we use 2 columns 141 int maxRows = mCharacters.count() / 2; // we use 2 columns
142 if ( mCharacters.count() % 2 ) 142 if ( mCharacters.count() % 2 )
143 maxRows++; 143 maxRows++;
144 int fixwid = 20;
145 sortListLocaleAware( mCharacters ); 144 sortListLocaleAware( mCharacters );
146 bool skip2 = false; 145 bool skip2 = false;
147 int skipcount = 0; 146 int skipcount = 0;
148 int maxHei = 25; 147 int maxHei = 0;
149 int roW = 15;//13 is ok 148#ifdef DESKTOP_VERSION
150 if ( QApplication::desktop()->width() < 480 && mCharacters.count() > roW ) { 149 int maxChar = 26;
151 skipcount = mCharacters.count()-roW ; 150 int heightDiff = 200;
152 maxHei = (QApplication::desktop()->height()-65)/roW ; 151 int fixwid = 0;
153 } 152#else
154 else { 153 //default for 240x320 diaplay:
155 fixwid = 30; 154 int maxChar = 16;
156 if ( mCharacters.count() > 16 ) 155 int heightDiff = 64;
157 skipcount = mCharacters.count()- 16; 156 int fixwid = 20;
158 maxHei = (QApplication::desktop()->height()-120)/(16);
159 157
158 if ( QApplication::desktop()->height() == 480 ) {
159 maxChar = 16;
160 heightDiff = 135;
161 fixwid = 34;
162 } else if ( QApplication::desktop()->height() >= 640 ) {
163 maxChar = 20;
164 heightDiff = 135;
165 fixwid = 34;
160 } 166 }
167#endif
168
169 if ( mCharacters.count() > maxChar )
170 skipcount = mCharacters.count()- maxChar;
171 maxHei = (QApplication::desktop()->height()-heightDiff)/(maxChar);
172
173
161 maxRows = 28; 174 maxRows = 28;
162 bool skipcurrent = false; 175 bool skipcurrent = false;
163 bool state = isUpdatesEnabled(); 176 bool state = isUpdatesEnabled();
164 setUpdatesEnabled( false ); 177 setUpdatesEnabled( false );
165 //qDebug("cc %d ",mCharacters.count() ); 178 //qDebug("cc %d ",mCharacters.count() );
166 JumpButton *button = 0; 179 JumpButton *button = 0;
167 int row = 0, col = 0; 180 int row = 0, col = 0;
168 JumpButton* cur = mButtons.first(); 181 JumpButton* cur = mButtons.first();
169 for ( uint i = 0; i < mCharacters.count(); ++i ) { 182 for ( uint i = 0; i < mCharacters.count(); ++i ) {
170 if ( skipcount > 0 && skipcurrent ) { 183 if ( skipcount > 0 && skipcurrent ) {
171 --skipcount; 184 --skipcount;
172 if ( button ) { 185 if ( button ) {
173 button->setCharacter( button->character() + mCharacters[ i ]); 186 button->setCharacter( button->character() + mCharacters[ i ]);
174 } 187 }
175 } else { 188 } else {
176 if ( cur ) { 189 if ( cur ) {
177 button = cur ; 190 button = cur ;
178 cur = mButtons.next(); 191 cur = mButtons.next();
179 button->setCharacter(mCharacters[ i ]); 192 button->setCharacter(mCharacters[ i ]);
180 } else { 193 } else {
181 button = new JumpButton( mCharacters[ i ].upper(), this, mCharacters[ i ] ); 194 button = new JumpButton( mCharacters[ i ].upper(), this, mCharacters[ i ] );
182 button->setFixedWidth( fixwid ); 195 if ( fixwid )
196 button->setFixedWidth( fixwid );
183 mButtons.append( button ); 197 mButtons.append( button );
184 connect( button, SIGNAL( clicked() ), this, SLOT( letterClicked() ) ); 198 connect( button, SIGNAL( clicked() ), this, SLOT( letterClicked() ) );
185 mButtonLayout->addWidget( button, row, col ); 199 mButtonLayout->addWidget( button, row, col );
186 } 200 }
187 button->setMaximumHeight( maxHei ); 201 if ( maxHei )
202 button->setMaximumHeight( maxHei );
188 button->show(); 203 button->show();
189 204
190 if ( col == maxRows ) { 205 if ( col == maxRows ) {
191 row = 0; 206 row = 0;
192 col++; 207 col++;
193 } else 208 } else
194 row++; 209 row++;
195 } 210 }
196 if ( i > 0 ) 211 if ( i > 0 )
197 skipcurrent = !skipcurrent; 212 skipcurrent = !skipcurrent;
198 } 213 }
199 while ( cur ) { 214 while ( cur ) {
200 cur->hide(); 215 cur->hide();
201 cur = mButtons.next(); 216 cur = mButtons.next();
202 } 217 }
203 218
204 mButtonLayout->activate(); 219 mButtonLayout->activate();
205 setUpdatesEnabled( state ); 220 setUpdatesEnabled( state );
206 update(); 221 update();
207} 222}
208 223
209void JumpButtonBar::sortListLocaleAware( QStringList &list ) 224void JumpButtonBar::sortListLocaleAware( QStringList &list )
210{ 225{
211 QStringList::Iterator beginIt = list.begin(); 226 QStringList::Iterator beginIt = list.begin();
212 QStringList::Iterator endIt = list.end(); 227 QStringList::Iterator endIt = list.end();
213 228
214 --endIt; 229 --endIt;
215 if ( beginIt == endIt ) // don't need sorting 230 if ( beginIt == endIt ) // don't need sorting
216 return; 231 return;
217 232
218 QStringList::Iterator walkBackIt = endIt; 233 QStringList::Iterator walkBackIt = endIt;
219 while ( beginIt != endIt ) { 234 while ( beginIt != endIt ) {
220 QStringList::Iterator j1 = list.begin(); 235 QStringList::Iterator j1 = list.begin();
221 QStringList::Iterator j2 = j1; 236 QStringList::Iterator j2 = j1;
222 ++j2; 237 ++j2;
223 while ( j1 != walkBackIt ) { 238 while ( j1 != walkBackIt ) {
224#ifndef KAB_EMBEDDED 239#ifndef KAB_EMBEDDED
225 if ( QString::localeAwareCompare( *j2, *j1 ) < 0 ) 240 if ( QString::localeAwareCompare( *j2, *j1 ) < 0 )
226#else //KAB_EMBEDDED 241#else //KAB_EMBEDDED
227 if ( QString::compare( *j2, *j1 ) < 0 ) 242 if ( QString::compare( *j2, *j1 ) < 0 )
228#endif //KAB_EMBEDDED 243#endif //KAB_EMBEDDED
229 qSwap( *j1, *j2 ); 244 qSwap( *j1, *j2 );
230 245
231 ++j1; 246 ++j1;
232 ++j2; 247 ++j2;
233 } 248 }
234 ++beginIt; 249 ++beginIt;
235 --walkBackIt; 250 --walkBackIt;
236 } 251 }
237} 252}
238 253
239#ifndef KAB_EMBEDDED 254#ifndef KAB_EMBEDDED
240#include "jumpbuttonbar.moc" 255#include "jumpbuttonbar.moc"
241#endif //KAB_EMBEDDED 256#endif //KAB_EMBEDDED
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp
index 0def16e..5987e99 100644
--- a/kaddressbook/kabcore.cpp
+++ b/kaddressbook/kabcore.cpp
@@ -1,115 +1,115 @@
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 Async 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/*s 24/*s
25Enhanced Version of the file for platform independent KDE tools. 25Enhanced Version of the file for platform independent KDE tools.
26Copyright (c) 2004 Ulf Schenk 26Copyright (c) 2004 Ulf Schenk
27 27
28$Id$ 28$Id$
29*/ 29*/
30 30
31#include "kabcore.h" 31#include "kabcore.h"
32 32
33#include <stdaddressbook.h> 33#include <stdaddressbook.h>
34#include <klocale.h> 34#include <klocale.h>
35#include <kfiledialog.h> 35#include <kfiledialog.h>
36#include <qtimer.h> 36#include <qtimer.h>
37#include <qlabel.h> 37#include <qlabel.h>
38#include <qregexp.h> 38#include <qregexp.h>
39#include <qlineedit.h> 39#include <qlineedit.h>
40#include <qcheckbox.h> 40#include <qcheckbox.h>
41#include <qpushbutton.h> 41#include <qpushbutton.h>
42#include <qprogressbar.h> 42#include <qprogressbar.h>
43#include <libkdepim/phoneaccess.h> 43#include <libkdepim/phoneaccess.h>
44 44
45#ifndef KAB_EMBEDDED 45#ifndef KAB_EMBEDDED
46#include <qclipboard.h> 46#include <qclipboard.h>
47#include <qdir.h> 47#include <qdir.h>
48#include <qfile.h> 48#include <qfile.h>
49#include <qapplicaton.h> 49#include <qapplicaton.h>
50#include <qprogressbar.h> 50#include <qprogressbar.h>
51#include <qlayout.h> 51#include <qlayout.h>
52#include <qregexp.h> 52#include <qregexp.h>
53#include <qvbox.h> 53#include <qvbox.h>
54#include <kabc/addresseelist.h> 54#include <kabc/addresseelist.h>
55#include <kabc/errorhandler.h> 55#include <kabc/errorhandler.h>
56#include <kabc/resource.h> 56#include <kabc/resource.h>
57#include <kabc/vcardconverter.h> 57#include <kabc/vcardconverter.h>
58#include <kapplication.h> 58#include <kapplication.h>
59#include <kactionclasses.h> 59#include <kactionclasses.h>
60#include <kcmultidialog.h> 60#include <kcmultidialog.h>
61#include <kdebug.h> 61#include <kdebug.h>
62#include <kdeversion.h> 62#include <kdeversion.h>
63#include <kkeydialog.h> 63#include <kkeydialog.h>
64#include <kmessagebox.h> 64#include <kmessagebox.h>
65#include <kprinter.h> 65#include <kprinter.h>
66#include <kprotocolinfo.h> 66#include <kprotocolinfo.h>
67#include <kresources/selectdialog.h> 67#include <kresources/selectdialog.h>
68#include <kstandarddirs.h> 68#include <kstandarddirs.h>
69#include <ktempfile.h> 69#include <ktempfile.h>
70#include <kxmlguiclient.h> 70#include <kxmlguiclient.h>
71#include <kaboutdata.h> 71#include <kaboutdata.h>
72#include <libkdepim/categoryselectdialog.h> 72#include <libkdepim/categoryselectdialog.h>
73 73
74#include "addresseeutil.h" 74#include "addresseeutil.h"
75#include "addresseeeditordialog.h" 75#include "addresseeeditordialog.h"
76#include "extensionmanager.h" 76#include "extensionmanager.h"
77#include "kstdaction.h" 77#include "kstdaction.h"
78#include "kaddressbookservice.h" 78#include "kaddressbookservice.h"
79#include "ldapsearchdialog.h" 79#include "ldapsearchdialog.h"
80#include "printing/printingwizard.h" 80#include "printing/printingwizard.h"
81#else // KAB_EMBEDDED 81#else // KAB_EMBEDDED
82 82
83#include <kapplication.h> 83#include <kapplication.h>
84#include "KDGanttMinimizeSplitter.h" 84#include "KDGanttMinimizeSplitter.h"
85#include "kaddressbookmain.h" 85#include "kaddressbookmain.h"
86#include "kactioncollection.h" 86#include "kactioncollection.h"
87#include "addresseedialog.h" 87#include "addresseedialog.h"
88//US 88//US
89#include <addresseeview.h> 89#include <addresseeview.h>
90 90
91#include <qapp.h> 91#include <qapp.h>
92#include <qmenubar.h> 92#include <qmenubar.h>
93//#include <qtoolbar.h> 93//#include <qtoolbar.h>
94#include <qmessagebox.h> 94#include <qmessagebox.h>
95#include <kdebug.h> 95#include <kdebug.h>
96#include <kiconloader.h> // needed for SmallIcon 96#include <kiconloader.h> // needed for SmallIcon
97#include <kresources/kcmkresources.h> 97#include <kresources/kcmkresources.h>
98#include <ktoolbar.h> 98#include <ktoolbar.h>
99 99
100 100
101//#include <qlabel.h> 101//#include <qlabel.h>
102 102
103 103
104#ifndef DESKTOP_VERSION 104#ifndef DESKTOP_VERSION
105#include <qpe/ir.h> 105#include <qpe/ir.h>
106#include <qpe/qpemenubar.h> 106#include <qpe/qpemenubar.h>
107#include <qtopia/qcopenvelope_qws.h> 107#include <qtopia/qcopenvelope_qws.h>
108#else 108#else
109 109
110#include <qmenubar.h> 110#include <qmenubar.h>
111#endif 111#endif
112 112
113#endif // KAB_EMBEDDED 113#endif // KAB_EMBEDDED
114#include "kcmconfigs/kcmkabconfig.h" 114#include "kcmconfigs/kcmkabconfig.h"
115#include "kcmconfigs/kcmkdepimconfig.h" 115#include "kcmconfigs/kcmkdepimconfig.h"
@@ -2021,193 +2021,197 @@ void KABCore::initActions()
2021 2021
2022 2022
2023 // misc 2023 // misc
2024 // only enable LDAP lookup if we can handle the protocol 2024 // only enable LDAP lookup if we can handle the protocol
2025#ifndef KAB_EMBEDDED 2025#ifndef KAB_EMBEDDED
2026 if ( KProtocolInfo::isKnownProtocol( KURL( "ldap://localhost" ) ) ) { 2026 if ( KProtocolInfo::isKnownProtocol( KURL( "ldap://localhost" ) ) ) {
2027 new KAction( i18n( "&Lookup Addresses in Directory" ), "find", 0, 2027 new KAction( i18n( "&Lookup Addresses in Directory" ), "find", 0,
2028 this, SLOT( openLDAPDialog() ), actionCollection(), 2028 this, SLOT( openLDAPDialog() ), actionCollection(),
2029 "ldap_lookup" ); 2029 "ldap_lookup" );
2030 } 2030 }
2031#else //KAB_EMBEDDED 2031#else //KAB_EMBEDDED
2032 //qDebug("KABCore::initActions() LDAP has to be implemented"); 2032 //qDebug("KABCore::initActions() LDAP has to be implemented");
2033#endif //KAB_EMBEDDED 2033#endif //KAB_EMBEDDED
2034 2034
2035 2035
2036 mActionWhoAmI = new KAction( i18n( "Set Who Am I" ), "personal", 0, this, 2036 mActionWhoAmI = new KAction( i18n( "Set Who Am I" ), "personal", 0, this,
2037 SLOT( setWhoAmI() ), actionCollection(), 2037 SLOT( setWhoAmI() ), actionCollection(),
2038 "set_personal" ); 2038 "set_personal" );
2039 2039
2040 2040
2041 mActionCategories = new KAction( i18n( "Set Categories for Contacts..." ), 0, this, 2041 mActionCategories = new KAction( i18n( "Set Categories for Contacts..." ), 0, this,
2042 SLOT( setCategories() ), actionCollection(), 2042 SLOT( setCategories() ), actionCollection(),
2043 "edit_set_categories" ); 2043 "edit_set_categories" );
2044 mActionEditCategories = new KAction( i18n( "Edit Category List..." ), 0, this, 2044 mActionEditCategories = new KAction( i18n( "Edit Category List..." ), 0, this,
2045 SLOT( editCategories() ), actionCollection(), 2045 SLOT( editCategories() ), actionCollection(),
2046 "edit__categories" ); 2046 "edit__categories" );
2047 2047
2048 mActionRemoveVoice = new KAction( i18n( "Remove \"voice\"..." ), 0, this, 2048 mActionRemoveVoice = new KAction( i18n( "Remove \"voice\"..." ), 0, this,
2049 SLOT( removeVoice() ), actionCollection(), 2049 SLOT( removeVoice() ), actionCollection(),
2050 "remove_voice" ); 2050 "remove_voice" );
2051 mActionSetFormattedName = new KAction( i18n( "Set formatted name..." ), 0, this, 2051 mActionSetFormattedName = new KAction( i18n( "Set formatted name..." ), 0, this,
2052 SLOT( setFormattedName() ), actionCollection(), 2052 SLOT( setFormattedName() ), actionCollection(),
2053 "set_formatted" ); 2053 "set_formatted" );
2054 2054
2055 mActionManageCategories= new KAction( i18n( "Manage new categories..." ), 0, this, 2055 mActionManageCategories= new KAction( i18n( "Manage new categories..." ), 0, this,
2056 SLOT( manageCategories() ), actionCollection(), 2056 SLOT( manageCategories() ), actionCollection(),
2057 "remove_voice" ); 2057 "remove_voice" );
2058 2058
2059 2059
2060 mActionImportOL = new KAction( i18n( "Import from Outlook..." ), 0, this, 2060 mActionImportOL = new KAction( i18n( "Import from Outlook..." ), 0, this,
2061 SLOT( importFromOL() ), actionCollection(), 2061 SLOT( importFromOL() ), actionCollection(),
2062 "import_OL" ); 2062 "import_OL" );
2063#ifdef KAB_EMBEDDED 2063#ifdef KAB_EMBEDDED
2064 mActionLicence = new KAction( i18n( "Licence" ), 0, 2064 mActionLicence = new KAction( i18n( "Licence" ), 0,
2065 this, SLOT( showLicence() ), actionCollection(), 2065 this, SLOT( showLicence() ), actionCollection(),
2066 "licence_about_data" ); 2066 "licence_about_data" );
2067 mActionFaq = new KAction( i18n( "Faq" ), 0, 2067 mActionFaq = new KAction( i18n( "Faq" ), 0,
2068 this, SLOT( faq() ), actionCollection(), 2068 this, SLOT( faq() ), actionCollection(),
2069 "faq_about_data" ); 2069 "faq_about_data" );
2070 mActionWN = new KAction( i18n( "What's New?" ), 0, 2070 mActionWN = new KAction( i18n( "What's New?" ), 0,
2071 this, SLOT( whatsnew() ), actionCollection(), 2071 this, SLOT( whatsnew() ), actionCollection(),
2072 "wn" ); 2072 "wn" );
2073 mActionSyncHowto = new KAction( i18n( "Sync HowTo" ), 0, 2073 mActionSyncHowto = new KAction( i18n( "Sync HowTo" ), 0,
2074 this, SLOT( synchowto() ), actionCollection(), 2074 this, SLOT( synchowto() ), actionCollection(),
2075 "sync" ); 2075 "sync" );
2076 mActionKdeSyncHowto = new KAction( i18n( "Kde Sync HowTo" ), 0, 2076 mActionKdeSyncHowto = new KAction( i18n( "Kde Sync HowTo" ), 0,
2077 this, SLOT( kdesynchowto() ), actionCollection(), 2077 this, SLOT( kdesynchowto() ), actionCollection(),
2078 "kdesync" ); 2078 "kdesync" );
2079 mActionMultiSyncHowto = new KAction( i18n( "Multi Sync HowTo" ), 0, 2079 mActionMultiSyncHowto = new KAction( i18n( "Multi Sync HowTo" ), 0,
2080 this, SLOT( multisynchowto() ), actionCollection(), 2080 this, SLOT( multisynchowto() ), actionCollection(),
2081 "multisync" ); 2081 "multisync" );
2082 2082
2083 mActionAboutKAddressbook = new KAction( i18n( "&About KAddressBook" ), "kaddressbook2", 0, 2083 mActionAboutKAddressbook = new KAction( i18n( "&About KAddressBook" ), "kaddressbook2", 0,
2084 this, SLOT( createAboutData() ), actionCollection(), 2084 this, SLOT( createAboutData() ), actionCollection(),
2085 "kaddressbook_about_data" ); 2085 "kaddressbook_about_data" );
2086#endif //KAB_EMBEDDED 2086#endif //KAB_EMBEDDED
2087 2087
2088 clipboardDataChanged(); 2088 clipboardDataChanged();
2089 connect( UndoStack::instance(), SIGNAL( changed() ), SLOT( updateActionMenu() ) ); 2089 connect( UndoStack::instance(), SIGNAL( changed() ), SLOT( updateActionMenu() ) );
2090 connect( RedoStack::instance(), SIGNAL( changed() ), SLOT( updateActionMenu() ) ); 2090 connect( RedoStack::instance(), SIGNAL( changed() ), SLOT( updateActionMenu() ) );
2091} 2091}
2092 2092
2093//US we need this function, to plug all actions into the correct menues. 2093//US we need this function, to plug all actions into the correct menues.
2094// KDE uses a XML format to plug the actions, but we work her without this overhead. 2094// KDE uses a XML format to plug the actions, but we work her without this overhead.
2095void KABCore::addActionsManually() 2095void KABCore::addActionsManually()
2096{ 2096{
2097//US qDebug("KABCore::initActions(): mIsPart %i", mIsPart); 2097//US qDebug("KABCore::initActions(): mIsPart %i", mIsPart);
2098 2098
2099#ifdef KAB_EMBEDDED 2099#ifdef KAB_EMBEDDED
2100 QPopupMenu *fileMenu = new QPopupMenu( this ); 2100 QPopupMenu *fileMenu = new QPopupMenu( this );
2101 QPopupMenu *editMenu = new QPopupMenu( this ); 2101 QPopupMenu *editMenu = new QPopupMenu( this );
2102 QPopupMenu *helpMenu = new QPopupMenu( this ); 2102 QPopupMenu *helpMenu = new QPopupMenu( this );
2103 2103
2104 KToolBar* tb = mMainWindow->toolBar(); 2104 KToolBar* tb = mMainWindow->toolBar();
2105 2105
2106#ifndef DESKTOP_VERSION 2106#ifndef DESKTOP_VERSION
2107 if ( KABPrefs::instance()->mFullMenuBarVisible ) { 2107 if ( KABPrefs::instance()->mFullMenuBarVisible ) {
2108#endif 2108#endif
2109 QMenuBar* mb = mMainWindow->menuBar(); 2109 QMenuBar* mb = mMainWindow->menuBar();
2110 2110
2111 //US setup menubar. 2111 //US setup menubar.
2112 //Disable the following block if you do not want to have a menubar. 2112 //Disable the following block if you do not want to have a menubar.
2113 mb->insertItem( i18n("&File"), fileMenu ); 2113 mb->insertItem( i18n("&File"), fileMenu );
2114 mb->insertItem( i18n("&Edit"), editMenu ); 2114 mb->insertItem( i18n("&Edit"), editMenu );
2115 mb->insertItem( i18n("&View"), viewMenu ); 2115 mb->insertItem( i18n("&View"), viewMenu );
2116 mb->insertItem( i18n("&Settings"), settingsMenu ); 2116 mb->insertItem( i18n("&Settings"), settingsMenu );
2117#ifdef DESKTOP_VERSION
2117 mb->insertItem( i18n("Synchronize"), syncMenu ); 2118 mb->insertItem( i18n("Synchronize"), syncMenu );
2119#else
2120 mb->insertItem( i18n("Sync"), syncMenu );
2121#endif
2118 //mb->insertItem( i18n("&Change"), changeMenu ); 2122 //mb->insertItem( i18n("&Change"), changeMenu );
2119 mb->insertItem( i18n("&Help"), helpMenu ); 2123 mb->insertItem( i18n("&Help"), helpMenu );
2120 mIncSearchWidget = new IncSearchWidget( tb ); 2124 mIncSearchWidget = new IncSearchWidget( tb );
2121 // tb->insertWidget(-1, 0, mIncSearchWidget); 2125 // tb->insertWidget(-1, 0, mIncSearchWidget);
2122#ifndef DESKTOP_VERSION 2126#ifndef DESKTOP_VERSION
2123 } else { 2127 } else {
2124 //US setup toolbar 2128 //US setup toolbar
2125 QPEMenuBar *menuBarTB = new QPEMenuBar( tb ); 2129 QPEMenuBar *menuBarTB = new QPEMenuBar( tb );
2126 QPopupMenu *popupBarTB = new QPopupMenu( this ); 2130 QPopupMenu *popupBarTB = new QPopupMenu( this );
2127 menuBarTB->insertItem( "ME", popupBarTB); 2131 menuBarTB->insertItem( "ME", popupBarTB);
2128 tb->insertWidget(-1, 0, menuBarTB); 2132 tb->insertWidget(-1, 0, menuBarTB);
2129 mIncSearchWidget = new IncSearchWidget( tb ); 2133 mIncSearchWidget = new IncSearchWidget( tb );
2130 2134
2131 tb->enableMoving(false); 2135 tb->enableMoving(false);
2132 popupBarTB->insertItem( i18n("&File"), fileMenu ); 2136 popupBarTB->insertItem( i18n("&File"), fileMenu );
2133 popupBarTB->insertItem( i18n("&Edit"), editMenu ); 2137 popupBarTB->insertItem( i18n("&Edit"), editMenu );
2134 popupBarTB->insertItem( i18n("&View"), viewMenu ); 2138 popupBarTB->insertItem( i18n("&View"), viewMenu );
2135 popupBarTB->insertItem( i18n("&Settings"), settingsMenu ); 2139 popupBarTB->insertItem( i18n("&Settings"), settingsMenu );
2136 popupBarTB->insertItem( i18n("Synchronize"), syncMenu ); 2140 popupBarTB->insertItem( i18n("Synchronize"), syncMenu );
2137 mViewManager->getFilterAction()->plug ( popupBarTB); 2141 mViewManager->getFilterAction()->plug ( popupBarTB);
2138 //popupBarTB->insertItem( i18n("&Change selected"), changeMenu ); 2142 //popupBarTB->insertItem( i18n("&Change selected"), changeMenu );
2139 popupBarTB->insertItem( i18n("&Help"), helpMenu ); 2143 popupBarTB->insertItem( i18n("&Help"), helpMenu );
2140 if (QApplication::desktop()->width() > 320 ) { 2144 if (QApplication::desktop()->width() > 320 ) {
2141 // mViewManager->getFilterAction()->plug ( tb); 2145 // mViewManager->getFilterAction()->plug ( tb);
2142 } 2146 }
2143 } 2147 }
2144#endif 2148#endif
2145 // mActionQuit->plug ( mMainWindow->toolBar()); 2149 // mActionQuit->plug ( mMainWindow->toolBar());
2146 2150
2147 2151
2148 2152
2149 //US Now connect the actions with the menue entries. 2153 //US Now connect the actions with the menue entries.
2150#ifdef DESKTOP_VERSION 2154#ifdef DESKTOP_VERSION
2151 mActionPrint->plug( fileMenu ); 2155 mActionPrint->plug( fileMenu );
2152 mActionPrintDetails->plug( fileMenu ); 2156 mActionPrintDetails->plug( fileMenu );
2153 fileMenu->insertSeparator(); 2157 fileMenu->insertSeparator();
2154#endif 2158#endif
2155 mActionMail->plug( fileMenu ); 2159 mActionMail->plug( fileMenu );
2156 fileMenu->insertSeparator(); 2160 fileMenu->insertSeparator();
2157 2161
2158 mActionNewContact->plug( fileMenu ); 2162 mActionNewContact->plug( fileMenu );
2159 mActionNewContact->plug( tb ); 2163 mActionNewContact->plug( tb );
2160 2164
2161 mActionEditAddressee->plug( fileMenu ); 2165 mActionEditAddressee->plug( fileMenu );
2162 // if ((KGlobal::getDesktopSize() > KGlobal::Small ) || 2166 // if ((KGlobal::getDesktopSize() > KGlobal::Small ) ||
2163 // (!KABPrefs::instance()->mMultipleViewsAtOnce )) 2167 // (!KABPrefs::instance()->mMultipleViewsAtOnce ))
2164 mActionEditAddressee->plug( tb ); 2168 mActionEditAddressee->plug( tb );
2165 2169
2166 fileMenu->insertSeparator(); 2170 fileMenu->insertSeparator();
2167 mActionSave->plug( fileMenu ); 2171 mActionSave->plug( fileMenu );
2168 fileMenu->insertItem( "&Import", ImportMenu ); 2172 fileMenu->insertItem( "&Import", ImportMenu );
2169 fileMenu->insertItem( "&Export", ExportMenu ); 2173 fileMenu->insertItem( "&Export", ExportMenu );
2170 fileMenu->insertItem( i18n("&Change"), changeMenu ); 2174 fileMenu->insertItem( i18n("&Change"), changeMenu );
2171#ifndef DESKTOP_VERSION 2175#ifndef DESKTOP_VERSION
2172 if ( Ir::supported() ) fileMenu->insertItem( i18n("&Beam"), beamMenu ); 2176 if ( Ir::supported() ) fileMenu->insertItem( i18n("&Beam"), beamMenu );
2173#endif 2177#endif
2174#if 0 2178#if 0
2175 // PENDING fix MailVCard 2179 // PENDING fix MailVCard
2176 fileMenu->insertSeparator(); 2180 fileMenu->insertSeparator();
2177 mActionMailVCard->plug( fileMenu ); 2181 mActionMailVCard->plug( fileMenu );
2178#endif 2182#endif
2179#ifndef DESKTOP_VERSION 2183#ifndef DESKTOP_VERSION
2180 if ( Ir::supported() ) mActionBR->plug( beamMenu ); 2184 if ( Ir::supported() ) mActionBR->plug( beamMenu );
2181 if ( Ir::supported() ) mActionBeamVCard->plug( beamMenu ); 2185 if ( Ir::supported() ) mActionBeamVCard->plug( beamMenu );
2182 if ( Ir::supported() ) mActionBeam->plug( beamMenu ); 2186 if ( Ir::supported() ) mActionBeam->plug( beamMenu );
2183#endif 2187#endif
2184 fileMenu->insertSeparator(); 2188 fileMenu->insertSeparator();
2185 mActionQuit->plug( fileMenu ); 2189 mActionQuit->plug( fileMenu );
2186#ifdef _OL_IMPORT_ 2190#ifdef _OL_IMPORT_
2187 mActionImportOL->plug( ImportMenu ); 2191 mActionImportOL->plug( ImportMenu );
2188#endif 2192#endif
2189 // edit menu 2193 // edit menu
2190 mActionUndo->plug( editMenu ); 2194 mActionUndo->plug( editMenu );
2191 mActionRedo->plug( editMenu ); 2195 mActionRedo->plug( editMenu );
2192 editMenu->insertSeparator(); 2196 editMenu->insertSeparator();
2193 mActionCut->plug( editMenu ); 2197 mActionCut->plug( editMenu );
2194 mActionCopy->plug( editMenu ); 2198 mActionCopy->plug( editMenu );
2195 mActionPaste->plug( editMenu ); 2199 mActionPaste->plug( editMenu );
2196 mActionDelete->plug( editMenu ); 2200 mActionDelete->plug( editMenu );
2197 editMenu->insertSeparator(); 2201 editMenu->insertSeparator();
2198 mActionSelectAll->plug( editMenu ); 2202 mActionSelectAll->plug( editMenu );
2199 2203
2200 mActionSetFormattedName->plug( changeMenu ); 2204 mActionSetFormattedName->plug( changeMenu );
2201 mActionRemoveVoice->plug( changeMenu ); 2205 mActionRemoveVoice->plug( changeMenu );
2202 // settings menu 2206 // settings menu
2203//US special menuentry to configure the addressbook resources. On KDE 2207//US special menuentry to configure the addressbook resources. On KDE
2204// you do that through the control center !!! 2208// you do that through the control center !!!
2205 mActionConfigResources->plug( settingsMenu ); 2209 mActionConfigResources->plug( settingsMenu );
2206 settingsMenu->insertSeparator(); 2210 settingsMenu->insertSeparator();
2207 2211
2208 mActionConfigKAddressbook->plug( settingsMenu ); 2212 mActionConfigKAddressbook->plug( settingsMenu );
2209 2213
2210 if ( mIsPart ) { 2214 if ( mIsPart ) {
2211 //US not implemented yet 2215 //US not implemented yet
2212 //mActionConfigShortcuts->plug( settingsMenu ); 2216 //mActionConfigShortcuts->plug( settingsMenu );
2213 //mActionConfigureToolbars->plug( settingsMenu ); 2217 //mActionConfigureToolbars->plug( settingsMenu );