summaryrefslogtreecommitdiffabout
path: root/microkde/kdeui/kactionclasses.cpp
Unidiff
Diffstat (limited to 'microkde/kdeui/kactionclasses.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--microkde/kdeui/kactionclasses.cpp111
1 files changed, 56 insertions, 55 deletions
diff --git a/microkde/kdeui/kactionclasses.cpp b/microkde/kdeui/kactionclasses.cpp
index 82e6c8b..c611865 100644
--- a/microkde/kdeui/kactionclasses.cpp
+++ b/microkde/kdeui/kactionclasses.cpp
@@ -1,1090 +1,1091 @@
1/* This file is part of the KDE libraries 1/* This file is part of the KDE libraries
2 Copyright (C) 1999 Reginald Stadlbauer <reggie@kde.org> 2 Copyright (C) 1999 Reginald Stadlbauer <reggie@kde.org>
3 (C) 1999 Simon Hausmann <hausmann@kde.org> 3 (C) 1999 Simon Hausmann <hausmann@kde.org>
4 (C) 2000 Nicolas Hadacek <haadcek@kde.org> 4 (C) 2000 Nicolas Hadacek <haadcek@kde.org>
5 (C) 2000 Kurt Granroth <granroth@kde.org> 5 (C) 2000 Kurt Granroth <granroth@kde.org>
6 (C) 2000 Michael Koch <koch@kde.org> 6 (C) 2000 Michael Koch <koch@kde.org>
7 (C) 2001 Holger Freyther <freyther@kde.org> 7 (C) 2001 Holger Freyther <freyther@kde.org>
8 (C) 2002 Ellis Whitehead <ellis@kde.org> 8 (C) 2002 Ellis Whitehead <ellis@kde.org>
9 (C) 2002 Joseph Wenninger <jowenn@kde.org> 9 (C) 2002 Joseph Wenninger <jowenn@kde.org>
10 10
11 This library is free software; you can redistribute it and/or 11 This library is free software; you can redistribute it and/or
12 modify it under the terms of the GNU Library General Public 12 modify it under the terms of the GNU Library General Public
13 License version 2 as published by the Free Software Foundation. 13 License version 2 as published by the Free Software Foundation.
14 14
15 This library is distributed in the hope that it will be useful, 15 This library is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of 16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 Library General Public License for more details. 18 Library General Public License for more details.
19 19
20 You should have received a copy of the GNU Library General Public License 20 You should have received a copy of the GNU Library General Public License
21 along with this library; see the file COPYING.LIB. If not, write to 21 along with this library; see the file COPYING.LIB. If not, write to
22 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 22 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 Boston, MA 02111-1307, USA. 23 Boston, MA 02111-1307, USA.
24*/ 24*/
25 25
26#include "kactionclasses.h" 26#include "kactionclasses.h"
27 27
28#include <assert.h> 28#include <assert.h>
29 29
30#include <qfontdatabase.h> 30#include <qfontdatabase.h>
31#include <qobjectlist.h> 31#include <qobject.h>
32//US#include <qwhatsthis.h> 32//US#include <qwhatsthis.h>
33#include <qtimer.h> 33#include <qtimer.h>
34//Added by qt3to4:
35#include <Q3ValueList>
34 36
35//US#include <kaccel.h> 37//US#include <kaccel.h>
36//US#include <kapplication.h> 38//US#include <kapplication.h>
37#include <kconfig.h> 39#include <kconfig.h>
38#include <kdebug.h> 40#include <kdebug.h>
39//US#include <kfontcombo.h> 41//US#include <kfontcombo.h>
40//US#include <kmainwindow.h> 42//US#include <kmainwindow.h>
41//US#include <kmenubar.h> 43//US#include <kmenubar.h>
42//US#include <kpopupmenu.h> 44//US#include <kpopupmenu.h>
43#include <kcombobox.h> 45#include <kcombobox.h>
44#include <ktoolbar.h> 46#include <ktoolbar.h>
45#include <ktoolbarbutton.h> 47#include <ktoolbarbutton.h>
46#include <kurl.h> 48#include <kurl.h>
47 49
48//US added the following includefiles 50//US added the following includefiles
49#include <kconfigbase.h> 51#include <kconfigbase.h>
50#include <qwidget.h> 52#include <qwidget.h>
51#include <qpopupmenu.h> 53#include <q3popupmenu.h>
52#include <qmenubar.h> 54#include <qmenubar.h>
53#include <qmainwindow.h> 55#include <q3mainwindow.h>
54#include <qtoolbar.h> 56#include <q3toolbar.h>
55#include <qcombobox.h> 57#include <qcombobox.h>
56#include <qmainwindow.h> 58#include <q3mainwindow.h>
57 59#include <qcoreapplication.h>
58 60
59static QFontDatabase *fontDataBase = 0; 61static QFontDatabase *fontDataBase = 0;
60 62
61static void cleanupFontDatabase() 63static void cleanupFontDatabase()
62{ 64{
63 delete fontDataBase; 65 delete fontDataBase;
64 fontDataBase = 0; 66 fontDataBase = 0;
65} 67}
66 68
67static void get_fonts( QStringList &lst ) 69static void get_fonts( QStringList &lst )
68{ 70{
69 if ( !fontDataBase ) { 71 if ( !fontDataBase ) {
70 fontDataBase = new QFontDatabase(); 72 fontDataBase = new QFontDatabase();
71 qAddPostRoutine( cleanupFontDatabase ); 73 qAddPostRoutine( cleanupFontDatabase );
72 } 74 }
73 lst.clear(); 75 lst.clear();
74 QStringList families = fontDataBase->families(); 76 QStringList families = fontDataBase->families();
75 for ( QStringList::Iterator it = families.begin(); it != families.end(); ++it ) 77 for ( QStringList::Iterator it = families.begin(); it != families.end(); ++it )
76 { 78 {
77 QString family = *it; 79 QString family = *it;
78 if ( family. contains('-') ) // remove foundry 80 if ( family. contains('-') ) // remove foundry
79 family = family.right( family.length() - family.find('-' ) - 1); 81 family = family.right( family.length() - family.find('-' ) - 1);
80 if ( !lst.contains( family ) ) 82 if ( !lst.contains( family ) )
81 lst.append( family ); 83 lst.append( family );
82 } 84 }
83 lst.sort(); 85 lst.sort();
84} 86}
85 87
86static QValueList<int> get_standard_font_sizes() 88static Q3ValueList<int> get_standard_font_sizes()
87{ 89{
88 if ( !fontDataBase ) { 90 if ( !fontDataBase ) {
89 fontDataBase = new QFontDatabase(); 91 fontDataBase = new QFontDatabase();
90 qAddPostRoutine( cleanupFontDatabase ); 92 qAddPostRoutine( cleanupFontDatabase );
91 } 93 }
92 return fontDataBase->standardSizes(); 94 return fontDataBase->standardSizes();
93} 95}
94 96
95class KToggleAction::KToggleActionPrivate 97class KToggleAction::KToggleActionPrivate
96{ 98{
97public: 99public:
98 KToggleActionPrivate() 100 KToggleActionPrivate()
99 { 101 {
100 m_checked = false; 102 m_checked = false;
101 } 103 }
102 104
103 bool m_checked; 105 bool m_checked;
104 QString m_exclusiveGroup; 106 QString m_exclusiveGroup;
105}; 107};
106 108
107KToggleAction::KToggleAction( const QString& text, const KShortcut& cut, 109KToggleAction::KToggleAction( const QString& text, const KShortcut& cut,
108 QObject* parent, 110 QObject* parent,
109 const char* name ) 111 const char* name )
110 : KAction( text, cut, parent, name ) 112 : KAction( text, cut, parent, name )
111{ 113{
112 d = new KToggleActionPrivate; 114 d = new KToggleActionPrivate;
113} 115}
114 116
115KToggleAction::KToggleAction( const QString& text, const KShortcut& cut, 117KToggleAction::KToggleAction( const QString& text, const KShortcut& cut,
116 const QObject* receiver, const char* slot, 118 const QObject* receiver, const char* slot,
117 QObject* parent, const char* name ) 119 QObject* parent, const char* name )
118 : KAction( text, cut, receiver, slot, parent, name ) 120 : KAction( text, cut, receiver, slot, parent, name )
119{ 121{
120 d = new KToggleActionPrivate; 122 d = new KToggleActionPrivate;
121} 123}
122 124
123KToggleAction::KToggleAction( const QString& text, const QIconSet& pix, 125KToggleAction::KToggleAction( const QString& text, const QIcon& pix,
124 const KShortcut& cut, 126 const KShortcut& cut,
125 QObject* parent, const char* name ) 127 QObject* parent, const char* name )
126 : KAction( text, pix, cut, parent, name ) 128 : KAction( text, pix, cut, parent, name )
127{ 129{
128 d = new KToggleActionPrivate; 130 d = new KToggleActionPrivate;
129} 131}
130 132
131KToggleAction::KToggleAction( const QString& text, const QString& pix, 133KToggleAction::KToggleAction( const QString& text, const QString& pix,
132 const KShortcut& cut, 134 const KShortcut& cut,
133 QObject* parent, const char* name ) 135 QObject* parent, const char* name )
134 : KAction( text, pix, cut, parent, name ) 136 : KAction( text, pix, cut, parent, name )
135{ 137{
136 d = new KToggleActionPrivate; 138 d = new KToggleActionPrivate;
137} 139}
138 140
139KToggleAction::KToggleAction( const QString& text, const QIconSet& pix, 141KToggleAction::KToggleAction( const QString& text, const QIcon& pix,
140 const KShortcut& cut, 142 const KShortcut& cut,
141 const QObject* receiver, 143 const QObject* receiver,
142 const char* slot, QObject* parent, 144 const char* slot, QObject* parent,
143 const char* name ) 145 const char* name )
144 : KAction( text, pix, cut, receiver, slot, parent, name ) 146 : KAction( text, pix, cut, receiver, slot, parent, name )
145{ 147{
146 d = new KToggleActionPrivate; 148 d = new KToggleActionPrivate;
147} 149}
148 150
149KToggleAction::KToggleAction( const QString& text, const QString& pix, 151KToggleAction::KToggleAction( const QString& text, const QString& pix,
150 const KShortcut& cut, 152 const KShortcut& cut,
151 const QObject* receiver, 153 const QObject* receiver,
152 const char* slot, QObject* parent, 154 const char* slot, QObject* parent,
153 const char* name ) 155 const char* name )
154 : KAction( text, pix, cut, receiver, slot, parent, name ) 156 : KAction( text, pix, cut, receiver, slot, parent, name )
155{ 157{
156 d = new KToggleActionPrivate; 158 d = new KToggleActionPrivate;
157} 159}
158 160
159KToggleAction::KToggleAction( QObject* parent, const char* name ) 161KToggleAction::KToggleAction( QObject* parent, const char* name )
160 : KAction( parent, name ) 162 : KAction( parent, name )
161{ 163{
162 d = new KToggleActionPrivate; 164 d = new KToggleActionPrivate;
163} 165}
164 166
165KToggleAction::~KToggleAction() 167KToggleAction::~KToggleAction()
166{ 168{
167 delete d; 169 delete d;
168} 170}
169 171
170int KToggleAction::plug( QWidget* widget, int index ) 172int KToggleAction::plug( QWidget* widget, int index )
171{ 173{
172 if ( !widget->inherits("QPopupMenu") && !widget->inherits("KToolBar") ) 174 if ( !widget->inherits("Q3PopupMenu") && !widget->inherits("KToolBar") )
173 { 175 {
174 kdWarning() << "Can not plug KToggleAction in " << widget->className() << endl; 176 kdWarning() << "Can not plug KToggleAction in " << widget->className() << endl;
175 return -1; 177 return -1;
176 } 178 }
177 179
178/*US 180/*US
179 if (kapp && !kapp->authorizeKAction(name())) 181 if (kapp && !kapp->authorizeKAction(name()))
180 return -1; 182 return -1;
181*/ 183*/
182 184
183 int _index = KAction::plug( widget, index ); 185 int _index = KAction::plug( widget, index );
184 if ( _index == -1 ) 186 if ( _index == -1 )
185 return _index; 187 return _index;
186 188
187 if ( widget->inherits("QPopupMenu") ) 189 if ( widget->inherits("Q3PopupMenu") )
188 { 190 {
189 int id = itemId( _index ); 191 int id = itemId( _index );
190 192
191 static_cast<QPopupMenu*>(widget)->setItemChecked( id, d->m_checked ); 193 static_cast<Q3PopupMenu*>(widget)->setItemChecked( id, d->m_checked );
192 } else if ( widget->inherits( "KToolBar" ) ) { 194 } else if ( widget->inherits( "KToolBar" ) ) {
193 195
194 KToolBar *bar = static_cast<KToolBar *>( widget ); 196 KToolBar *bar = static_cast<KToolBar *>( widget );
195 197
196 bar->setToggle( itemId( _index ), true ); 198 bar->setToggle( itemId( _index ), true );
197 bar->setButton( itemId( _index ), isChecked() ); 199 bar->setButton( itemId( _index ), isChecked() );
198 } 200 }
199 201
200 return _index; 202 return _index;
201} 203}
202 204
203void KToggleAction::setChecked( bool c ) 205void KToggleAction::setChecked( bool c )
204{ 206{
205 if ( c == d->m_checked ) 207 if ( c == d->m_checked )
206 return; 208 return;
207 //kdDebug(129) << "KToggleAction::setChecked(" << c << ") " << this << " " << name() << endl; 209 //kdDebug(129) << "KToggleAction::setChecked(" << c << ") " << this << " " << name() << endl;
208 210
209 d->m_checked = c; 211 d->m_checked = c;
210 212
211 int len = containerCount(); 213 int len = containerCount();
212 214
213 for( int i = 0; i < len; ++i ) 215 for( int i = 0; i < len; ++i )
214 updateChecked( i ); 216 updateChecked( i );
215 217
216 if ( c && parent() && !exclusiveGroup().isEmpty() ) { 218 if ( c && parent() && !exclusiveGroup().isEmpty() ) {
217 const QObjectList *list = parent()->children(); 219 const QObjectList list = parent()->children();
218 if ( list ) { 220 if ( !list.empty() ) {
219 QObjectListIt it( *list ); 221 for(QObjectList::const_iterator it=list.begin();it!=list.end();++it) {
220 for( ; it.current(); ++it ) { 222 if ( (*it)->inherits( "KToggleAction" ) && (*it) != this &&
221 if ( it.current()->inherits( "KToggleAction" ) && it.current() != this && 223 static_cast<KToggleAction*>((*it))->exclusiveGroup() == exclusiveGroup() ) {
222 static_cast<KToggleAction*>(it.current())->exclusiveGroup() == exclusiveGroup() ) { 224 KToggleAction *a = static_cast<KToggleAction*>(*it);
223 KToggleAction *a = static_cast<KToggleAction*>(it.current());
224 if( a->isChecked() ) { 225 if( a->isChecked() ) {
225 a->setChecked( false ); 226 a->setChecked( false );
226 emit a->toggled( false ); 227 emit a->toggled( false );
227 } 228 }
228 } 229 }
229 } 230 }
230 } 231 }
231 } 232 }
232} 233}
233 234
234void KToggleAction::updateChecked( int id ) 235void KToggleAction::updateChecked( int id )
235{ 236{
236 QWidget *w = container( id ); 237 QWidget *w = container( id );
237 238
238 if ( w->inherits( "QPopupMenu" ) ) 239 if ( w->inherits( "Q3PopupMenu" ) )
239 static_cast<QPopupMenu*>(w)->setItemChecked( itemId( id ), d->m_checked ); 240 static_cast<Q3PopupMenu*>(w)->setItemChecked( itemId( id ), d->m_checked );
240 else if ( w->inherits( "QMenuBar" ) ) 241 else if ( w->inherits( "QMenuBar" ) )
241 static_cast<QMenuBar*>(w)->setItemChecked( itemId( id ), d->m_checked ); 242 static_cast<QMenuBar*>(w)->setItemChecked( itemId( id ), d->m_checked );
242 else if ( w->inherits( "KToolBar" ) ) 243 else if ( w->inherits( "KToolBar" ) )
243 { 244 {
244 QWidget* r = static_cast<KToolBar*>( w )->getButton( itemId( id ) ); 245 QWidget* r = static_cast<KToolBar*>( w )->getButton( itemId( id ) );
245 if ( r && r->inherits( "KToolBarButton" ) ) 246 if ( r && r->inherits( "KToolBarButton" ) )
246 static_cast<KToolBar*>( w )->setButton( itemId( id ), d->m_checked ); 247 static_cast<KToolBar*>( w )->setButton( itemId( id ), d->m_checked );
247 } 248 }
248} 249}
249 250
250void KToggleAction::slotActivated() 251void KToggleAction::slotActivated()
251{ 252{
252 setChecked( !isChecked() ); 253 setChecked( !isChecked() );
253 emit activated(); 254 emit activated();
254 emit toggled( isChecked() ); 255 emit toggled( isChecked() );
255} 256}
256 257
257bool KToggleAction::isChecked() const 258bool KToggleAction::isChecked() const
258{ 259{
259 return d->m_checked; 260 return d->m_checked;
260} 261}
261 262
262void KToggleAction::setExclusiveGroup( const QString& name ) 263void KToggleAction::setExclusiveGroup( const QString& name )
263{ 264{
264 d->m_exclusiveGroup = name; 265 d->m_exclusiveGroup = name;
265} 266}
266 267
267QString KToggleAction::exclusiveGroup() const 268QString KToggleAction::exclusiveGroup() const
268{ 269{
269 return d->m_exclusiveGroup; 270 return d->m_exclusiveGroup;
270} 271}
271 272
272 273
273KRadioAction::KRadioAction( const QString& text, const KShortcut& cut, 274KRadioAction::KRadioAction( const QString& text, const KShortcut& cut,
274 QObject* parent, const char* name ) 275 QObject* parent, const char* name )
275: KToggleAction( text, cut, parent, name ) 276: KToggleAction( text, cut, parent, name )
276{ 277{
277} 278}
278 279
279KRadioAction::KRadioAction( const QString& text, const KShortcut& cut, 280KRadioAction::KRadioAction( const QString& text, const KShortcut& cut,
280 const QObject* receiver, const char* slot, 281 const QObject* receiver, const char* slot,
281 QObject* parent, const char* name ) 282 QObject* parent, const char* name )
282: KToggleAction( text, cut, receiver, slot, parent, name ) 283: KToggleAction( text, cut, receiver, slot, parent, name )
283{ 284{
284} 285}
285 286
286KRadioAction::KRadioAction( const QString& text, const QIconSet& pix, 287KRadioAction::KRadioAction( const QString& text, const QIcon& pix,
287 const KShortcut& cut, 288 const KShortcut& cut,
288 QObject* parent, const char* name ) 289 QObject* parent, const char* name )
289: KToggleAction( text, pix, cut, parent, name ) 290: KToggleAction( text, pix, cut, parent, name )
290{ 291{
291} 292}
292 293
293KRadioAction::KRadioAction( const QString& text, const QString& pix, 294KRadioAction::KRadioAction( const QString& text, const QString& pix,
294 const KShortcut& cut, 295 const KShortcut& cut,
295 QObject* parent, const char* name ) 296 QObject* parent, const char* name )
296: KToggleAction( text, pix, cut, parent, name ) 297: KToggleAction( text, pix, cut, parent, name )
297{ 298{
298} 299}
299 300
300KRadioAction::KRadioAction( const QString& text, const QIconSet& pix, 301KRadioAction::KRadioAction( const QString& text, const QIcon& pix,
301 const KShortcut& cut, 302 const KShortcut& cut,
302 const QObject* receiver, const char* slot, 303 const QObject* receiver, const char* slot,
303 QObject* parent, const char* name ) 304 QObject* parent, const char* name )
304: KToggleAction( text, pix, cut, receiver, slot, parent, name ) 305: KToggleAction( text, pix, cut, receiver, slot, parent, name )
305{ 306{
306} 307}
307 308
308KRadioAction::KRadioAction( const QString& text, const QString& pix, 309KRadioAction::KRadioAction( const QString& text, const QString& pix,
309 const KShortcut& cut, 310 const KShortcut& cut,
310 const QObject* receiver, const char* slot, 311 const QObject* receiver, const char* slot,
311 QObject* parent, const char* name ) 312 QObject* parent, const char* name )
312: KToggleAction( text, pix, cut, receiver, slot, parent, name ) 313: KToggleAction( text, pix, cut, receiver, slot, parent, name )
313{ 314{
314} 315}
315 316
316KRadioAction::KRadioAction( QObject* parent, const char* name ) 317KRadioAction::KRadioAction( QObject* parent, const char* name )
317: KToggleAction( parent, name ) 318: KToggleAction( parent, name )
318{ 319{
319} 320}
320 321
321void KRadioAction::slotActivated() 322void KRadioAction::slotActivated()
322{ 323{
323 if ( isChecked() ) 324 if ( isChecked() )
324 { 325 {
325 const QObject *senderObj = sender(); 326 const QObject *senderObj = sender();
326 327
327 if ( !senderObj || !senderObj->inherits( "KToolBarButton" ) ) 328 if ( !senderObj || !senderObj->inherits( "KToolBarButton" ) )
328 return; 329 return;
329 330
330 qDebug("KRadioAction::slotActivated has to be fixed"); 331 qDebug("KRadioAction::slotActivated has to be fixed");
331 const_cast<KToolBarButton *>( static_cast<const KToolBarButton *>( senderObj ) )->on( true ); 332 const_cast<KToolBarButton *>( static_cast<const KToolBarButton *>( senderObj ) )->on( true );
332 333
333 return; 334 return;
334 } 335 }
335 336
336 KToggleAction::slotActivated(); 337 KToggleAction::slotActivated();
337} 338}
338 339
339class KSelectAction::KSelectActionPrivate 340class KSelectAction::KSelectActionPrivate
340{ 341{
341public: 342public:
342 KSelectActionPrivate() 343 KSelectActionPrivate()
343 { 344 {
344 m_edit = false; 345 m_edit = false;
345 m_menuAccelsEnabled = true; 346 m_menuAccelsEnabled = true;
346 m_menu = 0; 347 m_menu = 0;
347 m_current = -1; 348 m_current = -1;
348 m_comboWidth = -1; 349 m_comboWidth = -1;
349 } 350 }
350 bool m_edit; 351 bool m_edit;
351 bool m_menuAccelsEnabled; 352 bool m_menuAccelsEnabled;
352 QPopupMenu *m_menu; 353 Q3PopupMenu *m_menu;
353 int m_current; 354 int m_current;
354 int m_comboWidth; 355 int m_comboWidth;
355 QStringList m_list; 356 QStringList m_list;
356 357
357 QString makeMenuText( const QString &_text ) 358 QString makeMenuText( const QString &_text )
358 { 359 {
359 if ( m_menuAccelsEnabled ) 360 if ( m_menuAccelsEnabled )
360 return _text; 361 return _text;
361 QString text = _text; 362 QString text = _text;
362 uint i = 0; 363 uint i = 0;
363 while ( i < text.length() ) { 364 while ( i < text.length() ) {
364 if ( text.at( i ) == '&' ) { 365 if ( text.at( i ) == '&' ) {
365 text.insert( i, '&' ); 366 text.insert( i, '&' );
366 i += 2; 367 i += 2;
367 } 368 }
368 else 369 else
369 ++i; 370 ++i;
370 } 371 }
371 return text; 372 return text;
372 } 373 }
373}; 374};
374 375
375KSelectAction::KSelectAction( const QString& text, const KShortcut& cut, 376KSelectAction::KSelectAction( const QString& text, const KShortcut& cut,
376 QObject* parent, const char* name ) 377 QObject* parent, const char* name )
377 : KAction( text, cut, parent, name ) 378 : KAction( text, cut, parent, name )
378{ 379{
379 d = new KSelectActionPrivate; 380 d = new KSelectActionPrivate;
380} 381}
381 382
382KSelectAction::KSelectAction( const QString& text, const KShortcut& cut, 383KSelectAction::KSelectAction( const QString& text, const KShortcut& cut,
383 const QObject* receiver, const char* slot, 384 const QObject* receiver, const char* slot,
384 QObject* parent, const char* name ) 385 QObject* parent, const char* name )
385 : KAction( text, cut, receiver, slot, parent, name ) 386 : KAction( text, cut, receiver, slot, parent, name )
386{ 387{
387 d = new KSelectActionPrivate; 388 d = new KSelectActionPrivate;
388} 389}
389 390
390KSelectAction::KSelectAction( const QString& text, const QIconSet& pix, 391KSelectAction::KSelectAction( const QString& text, const QIcon& pix,
391 const KShortcut& cut, 392 const KShortcut& cut,
392 QObject* parent, const char* name ) 393 QObject* parent, const char* name )
393 : KAction( text, pix, cut, parent, name ) 394 : KAction( text, pix, cut, parent, name )
394{ 395{
395 d = new KSelectActionPrivate; 396 d = new KSelectActionPrivate;
396} 397}
397 398
398KSelectAction::KSelectAction( const QString& text, const QString& pix, 399KSelectAction::KSelectAction( const QString& text, const QString& pix,
399 const KShortcut& cut, 400 const KShortcut& cut,
400 QObject* parent, const char* name ) 401 QObject* parent, const char* name )
401 : KAction( text, pix, cut, parent, name ) 402 : KAction( text, pix, cut, parent, name )
402{ 403{
403 d = new KSelectActionPrivate; 404 d = new KSelectActionPrivate;
404} 405}
405 406
406KSelectAction::KSelectAction( const QString& text, const QIconSet& pix, 407KSelectAction::KSelectAction( const QString& text, const QIcon& pix,
407 const KShortcut& cut, 408 const KShortcut& cut,
408 const QObject* receiver, 409 const QObject* receiver,
409 const char* slot, QObject* parent, 410 const char* slot, QObject* parent,
410 const char* name ) 411 const char* name )
411 : KAction( text, pix, cut, receiver, slot, parent, name ) 412 : KAction( text, pix, cut, receiver, slot, parent, name )
412{ 413{
413 d = new KSelectActionPrivate; 414 d = new KSelectActionPrivate;
414} 415}
415 416
416KSelectAction::KSelectAction( const QString& text, const QString& pix, 417KSelectAction::KSelectAction( const QString& text, const QString& pix,
417 const KShortcut& cut, 418 const KShortcut& cut,
418 const QObject* receiver, 419 const QObject* receiver,
419 const char* slot, QObject* parent, 420 const char* slot, QObject* parent,
420 const char* name ) 421 const char* name )
421 : KAction( text, pix, cut, receiver, slot, parent, name ) 422 : KAction( text, pix, cut, receiver, slot, parent, name )
422{ 423{
423 d = new KSelectActionPrivate; 424 d = new KSelectActionPrivate;
424} 425}
425 426
426KSelectAction::KSelectAction( QObject* parent, const char* name ) 427KSelectAction::KSelectAction( QObject* parent, const char* name )
427 : KAction( parent, name ) 428 : KAction( parent, name )
428{ 429{
429 d = new KSelectActionPrivate; 430 d = new KSelectActionPrivate;
430} 431}
431 432
432KSelectAction::~KSelectAction() 433KSelectAction::~KSelectAction()
433{ 434{
434 assert(d); 435 assert(d);
435 delete d->m_menu; 436 delete d->m_menu;
436 delete d; d = 0; 437 delete d; d = 0;
437} 438}
438 439
439void KSelectAction::setCurrentItem( int id ) 440void KSelectAction::setCurrentItem( int id )
440{ 441{
441 if ( id >= (int)d->m_list.count() ) { 442 if ( id >= (int)d->m_list.count() ) {
442 ASSERT(id < (int)d->m_list.count()); 443 Q_ASSERT(id < (int)d->m_list.count());
443 return; 444 return;
444 } 445 }
445 446
446 if ( d->m_menu ) 447 if ( d->m_menu )
447 { 448 {
448 if ( d->m_current >= 0 ) 449 if ( d->m_current >= 0 )
449 d->m_menu->setItemChecked( d->m_current, false ); 450 d->m_menu->setItemChecked( d->m_current, false );
450 if ( id >= 0 ) 451 if ( id >= 0 )
451 { 452 {
452 //US qDebug("KSelectAction::setCurrentItem %i", id); 453 //US qDebug("KSelectAction::setCurrentItem %i", id);
453 d->m_menu->setItemChecked( id, true ); 454 d->m_menu->setItemChecked( id, true );
454 } 455 }
455 } 456 }
456 457
457 d->m_current = id; 458 d->m_current = id;
458 459
459 int len = containerCount(); 460 int len = containerCount();
460 461
461 for( int i = 0; i < len; ++i ) 462 for( int i = 0; i < len; ++i )
462 updateCurrentItem( i ); 463 updateCurrentItem( i );
463 464
464 // emit KAction::activated(); 465 // emit KAction::activated();
465 // emit activated( currentItem() ); 466 // emit activated( currentItem() );
466 // emit activated( currentText() ); 467 // emit activated( currentText() );
467} 468}
468 469
469void KSelectAction::setComboWidth( int width ) 470void KSelectAction::setComboWidth( int width )
470{ 471{
471 if ( width < 0 ) 472 if ( width < 0 )
472 return; 473 return;
473 474
474 d->m_comboWidth=width; 475 d->m_comboWidth=width;
475 476
476 int len = containerCount(); 477 int len = containerCount();
477 478
478 for( int i = 0; i < len; ++i ) 479 for( int i = 0; i < len; ++i )
479 updateComboWidth( i ); 480 updateComboWidth( i );
480 481
481} 482}
482QPopupMenu* KSelectAction::popupMenu() const 483Q3PopupMenu* KSelectAction::popupMenu() const
483{ 484{
484 kdDebug(129) << "KSelectAction::popupMenu()" << endl; // remove -- ellis 485 kdDebug(129) << "KSelectAction::popupMenu()" << endl; // remove -- ellis
485 if ( !d->m_menu ) 486 if ( !d->m_menu )
486 { 487 {
487//US d->m_menu = new KPopupMenu(0L, "KSelectAction::popupMenu()"); 488//US d->m_menu = new KPopupMenu(0L, "KSelectAction::popupMenu()");
488 d->m_menu = new QPopupMenu(0L, "QSelectAction::popupMenu()"); 489 d->m_menu = new Q3PopupMenu(0L, "QSelectAction::popupMenu()");
489 setupMenu(); 490 setupMenu();
490 if ( d->m_current >= 0 ) 491 if ( d->m_current >= 0 )
491 d->m_menu->setItemChecked( d->m_current, true ); 492 d->m_menu->setItemChecked( d->m_current, true );
492 } 493 }
493 494
494 return d->m_menu; 495 return d->m_menu;
495} 496}
496 497
497void KSelectAction::setupMenu() const 498void KSelectAction::setupMenu() const
498{ 499{
499 if ( !d->m_menu ) 500 if ( !d->m_menu )
500 return; 501 return;
501 d->m_menu->clear(); 502 d->m_menu->clear();
502 503
503 QStringList::ConstIterator it = d->m_list.begin(); 504 QStringList::ConstIterator it = d->m_list.begin();
504 for( uint id = 0; it != d->m_list.end(); ++it, ++id ) { 505 for( uint id = 0; it != d->m_list.end(); ++it, ++id ) {
505 QString text = *it; 506 QString text = *it;
506 if ( !text.isEmpty() ) 507 if ( !text.isEmpty() )
507 d->m_menu->insertItem( d->makeMenuText( text ), this, SLOT( slotActivated( int ) ), 0, id ); 508 d->m_menu->insertItem( d->makeMenuText( text ), this, SLOT( slotActivated( int ) ), 0, id );
508 else 509 else
509 d->m_menu->insertSeparator(); 510 d->m_menu->insertSeparator();
510 } 511 }
511} 512}
512 513
513void KSelectAction::changeItem( int index, const QString& text ) 514void KSelectAction::changeItem( int index, const QString& text )
514{ 515{
515 if ( index < 0 || index >= (int)d->m_list.count() ) 516 if ( index < 0 || index >= (int)d->m_list.count() )
516 { 517 {
517 kdWarning() << "KSelectAction::changeItem Index out of scope" << endl; 518 kdWarning() << "KSelectAction::changeItem Index out of scope" << endl;
518 return; 519 return;
519 } 520 }
520 521
521 d->m_list[ index ] = text; 522 d->m_list[ index ] = text;
522 523
523 if ( d->m_menu ) 524 if ( d->m_menu )
524 d->m_menu->changeItem( index, d->makeMenuText( text ) ); 525 d->m_menu->changeItem( index, d->makeMenuText( text ) );
525 526
526 int len = containerCount(); 527 int len = containerCount();
527 for( int i = 0; i < len; ++i ) 528 for( int i = 0; i < len; ++i )
528 changeItem( i, index, text ); 529 changeItem( i, index, text );
529} 530}
530 531
531void KSelectAction::changeItem( int id, int index, const QString& text) 532void KSelectAction::changeItem( int id, int index, const QString& text)
532{ 533{
533 if ( index < 0 ) 534 if ( index < 0 )
534 return; 535 return;
535 536
536 QWidget* w = container( id ); 537 QWidget* w = container( id );
537 if ( w->inherits( "KToolBar" ) ) 538 if ( w->inherits( "KToolBar" ) )
538 { 539 {
539 QWidget* r = (static_cast<KToolBar*>( w ))->getWidget( itemId( id ) ); 540 QWidget* r = (static_cast<KToolBar*>( w ))->getWidget( itemId( id ) );
540 if ( r->inherits( "QComboBox" ) ) 541 if ( r->inherits( "QComboBox" ) )
541 { 542 {
542 QComboBox *b = static_cast<QComboBox*>( r ); 543 QComboBox *b = static_cast<QComboBox*>( r );
543 b->changeItem(text, index ); 544 b->changeItem(text, index );
544 } 545 }
545 } 546 }
546 547
547} 548}
548 549
549void KSelectAction::setItems( const QStringList &lst ) 550void KSelectAction::setItems( const QStringList &lst )
550{ 551{
551 kdDebug(129) << "KAction::setItems()" << endl; // remove -- ellis 552 kdDebug(129) << "KAction::setItems()" << endl; // remove -- ellis
552 d->m_list = lst; 553 d->m_list = lst;
553 d->m_current = -1; 554 d->m_current = -1;
554 555
555 setupMenu(); 556 setupMenu();
556 557
557 int len = containerCount(); 558 int len = containerCount();
558 for( int i = 0; i < len; ++i ) 559 for( int i = 0; i < len; ++i )
559 updateItems( i ); 560 updateItems( i );
560 561
561 // Disable if empty and not editable 562 // Disable if empty and not editable
562 setEnabled ( lst.count() > 0 || d->m_edit ); 563 setEnabled ( lst.count() > 0 || d->m_edit );
563} 564}
564 565
565QStringList KSelectAction::items() const 566QStringList KSelectAction::items() const
566{ 567{
567 return d->m_list; 568 return d->m_list;
568} 569}
569 570
570QString KSelectAction::currentText() const 571QString KSelectAction::currentText() const
571{ 572{
572 if ( currentItem() < 0 ) 573 if ( currentItem() < 0 )
573 return QString::null; 574 return QString::null;
574 575
575 return d->m_list[ currentItem() ]; 576 return d->m_list[ currentItem() ];
576} 577}
577 578
578int KSelectAction::currentItem() const 579int KSelectAction::currentItem() const
579{ 580{
580 return d->m_current; 581 return d->m_current;
581} 582}
582 583
583void KSelectAction::updateCurrentItem( int id ) 584void KSelectAction::updateCurrentItem( int id )
584{ 585{
585 if ( d->m_current < 0 ) 586 if ( d->m_current < 0 )
586 return; 587 return;
587 588
588 QWidget* w = container( id ); 589 QWidget* w = container( id );
589 if ( w->inherits( "KToolBar" ) ) { 590 if ( w->inherits( "KToolBar" ) ) {
590 QWidget* r = static_cast<KToolBar*>( w )->getWidget( itemId( id ) ); 591 QWidget* r = static_cast<KToolBar*>( w )->getWidget( itemId( id ) );
591 if ( r->inherits( "QComboBox" ) ) { 592 if ( r->inherits( "QComboBox" ) ) {
592 QComboBox *b = static_cast<QComboBox*>( r ); 593 QComboBox *b = static_cast<QComboBox*>( r );
593 b->setCurrentItem( d->m_current ); 594 b->setCurrentItem( d->m_current );
594 } 595 }
595 } 596 }
596} 597}
597 598
598int KSelectAction::comboWidth() const 599int KSelectAction::comboWidth() const
599{ 600{
600 return d->m_comboWidth; 601 return d->m_comboWidth;
601} 602}
602 603
603void KSelectAction::updateComboWidth( int id ) 604void KSelectAction::updateComboWidth( int id )
604{ 605{
605 QWidget* w = container( id ); 606 QWidget* w = container( id );
606 if ( w->inherits( "KToolBar" ) ) { 607 if ( w->inherits( "KToolBar" ) ) {
607 QWidget* r = static_cast<KToolBar*>( w )->getWidget( itemId( id ) ); 608 QWidget* r = static_cast<KToolBar*>( w )->getWidget( itemId( id ) );
608 if ( r->inherits( "QComboBox" ) ) { 609 if ( r->inherits( "QComboBox" ) ) {
609 QComboBox *cb = static_cast<QComboBox*>( r ); 610 QComboBox *cb = static_cast<QComboBox*>( r );
610 cb->setMinimumWidth( d->m_comboWidth ); 611 cb->setMinimumWidth( d->m_comboWidth );
611 cb->setMaximumWidth( d->m_comboWidth ); 612 cb->setMaximumWidth( d->m_comboWidth );
612 } 613 }
613 } 614 }
614} 615}
615 616
616void KSelectAction::updateItems( int id ) 617void KSelectAction::updateItems( int id )
617{ 618{
618 kdDebug(129) << "KAction::updateItems( " << id << ", lst )" << endl; // remove -- ellis 619 kdDebug(129) << "KAction::updateItems( " << id << ", lst )" << endl; // remove -- ellis
619 620
620 QWidget* w = container( id ); 621 QWidget* w = container( id );
621 if ( w->inherits( "KToolBar" ) ) { 622 if ( w->inherits( "KToolBar" ) ) {
622 623
623 QWidget* r = static_cast<KToolBar*>( w )->getWidget( itemId( id ) ); 624 QWidget* r = static_cast<KToolBar*>( w )->getWidget( itemId( id ) );
624 if ( r->inherits( "QComboBox" ) ) { 625 if ( r->inherits( "QComboBox" ) ) {
625 QComboBox *cb = static_cast<QComboBox*>( r ); 626 QComboBox *cb = static_cast<QComboBox*>( r );
626 cb->clear(); 627 cb->clear();
627 QStringList lst = comboItems(); 628 QStringList lst = comboItems();
628 QStringList::ConstIterator it = lst.begin(); 629 QStringList::ConstIterator it = lst.begin();
629 for( ; it != lst.end(); ++it ) 630 for( ; it != lst.end(); ++it )
630 cb->insertItem( *it ); 631 cb->insertItem( *it );
631 // Ok, this currently doesn't work due to a bug in QComboBox 632 // Ok, this currently doesn't work due to a bug in QComboBox
632 // (the sizehint is cached for ever and never recalculated) 633 // (the sizehint is cached for ever and never recalculated)
633 // Bug reported (against Qt 2.3.1). 634 // Bug reported (against Qt 2.3.1).
634 cb->setMinimumWidth( cb->sizeHint().width() ); 635 cb->setMinimumWidth( cb->sizeHint().width() );
635 } 636 }
636 } 637 }
637 638
638} 639}
639 640
640int KSelectAction::plug( QWidget *widget, int index ) 641int KSelectAction::plug( QWidget *widget, int index )
641{ 642{
642//US if (kapp && !kapp->authorizeKAction(name())) 643//US if (kapp && !kapp->authorizeKAction(name()))
643//US return -1; 644//US return -1;
644 645
645 kdDebug(129) << "KAction::plug( " << widget << ", " << index << " )" << endl; // remove -- ellis 646 kdDebug(129) << "KAction::plug( " << widget << ", " << index << " )" << endl; // remove -- ellis
646 if ( widget->inherits("QPopupMenu") ) 647 if ( widget->inherits("Q3PopupMenu") )
647 { 648 {
648 // Create the PopupMenu and store it in m_menu 649 // Create the PopupMenu and store it in m_menu
649 (void)popupMenu(); 650 (void)popupMenu();
650 651
651 QPopupMenu* menu = static_cast<QPopupMenu*>( widget ); 652 Q3PopupMenu* menu = static_cast<Q3PopupMenu*>( widget );
652 int id; 653 int id;
653 654
654 if ( hasIconSet() ) 655 if ( hasIconSet() )
655 id = menu->insertItem( iconSet(), text(), d->m_menu, -1, index ); 656 id = menu->insertItem( iconSet(), text(), d->m_menu, -1, index );
656 else 657 else
657 id = menu->insertItem( text(), d->m_menu, -1, index ); 658 id = menu->insertItem( text(), d->m_menu, -1, index );
658 659
659 if ( !isEnabled() ) 660 if ( !isEnabled() )
660 menu->setItemEnabled( id, false ); 661 menu->setItemEnabled( id, false );
661 662
662 QString wth = whatsThis(); 663 QString wth = whatsThis();
663 if ( !wth.isEmpty() ) 664 if ( !wth.isEmpty() )
664 menu->setWhatsThis( id, wth ); 665 menu->setWhatsThis( id, wth );
665 666
666 addContainer( menu, id ); 667 addContainer( menu, id );
667 connect( menu, SIGNAL( destroyed() ), this, SLOT( slotDestroyed() ) ); 668 connect( menu, SIGNAL( destroyed() ), this, SLOT( slotDestroyed() ) );
668 669
669 return containerCount() - 1; 670 return containerCount() - 1;
670 } 671 }
671 else if ( widget->inherits("KToolBar") ) 672 else if ( widget->inherits("KToolBar") )
672 { 673 {
673 674
674 KToolBar* bar = static_cast<KToolBar*>( widget ); 675 KToolBar* bar = static_cast<KToolBar*>( widget );
675 int id_ = KAction::getToolButtonID(); 676 int id_ = KAction::getToolButtonID();
676 bar->insertCombo( comboItems(), id_, isEditable(), 677 bar->insertCombo( comboItems(), id_, isEditable(),
677 SIGNAL( activated( const QString & ) ), this, 678 SIGNAL( activated( const QString & ) ), this,
678 SLOT( slotActivated( const QString & ) ), isEnabled(), 679 SLOT( slotActivated( const QString & ) ), isEnabled(),
679 toolTip(), -1, index ); 680 toolTip(), -1, index );
680 681
681 KComboBox *cb = bar->getCombo( id_ ); 682 KComboBox *cb = bar->getCombo( id_ );
682 if ( cb ) 683 if ( cb )
683 { 684 {
684 cb->setMaximumHeight( 34 ); 685 cb->setMaximumHeight( 34 );
685 if (!isEditable()) cb->setFocusPolicy(QWidget::NoFocus); 686 if (!isEditable()) cb->setFocusPolicy(Qt::NoFocus);
686 cb->setMinimumWidth( cb->sizeHint().width() ); 687 cb->setMinimumWidth( cb->sizeHint().width() );
687 if ( d->m_comboWidth > 0 ) 688 if ( d->m_comboWidth > 0 )
688 { 689 {
689 cb->setMinimumWidth( d->m_comboWidth ); 690 cb->setMinimumWidth( d->m_comboWidth );
690 cb->setMaximumWidth( d->m_comboWidth ); 691 cb->setMaximumWidth( d->m_comboWidth );
691 } 692 }
692 cb->setInsertionPolicy( QComboBox::NoInsertion ); 693 cb->setInsertionPolicy( QComboBox::NoInsertion );
693//US QWhatsThis::add( cb, whatsThis() ); 694//US QWhatsThis::add( cb, whatsThis() );
694 } 695 }
695 696
696 addContainer( bar, id_ ); 697 addContainer( bar, id_ );
697 698
698 connect( bar, SIGNAL( destroyed() ), this, SLOT( slotDestroyed() ) ); 699 connect( bar, SIGNAL( destroyed() ), this, SLOT( slotDestroyed() ) );
699 700
700 updateCurrentItem( containerCount() - 1 ); 701 updateCurrentItem( containerCount() - 1 );
701 702
702 return containerCount() - 1; 703 return containerCount() - 1;
703 704
704 } 705 }
705 kdWarning() << "Can not plug KAction in " << widget->className() << endl; 706 kdWarning() << "Can not plug KAction in " << widget->className() << endl;
706 return -1; 707 return -1;
707} 708}
708 709
709QStringList KSelectAction::comboItems() const 710QStringList KSelectAction::comboItems() const
710{ 711{
711 //qDebug("KSelectAction::comboItems has to be fixed"); 712 //qDebug("KSelectAction::comboItems has to be fixed");
712 if( d->m_menuAccelsEnabled ) 713 if( d->m_menuAccelsEnabled )
713 { 714 {
714 QStringList lst; 715 QStringList lst;
715 QStringList::ConstIterator it = d->m_list.begin(); 716 QStringList::ConstIterator it = d->m_list.begin();
716 for( ; it != d->m_list.end(); ++it ) 717 for( ; it != d->m_list.end(); ++it )
717 { 718 {
718 QString item = *it; 719 QString item = *it;
719 int i = item.find( '&' ); 720 int i = item.find( '&' );
720 if ( i > -1 ) 721 if ( i > -1 )
721 item = item.remove( i, 1 ); 722 item = item.remove( i, 1 );
722 lst.append( item ); 723 lst.append( item );
723 } 724 }
724 return lst; 725 return lst;
725 } 726 }
726 else 727 else
727 { 728 {
728 return d->m_list; 729 return d->m_list;
729 } 730 }
730} 731}
731 732
732void KSelectAction::clear() 733void KSelectAction::clear()
733{ 734{
734 if ( d->m_menu ) 735 if ( d->m_menu )
735 d->m_menu->clear(); 736 d->m_menu->clear();
736 737
737 int len = containerCount(); 738 int len = containerCount();
738 for( int i = 0; i < len; ++i ) 739 for( int i = 0; i < len; ++i )
739 updateClear( i ); 740 updateClear( i );
740} 741}
741 742
742void KSelectAction::updateClear( int id ) 743void KSelectAction::updateClear( int id )
743{ 744{
744 745
745 QWidget* w = container( id ); 746 QWidget* w = container( id );
746 if ( w->inherits( "KToolBar" ) ) { 747 if ( w->inherits( "KToolBar" ) ) {
747 QWidget* r = static_cast<KToolBar*>( w )->getWidget( itemId( id ) ); 748 QWidget* r = static_cast<KToolBar*>( w )->getWidget( itemId( id ) );
748 if ( r->inherits( "QComboBox" ) ) { 749 if ( r->inherits( "QComboBox" ) ) {
749 QComboBox *b = static_cast<QComboBox*>( r ); 750 QComboBox *b = static_cast<QComboBox*>( r );
750 b->clear(); 751 b->clear();
751 } 752 }
752 } 753 }
753} 754}
754 755
755void KSelectAction::slotActivated( int id ) 756void KSelectAction::slotActivated( int id )
756{ 757{
757 if ( d->m_current == id ) 758 if ( d->m_current == id )
758 return; 759 return;
759 760
760 setCurrentItem( id ); 761 setCurrentItem( id );
761 // Delay this. Especially useful when the slot connected to activated() will re-create 762 // Delay this. Especially useful when the slot connected to activated() will re-create
762 // the menu, e.g. in the recent files action. This prevents a crash. 763 // the menu, e.g. in the recent files action. This prevents a crash.
763 764
764 QTimer::singleShot( 0, this, SLOT( slotActivated() ) ); 765 QTimer::singleShot( 0, this, SLOT( slotActivated() ) );
765} 766}
766 767
767void KSelectAction::slotActivated( const QString &text ) 768void KSelectAction::slotActivated( const QString &text )
768{ 769{
769 if ( isEditable() ) 770 if ( isEditable() )
770 { 771 {
771 QStringList lst = items(); 772 QStringList lst = items();
772 if(lst.contains(text)==0) 773 if(lst.contains(text)==0)
773 { 774 {
774 lst.append( text ); 775 lst.append( text );
775 setItems( lst ); 776 setItems( lst );
776 } 777 }
777 } 778 }
778 779
779 int i = items().findIndex( text ); 780 int i = items().findIndex( text );
780 if ( i > -1 ) 781 if ( i > -1 )
781 setCurrentItem( i ); 782 setCurrentItem( i );
782 else 783 else
783 setCurrentItem( comboItems().findIndex( text ) ); 784 setCurrentItem( comboItems().findIndex( text ) );
784 // Delay this. Especially useful when the slot connected to activated() will re-create 785 // Delay this. Especially useful when the slot connected to activated() will re-create
785 // the menu, e.g. in the recent files action. This prevents a crash. 786 // the menu, e.g. in the recent files action. This prevents a crash.
786 787
787 QTimer::singleShot( 0, this, SLOT( slotActivated() ) ); 788 QTimer::singleShot( 0, this, SLOT( slotActivated() ) );
788} 789}
789 790
790void KSelectAction::slotActivated() 791void KSelectAction::slotActivated()
791{ 792{
792 KAction::slotActivated(); 793 KAction::slotActivated();
793 kdDebug(129) << "KSelectAction::slotActivated currentItem=" << currentItem() << " currentText=" << currentText() << endl; 794 kdDebug(129) << "KSelectAction::slotActivated currentItem=" << currentItem() << " currentText=" << currentText() << endl;
794 emit activated( currentItem() ); 795 emit activated( currentItem() );
795 emit activated( currentText() ); 796 emit activated( currentText() );
796} 797}
797 798
798void KSelectAction::setEditable( bool edit ) 799void KSelectAction::setEditable( bool edit )
799{ 800{
800 d->m_edit = edit; 801 d->m_edit = edit;
801} 802}
802 803
803bool KSelectAction::isEditable() const 804bool KSelectAction::isEditable() const
804{ 805{
805 return d->m_edit; 806 return d->m_edit;
806} 807}
807 808
808void KSelectAction::setRemoveAmpersandsInCombo( bool b ) 809void KSelectAction::setRemoveAmpersandsInCombo( bool b )
809{ 810{
810 setMenuAccelsEnabled( b ); 811 setMenuAccelsEnabled( b );
811} 812}
812 813
813bool KSelectAction::removeAmpersandsInCombo() const 814bool KSelectAction::removeAmpersandsInCombo() const
814{ 815{
815 return menuAccelsEnabled( ); 816 return menuAccelsEnabled( );
816} 817}
817 818
818void KSelectAction::setMenuAccelsEnabled( bool b ) 819void KSelectAction::setMenuAccelsEnabled( bool b )
819{ 820{
820 d->m_menuAccelsEnabled = b; 821 d->m_menuAccelsEnabled = b;
821} 822}
822 823
823bool KSelectAction::menuAccelsEnabled() const 824bool KSelectAction::menuAccelsEnabled() const
824{ 825{
825 return d->m_menuAccelsEnabled; 826 return d->m_menuAccelsEnabled;
826} 827}
827 828
828class KListAction::KListActionPrivate 829class KListAction::KListActionPrivate
829{ 830{
830public: 831public:
831 KListActionPrivate() 832 KListActionPrivate()
832 { 833 {
833 m_current = 0; 834 m_current = 0;
834 } 835 }
835 int m_current; 836 int m_current;
836}; 837};
837 838
838KListAction::KListAction( const QString& text, const KShortcut& cut, 839KListAction::KListAction( const QString& text, const KShortcut& cut,
839 QObject* parent, const char* name ) 840 QObject* parent, const char* name )
840 : KSelectAction( text, cut, parent, name ) 841 : KSelectAction( text, cut, parent, name )
841{ 842{
842 d = new KListActionPrivate; 843 d = new KListActionPrivate;
843} 844}
844 845
845KListAction::KListAction( const QString& text, const KShortcut& cut, 846KListAction::KListAction( const QString& text, const KShortcut& cut,
846 const QObject* receiver, const char* slot, 847 const QObject* receiver, const char* slot,
847 QObject* parent, const char* name ) 848 QObject* parent, const char* name )
848 : KSelectAction( text, cut, parent, name ) 849 : KSelectAction( text, cut, parent, name )
849{ 850{
850 d = new KListActionPrivate; 851 d = new KListActionPrivate;
851 if ( receiver ) 852 if ( receiver )
852 connect( this, SIGNAL( activated( int ) ), receiver, slot ); 853 connect( this, SIGNAL( activated( int ) ), receiver, slot );
853} 854}
854 855
855KListAction::KListAction( const QString& text, const QIconSet& pix, 856KListAction::KListAction( const QString& text, const QIcon& pix,
856 const KShortcut& cut, 857 const KShortcut& cut,
857 QObject* parent, const char* name ) 858 QObject* parent, const char* name )
858 : KSelectAction( text, pix, cut, parent, name ) 859 : KSelectAction( text, pix, cut, parent, name )
859{ 860{
860 d = new KListActionPrivate; 861 d = new KListActionPrivate;
861} 862}
862 863
863KListAction::KListAction( const QString& text, const QString& pix, 864KListAction::KListAction( const QString& text, const QString& pix,
864 const KShortcut& cut, 865 const KShortcut& cut,
865 QObject* parent, const char* name ) 866 QObject* parent, const char* name )
866 : KSelectAction( text, pix, cut, parent, name ) 867 : KSelectAction( text, pix, cut, parent, name )
867{ 868{
868 d = new KListActionPrivate; 869 d = new KListActionPrivate;
869} 870}
870 871
871KListAction::KListAction( const QString& text, const QIconSet& pix, 872KListAction::KListAction( const QString& text, const QIcon& pix,
872 const KShortcut& cut, const QObject* receiver, 873 const KShortcut& cut, const QObject* receiver,
873 const char* slot, QObject* parent, 874 const char* slot, QObject* parent,
874 const char* name ) 875 const char* name )
875 : KSelectAction( text, pix, cut, parent, name ) 876 : KSelectAction( text, pix, cut, parent, name )
876{ 877{
877 d = new KListActionPrivate; 878 d = new KListActionPrivate;
878 if ( receiver ) 879 if ( receiver )
879 connect( this, SIGNAL( activated( int ) ), receiver, slot ); 880 connect( this, SIGNAL( activated( int ) ), receiver, slot );
880} 881}
881 882
882KListAction::KListAction( const QString& text, const QString& pix, 883KListAction::KListAction( const QString& text, const QString& pix,
883 const KShortcut& cut, const QObject* receiver, 884 const KShortcut& cut, const QObject* receiver,
884 const char* slot, QObject* parent, 885 const char* slot, QObject* parent,
885 const char* name ) 886 const char* name )
886 : KSelectAction( text, pix, cut, parent, name ) 887 : KSelectAction( text, pix, cut, parent, name )
887{ 888{
888 d = new KListActionPrivate; 889 d = new KListActionPrivate;
889 if ( receiver ) 890 if ( receiver )
890 connect( this, SIGNAL( activated( int ) ), receiver, slot ); 891 connect( this, SIGNAL( activated( int ) ), receiver, slot );
891} 892}
892 893
893KListAction::KListAction( QObject* parent, const char* name ) 894KListAction::KListAction( QObject* parent, const char* name )
894 : KSelectAction( parent, name ) 895 : KSelectAction( parent, name )
895{ 896{
896 d = new KListActionPrivate; 897 d = new KListActionPrivate;
897} 898}
898 899
899KListAction::~KListAction() 900KListAction::~KListAction()
900{ 901{
901 delete d; d = 0; 902 delete d; d = 0;
902} 903}
903 904
904void KListAction::setCurrentItem( int index ) 905void KListAction::setCurrentItem( int index )
905{ 906{
906 KSelectAction::setCurrentItem( index ); 907 KSelectAction::setCurrentItem( index );
907 d->m_current = index; 908 d->m_current = index;
908 909
909 // emit KAction::activated(); 910 // emit KAction::activated();
910 // emit activated( currentItem() ); 911 // emit activated( currentItem() );
911 // emit activated( currentText() ); 912 // emit activated( currentText() );
912} 913}
913 914
914QString KListAction::currentText() const 915QString KListAction::currentText() const
915{ 916{
916 if ( currentItem() < 0 ) 917 if ( currentItem() < 0 )
917 return QString::null; 918 return QString::null;
918 919
919 return items()[ currentItem() ]; 920 return items()[ currentItem() ];
920} 921}
921 922
922int KListAction::currentItem() const 923int KListAction::currentItem() const
923{ 924{
924 return d->m_current; 925 return d->m_current;
925} 926}
926 927
927class KRecentFilesAction::KRecentFilesActionPrivate 928class KRecentFilesAction::KRecentFilesActionPrivate
928{ 929{
929public: 930public:
930 KRecentFilesActionPrivate() 931 KRecentFilesActionPrivate()
931 { 932 {
932 m_maxItems = 0; 933 m_maxItems = 0;
933 } 934 }
934 uint m_maxItems; 935 uint m_maxItems;
935}; 936};
936 937
937KRecentFilesAction::KRecentFilesAction( const QString& text, 938KRecentFilesAction::KRecentFilesAction( const QString& text,
938 const KShortcut& cut, 939 const KShortcut& cut,
939 QObject* parent, const char* name, 940 QObject* parent, const char* name,
940 uint maxItems ) 941 uint maxItems )
941 : KListAction( text, cut, parent, name) 942 : KListAction( text, cut, parent, name)
942{ 943{
943 d = new KRecentFilesActionPrivate; 944 d = new KRecentFilesActionPrivate;
944 d->m_maxItems = maxItems; 945 d->m_maxItems = maxItems;
945 946
946 init(); 947 init();
947} 948}
948 949
949KRecentFilesAction::KRecentFilesAction( const QString& text, 950KRecentFilesAction::KRecentFilesAction( const QString& text,
950 const KShortcut& cut, 951 const KShortcut& cut,
951 const QObject* receiver, 952 const QObject* receiver,
952 const char* slot, 953 const char* slot,
953 QObject* parent, const char* name, 954 QObject* parent, const char* name,
954 uint maxItems ) 955 uint maxItems )
955 : KListAction( text, cut, parent, name) 956 : KListAction( text, cut, parent, name)
956{ 957{
957 d = new KRecentFilesActionPrivate; 958 d = new KRecentFilesActionPrivate;
958 d->m_maxItems = maxItems; 959 d->m_maxItems = maxItems;
959 960
960 init(); 961 init();
961 962
962 if ( receiver ) 963 if ( receiver )
963 connect( this, SIGNAL(urlSelected(const KURL&)), 964 connect( this, SIGNAL(urlSelected(const KURL&)),
964 receiver, slot ); 965 receiver, slot );
965} 966}
966 967
967KRecentFilesAction::KRecentFilesAction( const QString& text, 968KRecentFilesAction::KRecentFilesAction( const QString& text,
968 const QIconSet& pix, 969 const QIcon& pix,
969 const KShortcut& cut, 970 const KShortcut& cut,
970 QObject* parent, const char* name, 971 QObject* parent, const char* name,
971 uint maxItems ) 972 uint maxItems )
972 : KListAction( text, pix, cut, parent, name) 973 : KListAction( text, pix, cut, parent, name)
973{ 974{
974 d = new KRecentFilesActionPrivate; 975 d = new KRecentFilesActionPrivate;
975 d->m_maxItems = maxItems; 976 d->m_maxItems = maxItems;
976 977
977 init(); 978 init();
978} 979}
979 980
980KRecentFilesAction::KRecentFilesAction( const QString& text, 981KRecentFilesAction::KRecentFilesAction( const QString& text,
981 const QString& pix, 982 const QString& pix,
982 const KShortcut& cut, 983 const KShortcut& cut,
983 QObject* parent, const char* name, 984 QObject* parent, const char* name,
984 uint maxItems ) 985 uint maxItems )
985 : KListAction( text, pix, cut, parent, name) 986 : KListAction( text, pix, cut, parent, name)
986{ 987{
987 d = new KRecentFilesActionPrivate; 988 d = new KRecentFilesActionPrivate;
988 d->m_maxItems = maxItems; 989 d->m_maxItems = maxItems;
989 990
990 init(); 991 init();
991} 992}
992 993
993KRecentFilesAction::KRecentFilesAction( const QString& text, 994KRecentFilesAction::KRecentFilesAction( const QString& text,
994 const QIconSet& pix, 995 const QIcon& pix,
995 const KShortcut& cut, 996 const KShortcut& cut,
996 const QObject* receiver, 997 const QObject* receiver,
997 const char* slot, 998 const char* slot,
998 QObject* parent, const char* name, 999 QObject* parent, const char* name,
999 uint maxItems ) 1000 uint maxItems )
1000 : KListAction( text, pix, cut, parent, name) 1001 : KListAction( text, pix, cut, parent, name)
1001{ 1002{
1002 d = new KRecentFilesActionPrivate; 1003 d = new KRecentFilesActionPrivate;
1003 d->m_maxItems = maxItems; 1004 d->m_maxItems = maxItems;
1004 1005
1005 init(); 1006 init();
1006 1007
1007 if ( receiver ) 1008 if ( receiver )
1008 connect( this, SIGNAL(urlSelected(const KURL&)), 1009 connect( this, SIGNAL(urlSelected(const KURL&)),
1009 receiver, slot ); 1010 receiver, slot );
1010} 1011}
1011 1012
1012KRecentFilesAction::KRecentFilesAction( const QString& text, 1013KRecentFilesAction::KRecentFilesAction( const QString& text,
1013 const QString& pix, 1014 const QString& pix,
1014 const KShortcut& cut, 1015 const KShortcut& cut,
1015 const QObject* receiver, 1016 const QObject* receiver,
1016 const char* slot, 1017 const char* slot,
1017 QObject* parent, const char* name, 1018 QObject* parent, const char* name,
1018 uint maxItems ) 1019 uint maxItems )
1019 : KListAction( text, pix, cut, parent, name) 1020 : KListAction( text, pix, cut, parent, name)
1020{ 1021{
1021 d = new KRecentFilesActionPrivate; 1022 d = new KRecentFilesActionPrivate;
1022 d->m_maxItems = maxItems; 1023 d->m_maxItems = maxItems;
1023 1024
1024 init(); 1025 init();
1025 1026
1026 if ( receiver ) 1027 if ( receiver )
1027 connect( this, SIGNAL(urlSelected(const KURL&)), 1028 connect( this, SIGNAL(urlSelected(const KURL&)),
1028 receiver, slot ); 1029 receiver, slot );
1029} 1030}
1030 1031
1031KRecentFilesAction::KRecentFilesAction( QObject* parent, const char* name, 1032KRecentFilesAction::KRecentFilesAction( QObject* parent, const char* name,
1032 uint maxItems ) 1033 uint maxItems )
1033 : KListAction( parent, name ) 1034 : KListAction( parent, name )
1034{ 1035{
1035 d = new KRecentFilesActionPrivate; 1036 d = new KRecentFilesActionPrivate;
1036 d->m_maxItems = maxItems; 1037 d->m_maxItems = maxItems;
1037 1038
1038 init(); 1039 init();
1039} 1040}
1040 1041
1041void KRecentFilesAction::init() 1042void KRecentFilesAction::init()
1042{ 1043{
1043 connect( this, SIGNAL( activated( const QString& ) ), 1044 connect( this, SIGNAL( activated( const QString& ) ),
1044 this, SLOT( itemSelected( const QString& ) ) ); 1045 this, SLOT( itemSelected( const QString& ) ) );
1045 1046
1046 setMenuAccelsEnabled( false ); 1047 setMenuAccelsEnabled( false );
1047} 1048}
1048 1049
1049KRecentFilesAction::~KRecentFilesAction() 1050KRecentFilesAction::~KRecentFilesAction()
1050{ 1051{
1051 delete d; d = 0; 1052 delete d; d = 0;
1052} 1053}
1053 1054
1054uint KRecentFilesAction::maxItems() const 1055uint KRecentFilesAction::maxItems() const
1055{ 1056{
1056 return d->m_maxItems; 1057 return d->m_maxItems;
1057} 1058}
1058 1059
1059void KRecentFilesAction::setMaxItems( uint maxItems ) 1060void KRecentFilesAction::setMaxItems( uint maxItems )
1060{ 1061{
1061 QStringList lst = items(); 1062 QStringList lst = items();
1062 uint oldCount = lst.count(); 1063 uint oldCount = lst.count();
1063 1064
1064 // set new maxItems 1065 // set new maxItems
1065 d->m_maxItems = maxItems; 1066 d->m_maxItems = maxItems;
1066 1067
1067 // remove all items that are too much 1068 // remove all items that are too much
1068 while( lst.count() > maxItems ) 1069 while( lst.count() > maxItems )
1069 { 1070 {
1070 // remove last item 1071 // remove last item
1071 lst.remove( lst.last() ); 1072 lst.remove( lst.last() );
1072 } 1073 }
1073 1074
1074 // set new list if changed 1075 // set new list if changed
1075 if( lst.count() != oldCount ) 1076 if( lst.count() != oldCount )
1076 setItems( lst ); 1077 setItems( lst );
1077} 1078}
1078 1079
1079void KRecentFilesAction::addURL( const KURL& url ) 1080void KRecentFilesAction::addURL( const KURL& url )
1080{ 1081{
1081 QString file = url.prettyURL(); 1082 QString file = url.prettyURL();
1082 QStringList lst = items(); 1083 QStringList lst = items();
1083 1084
1084 // remove file if already in list 1085 // remove file if already in list
1085 lst.remove( file ); 1086 lst.remove( file );
1086 1087
1087 // remove las item if already maxitems in list 1088 // remove las item if already maxitems in list
1088 if( lst.count() == d->m_maxItems ) 1089 if( lst.count() == d->m_maxItems )
1089 { 1090 {
1090 // remove last item 1091 // remove last item
@@ -1108,951 +1109,951 @@ void KRecentFilesAction::removeURL( const KURL& url )
1108 setItems( lst ); 1109 setItems( lst );
1109 } 1110 }
1110} 1111}
1111 1112
1112void KRecentFilesAction::clearURLList() 1113void KRecentFilesAction::clearURLList()
1113{ 1114{
1114 clear(); 1115 clear();
1115} 1116}
1116 1117
1117void KRecentFilesAction::loadEntries( KConfig* config, QString groupname) 1118void KRecentFilesAction::loadEntries( KConfig* config, QString groupname)
1118{ 1119{
1119 QString key; 1120 QString key;
1120 QString value; 1121 QString value;
1121 QString oldGroup; 1122 QString oldGroup;
1122 QStringList lst; 1123 QStringList lst;
1123 1124
1124 oldGroup = config->group(); 1125 oldGroup = config->group();
1125 1126
1126 if (groupname.isEmpty()) 1127 if (groupname.isEmpty())
1127 groupname = "RecentFiles"; 1128 groupname = "RecentFiles";
1128 config->setGroup( groupname ); 1129 config->setGroup( groupname );
1129 1130
1130 // read file list 1131 // read file list
1131 for( unsigned int i = 1 ; i <= d->m_maxItems ; i++ ) 1132 for( unsigned int i = 1 ; i <= d->m_maxItems ; i++ )
1132 { 1133 {
1133 key = QString( "File%1" ).arg( i ); 1134 key = QString( "File%1" ).arg( i );
1134 value = config->readEntry( key, QString::null ); 1135 value = config->readEntry( key, QString::null );
1135 1136
1136 if (!value.isNull()) 1137 if (!value.isNull())
1137 lst.append( value ); 1138 lst.append( value );
1138 } 1139 }
1139 1140
1140 // set file 1141 // set file
1141 setItems( lst ); 1142 setItems( lst );
1142 1143
1143 config->setGroup( oldGroup ); 1144 config->setGroup( oldGroup );
1144} 1145}
1145 1146
1146void KRecentFilesAction::saveEntries( KConfig* config, QString groupname ) 1147void KRecentFilesAction::saveEntries( KConfig* config, QString groupname )
1147{ 1148{
1148 QString key; 1149 QString key;
1149 QString value; 1150 QString value;
1150 QStringList lst = items(); 1151 QStringList lst = items();
1151 1152
1152 if (groupname.isEmpty()) 1153 if (groupname.isEmpty())
1153 groupname = "RecentFiles"; 1154 groupname = "RecentFiles";
1154 1155
1155 config->deleteGroup( groupname); 1156 config->deleteGroup( groupname);
1156 1157
1157 KConfigGroupSaver( config, groupname ); 1158 KConfigGroupSaver( config, groupname );
1158 1159
1159 // write file list 1160 // write file list
1160 for( unsigned int i = 1 ; i <= lst.count() ; i++ ) 1161 for( unsigned int i = 1 ; i <= lst.count() ; i++ )
1161 { 1162 {
1162 key = QString( "File%1" ).arg( i ); 1163 key = QString( "File%1" ).arg( i );
1163 value = lst[ i - 1 ]; 1164 value = lst[ i - 1 ];
1164 config->writeEntry( key, value ); 1165 config->writeEntry( key, value );
1165 } 1166 }
1166} 1167}
1167 1168
1168void KRecentFilesAction::itemSelected( const QString& text ) 1169void KRecentFilesAction::itemSelected( const QString& text )
1169{ 1170{
1170 emit urlSelected( KURL( text ) ); 1171 emit urlSelected( KURL( text ) );
1171} 1172}
1172 1173
1173class KFontAction::KFontActionPrivate 1174class KFontAction::KFontActionPrivate
1174{ 1175{
1175public: 1176public:
1176 KFontActionPrivate() 1177 KFontActionPrivate()
1177 { 1178 {
1178 } 1179 }
1179 QStringList m_fonts; 1180 QStringList m_fonts;
1180}; 1181};
1181 1182
1182KFontAction::KFontAction( const QString& text, 1183KFontAction::KFontAction( const QString& text,
1183 const KShortcut& cut, QObject* parent, 1184 const KShortcut& cut, QObject* parent,
1184 const char* name ) 1185 const char* name )
1185 : KSelectAction( text, cut, parent, name ) 1186 : KSelectAction( text, cut, parent, name )
1186{ 1187{
1187 d = new KFontActionPrivate; 1188 d = new KFontActionPrivate;
1188 get_fonts( d->m_fonts ); 1189 get_fonts( d->m_fonts );
1189 KSelectAction::setItems( d->m_fonts ); 1190 KSelectAction::setItems( d->m_fonts );
1190 setEditable( true ); 1191 setEditable( true );
1191} 1192}
1192 1193
1193KFontAction::KFontAction( const QString& text, const KShortcut& cut, 1194KFontAction::KFontAction( const QString& text, const KShortcut& cut,
1194 const QObject* receiver, const char* slot, 1195 const QObject* receiver, const char* slot,
1195 QObject* parent, const char* name ) 1196 QObject* parent, const char* name )
1196 : KSelectAction( text, cut, receiver, slot, parent, name ) 1197 : KSelectAction( text, cut, receiver, slot, parent, name )
1197{ 1198{
1198 d = new KFontActionPrivate; 1199 d = new KFontActionPrivate;
1199 get_fonts( d->m_fonts ); 1200 get_fonts( d->m_fonts );
1200 KSelectAction::setItems( d->m_fonts ); 1201 KSelectAction::setItems( d->m_fonts );
1201 setEditable( true ); 1202 setEditable( true );
1202} 1203}
1203 1204
1204KFontAction::KFontAction( const QString& text, const QIconSet& pix, 1205KFontAction::KFontAction( const QString& text, const QIcon& pix,
1205 const KShortcut& cut, 1206 const KShortcut& cut,
1206 QObject* parent, const char* name ) 1207 QObject* parent, const char* name )
1207 : KSelectAction( text, pix, cut, parent, name ) 1208 : KSelectAction( text, pix, cut, parent, name )
1208{ 1209{
1209 d = new KFontActionPrivate; 1210 d = new KFontActionPrivate;
1210 get_fonts( d->m_fonts ); 1211 get_fonts( d->m_fonts );
1211 KSelectAction::setItems( d->m_fonts ); 1212 KSelectAction::setItems( d->m_fonts );
1212 setEditable( true ); 1213 setEditable( true );
1213} 1214}
1214 1215
1215KFontAction::KFontAction( const QString& text, const QString& pix, 1216KFontAction::KFontAction( const QString& text, const QString& pix,
1216 const KShortcut& cut, 1217 const KShortcut& cut,
1217 QObject* parent, const char* name ) 1218 QObject* parent, const char* name )
1218 : KSelectAction( text, pix, cut, parent, name ) 1219 : KSelectAction( text, pix, cut, parent, name )
1219{ 1220{
1220 d = new KFontActionPrivate; 1221 d = new KFontActionPrivate;
1221 get_fonts( d->m_fonts ); 1222 get_fonts( d->m_fonts );
1222 KSelectAction::setItems( d->m_fonts ); 1223 KSelectAction::setItems( d->m_fonts );
1223 setEditable( true ); 1224 setEditable( true );
1224} 1225}
1225 1226
1226KFontAction::KFontAction( const QString& text, const QIconSet& pix, 1227KFontAction::KFontAction( const QString& text, const QIcon& pix,
1227 const KShortcut& cut, 1228 const KShortcut& cut,
1228 const QObject* receiver, const char* slot, 1229 const QObject* receiver, const char* slot,
1229 QObject* parent, const char* name ) 1230 QObject* parent, const char* name )
1230 : KSelectAction( text, pix, cut, receiver, slot, parent, name ) 1231 : KSelectAction( text, pix, cut, receiver, slot, parent, name )
1231{ 1232{
1232 d = new KFontActionPrivate; 1233 d = new KFontActionPrivate;
1233 get_fonts( d->m_fonts ); 1234 get_fonts( d->m_fonts );
1234 KSelectAction::setItems( d->m_fonts ); 1235 KSelectAction::setItems( d->m_fonts );
1235 setEditable( true ); 1236 setEditable( true );
1236} 1237}
1237 1238
1238KFontAction::KFontAction( const QString& text, const QString& pix, 1239KFontAction::KFontAction( const QString& text, const QString& pix,
1239 const KShortcut& cut, 1240 const KShortcut& cut,
1240 const QObject* receiver, const char* slot, 1241 const QObject* receiver, const char* slot,
1241 QObject* parent, const char* name ) 1242 QObject* parent, const char* name )
1242 : KSelectAction( text, pix, cut, receiver, slot, parent, name ) 1243 : KSelectAction( text, pix, cut, receiver, slot, parent, name )
1243{ 1244{
1244 d = new KFontActionPrivate; 1245 d = new KFontActionPrivate;
1245 get_fonts( d->m_fonts ); 1246 get_fonts( d->m_fonts );
1246 KSelectAction::setItems( d->m_fonts ); 1247 KSelectAction::setItems( d->m_fonts );
1247 setEditable( true ); 1248 setEditable( true );
1248} 1249}
1249 1250
1250 1251
1251KFontAction::KFontAction( QObject* parent, const char* name ) 1252KFontAction::KFontAction( QObject* parent, const char* name )
1252 : KSelectAction( parent, name ) 1253 : KSelectAction( parent, name )
1253{ 1254{
1254 d = new KFontActionPrivate; 1255 d = new KFontActionPrivate;
1255 get_fonts( d->m_fonts ); 1256 get_fonts( d->m_fonts );
1256 KSelectAction::setItems( d->m_fonts ); 1257 KSelectAction::setItems( d->m_fonts );
1257 setEditable( true ); 1258 setEditable( true );
1258} 1259}
1259 1260
1260KFontAction::~KFontAction() 1261KFontAction::~KFontAction()
1261{ 1262{
1262 delete d; 1263 delete d;
1263 d = 0; 1264 d = 0;
1264} 1265}
1265 1266
1266/* 1267/*
1267 * Maintenance note: Keep in sync with KFontCombo::setCurrentFont() 1268 * Maintenance note: Keep in sync with KFontCombo::setCurrentFont()
1268 */ 1269 */
1269void KFontAction::setFont( const QString &family ) 1270void KFontAction::setFont( const QString &family )
1270{ 1271{
1271 QString lowerName = family.lower(); 1272 QString lowerName = family.lower();
1272 int i = 0; 1273 int i = 0;
1273 for ( QStringList::Iterator it = d->m_fonts.begin(); it != d->m_fonts.end(); ++it, ++i ) 1274 for ( QStringList::Iterator it = d->m_fonts.begin(); it != d->m_fonts.end(); ++it, ++i )
1274 { 1275 {
1275 if ((*it).lower() == lowerName) 1276 if ((*it).lower() == lowerName)
1276 { 1277 {
1277 setCurrentItem(i); 1278 setCurrentItem(i);
1278 return; 1279 return;
1279 } 1280 }
1280 } 1281 }
1281 i = lowerName.find(" ["); 1282 i = lowerName.find(" [");
1282 if (i>-1) 1283 if (i>-1)
1283 { 1284 {
1284 lowerName = lowerName.left(i); 1285 lowerName = lowerName.left(i);
1285 i = 0; 1286 i = 0;
1286 for ( QStringList::Iterator it = d->m_fonts.begin(); it != d->m_fonts.end(); ++it, ++i ) 1287 for ( QStringList::Iterator it = d->m_fonts.begin(); it != d->m_fonts.end(); ++it, ++i )
1287 { 1288 {
1288 if ((*it).lower() == lowerName) 1289 if ((*it).lower() == lowerName)
1289 { 1290 {
1290 setCurrentItem(i); 1291 setCurrentItem(i);
1291 return; 1292 return;
1292 } 1293 }
1293 } 1294 }
1294 } 1295 }
1295 1296
1296 lowerName += " ["; 1297 lowerName += " [";
1297 i = 0; 1298 i = 0;
1298 for ( QStringList::Iterator it = d->m_fonts.begin(); it != d->m_fonts.end(); ++it, ++i ) 1299 for ( QStringList::Iterator it = d->m_fonts.begin(); it != d->m_fonts.end(); ++it, ++i )
1299 { 1300 {
1300 if ((*it).lower().startsWith(lowerName)) 1301 if ((*it).lower().startsWith(lowerName))
1301 { 1302 {
1302 setCurrentItem(i); 1303 setCurrentItem(i);
1303 return; 1304 return;
1304 } 1305 }
1305 } 1306 }
1306 kdDebug(129) << "Font not found " << family.lower() << endl; 1307 kdDebug(129) << "Font not found " << family.lower() << endl;
1307} 1308}
1308 1309
1309int KFontAction::plug( QWidget *w, int index ) 1310int KFontAction::plug( QWidget *w, int index )
1310{ 1311{
1311 qDebug("KFontAction::plug ha to be fixed"); 1312 qDebug("KFontAction::plug ha to be fixed");
1312/*US 1313/*US
1313 if (kapp && !kapp->authorizeKAction(name())) 1314 if (kapp && !kapp->authorizeKAction(name()))
1314 return -1; 1315 return -1;
1315 if ( w->inherits("KToolBar") ) 1316 if ( w->inherits("KToolBar") )
1316 { 1317 {
1317 KToolBar* bar = static_cast<KToolBar*>( w ); 1318 KToolBar* bar = static_cast<KToolBar*>( w );
1318 int id_ = KAction::getToolButtonID(); 1319 int id_ = KAction::getToolButtonID();
1319 KFontCombo *cb = new KFontCombo( items(), bar ); 1320 KFontCombo *cb = new KFontCombo( items(), bar );
1320 connect( cb, SIGNAL( activated( const QString & ) ), 1321 connect( cb, SIGNAL( activated( const QString & ) ),
1321 SLOT( slotActivated( const QString & ) ) ); 1322 SLOT( slotActivated( const QString & ) ) );
1322 cb->setEnabled( isEnabled() ); 1323 cb->setEnabled( isEnabled() );
1323 bar->insertWidget( id_, comboWidth(), cb, index ); 1324 bar->insertWidget( id_, comboWidth(), cb, index );
1324 cb->setMinimumWidth( cb->sizeHint().width() ); 1325 cb->setMinimumWidth( cb->sizeHint().width() );
1325 1326
1326 addContainer( bar, id_ ); 1327 addContainer( bar, id_ );
1327 1328
1328 connect( bar, SIGNAL( destroyed() ), this, SLOT( slotDestroyed() ) ); 1329 connect( bar, SIGNAL( destroyed() ), this, SLOT( slotDestroyed() ) );
1329 1330
1330 updateCurrentItem( containerCount() - 1 ); 1331 updateCurrentItem( containerCount() - 1 );
1331 1332
1332 return containerCount() - 1; 1333 return containerCount() - 1;
1333 } 1334 }
1334 else return KSelectAction::plug( w, index ); 1335 else return KSelectAction::plug( w, index );
1335*/ 1336*/
1336 return 3; 1337 return 3;
1337} 1338}
1338 1339
1339class KFontSizeAction::KFontSizeActionPrivate 1340class KFontSizeAction::KFontSizeActionPrivate
1340{ 1341{
1341public: 1342public:
1342 KFontSizeActionPrivate() 1343 KFontSizeActionPrivate()
1343 { 1344 {
1344 } 1345 }
1345}; 1346};
1346 1347
1347KFontSizeAction::KFontSizeAction( const QString& text, 1348KFontSizeAction::KFontSizeAction( const QString& text,
1348 const KShortcut& cut, 1349 const KShortcut& cut,
1349 QObject* parent, const char* name ) 1350 QObject* parent, const char* name )
1350 : KSelectAction( text, cut, parent, name ) 1351 : KSelectAction( text, cut, parent, name )
1351{ 1352{
1352 init(); 1353 init();
1353} 1354}
1354 1355
1355KFontSizeAction::KFontSizeAction( const QString& text, 1356KFontSizeAction::KFontSizeAction( const QString& text,
1356 const KShortcut& cut, 1357 const KShortcut& cut,
1357 const QObject* receiver, const char* slot, 1358 const QObject* receiver, const char* slot,
1358 QObject* parent, const char* name ) 1359 QObject* parent, const char* name )
1359 : KSelectAction( text, cut, receiver, slot, parent, name ) 1360 : KSelectAction( text, cut, receiver, slot, parent, name )
1360{ 1361{
1361 init(); 1362 init();
1362} 1363}
1363 1364
1364KFontSizeAction::KFontSizeAction( const QString& text, const QIconSet& pix, 1365KFontSizeAction::KFontSizeAction( const QString& text, const QIcon& pix,
1365 const KShortcut& cut, 1366 const KShortcut& cut,
1366 QObject* parent, const char* name ) 1367 QObject* parent, const char* name )
1367 : KSelectAction( text, pix, cut, parent, name ) 1368 : KSelectAction( text, pix, cut, parent, name )
1368{ 1369{
1369 init(); 1370 init();
1370} 1371}
1371 1372
1372KFontSizeAction::KFontSizeAction( const QString& text, const QString& pix, 1373KFontSizeAction::KFontSizeAction( const QString& text, const QString& pix,
1373 const KShortcut& cut, 1374 const KShortcut& cut,
1374 QObject* parent, const char* name ) 1375 QObject* parent, const char* name )
1375 : KSelectAction( text, pix, cut, parent, name ) 1376 : KSelectAction( text, pix, cut, parent, name )
1376{ 1377{
1377 init(); 1378 init();
1378} 1379}
1379 1380
1380KFontSizeAction::KFontSizeAction( const QString& text, const QIconSet& pix, 1381KFontSizeAction::KFontSizeAction( const QString& text, const QIcon& pix,
1381 const KShortcut& cut, 1382 const KShortcut& cut,
1382 const QObject* receiver, 1383 const QObject* receiver,
1383 const char* slot, QObject* parent, 1384 const char* slot, QObject* parent,
1384 const char* name ) 1385 const char* name )
1385 : KSelectAction( text, pix, cut, receiver, slot, parent, name ) 1386 : KSelectAction( text, pix, cut, receiver, slot, parent, name )
1386{ 1387{
1387 init(); 1388 init();
1388} 1389}
1389 1390
1390KFontSizeAction::KFontSizeAction( const QString& text, const QString& pix, 1391KFontSizeAction::KFontSizeAction( const QString& text, const QString& pix,
1391 const KShortcut& cut, 1392 const KShortcut& cut,
1392 const QObject* receiver, 1393 const QObject* receiver,
1393 const char* slot, QObject* parent, 1394 const char* slot, QObject* parent,
1394 const char* name ) 1395 const char* name )
1395 : KSelectAction( text, pix, cut, receiver, slot, parent, name ) 1396 : KSelectAction( text, pix, cut, receiver, slot, parent, name )
1396{ 1397{
1397 init(); 1398 init();
1398} 1399}
1399 1400
1400KFontSizeAction::KFontSizeAction( QObject* parent, const char* name ) 1401KFontSizeAction::KFontSizeAction( QObject* parent, const char* name )
1401 : KSelectAction( parent, name ) 1402 : KSelectAction( parent, name )
1402{ 1403{
1403 init(); 1404 init();
1404} 1405}
1405 1406
1406KFontSizeAction::~KFontSizeAction() 1407KFontSizeAction::~KFontSizeAction()
1407{ 1408{
1408 delete d; 1409 delete d;
1409 d = 0; 1410 d = 0;
1410} 1411}
1411 1412
1412void KFontSizeAction::init() 1413void KFontSizeAction::init()
1413{ 1414{
1414 d = new KFontSizeActionPrivate; 1415 d = new KFontSizeActionPrivate;
1415 1416
1416 setEditable( true ); 1417 setEditable( true );
1417 QValueList<int> sizes = get_standard_font_sizes(); 1418 Q3ValueList<int> sizes = get_standard_font_sizes();
1418 QStringList lst; 1419 QStringList lst;
1419 for ( QValueList<int>::Iterator it = sizes.begin(); it != sizes.end(); ++it ) 1420 for ( Q3ValueList<int>::Iterator it = sizes.begin(); it != sizes.end(); ++it )
1420 lst.append( QString::number( *it ) ); 1421 lst.append( QString::number( *it ) );
1421 1422
1422 setItems( lst ); 1423 setItems( lst );
1423} 1424}
1424 1425
1425void KFontSizeAction::setFontSize( int size ) 1426void KFontSizeAction::setFontSize( int size )
1426{ 1427{
1427 if ( size == fontSize() ) { 1428 if ( size == fontSize() ) {
1428 setCurrentItem( items().findIndex( QString::number( size ) ) ); 1429 setCurrentItem( items().findIndex( QString::number( size ) ) );
1429 return; 1430 return;
1430 } 1431 }
1431 1432
1432 if ( size < 1 ) { 1433 if ( size < 1 ) {
1433 kdWarning() << "KFontSizeAction: Size " << size << " is out of range" << endl; 1434 kdWarning() << "KFontSizeAction: Size " << size << " is out of range" << endl;
1434 return; 1435 return;
1435 } 1436 }
1436 1437
1437 int index = items().findIndex( QString::number( size ) ); 1438 int index = items().findIndex( QString::number( size ) );
1438 if ( index == -1 ) { 1439 if ( index == -1 ) {
1439 // Insert at the correct position in the list (to keep sorting) 1440 // Insert at the correct position in the list (to keep sorting)
1440 QValueList<int> lst; 1441 Q3ValueList<int> lst;
1441 // Convert to list of ints 1442 // Convert to list of ints
1442 QStringList itemsList = items(); 1443 QStringList itemsList = items();
1443 for (QStringList::Iterator it = itemsList.begin() ; it != itemsList.end() ; ++it) 1444 for (QStringList::Iterator it = itemsList.begin() ; it != itemsList.end() ; ++it)
1444 lst.append( (*it).toInt() ); 1445 lst.append( (*it).toInt() );
1445 // New size 1446 // New size
1446 lst.append( size ); 1447 lst.append( size );
1447 // Sort the list 1448 // Sort the list
1448qDebug("KFontSizeAction::setFontSize heapsort not found."); 1449qDebug("KFontSizeAction::setFontSize heapsort not found.");
1449//US has to be fixed 1450//US has to be fixed
1450//US qHeapSort( lst ); 1451//US qHeapSort( lst );
1451 // Convert back to string list 1452 // Convert back to string list
1452 QStringList strLst; 1453 QStringList strLst;
1453 for (QValueList<int>::Iterator it = lst.begin() ; it != lst.end() ; ++it) 1454 for (Q3ValueList<int>::Iterator it = lst.begin() ; it != lst.end() ; ++it)
1454 strLst.append( QString::number(*it) ); 1455 strLst.append( QString::number(*it) );
1455 KSelectAction::setItems( strLst ); 1456 KSelectAction::setItems( strLst );
1456 // Find new current item 1457 // Find new current item
1457 index = lst.findIndex( size ); 1458 index = lst.findIndex( size );
1458 setCurrentItem( index ); 1459 setCurrentItem( index );
1459 } 1460 }
1460 else 1461 else
1461 setCurrentItem( index ); 1462 setCurrentItem( index );
1462 1463
1463 1464
1464 //emit KAction::activated(); 1465 //emit KAction::activated();
1465 //emit activated( index ); 1466 //emit activated( index );
1466 //emit activated( QString::number( size ) ); 1467 //emit activated( QString::number( size ) );
1467 //emit fontSizeChanged( size ); 1468 //emit fontSizeChanged( size );
1468} 1469}
1469 1470
1470int KFontSizeAction::fontSize() const 1471int KFontSizeAction::fontSize() const
1471{ 1472{
1472 return currentText().toInt(); 1473 return currentText().toInt();
1473} 1474}
1474 1475
1475void KFontSizeAction::slotActivated( int index ) 1476void KFontSizeAction::slotActivated( int index )
1476{ 1477{
1477 KSelectAction::slotActivated( index ); 1478 KSelectAction::slotActivated( index );
1478 1479
1479 emit fontSizeChanged( items()[ index ].toInt() ); 1480 emit fontSizeChanged( items()[ index ].toInt() );
1480} 1481}
1481 1482
1482void KFontSizeAction::slotActivated( const QString& size ) 1483void KFontSizeAction::slotActivated( const QString& size )
1483{ 1484{
1484 setFontSize( size.toInt() ); // insert sorted first 1485 setFontSize( size.toInt() ); // insert sorted first
1485 KSelectAction::slotActivated( size ); 1486 KSelectAction::slotActivated( size );
1486 emit fontSizeChanged( size.toInt() ); 1487 emit fontSizeChanged( size.toInt() );
1487} 1488}
1488 1489
1489class KActionMenu::KActionMenuPrivate 1490class KActionMenu::KActionMenuPrivate
1490{ 1491{
1491public: 1492public:
1492 KActionMenuPrivate() 1493 KActionMenuPrivate()
1493 { 1494 {
1494//US m_popup = new KPopupMenu(0L,"KActionMenu::KActionMenuPrivate"); 1495//US m_popup = new KPopupMenu(0L,"KActionMenu::KActionMenuPrivate");
1495 m_popup = new QPopupMenu(0L,"KActionMenu::KActionMenuPrivate"); 1496 m_popup = new Q3PopupMenu(0L,"KActionMenu::KActionMenuPrivate");
1496 m_delayed = true; 1497 m_delayed = true;
1497 m_stickyMenu = true; 1498 m_stickyMenu = true;
1498 } 1499 }
1499 ~KActionMenuPrivate() 1500 ~KActionMenuPrivate()
1500 { 1501 {
1501 delete m_popup; m_popup = 0; 1502 delete m_popup; m_popup = 0;
1502 } 1503 }
1503 1504
1504//US KPopupMenu *m_popup; 1505//US KPopupMenu *m_popup;
1505 QPopupMenu *m_popup; 1506 Q3PopupMenu *m_popup;
1506 bool m_delayed; 1507 bool m_delayed;
1507 bool m_stickyMenu; 1508 bool m_stickyMenu;
1508}; 1509};
1509 1510
1510KActionMenu::KActionMenu( QObject* parent, const char* name ) 1511KActionMenu::KActionMenu( QObject* parent, const char* name )
1511 : KAction( parent, name ) 1512 : KAction( parent, name )
1512{ 1513{
1513 d = new KActionMenuPrivate; 1514 d = new KActionMenuPrivate;
1514 setShortcutConfigurable( false ); 1515 setShortcutConfigurable( false );
1515} 1516}
1516 1517
1517KActionMenu::KActionMenu( const QString& text, QObject* parent, 1518KActionMenu::KActionMenu( const QString& text, QObject* parent,
1518 const char* name ) 1519 const char* name )
1519 : KAction( text, 0, parent, name ) 1520 : KAction( text, 0, parent, name )
1520{ 1521{
1521 d = new KActionMenuPrivate; 1522 d = new KActionMenuPrivate;
1522 setShortcutConfigurable( false ); 1523 setShortcutConfigurable( false );
1523} 1524}
1524 1525
1525KActionMenu::KActionMenu( const QString& text, const QIconSet& icon, 1526KActionMenu::KActionMenu( const QString& text, const QIcon& icon,
1526 QObject* parent, const char* name ) 1527 QObject* parent, const char* name )
1527 : KAction( text, icon, 0, parent, name ) 1528 : KAction( text, icon, 0, parent, name )
1528{ 1529{
1529 d = new KActionMenuPrivate; 1530 d = new KActionMenuPrivate;
1530 setShortcutConfigurable( false ); 1531 setShortcutConfigurable( false );
1531} 1532}
1532 1533
1533KActionMenu::KActionMenu( const QString& text, const QString& icon, 1534KActionMenu::KActionMenu( const QString& text, const QString& icon,
1534 QObject* parent, const char* name ) 1535 QObject* parent, const char* name )
1535 : KAction( text, icon, 0, parent, name ) 1536 : KAction( text, icon, 0, parent, name )
1536{ 1537{
1537 d = new KActionMenuPrivate; 1538 d = new KActionMenuPrivate;
1538 setShortcutConfigurable( false ); 1539 setShortcutConfigurable( false );
1539} 1540}
1540 1541
1541KActionMenu::~KActionMenu() 1542KActionMenu::~KActionMenu()
1542{ 1543{
1543 unplugAll(); 1544 unplugAll();
1544 kdDebug(129) << "KActionMenu::~KActionMenu()" << endl; // ellis 1545 kdDebug(129) << "KActionMenu::~KActionMenu()" << endl; // ellis
1545 delete d; d = 0; 1546 delete d; d = 0;
1546} 1547}
1547 1548
1548void KActionMenu::popup( const QPoint& global ) 1549void KActionMenu::popup( const QPoint& global )
1549{ 1550{
1550 popupMenu()->popup( global ); 1551 popupMenu()->popup( global );
1551} 1552}
1552 1553
1553 1554
1554//US KPopupMenu* KActionMenu::popupMenu() const 1555//US KPopupMenu* KActionMenu::popupMenu() const
1555QPopupMenu* KActionMenu::popupMenu() const 1556Q3PopupMenu* KActionMenu::popupMenu() const
1556{ 1557{
1557 return d->m_popup; 1558 return d->m_popup;
1558} 1559}
1559 1560
1560void KActionMenu::insert( KAction* cmd, int index ) 1561void KActionMenu::insert( KAction* cmd, int index )
1561{ 1562{
1562 if ( cmd ) 1563 if ( cmd )
1563 cmd->plug( d->m_popup, index ); 1564 cmd->plug( d->m_popup, index );
1564} 1565}
1565 1566
1566void KActionMenu::remove( KAction* cmd ) 1567void KActionMenu::remove( KAction* cmd )
1567{ 1568{
1568 if ( cmd ) 1569 if ( cmd )
1569 cmd->unplug( d->m_popup ); 1570 cmd->unplug( d->m_popup );
1570} 1571}
1571 1572
1572bool KActionMenu::delayed() const { 1573bool KActionMenu::delayed() const {
1573 return d->m_delayed; 1574 return d->m_delayed;
1574} 1575}
1575 1576
1576void KActionMenu::setDelayed(bool _delayed) { 1577void KActionMenu::setDelayed(bool _delayed) {
1577 d->m_delayed = _delayed; 1578 d->m_delayed = _delayed;
1578} 1579}
1579 1580
1580bool KActionMenu::stickyMenu() const { 1581bool KActionMenu::stickyMenu() const {
1581 return d->m_stickyMenu; 1582 return d->m_stickyMenu;
1582} 1583}
1583 1584
1584void KActionMenu::setStickyMenu(bool sticky) { 1585void KActionMenu::setStickyMenu(bool sticky) {
1585 d->m_stickyMenu = sticky; 1586 d->m_stickyMenu = sticky;
1586} 1587}
1587 1588
1588int KActionMenu::plug( QWidget* widget, int index ) 1589int KActionMenu::plug( QWidget* widget, int index )
1589{ 1590{
1590/*US 1591/*US
1591 if (kapp && !kapp->authorizeKAction(name())) 1592 if (kapp && !kapp->authorizeKAction(name()))
1592 return -1; 1593 return -1;
1593*/ 1594*/
1594 kdDebug(129) << "KAction::plug( " << widget << ", " << index << " )" << endl; // remove -- ellis 1595 kdDebug(129) << "KAction::plug( " << widget << ", " << index << " )" << endl; // remove -- ellis
1595 if ( widget->inherits("QPopupMenu") ) 1596 if ( widget->inherits("Q3PopupMenu") )
1596 { 1597 {
1597 QPopupMenu* menu = static_cast<QPopupMenu*>( widget ); 1598 Q3PopupMenu* menu = static_cast<Q3PopupMenu*>( widget );
1598 int id; 1599 int id;
1599 if ( hasIconSet() ) 1600 if ( hasIconSet() )
1600 id = menu->insertItem( iconSet(), text(), d->m_popup, -1, index ); 1601 id = menu->insertItem( iconSet(), text(), d->m_popup, -1, index );
1601 else 1602 else
1602 id = menu->insertItem( text(), d->m_popup, -1, index ); 1603 id = menu->insertItem( text(), d->m_popup, -1, index );
1603 1604
1604 if ( !isEnabled() ) 1605 if ( !isEnabled() )
1605 menu->setItemEnabled( id, false ); 1606 menu->setItemEnabled( id, false );
1606 1607
1607 addContainer( menu, id ); 1608 addContainer( menu, id );
1608 connect( menu, SIGNAL( destroyed() ), this, SLOT( slotDestroyed() ) ); 1609 connect( menu, SIGNAL( destroyed() ), this, SLOT( slotDestroyed() ) );
1609 1610
1610 if ( m_parentCollection ) 1611 if ( m_parentCollection )
1611 m_parentCollection->connectHighlight( menu, this ); 1612 m_parentCollection->connectHighlight( menu, this );
1612 1613
1613 return containerCount() - 1; 1614 return containerCount() - 1;
1614 } 1615 }
1615 else if ( widget->inherits( "KToolBar" ) ) 1616 else if ( widget->inherits( "KToolBar" ) )
1616 { 1617 {
1617 KToolBar *bar = static_cast<KToolBar *>( widget ); 1618 KToolBar *bar = static_cast<KToolBar *>( widget );
1618 1619
1619 int id_ = KAction::getToolButtonID(); 1620 int id_ = KAction::getToolButtonID();
1620 1621
1621 if ( icon().isEmpty() && !iconSet().isNull() ) 1622 if ( icon().isEmpty() && !iconSet().isNull() )
1622 bar->insertButton( iconSet().pixmap(), id_, SIGNAL( clicked() ), this, 1623 bar->insertButton( iconSet().pixmap(), id_, SIGNAL( clicked() ), this,
1623 SLOT( slotActivated() ), isEnabled(), plainText(), 1624 SLOT( slotActivated() ), isEnabled(), plainText(),
1624 index ); 1625 index );
1625 else 1626 else
1626 { 1627 {
1627 /*US 1628 /*US
1628 KInstance *instance; 1629 KInstance *instance;
1629 1630
1630 if ( m_parentCollection ) 1631 if ( m_parentCollection )
1631 instance = m_parentCollection->instance(); 1632 instance = m_parentCollection->instance();
1632 else 1633 else
1633 instance = KGlobal::instance(); 1634 instance = KGlobal::instance();
1634*/ 1635*/
1635 bar->insertButton( icon(), id_, SIGNAL( clicked() ), this, 1636 bar->insertButton( icon(), id_, SIGNAL( clicked() ), this,
1636 SLOT( slotActivated() ), isEnabled(), plainText(), 1637 SLOT( slotActivated() ), isEnabled(), plainText(),
1637 index/*US, instance */); 1638 index/*US, instance */);
1638 } 1639 }
1639 1640
1640 addContainer( bar, id_ ); 1641 addContainer( bar, id_ );
1641/*US 1642/*US
1642 if (!whatsThis().isEmpty()) 1643 if (!whatsThis().isEmpty())
1643 QWhatsThis::add( bar->getButton(id_), whatsThis() ); 1644 QWhatsThis::add( bar->getButton(id_), whatsThis() );
1644*/ 1645*/
1645 connect( bar, SIGNAL( destroyed() ), this, SLOT( slotDestroyed() ) ); 1646 connect( bar, SIGNAL( destroyed() ), this, SLOT( slotDestroyed() ) );
1646 1647
1647 if (delayed()) { 1648 if (delayed()) {
1648 bar->setDelayedPopup( id_, popupMenu(), stickyMenu() ); 1649 bar->setDelayedPopup( id_, popupMenu(), stickyMenu() );
1649 } else { 1650 } else {
1650 bar->getButton(id_)->setPopup(popupMenu(), stickyMenu() ); 1651 bar->getButton(id_)->setPopup(popupMenu(), stickyMenu() );
1651 } 1652 }
1652 1653
1653 if ( m_parentCollection ) 1654 if ( m_parentCollection )
1654 m_parentCollection->connectHighlight( bar, this ); 1655 m_parentCollection->connectHighlight( bar, this );
1655 1656
1656 return containerCount() - 1; 1657 return containerCount() - 1;
1657 } 1658 }
1658 else if ( widget->inherits( "QMenuBar" ) ) 1659 else if ( widget->inherits( "QMenuBar" ) )
1659 { 1660 {
1660 QMenuBar *bar = static_cast<QMenuBar *>( widget ); 1661 QMenuBar *bar = static_cast<QMenuBar *>( widget );
1661 1662
1662 int id; 1663 int id;
1663 1664
1664 id = bar->insertItem( text(), popupMenu(), -1, index ); 1665 id = bar->insertItem( text(), popupMenu(), -1, index );
1665 1666
1666 if ( !isEnabled() ) 1667 if ( !isEnabled() )
1667 bar->setItemEnabled( id, false ); 1668 bar->setItemEnabled( id, false );
1668 1669
1669 addContainer( bar, id ); 1670 addContainer( bar, id );
1670 connect( bar, SIGNAL( destroyed() ), this, SLOT( slotDestroyed() ) ); 1671 connect( bar, SIGNAL( destroyed() ), this, SLOT( slotDestroyed() ) );
1671 1672
1672 return containerCount() - 1; 1673 return containerCount() - 1;
1673 } 1674 }
1674 1675
1675 return -1; 1676 return -1;
1676} 1677}
1677 1678
1678//////// 1679////////
1679 1680
1680KToolBarPopupAction::KToolBarPopupAction( const QString& text, 1681KToolBarPopupAction::KToolBarPopupAction( const QString& text,
1681 const QString& icon, 1682 const QString& icon,
1682 const KShortcut& cut, 1683 const KShortcut& cut,
1683 QObject* parent, const char* name ) 1684 QObject* parent, const char* name )
1684 : KAction( text, icon, cut, parent, name ) 1685 : KAction( text, icon, cut, parent, name )
1685{ 1686{
1686 m_popup = 0; 1687 m_popup = 0;
1687 m_delayed = true; 1688 m_delayed = true;
1688 m_stickyMenu = true; 1689 m_stickyMenu = true;
1689} 1690}
1690 1691
1691KToolBarPopupAction::KToolBarPopupAction( const QString& text, 1692KToolBarPopupAction::KToolBarPopupAction( const QString& text,
1692 const QString& icon, 1693 const QString& icon,
1693 const KShortcut& cut, 1694 const KShortcut& cut,
1694 const QObject* receiver, 1695 const QObject* receiver,
1695 const char* slot, QObject* parent, 1696 const char* slot, QObject* parent,
1696 const char* name ) 1697 const char* name )
1697 : KAction( text, icon, cut, receiver, slot, parent, name ) 1698 : KAction( text, icon, cut, receiver, slot, parent, name )
1698{ 1699{
1699 m_popup = 0; 1700 m_popup = 0;
1700 m_delayed = true; 1701 m_delayed = true;
1701 m_stickyMenu = true; 1702 m_stickyMenu = true;
1702} 1703}
1703 1704
1704KToolBarPopupAction::KToolBarPopupAction( const KGuiItem& item, 1705KToolBarPopupAction::KToolBarPopupAction( const KGuiItem& item,
1705 const KShortcut& cut, 1706 const KShortcut& cut,
1706 const QObject* receiver, 1707 const QObject* receiver,
1707 const char* slot, KActionCollection* parent, 1708 const char* slot, KActionCollection* parent,
1708 const char* name ) 1709 const char* name )
1709 : KAction( item, cut, receiver, slot, parent, name ) 1710 : KAction( item, cut, receiver, slot, parent, name )
1710{ 1711{
1711 m_popup = 0; 1712 m_popup = 0;
1712 m_delayed = true; 1713 m_delayed = true;
1713 m_stickyMenu = true; 1714 m_stickyMenu = true;
1714} 1715}
1715 1716
1716 1717
1717KToolBarPopupAction::~KToolBarPopupAction() 1718KToolBarPopupAction::~KToolBarPopupAction()
1718{ 1719{
1719 if ( m_popup ) 1720 if ( m_popup )
1720 delete m_popup; 1721 delete m_popup;
1721} 1722}
1722 1723
1723bool KToolBarPopupAction::delayed() const { 1724bool KToolBarPopupAction::delayed() const {
1724 return m_delayed; 1725 return m_delayed;
1725} 1726}
1726 1727
1727void KToolBarPopupAction::setDelayed(bool delayed) { 1728void KToolBarPopupAction::setDelayed(bool delayed) {
1728 m_delayed = delayed; 1729 m_delayed = delayed;
1729} 1730}
1730 1731
1731bool KToolBarPopupAction::stickyMenu() const { 1732bool KToolBarPopupAction::stickyMenu() const {
1732 return m_stickyMenu; 1733 return m_stickyMenu;
1733} 1734}
1734 1735
1735void KToolBarPopupAction::setStickyMenu(bool sticky) { 1736void KToolBarPopupAction::setStickyMenu(bool sticky) {
1736 m_stickyMenu = sticky; 1737 m_stickyMenu = sticky;
1737} 1738}
1738 1739
1739int KToolBarPopupAction::plug( QWidget *widget, int index ) 1740int KToolBarPopupAction::plug( QWidget *widget, int index )
1740{ 1741{
1741/*US 1742/*US
1742 if (kapp && !kapp->authorizeKAction(name())) 1743 if (kapp && !kapp->authorizeKAction(name()))
1743 return -1; 1744 return -1;
1744*/ 1745*/
1745 // This is very related to KActionMenu::plug. 1746 // This is very related to KActionMenu::plug.
1746 // In fact this class could be an interesting base class for KActionMenu 1747 // In fact this class could be an interesting base class for KActionMenu
1747 if ( widget->inherits( "KToolBar" ) ) 1748 if ( widget->inherits( "KToolBar" ) )
1748 { 1749 {
1749 KToolBar *bar = (KToolBar *)widget; 1750 KToolBar *bar = (KToolBar *)widget;
1750 1751
1751 int id_ = KAction::getToolButtonID(); 1752 int id_ = KAction::getToolButtonID();
1752/*US 1753/*US
1753 KInstance * instance; 1754 KInstance * instance;
1754 if ( m_parentCollection ) 1755 if ( m_parentCollection )
1755 instance = m_parentCollection->instance(); 1756 instance = m_parentCollection->instance();
1756 else 1757 else
1757 instance = KGlobal::instance(); 1758 instance = KGlobal::instance();
1758*/ 1759*/
1759 bar->insertButton( icon(), id_, SIGNAL( clicked() ), this, 1760 bar->insertButton( icon(), id_, SIGNAL( clicked() ), this,
1760 SLOT( slotActivated() ), isEnabled(), plainText(), 1761 SLOT( slotActivated() ), isEnabled(), plainText(),
1761 index/*US, instance*/ ); 1762 index/*US, instance*/ );
1762 1763
1763 addContainer( bar, id_ ); 1764 addContainer( bar, id_ );
1764 1765
1765 connect( bar, SIGNAL( destroyed() ), this, SLOT( slotDestroyed() ) ); 1766 connect( bar, SIGNAL( destroyed() ), this, SLOT( slotDestroyed() ) );
1766 1767
1767 if (delayed()) { 1768 if (delayed()) {
1768 bar->setDelayedPopup( id_, popupMenu(), stickyMenu() ); 1769 bar->setDelayedPopup( id_, popupMenu(), stickyMenu() );
1769 } else { 1770 } else {
1770 bar->getButton(id_)->setPopup(popupMenu(), stickyMenu()); 1771 bar->getButton(id_)->setPopup(popupMenu(), stickyMenu());
1771 } 1772 }
1772/*US 1773/*US
1773 if ( !whatsThis().isEmpty() ) 1774 if ( !whatsThis().isEmpty() )
1774 QWhatsThis::add( bar->getButton( id_ ), whatsThisWithIcon() ); 1775 QWhatsThis::add( bar->getButton( id_ ), whatsThisWithIcon() );
1775*/ 1776*/
1776 return containerCount() - 1; 1777 return containerCount() - 1;
1777 } 1778 }
1778 1779
1779 1780
1780 return KAction::plug( widget, index ); 1781 return KAction::plug( widget, index );
1781} 1782}
1782 1783
1783//US KPopupMenu *KToolBarPopupAction::popupMenu() const 1784//US KPopupMenu *KToolBarPopupAction::popupMenu() const
1784QPopupMenu *KToolBarPopupAction::popupMenu() const 1785Q3PopupMenu *KToolBarPopupAction::popupMenu() const
1785{ 1786{
1786 if ( !m_popup ) { 1787 if ( !m_popup ) {
1787 KToolBarPopupAction *that = const_cast<KToolBarPopupAction*>(this); 1788 KToolBarPopupAction *that = const_cast<KToolBarPopupAction*>(this);
1788//US that->m_popup = new KPopupMenu; 1789//US that->m_popup = new KPopupMenu;
1789 that->m_popup = new QPopupMenu; 1790 that->m_popup = new Q3PopupMenu;
1790 } 1791 }
1791 return m_popup; 1792 return m_popup;
1792} 1793}
1793 1794
1794//////// 1795////////
1795 1796
1796KToggleToolBarAction::KToggleToolBarAction( const char* toolBarName, 1797KToggleToolBarAction::KToggleToolBarAction( const char* toolBarName,
1797 const QString& text, KActionCollection* parent, const char* name ) 1798 const QString& text, KActionCollection* parent, const char* name )
1798 : KToggleAction( text, KShortcut(), parent, name ) 1799 : KToggleAction( text, KShortcut(), parent, name )
1799 , m_toolBarName( toolBarName ) 1800 , m_toolBarName( toolBarName )
1800 , m_toolBar( 0L ) 1801 , m_toolBar( 0L )
1801{ 1802{
1802} 1803}
1803 1804
1804KToggleToolBarAction::KToggleToolBarAction( KToolBar *toolBar, const QString &text, 1805KToggleToolBarAction::KToggleToolBarAction( KToolBar *toolBar, const QString &text,
1805 KActionCollection *parent, const char *name ) 1806 KActionCollection *parent, const char *name )
1806 : KToggleAction( text, KShortcut(), parent, name ) 1807 : KToggleAction( text, KShortcut(), parent, name )
1807 , m_toolBarName( 0 ) 1808 , m_toolBarName( 0 )
1808 , m_toolBar( toolBar ) 1809 , m_toolBar( toolBar )
1809{ 1810{
1810} 1811}
1811 1812
1812KToggleToolBarAction::~KToggleToolBarAction() 1813KToggleToolBarAction::~KToggleToolBarAction()
1813{ 1814{
1814} 1815}
1815 1816
1816int KToggleToolBarAction::plug( QWidget* w, int index ) 1817int KToggleToolBarAction::plug( QWidget* w, int index )
1817{ 1818{
1818 qDebug("KToggleToolBarAction::plug has to be fixed"); 1819 qDebug("KToggleToolBarAction::plug has to be fixed");
1819/*US 1820/*US
1820 if (kapp && !kapp->authorizeKAction(name())) 1821 if (kapp && !kapp->authorizeKAction(name()))
1821 return -1; 1822 return -1;
1822 1823
1823 if ( !m_toolBar ) { 1824 if ( !m_toolBar ) {
1824 // Note: topLevelWidget() stops too early, we can't use it. 1825 // Note: topLevelWidget() stops too early, we can't use it.
1825 QWidget * tl = w; 1826 QWidget * tl = w;
1826 QWidget * n; 1827 QWidget * n;
1827 while ( !tl->isDialog() && ( n = tl->parentWidget() ) ) // lookup parent and store 1828 while ( !tl->isDialog() && ( n = tl->parentWidget() ) ) // lookup parent and store
1828 tl = n; 1829 tl = n;
1829 1830
1830//US KMainWindow * mw = dynamic_cast<KMainWindow *>(tl); // try to see if it's a kmainwindow 1831//US KMainWindow * mw = dynamic_cast<KMainWindow *>(tl); // try to see if it's a kmainwindow
1831 QMainWindow * mw = 0; 1832 QMainWindow * mw = 0;
1832 if ( tl->inherits("QMainWindow") ) 1833 if ( tl->inherits("QMainWindow") )
1833 mw = (QMainWindow *)(tl); // try to see if it's a kmainwindow 1834 mw = (QMainWindow *)(tl); // try to see if it's a kmainwindow
1834 1835
1835 if ( mw ) 1836 if ( mw )
1836 m_toolBar = mw->toolBar( m_toolBarName ); 1837 m_toolBar = mw->toolBar( m_toolBarName );
1837 } 1838 }
1838 1839
1839 if( m_toolBar ) { 1840 if( m_toolBar ) {
1840 setChecked( m_toolBar->isVisible() ); 1841 setChecked( m_toolBar->isVisible() );
1841 connect( m_toolBar, SIGNAL(visibilityChanged(bool)), this, SLOT(setChecked(bool)) ); 1842 connect( m_toolBar, SIGNAL(visibilityChanged(bool)), this, SLOT(setChecked(bool)) );
1842 // Also emit toggled when the toolbar's visibility changes (see comment in header) 1843 // Also emit toggled when the toolbar's visibility changes (see comment in header)
1843 connect( m_toolBar, SIGNAL(visibilityChanged(bool)), this, SIGNAL(toggled(bool)) ); 1844 connect( m_toolBar, SIGNAL(visibilityChanged(bool)), this, SIGNAL(toggled(bool)) );
1844 } else { 1845 } else {
1845 setEnabled( false ); 1846 setEnabled( false );
1846 } 1847 }
1847*/ 1848*/
1848 return KToggleAction::plug( w, index ); 1849 return KToggleAction::plug( w, index );
1849} 1850}
1850 1851
1851void KToggleToolBarAction::setChecked( bool c ) 1852void KToggleToolBarAction::setChecked( bool c )
1852{ 1853{
1853 if( m_toolBar && c != m_toolBar->isVisible() ) { 1854 if( m_toolBar && c != m_toolBar->isVisible() ) {
1854 if( c ) { 1855 if( c ) {
1855 m_toolBar->show(); 1856 m_toolBar->show();
1856 } else { 1857 } else {
1857 m_toolBar->hide(); 1858 m_toolBar->hide();
1858 } 1859 }
1859 qDebug("KToggleToolBarAction::setChecked has to be fixed"); 1860 qDebug("KToggleToolBarAction::setChecked has to be fixed");
1860/*US 1861/*US
1861 QMainWindow* mw = m_toolBar->mainWindow(); 1862 QMainWindow* mw = m_toolBar->mainWindow();
1862 if ( mw && mw->inherits( "KMainWindow" ) ) 1863 if ( mw && mw->inherits( "KMainWindow" ) )
1863 static_cast<KMainWindow *>( mw )->setSettingsDirty(); 1864 static_cast<KMainWindow *>( mw )->setSettingsDirty();
1864*/ 1865*/
1865 } 1866 }
1866 KToggleAction::setChecked( c ); 1867 KToggleAction::setChecked( c );
1867 1868
1868} 1869}
1869 1870
1870//////// 1871////////
1871 1872
1872KWidgetAction::KWidgetAction( QWidget* widget, 1873KWidgetAction::KWidgetAction( QWidget* widget,
1873 const QString& text, const KShortcut& cut, 1874 const QString& text, const KShortcut& cut,
1874 const QObject* receiver, const char* slot, 1875 const QObject* receiver, const char* slot,
1875 KActionCollection* parent, const char* name ) 1876 KActionCollection* parent, const char* name )
1876 : KAction( text, cut, receiver, slot, parent, name ) 1877 : KAction( text, cut, receiver, slot, parent, name )
1877 , m_widget( widget ) 1878 , m_widget( widget )
1878 , m_autoSized( false ) 1879 , m_autoSized( false )
1879{ 1880{
1880} 1881}
1881 1882
1882KWidgetAction::~KWidgetAction() 1883KWidgetAction::~KWidgetAction()
1883{ 1884{
1884} 1885}
1885 1886
1886void KWidgetAction::setAutoSized( bool autoSized ) 1887void KWidgetAction::setAutoSized( bool autoSized )
1887{ 1888{
1888 if( m_autoSized == autoSized ) 1889 if( m_autoSized == autoSized )
1889 return; 1890 return;
1890 1891
1891 m_autoSized = autoSized; 1892 m_autoSized = autoSized;
1892 1893
1893 if( !m_widget || !isPlugged() ) 1894 if( !m_widget || !isPlugged() )
1894 return; 1895 return;
1895 1896
1896 KToolBar* toolBar = (KToolBar*)m_widget->parent(); 1897 KToolBar* toolBar = (KToolBar*)m_widget->parent();
1897 int i = findContainer( toolBar ); 1898 int i = findContainer( toolBar );
1898 if ( i == -1 ) 1899 if ( i == -1 )
1899 return; 1900 return;
1900 int id = itemId( i ); 1901 int id = itemId( i );
1901 1902
1902 toolBar->setItemAutoSized( id, m_autoSized ); 1903 toolBar->setItemAutoSized( id, m_autoSized );
1903 1904
1904} 1905}
1905 1906
1906int KWidgetAction::plug( QWidget* w, int index ) 1907int KWidgetAction::plug( QWidget* w, int index )
1907{ 1908{
1908/*US 1909/*US
1909 if (kapp && !kapp->authorizeKAction(name())) 1910 if (kapp && !kapp->authorizeKAction(name()))
1910 return -1; 1911 return -1;
1911*/ 1912*/
1912 if ( !w->inherits( "KToolBar" ) ) { 1913 if ( !w->inherits( "KToolBar" ) ) {
1913 kdError() << "KWidgetAction::plug: KWidgetAction must be plugged into KToolBar." << endl; 1914 kdError() << "KWidgetAction::plug: KWidgetAction must be plugged into KToolBar." << endl;
1914 return -1; 1915 return -1;
1915 } 1916 }
1916 if ( !m_widget ) { 1917 if ( !m_widget ) {
1917 kdError() << "KWidgetAction::plug: Widget was deleted or null!" << endl; 1918 kdError() << "KWidgetAction::plug: Widget was deleted or null!" << endl;
1918 return -1; 1919 return -1;
1919 } 1920 }
1920 1921
1921 KToolBar* toolBar = static_cast<KToolBar*>( w ); 1922 KToolBar* toolBar = static_cast<KToolBar*>( w );
1922 1923
1923 int id = KAction::getToolButtonID(); 1924 int id = KAction::getToolButtonID();
1924 1925
1925 m_widget->reparent( toolBar, QPoint() ); 1926 m_widget->reparent( toolBar, QPoint() );
1926 toolBar->insertWidget( id, 0, m_widget, index ); 1927 toolBar->insertWidget( id, 0, m_widget, index );
1927 toolBar->setItemAutoSized( id, m_autoSized ); 1928 toolBar->setItemAutoSized( id, m_autoSized );
1928 1929
1929//US QWhatsThis::add( m_widget, whatsThis() ); 1930//US QWhatsThis::add( m_widget, whatsThis() );
1930 addContainer( toolBar, id ); 1931 addContainer( toolBar, id );
1931 1932
1932 connect( toolBar, SIGNAL( toolbarDestroyed() ), this, SLOT( slotToolbarDestroyed() ) ); 1933 connect( toolBar, SIGNAL( toolbarDestroyed() ), this, SLOT( slotToolbarDestroyed() ) );
1933 connect( toolBar, SIGNAL( destroyed() ), this, SLOT( slotDestroyed() ) ); 1934 connect( toolBar, SIGNAL( destroyed() ), this, SLOT( slotDestroyed() ) );
1934 1935
1935 return containerCount() - 1; 1936 return containerCount() - 1;
1936} 1937}
1937 1938
1938void KWidgetAction::unplug( QWidget *w ) 1939void KWidgetAction::unplug( QWidget *w )
1939{ 1940{
1940 if( !m_widget || !isPlugged() ) 1941 if( !m_widget || !isPlugged() )
1941 return; 1942 return;
1942 1943
1943 KToolBar* toolBar = (KToolBar*)m_widget->parent(); 1944 KToolBar* toolBar = (KToolBar*)m_widget->parent();
1944 if ( toolBar == w ) 1945 if ( toolBar == w )
1945 { 1946 {
1946 disconnect( toolBar, SIGNAL( toolbarDestroyed() ), this, SLOT( slotToolbarDestroyed() ) ); 1947 disconnect( toolBar, SIGNAL( toolbarDestroyed() ), this, SLOT( slotToolbarDestroyed() ) );
1947 m_widget->reparent( 0L, QPoint(), false ); // false = showit 1948 m_widget->reparent( 0L, QPoint(), false ); // false = showit
1948 } 1949 }
1949 KAction::unplug( w ); 1950 KAction::unplug( w );
1950} 1951}
1951 1952
1952void KWidgetAction::slotToolbarDestroyed() 1953void KWidgetAction::slotToolbarDestroyed()
1953{ 1954{
1954 //Q_ASSERT( m_widget ); // When exiting the app the widget could be destroyed before the toolbar. 1955 //Q_ASSERT( m_widget ); // When exiting the app the widget could be destroyed before the toolbar.
1955 1956
1956 ASSERT( isPlugged() ); 1957 Q_ASSERT( isPlugged() );
1957 if( !m_widget || !isPlugged() ) 1958 if( !m_widget || !isPlugged() )
1958 return; 1959 return;
1959 1960
1960 // Don't let a toolbar being destroyed, delete my widget. 1961 // Don't let a toolbar being destroyed, delete my widget.
1961 m_widget->reparent( 0L, QPoint(), false /*showIt*/ ); 1962 m_widget->reparent( 0L, QPoint(), false /*showIt*/ );
1962} 1963}
1963 1964
1964//////// 1965////////
1965 1966
1966KActionSeparator::KActionSeparator( QObject *parent, const char *name ) 1967KActionSeparator::KActionSeparator( QObject *parent, const char *name )
1967 : KAction( parent, name ) 1968 : KAction( parent, name )
1968{ 1969{
1969} 1970}
1970 1971
1971KActionSeparator::~KActionSeparator() 1972KActionSeparator::~KActionSeparator()
1972{ 1973{
1973} 1974}
1974 1975
1975int KActionSeparator::plug( QWidget *widget, int index ) 1976int KActionSeparator::plug( QWidget *widget, int index )
1976{ 1977{
1977 if ( widget->inherits("QPopupMenu") ) 1978 if ( widget->inherits("Q3PopupMenu") )
1978 { 1979 {
1979 QPopupMenu* menu = static_cast<QPopupMenu*>( widget ); 1980 Q3PopupMenu* menu = static_cast<Q3PopupMenu*>( widget );
1980 1981
1981 int id = menu->insertSeparator( index ); 1982 int id = menu->insertSeparator( index );
1982 1983
1983 addContainer( menu, id ); 1984 addContainer( menu, id );
1984 connect( menu, SIGNAL( destroyed() ), this, SLOT( slotDestroyed() ) ); 1985 connect( menu, SIGNAL( destroyed() ), this, SLOT( slotDestroyed() ) );
1985 1986
1986 return containerCount() - 1; 1987 return containerCount() - 1;
1987 } 1988 }
1988 else if ( widget->inherits( "QMenuBar" ) ) 1989 else if ( widget->inherits( "QMenuBar" ) )
1989 { 1990 {
1990 QMenuBar *menuBar = static_cast<QMenuBar *>( widget ); 1991 QMenuBar *menuBar = static_cast<QMenuBar *>( widget );
1991 1992
1992 int id = menuBar->insertSeparator( index ); 1993 int id = menuBar->insertSeparator( index );
1993 1994
1994 addContainer( menuBar, id ); 1995 addContainer( menuBar, id );
1995 1996
1996 connect( menuBar, SIGNAL( destroyed() ), this, SLOT( slotDestroyed() ) ); 1997 connect( menuBar, SIGNAL( destroyed() ), this, SLOT( slotDestroyed() ) );
1997 1998
1998 return containerCount() - 1; 1999 return containerCount() - 1;
1999 } 2000 }
2000 else if ( widget->inherits( "KToolBar" ) ) 2001 else if ( widget->inherits( "KToolBar" ) )
2001 { 2002 {
2002 KToolBar *toolBar = static_cast<KToolBar *>( widget ); 2003 KToolBar *toolBar = static_cast<KToolBar *>( widget );
2003 2004
2004 int id = toolBar->insertSeparator( index ); 2005 int id = toolBar->insertSeparator( index );
2005// toolBar->addSeparator(); 2006// toolBar->addSeparator();
2006 2007
2007 addContainer( toolBar, id ); 2008 addContainer( toolBar, id );
2008 2009
2009 connect( toolBar, SIGNAL( destroyed() ), this, SLOT( slotDestroyed() ) ); 2010 connect( toolBar, SIGNAL( destroyed() ), this, SLOT( slotDestroyed() ) );
2010 2011
2011 return containerCount() - 1; 2012 return containerCount() - 1;
2012 } 2013 }
2013 2014
2014 return -1; 2015 return -1;
2015} 2016}
2016 2017
2017void KToggleAction::virtual_hook( int id, void* data ) 2018void KToggleAction::virtual_hook( int id, void* data )
2018{ KAction::virtual_hook( id, data ); } 2019{ KAction::virtual_hook( id, data ); }
2019 2020
2020void KRadioAction::virtual_hook( int id, void* data ) 2021void KRadioAction::virtual_hook( int id, void* data )
2021{ KToggleAction::virtual_hook( id, data ); } 2022{ KToggleAction::virtual_hook( id, data ); }
2022 2023
2023void KSelectAction::virtual_hook( int id, void* data ) 2024void KSelectAction::virtual_hook( int id, void* data )
2024{ KAction::virtual_hook( id, data ); } 2025{ KAction::virtual_hook( id, data ); }
2025 2026
2026void KListAction::virtual_hook( int id, void* data ) 2027void KListAction::virtual_hook( int id, void* data )
2027{ KSelectAction::virtual_hook( id, data ); } 2028{ KSelectAction::virtual_hook( id, data ); }
2028 2029
2029void KRecentFilesAction::virtual_hook( int id, void* data ) 2030void KRecentFilesAction::virtual_hook( int id, void* data )
2030{ KListAction::virtual_hook( id, data ); } 2031{ KListAction::virtual_hook( id, data ); }
2031 2032
2032void KFontAction::virtual_hook( int id, void* data ) 2033void KFontAction::virtual_hook( int id, void* data )
2033{ KSelectAction::virtual_hook( id, data ); } 2034{ KSelectAction::virtual_hook( id, data ); }
2034 2035
2035void KFontSizeAction::virtual_hook( int id, void* data ) 2036void KFontSizeAction::virtual_hook( int id, void* data )
2036{ KSelectAction::virtual_hook( id, data ); } 2037{ KSelectAction::virtual_hook( id, data ); }
2037 2038
2038void KActionMenu::virtual_hook( int id, void* data ) 2039void KActionMenu::virtual_hook( int id, void* data )
2039{ KAction::virtual_hook( id, data ); } 2040{ KAction::virtual_hook( id, data ); }
2040 2041
2041void KToolBarPopupAction::virtual_hook( int id, void* data ) 2042void KToolBarPopupAction::virtual_hook( int id, void* data )
2042{ KAction::virtual_hook( id, data ); } 2043{ KAction::virtual_hook( id, data ); }
2043 2044
2044void KToggleToolBarAction::virtual_hook( int id, void* data ) 2045void KToggleToolBarAction::virtual_hook( int id, void* data )
2045{ KToggleAction::virtual_hook( id, data ); } 2046{ KToggleAction::virtual_hook( id, data ); }
2046 2047
2047void KWidgetAction::virtual_hook( int id, void* data ) 2048void KWidgetAction::virtual_hook( int id, void* data )
2048{ KAction::virtual_hook( id, data ); } 2049{ KAction::virtual_hook( id, data ); }
2049 2050
2050void KActionSeparator::virtual_hook( int id, void* data ) 2051void KActionSeparator::virtual_hook( int id, void* data )
2051{ KAction::virtual_hook( id, data ); } 2052{ KAction::virtual_hook( id, data ); }
2052 2053
2053/* vim: et sw=2 ts=2 2054/* vim: et sw=2 ts=2
2054 */ 2055 */
2055 2056
2056/*US 2057/*US
2057#include "kactionclasses.moc" 2058#include "kactionclasses.moc"
2058*/ 2059*/