summaryrefslogtreecommitdiffabout
path: root/microkde/kdeui
authorMichael Krelin <hacker@klever.net>2007-07-04 11:23:42 (UTC)
committer Michael Krelin <hacker@klever.net>2007-07-04 11:23:42 (UTC)
commita08aff328d4393031d5ba7d622c2b05705a89d73 (patch) (unidiff)
tree8ee90d686081c52e7c69b5ce946e9b1a7d690001 /microkde/kdeui
parent11edc920afe4f274c0964436633aa632c8288a40 (diff)
downloadkdepimpi-a08aff328d4393031d5ba7d622c2b05705a89d73.zip
kdepimpi-a08aff328d4393031d5ba7d622c2b05705a89d73.tar.gz
kdepimpi-a08aff328d4393031d5ba7d622c2b05705a89d73.tar.bz2
initial public commit of qt4 portp1
Diffstat (limited to 'microkde/kdeui') (more/less context) (ignore whitespace changes)
-rw-r--r--microkde/kdeui/kaction.cpp75
-rw-r--r--microkde/kdeui/kaction.h26
-rw-r--r--microkde/kdeui/kactionclasses.cpp111
-rw-r--r--microkde/kdeui/kactionclasses.h51
-rw-r--r--microkde/kdeui/kactioncollection.cpp50
-rw-r--r--microkde/kdeui/kactioncollection.h4
-rw-r--r--microkde/kdeui/kbuttonbox.cpp18
-rw-r--r--microkde/kdeui/kbuttonbox.h4
-rw-r--r--microkde/kdeui/kguiitem.cpp14
-rw-r--r--microkde/kdeui/kguiitem.h12
-rw-r--r--microkde/kdeui/kjanuswidget.cpp140
-rw-r--r--microkde/kdeui/kjanuswidget.h56
-rw-r--r--microkde/kdeui/klistbox.cpp56
-rw-r--r--microkde/kdeui/klistbox.h25
-rw-r--r--microkde/kdeui/klistview.cpp337
-rw-r--r--microkde/kdeui/klistview.h121
-rw-r--r--microkde/kdeui/kmainwindow.cpp97
-rw-r--r--microkde/kdeui/kmainwindow.h19
-rw-r--r--microkde/kdeui/knuminput.cpp61
-rw-r--r--microkde/kdeui/knuminput.h15
-rw-r--r--microkde/kdeui/kpopupmenu.cpp5
-rw-r--r--microkde/kdeui/kpopupmenu.h6
-rw-r--r--microkde/kdeui/kseparator.cpp18
-rw-r--r--microkde/kdeui/kseparator.h8
-rw-r--r--microkde/kdeui/ksqueezedtextlabel.cpp3
-rw-r--r--microkde/kdeui/ksqueezedtextlabel.h2
-rw-r--r--microkde/kdeui/kstdaction.cpp2
-rw-r--r--microkde/kdeui/ktoolbar.cpp185
-rw-r--r--microkde/kdeui/ktoolbar.h68
-rw-r--r--microkde/kdeui/ktoolbarbutton.cpp106
-rw-r--r--microkde/kdeui/ktoolbarbutton.h17
-rw-r--r--microkde/kdeui/ktoolbarhandler.cpp26
-rw-r--r--microkde/kdeui/ktoolbarhandler.h10
-rw-r--r--microkde/kdeui/kxmlguiclient.cpp12
-rw-r--r--microkde/kdeui/kxmlguiclient.h6
35 files changed, 950 insertions, 816 deletions
diff --git a/microkde/kdeui/kaction.cpp b/microkde/kdeui/kaction.cpp
index d38a6d5..c2df381 100644
--- a/microkde/kdeui/kaction.cpp
+++ b/microkde/kdeui/kaction.cpp
@@ -15,49 +15,52 @@
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 "kaction.h" 26#include "kaction.h"
27 27
28#include <assert.h> 28#include <assert.h>
29 29
30#include <qtooltip.h> 30#include <qtooltip.h>
31//Added by qt3to4:
32#include <Q3CString>
33#include <Q3ValueList>
31//US#include <qwhatsthis.h> 34//US#include <qwhatsthis.h>
32//US#include <kaccel.h> 35//US#include <kaccel.h>
33//US#include <kaccelbase.h> 36//US#include <kaccelbase.h>
34#include <kapplication.h> 37#include <kapplication.h>
35#include <kdebug.h> 38#include <kdebug.h>
36#include <kguiitem.h> 39#include <kguiitem.h>
37//US#include <kmainwindow.h> 40//US#include <kmainwindow.h>
38//US#include <kmenubar.h> 41//US#include <kmenubar.h>
39//US#include <kpopupmenu.h> 42//US#include <kpopupmenu.h>
40#include <ktoolbar.h> 43#include <ktoolbar.h>
41#include <ktoolbarbutton.h> 44#include <ktoolbarbutton.h>
42 45
43//US added this includefiles 46//US added this includefiles
44#include <qmenubar.h> 47#include <qmenubar.h>
45#include <qtoolbar.h> 48#include <q3toolbar.h>
46#include <qpopupmenu.h> 49#include <q3popupmenu.h>
47#include <qiconset.h> 50#include <qicon.h>
48 51
49/** 52/**
50* How it works. 53* How it works.
51* KActionCollection is an organizing container for KActions. 54* KActionCollection is an organizing container for KActions.
52* KActionCollection keeps track of the information necessary to handle 55* KActionCollection keeps track of the information necessary to handle
53* configuration and shortcuts. 56* configuration and shortcuts.
54* 57*
55* Focus Widget pointer: 58* Focus Widget pointer:
56* This is the widget which is the focus for action shortcuts. 59* This is the widget which is the focus for action shortcuts.
57* It is set either by passing a QWidget* to the KActionCollection constructor 60* It is set either by passing a QWidget* to the KActionCollection constructor
58* or by calling setWidget() if the widget wasn't known when the object was 61* or by calling setWidget() if the widget wasn't known when the object was
59* initially constructed (as in KXMLGUIClient and KParts::PartBase) 62* initially constructed (as in KXMLGUIClient and KParts::PartBase)
60* 63*
61* Shortcuts: 64* Shortcuts:
62* An action's shortcut will not not be connected unless a focus widget has 65* An action's shortcut will not not be connected unless a focus widget has
63* been specified in KActionCollection. 66* been specified in KActionCollection.
@@ -74,76 +77,76 @@ int KAction::getToolButtonID()
74} 77}
75 78
76//--------------------------------------------------------------------- 79//---------------------------------------------------------------------
77// KAction::KActionPrivate 80// KAction::KActionPrivate
78//--------------------------------------------------------------------- 81//---------------------------------------------------------------------
79 82
80class KAction::KActionPrivate : public KGuiItem 83class KAction::KActionPrivate : public KGuiItem
81{ 84{
82public: 85public:
83 KActionPrivate() : KGuiItem() 86 KActionPrivate() : KGuiItem()
84 { 87 {
85 m_kaccel = 0; 88 m_kaccel = 0;
86 m_configurable = true; 89 m_configurable = true;
87 } 90 }
88 91
89 KAccel *m_kaccel; 92 KAccel *m_kaccel;
90 QValueList<KAccel*> m_kaccelList; 93 Q3ValueList<KAccel*> m_kaccelList;
91 94
92 QString m_groupText; 95 QString m_groupText;
93 QString m_group; 96 QString m_group;
94 97
95 KShortcut m_cut; 98 KShortcut m_cut;
96 KShortcut m_cutDefault; 99 KShortcut m_cutDefault;
97 100
98 bool m_configurable; 101 bool m_configurable;
99 102
100 struct Container 103 struct Container
101 { 104 {
102 Container() { m_container = 0; m_representative = 0; m_id = 0; } 105 Container() { m_container = 0; m_representative = 0; m_id = 0; }
103 Container( const Container& s ) { m_container = s.m_container; 106 Container( const Container& s ) { m_container = s.m_container;
104 m_id = s.m_id; m_representative = s.m_representative; } 107 m_id = s.m_id; m_representative = s.m_representative; }
105 QWidget* m_container; 108 QWidget* m_container;
106 int m_id; 109 int m_id;
107 QWidget* m_representative; 110 QWidget* m_representative;
108 }; 111 };
109 112
110 QValueList<Container> m_containers; 113 Q3ValueList<Container> m_containers;
111}; 114};
112 115
113//--------------------------------------------------------------------- 116//---------------------------------------------------------------------
114// KAction 117// KAction
115//--------------------------------------------------------------------- 118//---------------------------------------------------------------------
116KAction::KAction( const QString& text, const KShortcut& cut, 119KAction::KAction( const QString& text, const KShortcut& cut,
117 const QObject* receiver, const char* slot, 120 const QObject* receiver, const char* slot,
118 KActionCollection* parent, const char* name ) 121 KActionCollection* parent, const char* name )
119: QObject( parent, name ) 122: QObject( parent, name )
120{ 123{
121 initPrivate( text, cut, receiver, slot ); 124 initPrivate( text, cut, receiver, slot );
122} 125}
123 126
124KAction::KAction( const QString& text, const QString& sIconName, const KShortcut& cut, 127KAction::KAction( const QString& text, const QString& sIconName, const KShortcut& cut,
125 const QObject* receiver, const char* slot, 128 const QObject* receiver, const char* slot,
126 KActionCollection* parent, const char* name ) 129 KActionCollection* parent, const char* name )
127: QObject( parent, name ) 130: QObject( parent, name )
128{ 131{
129 initPrivate( text, cut, receiver, slot ); 132 initPrivate( text, cut, receiver, slot );
130 d->setIconName( sIconName ); 133 d->setIconName( sIconName );
131} 134}
132 135
133KAction::KAction( const QString& text, const QIconSet& pix, const KShortcut& cut, 136KAction::KAction( const QString& text, const QIcon& pix, const KShortcut& cut,
134 const QObject* receiver, const char* slot, 137 const QObject* receiver, const char* slot,
135 KActionCollection* parent, const char* name ) 138 KActionCollection* parent, const char* name )
136: QObject( parent, name ) 139: QObject( parent, name )
137{ 140{
138 initPrivate( text, cut, receiver, slot ); 141 initPrivate( text, cut, receiver, slot );
139 d->setIconSet( pix ); 142 d->setIconSet( pix );
140} 143}
141KAction::KAction( const KGuiItem& item, const KShortcut& cut, 144KAction::KAction( const KGuiItem& item, const KShortcut& cut,
142 const QObject* receiver, const char* slot, 145 const QObject* receiver, const char* slot,
143 KActionCollection* parent, const char* name ) 146 KActionCollection* parent, const char* name )
144: QObject( parent, name ) 147: QObject( parent, name )
145{ 148{
146 initPrivate( item.text(), cut, receiver, slot ); 149 initPrivate( item.text(), cut, receiver, slot );
147 if( item.hasIconSet() ) 150 if( item.hasIconSet() )
148 setIcon( item.iconName() ); 151 setIcon( item.iconName() );
149 setToolTip( item.toolTip() ); 152 setToolTip( item.toolTip() );
@@ -151,51 +154,51 @@ KAction::KAction( const KGuiItem& item, const KShortcut& cut,
151} 154}
152 155
153// KDE 4: remove 156// KDE 4: remove
154KAction::KAction( const QString& text, const KShortcut& cut, 157KAction::KAction( const QString& text, const KShortcut& cut,
155 QObject* parent, const char* name ) 158 QObject* parent, const char* name )
156 : QObject( parent, name ) 159 : QObject( parent, name )
157{ 160{
158 initPrivate( text, cut, 0, 0 ); 161 initPrivate( text, cut, 0, 0 );
159} 162}
160KAction::KAction( const QString& text, const KShortcut& cut, 163KAction::KAction( const QString& text, const KShortcut& cut,
161 const QObject* receiver, 164 const QObject* receiver,
162 const char* slot, QObject* parent, const char* name ) 165 const char* slot, QObject* parent, const char* name )
163 : QObject( parent, name ) 166 : QObject( parent, name )
164{ 167{
165 initPrivate( text, cut, receiver, slot ); 168 initPrivate( text, cut, receiver, slot );
166} 169}
167KAction::KAction( const QString& text, const QIconSet& pix, 170KAction::KAction( const QString& text, const QIcon& pix,
168 const KShortcut& cut, 171 const KShortcut& cut,
169 QObject* parent, const char* name ) 172 QObject* parent, const char* name )
170 : QObject( parent, name ) 173 : QObject( parent, name )
171{ 174{
172 initPrivate( text, cut, 0, 0 ); 175 initPrivate( text, cut, 0, 0 );
173 setIconSet( pix ); 176 setIconSet( pix );
174} 177}
175 178
176KAction::KAction( const QString& text, const QString& pix, 179KAction::KAction( const QString& text, const QString& pix,
177 const KShortcut& cut, 180 const KShortcut& cut,
178 QObject* parent, const char* name ) 181 QObject* parent, const char* name )
179: QObject( parent, name ) 182: QObject( parent, name )
180{ 183{
181 initPrivate( text, cut, 0, 0 ); 184 initPrivate( text, cut, 0, 0 );
182 d->setIconName( pix ); 185 d->setIconName( pix );
183} 186}
184 187
185KAction::KAction( const QString& text, const QIconSet& pix, 188KAction::KAction( const QString& text, const QIcon& pix,
186 const KShortcut& cut, 189 const KShortcut& cut,
187 const QObject* receiver, const char* slot, QObject* parent, 190 const QObject* receiver, const char* slot, QObject* parent,
188 const char* name ) 191 const char* name )
189 : QObject( parent, name ) 192 : QObject( parent, name )
190{ 193{
191 initPrivate( text, cut, receiver, slot ); 194 initPrivate( text, cut, receiver, slot );
192 setIconSet( pix ); 195 setIconSet( pix );
193} 196}
194 197
195KAction::KAction( const QString& text, const QString& pix, 198KAction::KAction( const QString& text, const QString& pix,
196 const KShortcut& cut, 199 const KShortcut& cut,
197 const QObject* receiver, const char* slot, QObject* parent, 200 const QObject* receiver, const char* slot, QObject* parent,
198 const char* name ) 201 const char* name )
199 : QObject( parent, name ) 202 : QObject( parent, name )
200{ 203{
201 initPrivate( text, cut, receiver, slot ); 204 initPrivate( text, cut, receiver, slot );
@@ -493,45 +496,45 @@ void KAction::removeKAccel( KAccel* kaccel )
493 } 496 }
494*/ 497*/
495} 498}
496 499
497// KDE 4: remove 500// KDE 4: remove
498void KAction::setAccel( int keyQt ) 501void KAction::setAccel( int keyQt )
499{ 502{
500 setShortcut( KShortcut(keyQt) ); 503 setShortcut( KShortcut(keyQt) );
501} 504}
502// KDE 4: remove end 505// KDE 4: remove end
503 506
504void KAction::updateShortcut( int i ) 507void KAction::updateShortcut( int i )
505{ 508{
506 int id = itemId( i ); 509 int id = itemId( i );
507 510
508 QWidget* w = container( i ); 511 QWidget* w = container( i );
509 if ( w->inherits( "QPopupMenu" ) ) { 512 if ( w->inherits( "Q3PopupMenu" ) ) {
510 QPopupMenu* menu = static_cast<QPopupMenu*>(w); 513 Q3PopupMenu* menu = static_cast<Q3PopupMenu*>(w);
511 updateShortcut( menu, id ); 514 updateShortcut( menu, id );
512 } 515 }
513 else if ( w->inherits( "QMenuBar" ) ) 516 else if ( w->inherits( "QMenuBar" ) )
514//US static_cast<QMenuBar*>(w)->setAccel( d->m_cut.keyCodeQt(), id ); 517//US static_cast<QMenuBar*>(w)->setAccel( d->m_cut.keyCodeQt(), id );
515//US (QMenuBar*)(w)->setAccel( d->m_cut.keyCodeQt(), id ); 518//US (QMenuBar*)(w)->setAccel( d->m_cut.keyCodeQt(), id );
516 519
517 ; //qDebug("KAction::updateShortcut( int i ) ...1 has top be fixed"); 520 ; //qDebug("KAction::updateShortcut( int i ) ...1 has top be fixed");
518 521
519} 522}
520 523
521void KAction::updateShortcut( QPopupMenu* menu, int id ) 524void KAction::updateShortcut( Q3PopupMenu* menu, int id )
522{ 525{
523/*US 526/*US
524 //kdDebug(129) << "KAction::updateShortcut(): this = " << this << " d->m_kaccelList.count() = " << d->m_kaccelList.count() << endl; 527 //kdDebug(129) << "KAction::updateShortcut(): this = " << this << " d->m_kaccelList.count() = " << d->m_kaccelList.count() << endl;
525 // If the action has a KAccel object, 528 // If the action has a KAccel object,
526 // show the string representation of its shortcut. 529 // show the string representation of its shortcut.
527 if ( d->m_kaccel || d->m_kaccelList.count() ) { 530 if ( d->m_kaccel || d->m_kaccelList.count() ) {
528 QString s = menu->text( id ); 531 QString s = menu->text( id );
529 int i = s.find( '\t' ); 532 int i = s.find( '\t' );
530 if ( i >= 0 ) 533 if ( i >= 0 )
531 s.replace( i+1, s.length()-i, d->m_cut.seq(0).toString() ); 534 s.replace( i+1, s.length()-i, d->m_cut.seq(0).toString() );
532 else 535 else
533 s += "\t" + d->m_cut.seq(0).toString(); 536 s += "\t" + d->m_cut.seq(0).toString();
534 537
535 menu->changeItem( id, s ); 538 menu->changeItem( id, s );
536 } 539 }
537 // Otherwise insert the shortcut itself into the popup menu. 540 // Otherwise insert the shortcut itself into the popup menu.
@@ -608,60 +611,60 @@ void KAction::setToolTip( const QString& tt )
608{ 611{
609 //qDebug("KAction::setToolTip ...1 has top be fixed"); 612 //qDebug("KAction::setToolTip ...1 has top be fixed");
610 d->setToolTip( tt ); 613 d->setToolTip( tt );
611 614
612 int len = containerCount(); 615 int len = containerCount();
613 for( int i = 0; i < len; ++i ) 616 for( int i = 0; i < len; ++i )
614 updateToolTip( i ); 617 updateToolTip( i );
615} 618}
616 619
617void KAction::updateToolTip( int i ) 620void KAction::updateToolTip( int i )
618{ 621{
619 //qDebug("KAction::updateToolTip ...1 has top be fixed"); 622 //qDebug("KAction::updateToolTip ...1 has top be fixed");
620 QWidget *w = container( i ); 623 QWidget *w = container( i );
621 624
622 if ( w->inherits( "KToolBar" ) ) 625 if ( w->inherits( "KToolBar" ) )
623 QToolTip::add( static_cast<KToolBar*>(w)->getWidget( itemId( i ) ), d->toolTip() ); 626 QToolTip::add( static_cast<KToolBar*>(w)->getWidget( itemId( i ) ), d->toolTip() );
624 else if ( w->inherits( "QToolBar" ) ) 627 else if ( w->inherits( "Q3ToolBar" ) )
625 QToolTip::add( static_cast<KToolBar*>(w)->getWidget( itemId( i ) ), d->toolTip() ); 628 QToolTip::add( static_cast<KToolBar*>(w)->getWidget( itemId( i ) ), d->toolTip() );
626} 629}
627 630
628QString KAction::toolTip() const 631QString KAction::toolTip() const
629{ 632{
630 return d->toolTip(); 633 return d->toolTip();
631} 634}
632 635
633int KAction::plug( QWidget *w, int index ) 636int KAction::plug( QWidget *w, int index )
634{ 637{
635 //kdDebug(129) << "KAction::plug( " << w << ", " << index << " )" << endl; 638 //kdDebug(129) << "KAction::plug( " << w << ", " << index << " )" << endl;
636 if (w == 0) { 639 if (w == 0) {
637 kdWarning(129) << "KAction::plug called with 0 argument\n"; 640 kdWarning(129) << "KAction::plug called with 0 argument\n";
638 return -1; 641 return -1;
639 } 642 }
640 643
641 644
642 645
643 // Check if action is permitted 646 // Check if action is permitted
644//US if (kapp && !kapp->authorizeKAction(name())) 647//US if (kapp && !kapp->authorizeKAction(name()))
645//US return -1; 648//US return -1;
646 649
647 plugShortcut(); 650 plugShortcut();
648 651
649 if ( w->inherits("QPopupMenu") ) 652 if ( w->inherits("Q3PopupMenu") )
650 { 653 {
651 QPopupMenu* menu = static_cast<QPopupMenu*>( w ); 654 Q3PopupMenu* menu = static_cast<Q3PopupMenu*>( w );
652 int id; 655 int id;
653 // Don't insert shortcut into menu if it's already in a KAccel object. 656 // Don't insert shortcut into menu if it's already in a KAccel object.
654 //qDebug("KAction::plug warning: real shortcuts not available yet. "); 657 //qDebug("KAction::plug warning: real shortcuts not available yet. ");
655//US int keyQt = (d->m_kaccelList.count() || d->m_kaccel) ? 0 : d->m_cut.keyCodeQt(); 658//US int keyQt = (d->m_kaccelList.count() || d->m_kaccel) ? 0 : d->m_cut.keyCodeQt();
656 int keyQt = 0; 659 int keyQt = 0;
657 660
658 if ( d->hasIcon() ) 661 if ( d->hasIcon() )
659 { 662 {
660/*US 663/*US
661 KInstance *instance; 664 KInstance *instance;
662 if ( m_parentCollection ) 665 if ( m_parentCollection )
663 instance = m_parentCollection->instance(); 666 instance = m_parentCollection->instance();
664 else 667 else
665 instance = KGlobal::instance(); 668 instance = KGlobal::instance();
666*/ 669*/
667 id = menu->insertItem( d->iconSet( KIcon::Small, 0/*US , instance */), d->text(), this,//dsweet 670 id = menu->insertItem( d->iconSet( KIcon::Small, 0/*US , instance */), d->text(), this,//dsweet
@@ -708,63 +711,63 @@ int KAction::plug( QWidget *w, int index )
708*/ 711*/
709 if ( icon().isEmpty() && !iconSet().pixmap().isNull() ) // old code using QIconSet directly 712 if ( icon().isEmpty() && !iconSet().pixmap().isNull() ) // old code using QIconSet directly
710 { 713 {
711 bar->insertButton( iconSet().pixmap(), id_, SIGNAL( clicked() ), this, 714 bar->insertButton( iconSet().pixmap(), id_, SIGNAL( clicked() ), this,
712 SLOT( slotActivated() ), 715 SLOT( slotActivated() ),
713 d->isEnabled(), d->plainText(), index ); 716 d->isEnabled(), d->plainText(), index );
714 } 717 }
715 else 718 else
716 { 719 {
717 QString icon = d->iconName(); 720 QString icon = d->iconName();
718 if ( icon.isEmpty() ) 721 if ( icon.isEmpty() )
719 icon = "unknown"; 722 icon = "unknown";
720 bar->insertButton( icon, id_, SIGNAL( clicked() ), this, 723 bar->insertButton( icon, id_, SIGNAL( clicked() ), this,
721 SLOT( slotActivated() ), 724 SLOT( slotActivated() ),
722 d->isEnabled(), d->plainText(), index/*US, instance*/ ); 725 d->isEnabled(), d->plainText(), index/*US, instance*/ );
723 } 726 }
724 bar->getButton( id_ )->setName( QCString("toolbutton_")+name() ); 727 bar->getButton( id_ )->setName( Q3CString("toolbutton_")+name() );
725 728
726//US if ( !d->whatsThis().isEmpty() ) 729//US if ( !d->whatsThis().isEmpty() )
727//US QWhatsThis::add( bar->getButton(id_), whatsThisWithIcon() ); 730//US QWhatsThis::add( bar->getButton(id_), whatsThisWithIcon() );
728 if ( !d->toolTip().isEmpty() ) 731 if ( !d->toolTip().isEmpty() )
729 QToolTip::add( bar->getButton(id_), d->toolTip() ); 732 QToolTip::add( bar->getButton(id_), d->toolTip() );
730 733
731 addContainer( bar, id_ ); 734 addContainer( bar, id_ );
732 735
733 connect( bar, SIGNAL( destroyed() ), this, SLOT( slotDestroyed() ) ); 736 connect( bar, SIGNAL( destroyed() ), this, SLOT( slotDestroyed() ) );
734 737
735 if ( m_parentCollection ) 738 if ( m_parentCollection )
736 m_parentCollection->connectHighlight( bar, this ); 739 m_parentCollection->connectHighlight( bar, this );
737 740
738 return containerCount() - 1; 741 return containerCount() - 1;
739 742
740 } 743 }
741 744
742 return -1; 745 return -1;
743} 746}
744 747
745void KAction::unplug( QWidget *w ) 748void KAction::unplug( QWidget *w )
746{ 749{
747 int i = findContainer( w ); 750 int i = findContainer( w );
748 if ( i == -1 ) 751 if ( i == -1 )
749 return; 752 return;
750 int id = itemId( i ); 753 int id = itemId( i );
751 754
752 if ( w->inherits( "QPopupMenu" ) ) 755 if ( w->inherits( "Q3PopupMenu" ) )
753 { 756 {
754 QPopupMenu *menu = static_cast<QPopupMenu *>( w ); 757 Q3PopupMenu *menu = static_cast<Q3PopupMenu *>( w );
755 menu->removeItem( id ); 758 menu->removeItem( id );
756 } 759 }
757 else if ( w->inherits( "KToolBar" ) ) 760 else if ( w->inherits( "KToolBar" ) )
758 { 761 {
759 KToolBar *bar = static_cast<KToolBar *>( w ); 762 KToolBar *bar = static_cast<KToolBar *>( w );
760 bar->removeItemDelayed( id ); 763 bar->removeItemDelayed( id );
761 } 764 }
762 else if ( w->inherits( "QMenuBar" ) ) 765 else if ( w->inherits( "QMenuBar" ) )
763 { 766 {
764 QMenuBar *bar = static_cast<QMenuBar *>( w ); 767 QMenuBar *bar = static_cast<QMenuBar *>( w );
765 bar->removeItem( id ); 768 bar->removeItem( id );
766 } 769 }
767 770
768 removeContainer( i ); 771 removeContainer( i );
769 772
770 if ( m_parentCollection ) 773 if ( m_parentCollection )
@@ -849,34 +852,34 @@ void KAction::setEnabled(bool enable)
849//US for ( uint i = 0; i < d->m_kaccelList.count(); i++ ) 852//US for ( uint i = 0; i < d->m_kaccelList.count(); i++ )
850//US d->m_kaccelList[i]->setEnabled( name(), enable ); 853//US d->m_kaccelList[i]->setEnabled( name(), enable );
851 854
852 d->setEnabled( enable ); 855 d->setEnabled( enable );
853 856
854 int len = containerCount(); 857 int len = containerCount();
855 for( int i = 0; i < len; ++i ) 858 for( int i = 0; i < len; ++i )
856 updateEnabled( i ); 859 updateEnabled( i );
857 860
858 emit enabled( d->isEnabled() ); 861 emit enabled( d->isEnabled() );
859} 862}
860 863
861void KAction::updateEnabled( int i ) 864void KAction::updateEnabled( int i )
862{ 865{
863 QWidget *w = container( i ); 866 QWidget *w = container( i );
864 867
865 if ( w->inherits("QPopupMenu") ) 868 if ( w->inherits("Q3PopupMenu") )
866 static_cast<QPopupMenu*>(w)->setItemEnabled( itemId( i ), d->isEnabled() ); 869 static_cast<Q3PopupMenu*>(w)->setItemEnabled( itemId( i ), d->isEnabled() );
867 else if ( w->inherits("QMenuBar") ) 870 else if ( w->inherits("QMenuBar") )
868 static_cast<QMenuBar*>(w)->setItemEnabled( itemId( i ), d->isEnabled() ); 871 static_cast<QMenuBar*>(w)->setItemEnabled( itemId( i ), d->isEnabled() );
869 else if ( w->inherits( "KToolBar" ) ) 872 else if ( w->inherits( "KToolBar" ) )
870 { 873 {
871 static_cast<KToolBar*>(w)->setItemEnabled( itemId( i ), d->isEnabled() ); 874 static_cast<KToolBar*>(w)->setItemEnabled( itemId( i ), d->isEnabled() );
872 } 875 }
873} 876}
874 877
875void KAction::setShortcutConfigurable( bool b ) 878void KAction::setShortcutConfigurable( bool b )
876{ 879{
877 d->m_configurable = b; 880 d->m_configurable = b;
878} 881}
879 882
880void KAction::setText( const QString& text ) 883void KAction::setText( const QString& text )
881{ 884{
882/*US 885/*US
@@ -893,36 +896,36 @@ void KAction::setText( const QString& text )
893 if (pAction) 896 if (pAction)
894 pAction->setLabel( text ); 897 pAction->setLabel( text );
895 } 898 }
896*/ 899*/
897 d->setText( text ); 900 d->setText( text );
898 901
899 int len = containerCount(); 902 int len = containerCount();
900 for( int i = 0; i < len; ++i ) 903 for( int i = 0; i < len; ++i )
901 updateText( i ); 904 updateText( i );
902 905
903} 906}
904 907
905void KAction::updateText( int i ) 908void KAction::updateText( int i )
906{ 909{
907 QWidget *w = container( i ); 910 QWidget *w = container( i );
908 911
909 if ( w->inherits( "QPopupMenu" ) ) { 912 if ( w->inherits( "Q3PopupMenu" ) ) {
910 int id = itemId( i ); 913 int id = itemId( i );
911 static_cast<QPopupMenu*>(w)->changeItem( id, d->text() ); 914 static_cast<Q3PopupMenu*>(w)->changeItem( id, d->text() );
912 updateShortcut( static_cast<QPopupMenu*>(w), id ); 915 updateShortcut( static_cast<Q3PopupMenu*>(w), id );
913 } 916 }
914 else if ( w->inherits( "QMenuBar" ) ) 917 else if ( w->inherits( "QMenuBar" ) )
915 static_cast<QMenuBar*>(w)->changeItem( itemId( i ), d->text() ); 918 static_cast<QMenuBar*>(w)->changeItem( itemId( i ), d->text() );
916 else if ( w->inherits( "KToolBar" ) ) 919 else if ( w->inherits( "KToolBar" ) )
917 { 920 {
918 //qDebug("KAction::updateText ...3 has top be fixed"); 921 //qDebug("KAction::updateText ...3 has top be fixed");
919 QWidget *button = static_cast<KToolBar *>(w)->getWidget( itemId( i ) ); 922 QWidget *button = static_cast<KToolBar *>(w)->getWidget( itemId( i ) );
920 if ( button->inherits( "KToolBarButton" ) ) 923 if ( button->inherits( "KToolBarButton" ) )
921 static_cast<KToolBarButton *>(button)->setText( d->plainText() ); 924 static_cast<KToolBarButton *>(button)->setText( d->plainText() );
922 925
923 } 926 }
924} 927}
925 928
926QString KAction::text() const 929QString KAction::text() const
927{ 930{
928 return d->text(); 931 return d->text();
@@ -934,108 +937,108 @@ QString KAction::plainText() const
934} 937}
935 938
936void KAction::setIcon( const QString &icon ) 939void KAction::setIcon( const QString &icon )
937{ 940{
938 d->setIconName( icon ); 941 d->setIconName( icon );
939 942
940 // now handle any toolbars 943 // now handle any toolbars
941 int len = containerCount(); 944 int len = containerCount();
942 for ( int i = 0; i < len; ++i ) 945 for ( int i = 0; i < len; ++i )
943 updateIcon( i ); 946 updateIcon( i );
944} 947}
945 948
946void KAction::updateIcon( int id ) 949void KAction::updateIcon( int id )
947{ 950{
948 QWidget* w = container( id ); 951 QWidget* w = container( id );
949 952
950 if ( w->inherits( "QPopupMenu" ) ) { 953 if ( w->inherits( "Q3PopupMenu" ) ) {
951 int itemId_ = itemId( id ); 954 int itemId_ = itemId( id );
952 static_cast<QPopupMenu*>(w)->changeItem( itemId_, d->iconSet( KIcon::Small ), d->text() ); 955 static_cast<Q3PopupMenu*>(w)->changeItem( itemId_, d->iconSet( KIcon::Small ), d->text() );
953 updateShortcut( static_cast<QPopupMenu*>(w), itemId_ ); 956 updateShortcut( static_cast<Q3PopupMenu*>(w), itemId_ );
954 } 957 }
955 else if ( w->inherits( "QMenuBar" ) ) 958 else if ( w->inherits( "QMenuBar" ) )
956 static_cast<QMenuBar*>(w)->changeItem( itemId( id ), d->iconSet( KIcon::Small ), d->text() ); 959 static_cast<QMenuBar*>(w)->changeItem( itemId( id ), d->iconSet( KIcon::Small ), d->text() );
957 else if ( w->inherits( "KToolBar" ) ) 960 else if ( w->inherits( "KToolBar" ) )
958 static_cast<KToolBar *>(w)->setButtonIcon( itemId( id ), d->iconName() ); 961 static_cast<KToolBar *>(w)->setButtonIcon( itemId( id ), d->iconName() );
959 else if ( w->inherits( "QToolBar" ) ) 962 else if ( w->inherits( "Q3ToolBar" ) )
960 { 963 {
961 qDebug("KAction::updateIcon has top be fixed"); 964 qDebug("KAction::updateIcon has top be fixed");
962//US static_cast<QToolBar *>(w)->setButtonIcon( itemId( id ), d->iconName() ); 965//US static_cast<QToolBar *>(w)->setButtonIcon( itemId( id ), d->iconName() );
963 } 966 }
964} 967}
965 968
966QString KAction::icon() const 969QString KAction::icon() const
967{ 970{
968 return d->iconName( ); 971 return d->iconName( );
969} 972}
970 973
971void KAction::setIconSet( const QIconSet &iconset ) 974void KAction::setIconSet( const QIcon &iconset )
972{ 975{
973 d->setIconSet( iconset ); 976 d->setIconSet( iconset );
974 977
975 int len = containerCount(); 978 int len = containerCount();
976 for( int i = 0; i < len; ++i ) 979 for( int i = 0; i < len; ++i )
977 updateIconSet( i ); 980 updateIconSet( i );
978} 981}
979 982
980 983
981void KAction::updateIconSet( int id ) 984void KAction::updateIconSet( int id )
982{ 985{
983 QWidget *w = container( id ); 986 QWidget *w = container( id );
984 987
985 if ( w->inherits( "QPopupMenu" ) ) 988 if ( w->inherits( "Q3PopupMenu" ) )
986 { 989 {
987 int itemId_ = itemId( id ); 990 int itemId_ = itemId( id );
988 static_cast<QPopupMenu*>(w)->changeItem( itemId_, d->iconSet(), d->text() ); 991 static_cast<Q3PopupMenu*>(w)->changeItem( itemId_, d->iconSet(), d->text() );
989 updateShortcut( static_cast<QPopupMenu*>(w), itemId_ ); 992 updateShortcut( static_cast<Q3PopupMenu*>(w), itemId_ );
990 } 993 }
991 else if ( w->inherits( "QMenuBar" ) ) 994 else if ( w->inherits( "QMenuBar" ) )
992 static_cast<QMenuBar*>(w)->changeItem( itemId( id ), d->iconSet(), d->text() ); 995 static_cast<QMenuBar*>(w)->changeItem( itemId( id ), d->iconSet(), d->text() );
993 else if ( w->inherits( "KToolBar" ) ) 996 else if ( w->inherits( "KToolBar" ) )
994 { 997 {
995 if ( icon().isEmpty() && d->hasIconSet() ) // only if there is no named icon ( scales better ) 998 if ( icon().isEmpty() && d->hasIconSet() ) // only if there is no named icon ( scales better )
996 static_cast<KToolBar *>(w)->setButtonIconSet( itemId( id ), d->iconSet() ); 999 static_cast<KToolBar *>(w)->setButtonIconSet( itemId( id ), d->iconSet() );
997 else 1000 else
998 static_cast<KToolBar *>(w)->setButtonIconSet( itemId( id ), d->iconSet( KIcon::Small ) ); 1001 static_cast<KToolBar *>(w)->setButtonIconSet( itemId( id ), d->iconSet( KIcon::Small ) );
999 } 1002 }
1000} 1003}
1001 1004
1002QIconSet KAction::iconSet( KIcon::Group group, int size ) const 1005QIcon KAction::iconSet( KIcon::Group group, int size ) const
1003{ 1006{
1004 return d->iconSet( group, size ); 1007 return d->iconSet( group, size );
1005} 1008}
1006 1009
1007bool KAction::hasIcon() const 1010bool KAction::hasIcon() const
1008{ 1011{
1009 return d->hasIcon(); 1012 return d->hasIcon();
1010} 1013}
1011 1014
1012 1015
1013void KAction::setWhatsThis( const QString& text ) 1016void KAction::setWhatsThis( const QString& text )
1014{ 1017{
1015 d->setWhatsThis( text ); 1018 d->setWhatsThis( text );
1016 1019
1017 int len = containerCount(); 1020 int len = containerCount();
1018 for( int i = 0; i < len; ++i ) 1021 for( int i = 0; i < len; ++i )
1019 updateWhatsThis( i ); 1022 updateWhatsThis( i );
1020} 1023}
1021 1024
1022void KAction::updateWhatsThis( int i ) 1025void KAction::updateWhatsThis( int i )
1023{ 1026{
1024 qDebug("KAction::updateWhatsThis ...1 has top be fixed"); 1027 qDebug("KAction::updateWhatsThis ...1 has top be fixed");
1025 QPopupMenu* pm = popupMenu( i ); 1028 Q3PopupMenu* pm = popupMenu( i );
1026 if ( pm ) 1029 if ( pm )
1027 { 1030 {
1028 pm->setWhatsThis( itemId( i ), d->whatsThis() ); 1031 pm->setWhatsThis( itemId( i ), d->whatsThis() );
1029 return; 1032 return;
1030 } 1033 }
1031 1034
1032 KToolBar *tb = toolBar( i ); 1035 KToolBar *tb = toolBar( i );
1033 if ( tb ) 1036 if ( tb )
1034 { 1037 {
1035 QWidget *w = tb->getButton( itemId( i ) ); 1038 QWidget *w = tb->getButton( itemId( i ) );
1036//US QWhatsThis::remove( w ); 1039//US QWhatsThis::remove( w );
1037//US QWhatsThis::add( w, d->whatsThis() ); 1040//US QWhatsThis::add( w, d->whatsThis() );
1038 return; 1041 return;
1039 } 1042 }
1040} 1043}
1041 1044
@@ -1051,36 +1054,36 @@ QString KAction::whatsThisWithIcon() const
1051 return QString::fromLatin1("<img source=\"small|%1\"> %2").arg(d->iconName() ).arg(text); 1054 return QString::fromLatin1("<img source=\"small|%1\"> %2").arg(d->iconName() ).arg(text);
1052 return text; 1055 return text;
1053} 1056}
1054 1057
1055QWidget* KAction::container( int index ) const 1058QWidget* KAction::container( int index ) const
1056{ 1059{
1057 assert( index < containerCount() ); 1060 assert( index < containerCount() );
1058 return d->m_containers[ index ].m_container; 1061 return d->m_containers[ index ].m_container;
1059} 1062}
1060 1063
1061KToolBar* KAction::toolBar( int index ) const 1064KToolBar* KAction::toolBar( int index ) const
1062{ 1065{
1063//US return dynamic_cast<KToolBar *>( d->m_containers[ index ].m_container ); 1066//US return dynamic_cast<KToolBar *>( d->m_containers[ index ].m_container );
1064 return (KToolBar *)( d->m_containers[ index ].m_container ); 1067 return (KToolBar *)( d->m_containers[ index ].m_container );
1065} 1068}
1066 1069
1067QPopupMenu* KAction::popupMenu( int index ) const 1070Q3PopupMenu* KAction::popupMenu( int index ) const
1068{ 1071{
1069//US return dynamic_cast<QPopupMenu *>( d->m_containers[ index ].m_container ); 1072//US return dynamic_cast<QPopupMenu *>( d->m_containers[ index ].m_container );
1070 return (QPopupMenu *)( d->m_containers[ index ].m_container ); 1073 return (Q3PopupMenu *)( d->m_containers[ index ].m_container );
1071} 1074}
1072 1075
1073QWidget* KAction::representative( int index ) const 1076QWidget* KAction::representative( int index ) const
1074{ 1077{
1075 return d->m_containers[ index ].m_representative; 1078 return d->m_containers[ index ].m_representative;
1076} 1079}
1077 1080
1078int KAction::itemId( int index ) const 1081int KAction::itemId( int index ) const
1079{ 1082{
1080 return d->m_containers[ index ].m_id; 1083 return d->m_containers[ index ].m_id;
1081} 1084}
1082 1085
1083int KAction::containerCount() const 1086int KAction::containerCount() const
1084{ 1087{
1085 return d->m_containers.count(); 1088 return d->m_containers.count();
1086} 1089}
@@ -1142,48 +1145,48 @@ void KAction::slotDestroyed()
1142 } 1145 }
1143 } 1146 }
1144*/ 1147*/
1145 int i; 1148 int i;
1146 do 1149 do
1147 { 1150 {
1148 i = findContainer( static_cast<const QWidget*>( o ) ); 1151 i = findContainer( static_cast<const QWidget*>( o ) );
1149 if ( i != -1 ) 1152 if ( i != -1 )
1150 removeContainer( i ); 1153 removeContainer( i );
1151 } while ( i != -1 ); 1154 } while ( i != -1 );
1152 1155
1153} 1156}
1154 1157
1155int KAction::findContainer( const QWidget* widget ) const 1158int KAction::findContainer( const QWidget* widget ) const
1156{ 1159{
1157 int pos = 0; 1160 int pos = 0;
1158 QValueList<KActionPrivate::Container>::ConstIterator it = d->m_containers.begin(); 1161 Q3ValueList<KActionPrivate::Container>::ConstIterator it = d->m_containers.begin();
1159 while( it != d->m_containers.end() ) 1162 while( it != d->m_containers.end() )
1160 { 1163 {
1161 if ( (*it).m_representative == widget || (*it).m_container == widget ) 1164 if ( (*it).m_representative == widget || (*it).m_container == widget )
1162 return pos; 1165 return pos;
1163 ++it; 1166 ++it;
1164 ++pos; 1167 ++pos;
1165 } 1168 }
1166 1169
1167 return -1; 1170 return -1;
1168} 1171}
1169 1172
1170void KAction::removeContainer( int index ) 1173void KAction::removeContainer( int index )
1171{ 1174{
1172 int i = 0; 1175 int i = 0;
1173 QValueList<KActionPrivate::Container>::Iterator it = d->m_containers.begin(); 1176 Q3ValueList<KActionPrivate::Container>::Iterator it = d->m_containers.begin();
1174 while( it != d->m_containers.end() ) 1177 while( it != d->m_containers.end() )
1175 { 1178 {
1176 if ( i == index ) 1179 if ( i == index )
1177 { 1180 {
1178 d->m_containers.remove( it ); 1181 d->m_containers.remove( it );
1179 return; 1182 return;
1180 } 1183 }
1181 ++it; 1184 ++it;
1182 ++i; 1185 ++i;
1183 } 1186 }
1184} 1187}
1185 1188
1186// FIXME: Remove this (ellis) 1189// FIXME: Remove this (ellis)
1187void KAction::slotKeycodeChanged() 1190void KAction::slotKeycodeChanged()
1188{ 1191{
1189 qDebug("KAction::slotKeycodeChanged() ...44 has top be fixed"); 1192 qDebug("KAction::slotKeycodeChanged() ...44 has top be fixed");
diff --git a/microkde/kdeui/kaction.h b/microkde/kdeui/kaction.h
index 13e2e1e..5c690ec 100644
--- a/microkde/kdeui/kaction.h
+++ b/microkde/kdeui/kaction.h
@@ -16,47 +16,49 @@
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 Library General Public License for more details. 17 Library General Public License for more details.
18 18
19 You should have received a copy of the GNU Library General Public License 19 You should have received a copy of the GNU Library General Public License
20 along with this library; see the file COPYING.LIB. If not, write to 20 along with this library; see the file COPYING.LIB. If not, write to
21 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 21 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
22 Boston, MA 02111-1307, USA. 22 Boston, MA 02111-1307, USA.
23*/ 23*/
24//$Id$ 24//$Id$
25 25
26#ifndef __kaction_h__ 26#ifndef __kaction_h__
27#define __kaction_h__ 27#define __kaction_h__
28 28
29 29
30//US #include <qkeysequence.h> 30//US #include <qkeysequence.h>
31#include <qobject.h> 31#include <qobject.h>
32#include <qvaluelist.h> 32#include <q3valuelist.h>
33#include <qguardedptr.h> 33#include <qpointer.h>
34//Added by qt3to4:
35#include <Q3PopupMenu>
34#include <kguiitem.h> 36#include <kguiitem.h>
35#include <kshortcut.h> 37#include <kshortcut.h>
36#include <kstdaction.h> 38#include <kstdaction.h>
37//US#include <kicontheme.h> 39//US#include <kicontheme.h>
38 40
39//US added the following files 41//US added the following files
40#include <kiconloader.h> 42#include <kiconloader.h>
41 43
42class QMenuBar; 44class QMenuBar;
43class QPopupMenu; 45class Q3PopupMenu;
44//USclass QComboBox; 46//USclass QComboBox;
45//USclass QPoint; 47//USclass QPoint;
46class QIconSet; 48class QIcon;
47class QString; 49class QString;
48class KToolBar; 50class KToolBar;
49 51
50class KAccel; 52class KAccel;
51//USclass KAccelActions; 53//USclass KAccelActions;
52//USclass KConfig; 54//USclass KConfig;
53//USclass KConfigBase; 55//USclass KConfigBase;
54//USclass KURL; 56//USclass KURL;
55//USclass KInstance; 57//USclass KInstance;
56//USclass KToolBar; 58//USclass KToolBar;
57class KActionCollection; 59class KActionCollection;
58//USclass KPopupMenu; 60//USclass KPopupMenu;
59class KMainWindow; 61class KMainWindow;
60 62
61/** 63/**
62 * The KAction class (and derived and super classes) provides a way to 64 * The KAction class (and derived and super classes) provides a way to
@@ -246,33 +248,33 @@ public:
246 * 248 *
247 * If you do not want or have a keyboard shortcut, set the 249 * If you do not want or have a keyboard shortcut, set the
248 * @p cut param to 0. 250 * @p cut param to 0.
249 * 251 *
250 * This is the other common KAction used. Use it when you 252 * This is the other common KAction used. Use it when you
251 * @p do have a corresponding icon. 253 * @p do have a corresponding icon.
252 * 254 *
253 * @param text The text that will be displayed. 255 * @param text The text that will be displayed.
254 * @param pix The icon to display. 256 * @param pix The icon to display.
255 * @param cut The corresponding keyboard shortcut. 257 * @param cut The corresponding keyboard shortcut.
256 * @param receiver The SLOT's parent. 258 * @param receiver The SLOT's parent.
257 * @param slot The SLOT to invoke to execute this action. 259 * @param slot The SLOT to invoke to execute this action.
258 * @param parent This action's parent. 260 * @param parent This action's parent.
259 * @param name An internal name for this action. 261 * @param name An internal name for this action.
260 */ 262 */
261 263
262 KAction( const QString& text, const QIconSet& pix, const KShortcut& cut, 264 KAction( const QString& text, const QIcon& pix, const KShortcut& cut,
263 const QObject* receiver, const char* slot, 265 const QObject* receiver, const char* slot,
264 KActionCollection* parent, const char* name ); 266 KActionCollection* parent, const char* name );
265 267
266 /** 268 /**
267 * Constructs an action with text, icon, potential keyboard 269 * Constructs an action with text, icon, potential keyboard
268 * shortcut, and a SLOT to call when this action is invoked by 270 * shortcut, and a SLOT to call when this action is invoked by
269 * the user. The icon is loaded on demand later based on where it 271 * the user. The icon is loaded on demand later based on where it
270 * is plugged in. 272 * is plugged in.
271 * 273 *
272 * If you do not want or have a keyboard shortcut, set the 274 * If you do not want or have a keyboard shortcut, set the
273 * @p cut param to 0. 275 * @p cut param to 0.
274 * 276 *
275 * This is the other common KAction used. Use it when you 277 * This is the other common KAction used. Use it when you
276 * @p do have a corresponding icon. 278 * @p do have a corresponding icon.
277 * 279 *
278 * @param text The text that will be displayed. 280 * @param text The text that will be displayed.
@@ -295,43 +297,43 @@ public:
295 */ 297 */
296 KAction( const KGuiItem& item, const KShortcut& cut, 298 KAction( const KGuiItem& item, const KShortcut& cut,
297 const QObject* receiver, const char* slot, 299 const QObject* receiver, const char* slot,
298 KActionCollection* parent, const char* name ); 300 KActionCollection* parent, const char* name );
299 /** 301 /**
300 * @obsolete 302 * @obsolete
301 */ 303 */
302 KAction( const QString& text, const KShortcut& cut = KShortcut(), QObject* parent = 0, const char* name = 0 ); 304 KAction( const QString& text, const KShortcut& cut = KShortcut(), QObject* parent = 0, const char* name = 0 );
303 /** 305 /**
304 * @obsolete 306 * @obsolete
305 */ 307 */
306 KAction( const QString& text, const KShortcut& cut, 308 KAction( const QString& text, const KShortcut& cut,
307 const QObject* receiver, const char* slot, QObject* parent, const char* name = 0 ); 309 const QObject* receiver, const char* slot, QObject* parent, const char* name = 0 );
308 /** 310 /**
309 * @obsolete 311 * @obsolete
310 */ 312 */
311 KAction( const QString& text, const QIconSet& pix, const KShortcut& cut = KShortcut(), 313 KAction( const QString& text, const QIcon& pix, const KShortcut& cut = KShortcut(),
312 QObject* parent = 0, const char* name = 0 ); 314 QObject* parent = 0, const char* name = 0 );
313 /** 315 /**
314 * @obsolete 316 * @obsolete
315 */ 317 */
316 KAction( const QString& text, const QString& pix, const KShortcut& cut = KShortcut(), 318 KAction( const QString& text, const QString& pix, const KShortcut& cut = KShortcut(),
317 QObject* parent = 0, const char* name = 0 ); 319 QObject* parent = 0, const char* name = 0 );
318 /** 320 /**
319 * @obsolete 321 * @obsolete
320 */ 322 */
321 KAction( const QString& text, const QIconSet& pix, const KShortcut& cut, 323 KAction( const QString& text, const QIcon& pix, const KShortcut& cut,
322 const QObject* receiver, const char* slot, QObject* parent, const char* name = 0 ); 324 const QObject* receiver, const char* slot, QObject* parent, const char* name = 0 );
323 /** 325 /**
324 * @obsolete 326 * @obsolete
325 */ 327 */
326 KAction( const QString& text, const QString& pix, const KShortcut& cut, 328 KAction( const QString& text, const QString& pix, const KShortcut& cut,
327 const QObject* receiver, const char* slot, QObject* parent, 329 const QObject* receiver, const char* slot, QObject* parent,
328 const char* name = 0 ); 330 const char* name = 0 );
329 /** 331 /**
330 * @obsolete 332 * @obsolete
331 */ 333 */
332 KAction( QObject* parent = 0, const char* name = 0 ); 334 KAction( QObject* parent = 0, const char* name = 0 );
333 335
334 /** 336 /**
335 * Standard destructor 337 * Standard destructor
336 */ 338 */
337 virtual ~KAction(); 339 virtual ~KAction();
@@ -448,36 +450,36 @@ public:
448 virtual QString group() const; 450 virtual QString group() const;
449 451
450 /** 452 /**
451 * Get the What's this text for the action. 453 * Get the What's this text for the action.
452 */ 454 */
453 virtual QString whatsThis() const; 455 virtual QString whatsThis() const;
454 456
455 /** 457 /**
456 * Get the tooltip text for the action. 458 * Get the tooltip text for the action.
457 */ 459 */
458 virtual QString toolTip() const; 460 virtual QString toolTip() const;
459 461
460 /** 462 /**
461 * Get the QIconSet from which the icons used to display this action will 463 * Get the QIconSet from which the icons used to display this action will
462 * be chosen. 464 * be chosen.
463 */ 465 */
464 virtual QIconSet iconSet( KIcon::Group group, int size=0 ) const; 466 virtual QIcon iconSet( KIcon::Group group, int size=0 ) const;
465 467
466#ifndef KDE_NO_COMPAT 468#ifndef KDE_NO_COMPAT
467 QIconSet iconSet() const 469 QIcon iconSet() const
468 { 470 {
469 return iconSet( KIcon::Small ); 471 return iconSet( KIcon::Small );
470 } 472 }
471#endif 473#endif
472 474
473 virtual QString icon() const; 475 virtual QString icon() const;
474 476
475 KActionCollection *parentCollection() const; 477 KActionCollection *parentCollection() const;
476 478
477 /** 479 /**
478 * @internal 480 * @internal
479 * Generate a toolbar button id. Made public for reimplementations. 481 * Generate a toolbar button id. Made public for reimplementations.
480 */ 482 */
481 static int getToolButtonID(); 483 static int getToolButtonID();
482 484
483 485
@@ -505,70 +507,70 @@ public slots:
505 * The What's this text can include QML markup as well as raw text. 507 * The What's this text can include QML markup as well as raw text.
506 */ 508 */
507 virtual void setWhatsThis( const QString& text ); 509 virtual void setWhatsThis( const QString& text );
508 510
509 /** 511 /**
510 * Sets the tooltip text for the action. 512 * Sets the tooltip text for the action.
511 * This will be used as a tooltip for a toolbar button, as a 513 * This will be used as a tooltip for a toolbar button, as a
512 * statusbar help-text for a menu item, and it also appears 514 * statusbar help-text for a menu item, and it also appears
513 * in the toolbar editor, to describe the action. 515 * in the toolbar editor, to describe the action.
514 */ 516 */
515 virtual void setToolTip( const QString& ); 517 virtual void setToolTip( const QString& );
516 518
517 /** 519 /**
518 * Sets the QIconSet from which the icons used to display this action will 520 * Sets the QIconSet from which the icons used to display this action will
519 * be chosen. 521 * be chosen.
520 */ 522 */
521 virtual void setIconSet( const QIconSet &iconSet ); 523 virtual void setIconSet( const QIcon &iconSet );
522 524
523 virtual void setIcon( const QString& icon ); 525 virtual void setIcon( const QString& icon );
524 526
525 /** 527 /**
526 * Enables or disables this action. All uses of this action (eg. in menus 528 * Enables or disables this action. All uses of this action (eg. in menus
527 * or toolbars) will be updated to reflect the state of the action. 529 * or toolbars) will be updated to reflect the state of the action.
528 */ 530 */
529 virtual void setEnabled(bool enable); 531 virtual void setEnabled(bool enable);
530 532
531 /** 533 /**
532 * Indicate whether the user may configure the action's shortcut. 534 * Indicate whether the user may configure the action's shortcut.
533 */ 535 */
534 virtual void setShortcutConfigurable( bool ); 536 virtual void setShortcutConfigurable( bool );
535 537
536 /** 538 /**
537 * Emulate user's interaction programmatically, by activating the action. 539 * Emulate user's interaction programmatically, by activating the action.
538 * The implementation simply emits activated(). 540 * The implementation simply emits activated().
539 */ 541 */
540 virtual void activate(); 542 virtual void activate();
541 543
542protected slots: 544protected slots:
543 virtual void slotDestroyed(); 545 virtual void slotDestroyed();
544 virtual void slotKeycodeChanged(); 546 virtual void slotKeycodeChanged();
545 virtual void slotActivated(); 547 virtual void slotActivated();
546 548
547protected: 549protected:
548 KToolBar* toolBar( int index ) const; 550 KToolBar* toolBar( int index ) const;
549 QPopupMenu* popupMenu( int index ) const; 551 Q3PopupMenu* popupMenu( int index ) const;
550 void removeContainer( int index ); 552 void removeContainer( int index );
551 int findContainer( const QWidget* widget ) const; 553 int findContainer( const QWidget* widget ) const;
552 void plugMainWindowAccel( QWidget *w ); 554 void plugMainWindowAccel( QWidget *w );
553 555
554 void addContainer( QWidget* parent, int id ); 556 void addContainer( QWidget* parent, int id );
555 void addContainer( QWidget* parent, QWidget* representative ); 557 void addContainer( QWidget* parent, QWidget* representative );
556 558
557 virtual void updateShortcut( int i ); 559 virtual void updateShortcut( int i );
558 virtual void updateShortcut( QPopupMenu* menu, int id ); 560 virtual void updateShortcut( Q3PopupMenu* menu, int id );
559 virtual void updateGroup( int id ); 561 virtual void updateGroup( int id );
560 virtual void updateText(int i ); 562 virtual void updateText(int i );
561 virtual void updateEnabled(int i); 563 virtual void updateEnabled(int i);
562 virtual void updateIconSet(int i); 564 virtual void updateIconSet(int i);
563 virtual void updateIcon( int i); 565 virtual void updateIcon( int i);
564 virtual void updateToolTip( int id ); 566 virtual void updateToolTip( int id );
565 virtual void updateWhatsThis( int i ); 567 virtual void updateWhatsThis( int i );
566 568
567 KActionCollection *m_parentCollection; 569 KActionCollection *m_parentCollection;
568 QString whatsThisWithIcon() const; 570 QString whatsThisWithIcon() const;
569 571
570signals: 572signals:
571 void activated(); 573 void activated();
572 void enabled( bool ); 574 void enabled( bool );
573 575
574private: 576private:
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
@@ -15,88 +15,90 @@
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
@@ -107,149 +109,148 @@ public:
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}
@@ -270,47 +271,47 @@ QString KToggleAction::exclusiveGroup() const
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 )
@@ -336,33 +337,33 @@ void KRadioAction::slotActivated()
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
@@ -374,49 +375,49 @@ public:
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{
@@ -426,33 +427,33 @@ KSelectAction::KSelectAction( const QString& text, const QString& pix,
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
@@ -466,39 +467,39 @@ void KSelectAction::setCurrentItem( int id )
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 ) {
@@ -630,38 +631,38 @@ void KSelectAction::updateItems( int id )
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() ) );
@@ -669,33 +670,33 @@ int KSelectAction::plug( QWidget *widget, int index )
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
@@ -839,49 +840,49 @@ KListAction::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{
@@ -952,59 +953,59 @@ KRecentFilesAction::KRecentFilesAction( const QString& text,
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}
@@ -1188,55 +1189,55 @@ KFontAction::KFontAction( const QString& text,
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 )
@@ -1348,49 +1349,49 @@ KFontSizeAction::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{
@@ -1401,69 +1402,69 @@ KFontSizeAction::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
@@ -1479,93 +1480,93 @@ void KFontSizeAction::slotActivated( int index )
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
@@ -1579,35 +1580,35 @@ void KActionMenu::setDelayed(bool _delayed) {
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;
@@ -1768,38 +1769,38 @@ int KToolBarPopupAction::plug( QWidget *widget, int index )
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 )
@@ -1940,56 +1941,56 @@ void KWidgetAction::unplug( QWidget *w )
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
diff --git a/microkde/kdeui/kactionclasses.h b/microkde/kdeui/kactionclasses.h
index f6e7a0f..a9b9104 100644
--- a/microkde/kdeui/kactionclasses.h
+++ b/microkde/kdeui/kactionclasses.h
@@ -21,53 +21,56 @@
21 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 21 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
22 Boston, MA 02111-1307, USA. 22 Boston, MA 02111-1307, USA.
23*/ 23*/
24//$Id$ 24//$Id$
25 25
26#ifndef __kactionclasses_h__ 26#ifndef __kactionclasses_h__
27#define __kactionclasses_h__ 27#define __kactionclasses_h__
28 28
29#include <kaction.h> 29#include <kaction.h>
30 30
31//US#include <qkeysequence.h> 31//US#include <qkeysequence.h>
32//US#include <qobject.h> 32//US#include <qobject.h>
33//US#include <qvaluelist.h> 33//US#include <qvaluelist.h>
34//US#include <qguardedptr.h> 34//US#include <qguardedptr.h>
35//US#include <kguiitem.h> 35//US#include <kguiitem.h>
36#include <kshortcut.h> 36#include <kshortcut.h>
37//Added by qt3to4:
38#include <Q3CString>
39#include <Q3PopupMenu>
37//US#include <kstdaction.h> 40//US#include <kstdaction.h>
38//US#include <kicontheme.h> 41//US#include <kicontheme.h>
39 42
40class QMenuBar; 43class QMenuBar;
41class QPopupMenu; 44class Q3PopupMenu;
42//USclass QComboBox; 45//USclass QComboBox;
43//USclass QPoint; 46//USclass QPoint;
44//USclass QIconSet; 47//USclass QIconSet;
45//USclass QString; 48//USclass QString;
46//USclass KToolBar; 49//USclass KToolBar;
47 50
48//USclass KAccel; 51//USclass KAccel;
49//USclass KAccelActions; 52//USclass KAccelActions;
50class KConfig; 53class KConfig;
51//USclass KConfigBase; 54//USclass KConfigBase;
52class KURL; 55class KURL;
53//USclass KInstance; 56//USclass KInstance;
54 57
55 58
56//US class KToolBar needs to be replaced 59//US class KToolBar needs to be replaced
57class KToolBar; 60#include "ktoolbar.h"
58class KActionCollection; 61class KActionCollection;
59 62
60//US class KPopupMenu needs to be replaced 63//US class KPopupMenu needs to be replaced
61//US class KPopupMenu; 64//US class KPopupMenu;
62//USclass KMainWindow; 65//USclass KMainWindow;
63 66
64/** 67/**
65 * Checkbox like action. 68 * Checkbox like action.
66 * 69 *
67 * This action provides two states: checked or not. 70 * This action provides two states: checked or not.
68 * 71 *
69 * @short Checkbox like action. 72 * @short Checkbox like action.
70 */ 73 */
71class KToggleAction : public KAction 74class KToggleAction : public KAction
72{ 75{
73 Q_OBJECT 76 Q_OBJECT
@@ -92,55 +95,55 @@ public:
92 * @param cut The corresponding keyboard accelerator (shortcut). 95 * @param cut The corresponding keyboard accelerator (shortcut).
93 * @param receiver The SLOT's parent. 96 * @param receiver The SLOT's parent.
94 * @param slot The SLOT to invoke to execute this action. 97 * @param slot The SLOT to invoke to execute this action.
95 * @param parent This action's parent. 98 * @param parent This action's parent.
96 * @param name An internal name for this action. 99 * @param name An internal name for this action.
97 */ 100 */
98 KToggleAction( const QString& text, const KShortcut& cut, 101 KToggleAction( const QString& text, const KShortcut& cut,
99 const QObject* receiver, const char* slot, QObject* parent, const char* name = 0 ); 102 const QObject* receiver, const char* slot, QObject* parent, const char* name = 0 );
100 103
101 /** 104 /**
102 * @param text The text that will be displayed. 105 * @param text The text that will be displayed.
103 * @param pix The icons that go with this action. 106 * @param pix The icons that go with this action.
104 * @param cut The corresponding keyboard accelerator (shortcut). 107 * @param cut The corresponding keyboard accelerator (shortcut).
105 * @param parent This action's parent. 108 * @param parent This action's parent.
106 * @param name An internal name for this action. 109 * @param name An internal name for this action.
107 */ 110 */
108 KToggleAction( const QString& text, const QIconSet& pix, const KShortcut& cut = KShortcut(), 111 KToggleAction( const QString& text, const QIcon& pix, const KShortcut& cut = KShortcut(),
109 QObject* parent = 0, const char* name = 0 ); 112 QObject* parent = 0, const char* name = 0 );
110 113
111 /** 114 /**
112 * @param text The text that will be displayed. 115 * @param text The text that will be displayed.
113 * @param pix The dynamically loaded icon that goes with this action. 116 * @param pix The dynamically loaded icon that goes with this action.
114 * @param cut The corresponding keyboard accelerator (shortcut). 117 * @param cut The corresponding keyboard accelerator (shortcut).
115 * @param parent This action's parent. 118 * @param parent This action's parent.
116 * @param name An internal name for this action. 119 * @param name An internal name for this action.
117 */ 120 */
118 KToggleAction( const QString& text, const QString& pix, const KShortcut& cut = KShortcut(), 121 KToggleAction( const QString& text, const QString& pix, const KShortcut& cut = KShortcut(),
119 QObject* parent = 0, const char* name = 0 ); 122 QObject* parent = 0, const char* name = 0 );
120 123
121 /** 124 /**
122 * @param text The text that will be displayed. 125 * @param text The text that will be displayed.
123 * @param pix The icons that go with this action. 126 * @param pix The icons that go with this action.
124 * @param cut The corresponding keyboard accelerator (shortcut). 127 * @param cut The corresponding keyboard accelerator (shortcut).
125 * @param receiver The SLOT's parent. 128 * @param receiver The SLOT's parent.
126 * @param slot The SLOT to invoke to execute this action. 129 * @param slot The SLOT to invoke to execute this action.
127 * @param parent This action's parent. 130 * @param parent This action's parent.
128 * @param name An internal name for this action. 131 * @param name An internal name for this action.
129 */ 132 */
130 KToggleAction( const QString& text, const QIconSet& pix, const KShortcut& cut, 133 KToggleAction( const QString& text, const QIcon& pix, const KShortcut& cut,
131 const QObject* receiver, const char* slot, QObject* parent, const char* name = 0 ); 134 const QObject* receiver, const char* slot, QObject* parent, const char* name = 0 );
132 135
133 /** 136 /**
134 * @param text The text that will be displayed. 137 * @param text The text that will be displayed.
135 * @param pix The dynamically loaded icon that goes with this action. 138 * @param pix The dynamically loaded icon that goes with this action.
136 * @param cut The corresponding keyboard accelerator (shortcut). 139 * @param cut The corresponding keyboard accelerator (shortcut).
137 * @param receiver The SLOT's parent. 140 * @param receiver The SLOT's parent.
138 * @param slot The SLOT to invoke to execute this action. 141 * @param slot The SLOT to invoke to execute this action.
139 * @param parent This action's parent. 142 * @param parent This action's parent.
140 * @param name An internal name for this action. 143 * @param name An internal name for this action.
141 */ 144 */
142 KToggleAction( const QString& text, const QString& pix, const KShortcut& cut, 145 KToggleAction( const QString& text, const QString& pix, const KShortcut& cut,
143 const QObject* receiver, const char* slot, 146 const QObject* receiver, const char* slot,
144 QObject* parent, const char* name = 0 ); 147 QObject* parent, const char* name = 0 );
145 148
146 /** 149 /**
@@ -233,55 +236,55 @@ public:
233 * @param cut The corresponding keyboard accelerator (shortcut). 236 * @param cut The corresponding keyboard accelerator (shortcut).
234 * @param receiver The SLOT's parent. 237 * @param receiver The SLOT's parent.
235 * @param slot The SLOT to invoke to execute this action. 238 * @param slot The SLOT to invoke to execute this action.
236 * @param parent This action's parent. 239 * @param parent This action's parent.
237 * @param name An internal name for this action. 240 * @param name An internal name for this action.
238 */ 241 */
239 KRadioAction( const QString& text, const KShortcut& cut, 242 KRadioAction( const QString& text, const KShortcut& cut,
240 const QObject* receiver, const char* slot, QObject* parent, const char* name = 0 ); 243 const QObject* receiver, const char* slot, QObject* parent, const char* name = 0 );
241 244
242 /** 245 /**
243 * @param text The text that will be displayed. 246 * @param text The text that will be displayed.
244 * @param pix The icons that go with this action. 247 * @param pix The icons that go with this action.
245 * @param cut The corresponding keyboard accelerator (shortcut). 248 * @param cut The corresponding keyboard accelerator (shortcut).
246 * @param parent This action's parent. 249 * @param parent This action's parent.
247 * @param name An internal name for this action. 250 * @param name An internal name for this action.
248 */ 251 */
249 KRadioAction( const QString& text, const QIconSet& pix, const KShortcut& cut = KShortcut(), 252 KRadioAction( const QString& text, const QIcon& pix, const KShortcut& cut = KShortcut(),
250 QObject* parent = 0, const char* name = 0 ); 253 QObject* parent = 0, const char* name = 0 );
251 254
252 /** 255 /**
253 * @param text The text that will be displayed. 256 * @param text The text that will be displayed.
254 * @param pix The dynamically loaded icon that goes with this action. 257 * @param pix The dynamically loaded icon that goes with this action.
255 * @param cut The corresponding keyboard accelerator (shortcut). 258 * @param cut The corresponding keyboard accelerator (shortcut).
256 * @param parent This action's parent. 259 * @param parent This action's parent.
257 * @param name An internal name for this action. 260 * @param name An internal name for this action.
258 */ 261 */
259 KRadioAction( const QString& text, const QString& pix, const KShortcut& cut = KShortcut(), 262 KRadioAction( const QString& text, const QString& pix, const KShortcut& cut = KShortcut(),
260 QObject* parent = 0, const char* name = 0 ); 263 QObject* parent = 0, const char* name = 0 );
261 264
262 /** 265 /**
263 * @param text The text that will be displayed. 266 * @param text The text that will be displayed.
264 * @param pix The icons that go with this action. 267 * @param pix The icons that go with this action.
265 * @param cut The corresponding keyboard accelerator (shortcut). 268 * @param cut The corresponding keyboard accelerator (shortcut).
266 * @param receiver The SLOT's parent. 269 * @param receiver The SLOT's parent.
267 * @param slot The SLOT to invoke to execute this action. 270 * @param slot The SLOT to invoke to execute this action.
268 * @param parent This action's parent. 271 * @param parent This action's parent.
269 * @param name An internal name for this action. 272 * @param name An internal name for this action.
270 */ 273 */
271 KRadioAction( const QString& text, const QIconSet& pix, const KShortcut& cut, 274 KRadioAction( const QString& text, const QIcon& pix, const KShortcut& cut,
272 const QObject* receiver, const char* slot, QObject* parent, const char* name = 0 ); 275 const QObject* receiver, const char* slot, QObject* parent, const char* name = 0 );
273 276
274 /** 277 /**
275 * @param text The text that will be displayed. 278 * @param text The text that will be displayed.
276 * @param pix The dynamically loaded icon that goes with this action. 279 * @param pix The dynamically loaded icon that goes with this action.
277 * @param cut The corresponding keyboard accelerator (shortcut). 280 * @param cut The corresponding keyboard accelerator (shortcut).
278 * @param receiver The SLOT's parent. 281 * @param receiver The SLOT's parent.
279 * @param slot The SLOT to invoke to execute this action. 282 * @param slot The SLOT to invoke to execute this action.
280 * @param parent This action's parent. 283 * @param parent This action's parent.
281 * @param name An internal name for this action. 284 * @param name An internal name for this action.
282 */ 285 */
283 KRadioAction( const QString& text, const QString& pix, const KShortcut& cut, 286 KRadioAction( const QString& text, const QString& pix, const KShortcut& cut,
284 const QObject* receiver, const char* slot, 287 const QObject* receiver, const char* slot,
285 QObject* parent, const char* name = 0 ); 288 QObject* parent, const char* name = 0 );
286 289
287 /** 290 /**
@@ -339,55 +342,55 @@ public:
339 * @param cut The corresponding keyboard accelerator (shortcut). 342 * @param cut The corresponding keyboard accelerator (shortcut).
340 * @param receiver The SLOT's parent. 343 * @param receiver The SLOT's parent.
341 * @param slot The SLOT to invoke to execute this action. 344 * @param slot The SLOT to invoke to execute this action.
342 * @param parent This action's parent. 345 * @param parent This action's parent.
343 * @param name An internal name for this action. 346 * @param name An internal name for this action.
344 */ 347 */
345 KSelectAction( const QString& text, const KShortcut& cut, 348 KSelectAction( const QString& text, const KShortcut& cut,
346 const QObject* receiver, const char* slot, QObject* parent, const char* name = 0 ); 349 const QObject* receiver, const char* slot, QObject* parent, const char* name = 0 );
347 350
348 /** 351 /**
349 * @param text The text that will be displayed. 352 * @param text The text that will be displayed.
350 * @param pix The icons that go with this action. 353 * @param pix The icons that go with this action.
351 * @param cut The corresponding keyboard accelerator (shortcut). 354 * @param cut The corresponding keyboard accelerator (shortcut).
352 * @param parent This action's parent. 355 * @param parent This action's parent.
353 * @param name An internal name for this action. 356 * @param name An internal name for this action.
354 */ 357 */
355 KSelectAction( const QString& text, const QIconSet& pix, const KShortcut& cut = KShortcut(), 358 KSelectAction( const QString& text, const QIcon& pix, const KShortcut& cut = KShortcut(),
356 QObject* parent = 0, const char* name = 0 ); 359 QObject* parent = 0, const char* name = 0 );
357 360
358 /** 361 /**
359 * @param text The text that will be displayed. 362 * @param text The text that will be displayed.
360 * @param pix The dynamically loaded icon that goes with this action. 363 * @param pix The dynamically loaded icon that goes with this action.
361 * @param cut The corresponding keyboard accelerator (shortcut). 364 * @param cut The corresponding keyboard accelerator (shortcut).
362 * @param parent This action's parent. 365 * @param parent This action's parent.
363 * @param name An internal name for this action. 366 * @param name An internal name for this action.
364 */ 367 */
365 KSelectAction( const QString& text, const QString& pix, const KShortcut& cut = KShortcut(), 368 KSelectAction( const QString& text, const QString& pix, const KShortcut& cut = KShortcut(),
366 QObject* parent = 0, const char* name = 0 ); 369 QObject* parent = 0, const char* name = 0 );
367 370
368 /** 371 /**
369 * @param text The text that will be displayed. 372 * @param text The text that will be displayed.
370 * @param pix The icons that go with this action. 373 * @param pix The icons that go with this action.
371 * @param cut The corresponding keyboard accelerator (shortcut). 374 * @param cut The corresponding keyboard accelerator (shortcut).
372 * @param receiver The SLOT's parent. 375 * @param receiver The SLOT's parent.
373 * @param slot The SLOT to invoke to execute this action. 376 * @param slot The SLOT to invoke to execute this action.
374 * @param parent This action's parent. 377 * @param parent This action's parent.
375 * @param name An internal name for this action. 378 * @param name An internal name for this action.
376 */ 379 */
377 KSelectAction( const QString& text, const QIconSet& pix, const KShortcut& cut, 380 KSelectAction( const QString& text, const QIcon& pix, const KShortcut& cut,
378 const QObject* receiver, const char* slot, QObject* parent, const char* name = 0 ); 381 const QObject* receiver, const char* slot, QObject* parent, const char* name = 0 );
379 382
380 /** 383 /**
381 * @param text The text that will be displayed. 384 * @param text The text that will be displayed.
382 * @param pix The dynamically loaded icon that goes with this action. 385 * @param pix The dynamically loaded icon that goes with this action.
383 * @param cut The corresponding keyboard accelerator (shortcut). 386 * @param cut The corresponding keyboard accelerator (shortcut).
384 * @param receiver The SLOT's parent. 387 * @param receiver The SLOT's parent.
385 * @param slot The SLOT to invoke to execute this action. 388 * @param slot The SLOT to invoke to execute this action.
386 * @param parent This action's parent. 389 * @param parent This action's parent.
387 * @param name An internal name for this action. 390 * @param name An internal name for this action.
388 */ 391 */
389 KSelectAction( const QString& text, const QString& pix, const KShortcut& cut, 392 KSelectAction( const QString& text, const QString& pix, const KShortcut& cut,
390 const QObject* receiver, const char* slot, 393 const QObject* receiver, const char* slot,
391 QObject* parent, const char* name = 0 ); 394 QObject* parent, const char* name = 0 );
392 395
393 /** 396 /**
@@ -425,33 +428,33 @@ public:
425 * Use setItems to set them. 428 * Use setItems to set them.
426 */ 429 */
427 virtual QStringList items() const; 430 virtual QStringList items() const;
428 431
429 virtual void changeItem( int index, const QString& text ); 432 virtual void changeItem( int index, const QString& text );
430 433
431 virtual QString currentText() const; 434 virtual QString currentText() const;
432 435
433 virtual int currentItem() const; 436 virtual int currentItem() const;
434 437
435 /** 438 /**
436 * When this action is plugged into a toolbar, it creates a combobox. 439 * When this action is plugged into a toolbar, it creates a combobox.
437 * This returns the maximum width set by setComboWidth 440 * This returns the maximum width set by setComboWidth
438 */ 441 */
439 virtual int comboWidth() const; 442 virtual int comboWidth() const;
440 443
441 QPopupMenu* popupMenu() const; 444 Q3PopupMenu* popupMenu() const;
442 445
443 /** 446 /**
444 * Deprecated. See @ref setMenuAccelsEnabled . 447 * Deprecated. See @ref setMenuAccelsEnabled .
445 * @since 3.1 448 * @since 3.1
446 */ 449 */
447 void setRemoveAmpersandsInCombo( bool b ); 450 void setRemoveAmpersandsInCombo( bool b );
448 /// @since 3.1 451 /// @since 3.1
449 bool removeAmpersandsInCombo() const; 452 bool removeAmpersandsInCombo() const;
450 453
451 /** 454 /**
452 * Sets whether any occurence of the ampersand character ( &amp; ) in items 455 * Sets whether any occurence of the ampersand character ( &amp; ) in items
453 * should be interpreted as keyboard accelerator for items displayed in a 456 * should be interpreted as keyboard accelerator for items displayed in a
454 * menu or not. 457 * menu or not.
455 * @since 3.1 458 * @since 3.1
456 */ 459 */
457 void setMenuAccelsEnabled( bool b ); 460 void setMenuAccelsEnabled( bool b );
@@ -554,55 +557,55 @@ public:
554 * @param cut The corresponding keyboard accelerator (shortcut). 557 * @param cut The corresponding keyboard accelerator (shortcut).
555 * @param receiver The SLOT's parent. 558 * @param receiver The SLOT's parent.
556 * @param slot The SLOT to invoke to execute this action. 559 * @param slot The SLOT to invoke to execute this action.
557 * @param parent This action's parent. 560 * @param parent This action's parent.
558 * @param name An internal name for this action. 561 * @param name An internal name for this action.
559 */ 562 */
560 KListAction( const QString& text, const KShortcut& cut, const QObject* receiver, 563 KListAction( const QString& text, const KShortcut& cut, const QObject* receiver,
561 const char* slot, QObject* parent, const char* name = 0 ); 564 const char* slot, QObject* parent, const char* name = 0 );
562 565
563 /** 566 /**
564 * @param text The text that will be displayed. 567 * @param text The text that will be displayed.
565 * @param pix The icons that go with this action. 568 * @param pix The icons that go with this action.
566 * @param cut The corresponding keyboard accelerator (shortcut). 569 * @param cut The corresponding keyboard accelerator (shortcut).
567 * @param parent This action's parent. 570 * @param parent This action's parent.
568 * @param name An internal name for this action. 571 * @param name An internal name for this action.
569 */ 572 */
570 KListAction( const QString& text, const QIconSet& pix, const KShortcut& cut = KShortcut(), 573 KListAction( const QString& text, const QIcon& pix, const KShortcut& cut = KShortcut(),
571 QObject* parent = 0, const char* name = 0 ); 574 QObject* parent = 0, const char* name = 0 );
572 575
573 /** 576 /**
574 * @param text The text that will be displayed. 577 * @param text The text that will be displayed.
575 * @param pix The dynamically loaded icon that goes with this action. 578 * @param pix The dynamically loaded icon that goes with this action.
576 * @param cut The corresponding keyboard accelerator (shortcut). 579 * @param cut The corresponding keyboard accelerator (shortcut).
577 * @param parent This action's parent. 580 * @param parent This action's parent.
578 * @param name An internal name for this action. 581 * @param name An internal name for this action.
579 */ 582 */
580 KListAction( const QString& text, const QString& pix, const KShortcut& cut = KShortcut(), 583 KListAction( const QString& text, const QString& pix, const KShortcut& cut = KShortcut(),
581 QObject* parent = 0, const char* name = 0 ); 584 QObject* parent = 0, const char* name = 0 );
582 585
583 /** 586 /**
584 * @param text The text that will be displayed. 587 * @param text The text that will be displayed.
585 * @param pix The icons that go with this action. 588 * @param pix The icons that go with this action.
586 * @param cut The corresponding keyboard accelerator (shortcut). 589 * @param cut The corresponding keyboard accelerator (shortcut).
587 * @param receiver The SLOT's parent. 590 * @param receiver The SLOT's parent.
588 * @param slot The SLOT to invoke to execute this action. 591 * @param slot The SLOT to invoke to execute this action.
589 * @param parent This action's parent. 592 * @param parent This action's parent.
590 * @param name An internal name for this action. 593 * @param name An internal name for this action.
591 */ 594 */
592 KListAction( const QString& text, const QIconSet& pix, const KShortcut& cut, 595 KListAction( const QString& text, const QIcon& pix, const KShortcut& cut,
593 const QObject* receiver, const char* slot, QObject* parent, 596 const QObject* receiver, const char* slot, QObject* parent,
594 const char* name = 0 ); 597 const char* name = 0 );
595 598
596 /** 599 /**
597 * @param text The text that will be displayed. 600 * @param text The text that will be displayed.
598 * @param pix The dynamically loaded icon that goes with this action. 601 * @param pix The dynamically loaded icon that goes with this action.
599 * @param cut The corresponding keyboard accelerator (shortcut). 602 * @param cut The corresponding keyboard accelerator (shortcut).
600 * @param receiver The SLOT's parent. 603 * @param receiver The SLOT's parent.
601 * @param slot The SLOT to invoke to execute this action. 604 * @param slot The SLOT to invoke to execute this action.
602 * @param parent This action's parent. 605 * @param parent This action's parent.
603 * @param name An internal name for this action. 606 * @param name An internal name for this action.
604 */ 607 */
605 KListAction( const QString& text, const QString& pix, const KShortcut& cut, 608 KListAction( const QString& text, const QString& pix, const KShortcut& cut,
606 const QObject* receiver, const char* slot, QObject* parent, 609 const QObject* receiver, const char* slot, QObject* parent,
607 const char* name = 0 ); 610 const char* name = 0 );
608 611
@@ -672,60 +675,60 @@ public:
672 * @param name An internal name for this action. 675 * @param name An internal name for this action.
673 * @param maxItems The maximum number of files to display 676 * @param maxItems The maximum number of files to display
674 */ 677 */
675 KRecentFilesAction( const QString& text, const KShortcut& cut, 678 KRecentFilesAction( const QString& text, const KShortcut& cut,
676 const QObject* receiver, const char* slot, 679 const QObject* receiver, const char* slot,
677 QObject* parent, const char* name = 0, 680 QObject* parent, const char* name = 0,
678 uint maxItems = 10 ); 681 uint maxItems = 10 );
679 682
680 /** 683 /**
681 * @param text The text that will be displayed. 684 * @param text The text that will be displayed.
682 * @param pix The icons that go with this action. 685 * @param pix The icons that go with this action.
683 * @param cut The corresponding keyboard accelerator (shortcut). 686 * @param cut The corresponding keyboard accelerator (shortcut).
684 * @param parent This action's parent. 687 * @param parent This action's parent.
685 * @param name An internal name for this action. 688 * @param name An internal name for this action.
686 * @param maxItems The maximum number of files to display 689 * @param maxItems The maximum number of files to display
687 */ 690 */
688 KRecentFilesAction( const QString& text, const QIconSet& pix, const KShortcut& cut, 691 KRecentFilesAction( const QString& text, const QIcon& pix, const KShortcut& cut,
689 QObject* parent, const char* name = 0, 692 QObject* parent, const char* name = 0,
690 uint maxItems = 10 ); 693 uint maxItems = 10 );
691 694
692 /** 695 /**
693 * @param text The text that will be displayed. 696 * @param text The text that will be displayed.
694 * @param pix The dynamically loaded icon that goes with this action. 697 * @param pix The dynamically loaded icon that goes with this action.
695 * @param cut The corresponding keyboard accelerator (shortcut). 698 * @param cut The corresponding keyboard accelerator (shortcut).
696 * @param parent This action's parent. 699 * @param parent This action's parent.
697 * @param name An internal name for this action. 700 * @param name An internal name for this action.
698 * @param maxItems The maximum number of files to display 701 * @param maxItems The maximum number of files to display
699 */ 702 */
700 KRecentFilesAction( const QString& text, const QString& pix, const KShortcut& cut, 703 KRecentFilesAction( const QString& text, const QString& pix, const KShortcut& cut,
701 QObject* parent, const char* name = 0, 704 QObject* parent, const char* name = 0,
702 uint maxItems = 10 ); 705 uint maxItems = 10 );
703 706
704 /** 707 /**
705 * @param text The text that will be displayed. 708 * @param text The text that will be displayed.
706 * @param pix The icons that go with this action. 709 * @param pix The icons that go with this action.
707 * @param cut The corresponding keyboard accelerator (shortcut). 710 * @param cut The corresponding keyboard accelerator (shortcut).
708 * @param receiver The SLOT's parent. 711 * @param receiver The SLOT's parent.
709 * @param slot The SLOT to invoke when a URL is selected. 712 * @param slot The SLOT to invoke when a URL is selected.
710 * Its signature is of the form slotURLSelected( const KURL & ). 713 * Its signature is of the form slotURLSelected( const KURL & ).
711 * @param parent This action's parent. 714 * @param parent This action's parent.
712 * @param name An internal name for this action. 715 * @param name An internal name for this action.
713 * @param maxItems The maximum number of files to display 716 * @param maxItems The maximum number of files to display
714 */ 717 */
715 KRecentFilesAction( const QString& text, const QIconSet& pix, const KShortcut& cut, 718 KRecentFilesAction( const QString& text, const QIcon& pix, const KShortcut& cut,
716 const QObject* receiver, const char* slot, 719 const QObject* receiver, const char* slot,
717 QObject* parent, const char* name = 0, 720 QObject* parent, const char* name = 0,
718 uint maxItems = 10 ); 721 uint maxItems = 10 );
719 722
720 /** 723 /**
721 * @param text The text that will be displayed. 724 * @param text The text that will be displayed.
722 * @param pix The dynamically loaded icon that goes with this action. 725 * @param pix The dynamically loaded icon that goes with this action.
723 * @param cut The corresponding keyboard accelerator (shortcut). 726 * @param cut The corresponding keyboard accelerator (shortcut).
724 * @param receiver The SLOT's parent. 727 * @param receiver The SLOT's parent.
725 * @param slot The SLOT to invoke when a URL is selected. 728 * @param slot The SLOT to invoke when a URL is selected.
726 * Its signature is of the form slotURLSelected( const KURL & ). 729 * Its signature is of the form slotURLSelected( const KURL & ).
727 * @param parent This action's parent. 730 * @param parent This action's parent.
728 * @param name An internal name for this action. 731 * @param name An internal name for this action.
729 * @param maxItems The maximum number of files to display 732 * @param maxItems The maximum number of files to display
730 */ 733 */
731 KRecentFilesAction( const QString& text, const QString& pix, const KShortcut& cut, 734 KRecentFilesAction( const QString& text, const QString& pix, const KShortcut& cut,
@@ -821,37 +824,37 @@ private:
821 void init(); 824 void init();
822 825
823 class KRecentFilesActionPrivate; 826 class KRecentFilesActionPrivate;
824 KRecentFilesActionPrivate *d; 827 KRecentFilesActionPrivate *d;
825}; 828};
826 829
827class KFontAction : public KSelectAction 830class KFontAction : public KSelectAction
828{ 831{
829 Q_OBJECT 832 Q_OBJECT
830 Q_PROPERTY( QString font READ font WRITE setFont ) 833 Q_PROPERTY( QString font READ font WRITE setFont )
831public: 834public:
832 KFontAction( const QString& text, const KShortcut& cut = KShortcut(), QObject* parent = 0, 835 KFontAction( const QString& text, const KShortcut& cut = KShortcut(), QObject* parent = 0,
833 const char* name = 0 ); 836 const char* name = 0 );
834 KFontAction( const QString& text, const KShortcut& cut, 837 KFontAction( const QString& text, const KShortcut& cut,
835 const QObject* receiver, const char* slot, QObject* parent, 838 const QObject* receiver, const char* slot, QObject* parent,
836 const char* name = 0 ); 839 const char* name = 0 );
837 KFontAction( const QString& text, const QIconSet& pix, const KShortcut& cut = KShortcut(), 840 KFontAction( const QString& text, const QIcon& pix, const KShortcut& cut = KShortcut(),
838 QObject* parent = 0, const char* name = 0 ); 841 QObject* parent = 0, const char* name = 0 );
839 KFontAction( const QString& text, const QString& pix, const KShortcut& cut = KShortcut(), 842 KFontAction( const QString& text, const QString& pix, const KShortcut& cut = KShortcut(),
840 QObject* parent = 0, const char* name = 0 ); 843 QObject* parent = 0, const char* name = 0 );
841 KFontAction( const QString& text, const QIconSet& pix, const KShortcut& cut, 844 KFontAction( const QString& text, const QIcon& pix, const KShortcut& cut,
842 const QObject* receiver, const char* slot, QObject* parent, 845 const QObject* receiver, const char* slot, QObject* parent,
843 const char* name = 0 ); 846 const char* name = 0 );
844 KFontAction( const QString& text, const QString& pix, const KShortcut& cut, 847 KFontAction( const QString& text, const QString& pix, const KShortcut& cut,
845 const QObject* receiver, const char* slot, QObject* parent, 848 const QObject* receiver, const char* slot, QObject* parent,
846 const char* name = 0 ); 849 const char* name = 0 );
847 850
848 KFontAction( QObject* parent = 0, const char* name = 0 ); 851 KFontAction( QObject* parent = 0, const char* name = 0 );
849 ~KFontAction(); 852 ~KFontAction();
850 853
851 QString font() const { 854 QString font() const {
852 return currentText(); 855 return currentText();
853 } 856 }
854 857
855 int plug( QWidget*, int index = -1 ); 858 int plug( QWidget*, int index = -1 );
856 859
857public slots: 860public slots:
@@ -860,37 +863,37 @@ public slots:
860protected: 863protected:
861 virtual void virtual_hook( int id, void* data ); 864 virtual void virtual_hook( int id, void* data );
862private: 865private:
863 class KFontActionPrivate; 866 class KFontActionPrivate;
864 KFontActionPrivate *d; 867 KFontActionPrivate *d;
865}; 868};
866 869
867class KFontSizeAction : public KSelectAction 870class KFontSizeAction : public KSelectAction
868{ 871{
869 Q_OBJECT 872 Q_OBJECT
870 Q_PROPERTY( int fontSize READ fontSize WRITE setFontSize ) 873 Q_PROPERTY( int fontSize READ fontSize WRITE setFontSize )
871public: 874public:
872 KFontSizeAction( const QString& text, const KShortcut& cut = KShortcut(), QObject* parent = 0, 875 KFontSizeAction( const QString& text, const KShortcut& cut = KShortcut(), QObject* parent = 0,
873 const char* name = 0 ); 876 const char* name = 0 );
874 KFontSizeAction( const QString& text, const KShortcut& cut, const QObject* receiver, 877 KFontSizeAction( const QString& text, const KShortcut& cut, const QObject* receiver,
875 const char* slot, QObject* parent, const char* name = 0 ); 878 const char* slot, QObject* parent, const char* name = 0 );
876 KFontSizeAction( const QString& text, const QIconSet& pix, const KShortcut& cut = KShortcut(), 879 KFontSizeAction( const QString& text, const QIcon& pix, const KShortcut& cut = KShortcut(),
877 QObject* parent = 0, const char* name = 0 ); 880 QObject* parent = 0, const char* name = 0 );
878 KFontSizeAction( const QString& text, const QString& pix, const KShortcut& cut = KShortcut(), 881 KFontSizeAction( const QString& text, const QString& pix, const KShortcut& cut = KShortcut(),
879 QObject* parent = 0, const char* name = 0 ); 882 QObject* parent = 0, const char* name = 0 );
880 KFontSizeAction( const QString& text, const QIconSet& pix, const KShortcut& cut, 883 KFontSizeAction( const QString& text, const QIcon& pix, const KShortcut& cut,
881 const QObject* receiver, const char* slot, 884 const QObject* receiver, const char* slot,
882 QObject* parent, const char* name = 0 ); 885 QObject* parent, const char* name = 0 );
883 KFontSizeAction( const QString& text, const QString& pix, const KShortcut& cut, 886 KFontSizeAction( const QString& text, const QString& pix, const KShortcut& cut,
884 const QObject* receiver, const char* slot, 887 const QObject* receiver, const char* slot,
885 QObject* parent, const char* name = 0 ); 888 QObject* parent, const char* name = 0 );
886 KFontSizeAction( QObject* parent = 0, const char* name = 0 ); 889 KFontSizeAction( QObject* parent = 0, const char* name = 0 );
887 890
888 virtual ~KFontSizeAction(); 891 virtual ~KFontSizeAction();
889 892
890 virtual int fontSize() const; 893 virtual int fontSize() const;
891 894
892public slots: 895public slots:
893 virtual void setFontSize( int size ); 896 virtual void setFontSize( int size );
894 897
895protected slots: 898protected slots:
896 virtual void slotActivated( int ); 899 virtual void slotActivated( int );
@@ -918,44 +921,44 @@ private:
918 * Plugged in a popupmenu, it will create a submenu. 921 * Plugged in a popupmenu, it will create a submenu.
919 * Plugged in a toolbar, it will create a button with a popup menu. 922 * Plugged in a toolbar, it will create a button with a popup menu.
920 * 923 *
921 * This is the action used by the XMLGUI since it holds other actions. 924 * This is the action used by the XMLGUI since it holds other actions.
922 * If you want a submenu for selecting one tool among many (without icons), see KSelectAction. 925 * If you want a submenu for selecting one tool among many (without icons), see KSelectAction.
923 * See also setDelayed about the main action. 926 * See also setDelayed about the main action.
924 */ 927 */
925class KActionMenu : public KAction 928class KActionMenu : public KAction
926{ 929{
927 Q_OBJECT 930 Q_OBJECT
928 Q_PROPERTY( bool delayed READ delayed WRITE setDelayed ) 931 Q_PROPERTY( bool delayed READ delayed WRITE setDelayed )
929 Q_PROPERTY( bool stickyMenu READ stickyMenu WRITE setStickyMenu ) 932 Q_PROPERTY( bool stickyMenu READ stickyMenu WRITE setStickyMenu )
930 933
931public: 934public:
932 KActionMenu( const QString& text, QObject* parent = 0, 935 KActionMenu( const QString& text, QObject* parent = 0,
933 const char* name = 0 ); 936 const char* name = 0 );
934 KActionMenu( const QString& text, const QIconSet& icon, 937 KActionMenu( const QString& text, const QIcon& icon,
935 QObject* parent = 0, const char* name = 0 ); 938 QObject* parent = 0, const char* name = 0 );
936 KActionMenu( const QString& text, const QString& icon, 939 KActionMenu( const QString& text, const QString& icon,
937 QObject* parent = 0, const char* name = 0 ); 940 QObject* parent = 0, const char* name = 0 );
938 KActionMenu( QObject* parent = 0, const char* name = 0 ); 941 KActionMenu( QObject* parent = 0, const char* name = 0 );
939 virtual ~KActionMenu(); 942 virtual ~KActionMenu();
940 943
941 virtual void insert( KAction*, int index = -1 ); 944 virtual void insert( KAction*, int index = -1 );
942 virtual void remove( KAction* ); 945 virtual void remove( KAction* );
943 946
944//US KPopupMenu* popupMenu() const; 947//US KPopupMenu* popupMenu() const;
945 QPopupMenu* popupMenu() const; 948 Q3PopupMenu* popupMenu() const;
946 void popup( const QPoint& global ); 949 void popup( const QPoint& global );
947 950
948 /** 951 /**
949 * Returns true if this action creates a delayed popup menu 952 * Returns true if this action creates a delayed popup menu
950 * when plugged in a KToolbar. 953 * when plugged in a KToolbar.
951 */ 954 */
952 bool delayed() const; 955 bool delayed() const;
953 /** 956 /**
954 * If set to true, this action will create a delayed popup menu 957 * If set to true, this action will create a delayed popup menu
955 * when plugged in a KToolbar. Otherwise it creates a normal popup. 958 * when plugged in a KToolbar. Otherwise it creates a normal popup.
956 * Default: delayed 959 * Default: delayed
957 * 960 *
958 * Remember that if the "main" action (the toolbar button itself) 961 * Remember that if the "main" action (the toolbar button itself)
959 * cannot be clicked, then you should call setDelayed(false). 962 * cannot be clicked, then you should call setDelayed(false).
960 * 963 *
961 * On the opposite, if the main action can be clicked, it can only happen 964 * On the opposite, if the main action can be clicked, it can only happen
@@ -1054,64 +1057,64 @@ public:
1054 */ 1057 */
1055 1058
1056 KToolBarPopupAction( const KGuiItem& item, const KShortcut& cut, 1059 KToolBarPopupAction( const KGuiItem& item, const KShortcut& cut,
1057 const QObject* receiver, const char* slot, 1060 const QObject* receiver, const char* slot,
1058 KActionCollection* parent, const char* name ); 1061 KActionCollection* parent, const char* name );
1059 1062
1060 virtual ~KToolBarPopupAction(); 1063 virtual ~KToolBarPopupAction();
1061 1064
1062 virtual int plug( QWidget *widget, int index = -1 ); 1065 virtual int plug( QWidget *widget, int index = -1 );
1063 1066
1064 /** 1067 /**
1065 * The popup menu that is shown when clicking (some time) on the toolbar 1068 * The popup menu that is shown when clicking (some time) on the toolbar
1066 * button. You may want to plug items into it on creation, or connect to 1069 * button. You may want to plug items into it on creation, or connect to
1067 * aboutToShow for a more dynamic menu. 1070 * aboutToShow for a more dynamic menu.
1068 */ 1071 */
1069//US KPopupMenu *popupMenu() const; 1072//US KPopupMenu *popupMenu() const;
1070 QPopupMenu *popupMenu() const; 1073 Q3PopupMenu *popupMenu() const;
1071 1074
1072 /** 1075 /**
1073 * Returns true if this action creates a delayed popup menu 1076 * Returns true if this action creates a delayed popup menu
1074 * when plugged in a KToolbar. 1077 * when plugged in a KToolbar.
1075 */ 1078 */
1076 bool delayed() const; 1079 bool delayed() const;
1077 /** 1080 /**
1078 * If set to true, this action will create a delayed popup menu 1081 * If set to true, this action will create a delayed popup menu
1079 * when plugged in a KToolbar. Otherwise it creates a normal popup. 1082 * when plugged in a KToolbar. Otherwise it creates a normal popup.
1080 * Default: delayed. 1083 * Default: delayed.
1081 */ 1084 */
1082 void setDelayed(bool delayed); 1085 void setDelayed(bool delayed);
1083 /** 1086 /**
1084 * Returns true if this action creates a sticky popup menu. 1087 * Returns true if this action creates a sticky popup menu.
1085 * See @ref setStickyMenu. 1088 * See @ref setStickyMenu.
1086 */ 1089 */
1087 bool stickyMenu() const; 1090 bool stickyMenu() const;
1088 /** 1091 /**
1089 * If set to true, this action will create a sticky popup menu 1092 * If set to true, this action will create a sticky popup menu
1090 * when plugged in a KToolbar. 1093 * when plugged in a KToolbar.
1091 * "Sticky", means it's visible until a selection is made or the mouse is 1094 * "Sticky", means it's visible until a selection is made or the mouse is
1092 * clicked elsewhere. This feature allows you to make a selection without 1095 * clicked elsewhere. This feature allows you to make a selection without
1093 * having to press and hold down the mouse while making a selection. 1096 * having to press and hold down the mouse while making a selection.
1094 * Only available if delayed() is true. 1097 * Only available if delayed() is true.
1095 * Default: sticky. 1098 * Default: sticky.
1096 */ 1099 */
1097 void setStickyMenu(bool sticky); 1100 void setStickyMenu(bool sticky);
1098 1101
1099private: 1102private:
1100//US KPopupMenu *m_popup; 1103//US KPopupMenu *m_popup;
1101 QPopupMenu *m_popup; 1104 Q3PopupMenu *m_popup;
1102 bool m_delayed:1; 1105 bool m_delayed:1;
1103 bool m_stickyMenu:1; 1106 bool m_stickyMenu:1;
1104protected: 1107protected:
1105 virtual void virtual_hook( int id, void* data ); 1108 virtual void virtual_hook( int id, void* data );
1106private: 1109private:
1107 class KToolBarPopupActionPrivate; 1110 class KToolBarPopupActionPrivate;
1108 KToolBarPopupActionPrivate *d; 1111 KToolBarPopupActionPrivate *d;
1109}; 1112};
1110 1113
1111/** 1114/**
1112 * An action that takes care of everything associated with 1115 * An action that takes care of everything associated with
1113 * showing or hiding a toolbar by a menu action. It will 1116 * showing or hiding a toolbar by a menu action. It will
1114 * show or hide the toolbar with the given name when 1117 * show or hide the toolbar with the given name when
1115 * activated, and check or uncheck itself if the toolbar 1118 * activated, and check or uncheck itself if the toolbar
1116 * is manually shown or hidden. 1119 * is manually shown or hidden.
1117 * 1120 *
@@ -1134,34 +1137,34 @@ public:
1134 KToggleToolBarAction( const char* toolBarName, const QString& text, 1137 KToggleToolBarAction( const char* toolBarName, const QString& text,
1135 KActionCollection* parent, const char* name ); 1138 KActionCollection* parent, const char* name );
1136 KToggleToolBarAction( KToolBar *toolBar, const QString &text, 1139 KToggleToolBarAction( KToolBar *toolBar, const QString &text,
1137 KActionCollection *parent, const char *name ); 1140 KActionCollection *parent, const char *name );
1138 virtual ~KToggleToolBarAction(); 1141 virtual ~KToggleToolBarAction();
1139 1142
1140 virtual int plug( QWidget*, int index = -1 ); 1143 virtual int plug( QWidget*, int index = -1 );
1141 1144
1142 KToolBar *toolBar() { 1145 KToolBar *toolBar() {
1143 return m_toolBar; 1146 return m_toolBar;
1144 } 1147 }
1145 1148
1146public slots: 1149public slots:
1147 virtual void setChecked( bool ); 1150 virtual void setChecked( bool );
1148 1151
1149private: 1152private:
1150 QCString m_toolBarName; 1153 Q3CString m_toolBarName;
1151 QGuardedPtr<KToolBar> m_toolBar; 1154 QPointer<KToolBar> m_toolBar;
1152protected: 1155protected:
1153 virtual void virtual_hook( int id, void* data ); 1156 virtual void virtual_hook( int id, void* data );
1154private: 1157private:
1155 class KToggleToolBarActionPrivate; 1158 class KToggleToolBarActionPrivate;
1156 KToggleToolBarActionPrivate *d; 1159 KToggleToolBarActionPrivate *d;
1157}; 1160};
1158 1161
1159/** 1162/**
1160 * An action that automatically embeds a widget into a 1163 * An action that automatically embeds a widget into a
1161 * toolbar. 1164 * toolbar.
1162 */ 1165 */
1163class KWidgetAction : public KAction 1166class KWidgetAction : public KAction
1164{ 1167{
1165 Q_OBJECT 1168 Q_OBJECT
1166public: 1169public:
1167 /** 1170 /**
@@ -1182,33 +1185,33 @@ public:
1182 1185
1183 void setAutoSized( bool ); 1186 void setAutoSized( bool );
1184 1187
1185 /** 1188 /**
1186 * Plug the action. The widget passed to the constructor 1189 * Plug the action. The widget passed to the constructor
1187 * will be reparented to w, which must inherit KToolBar. 1190 * will be reparented to w, which must inherit KToolBar.
1188 */ 1191 */
1189 virtual int plug( QWidget* w, int index = -1 ); 1192 virtual int plug( QWidget* w, int index = -1 );
1190 /** 1193 /**
1191 * Unplug the action. Ensures that the action is not 1194 * Unplug the action. Ensures that the action is not
1192 * destroyed. It will be hidden and reparented to 0L instead. 1195 * destroyed. It will be hidden and reparented to 0L instead.
1193 */ 1196 */
1194 virtual void unplug( QWidget *w ); 1197 virtual void unplug( QWidget *w );
1195protected slots: 1198protected slots:
1196 void slotToolbarDestroyed(); 1199 void slotToolbarDestroyed();
1197private: 1200private:
1198 QGuardedPtr<QWidget> m_widget; 1201 QPointer<QWidget> m_widget;
1199 bool m_autoSized; 1202 bool m_autoSized;
1200protected: 1203protected:
1201 virtual void virtual_hook( int id, void* data ); 1204 virtual void virtual_hook( int id, void* data );
1202private: 1205private:
1203 class KWidgetActionPrivate; 1206 class KWidgetActionPrivate;
1204 KWidgetActionPrivate *d; 1207 KWidgetActionPrivate *d;
1205}; 1208};
1206 1209
1207class KActionSeparator : public KAction 1210class KActionSeparator : public KAction
1208{ 1211{
1209 Q_OBJECT 1212 Q_OBJECT
1210public: 1213public:
1211 KActionSeparator( QObject* parent = 0, const char* name = 0 ); 1214 KActionSeparator( QObject* parent = 0, const char* name = 0 );
1212 virtual ~KActionSeparator(); 1215 virtual ~KActionSeparator();
1213 1216
1214 virtual int plug( QWidget*, int index = -1 ); 1217 virtual int plug( QWidget*, int index = -1 );
diff --git a/microkde/kdeui/kactioncollection.cpp b/microkde/kdeui/kactioncollection.cpp
index 69e5d02..4d66c7f 100644
--- a/microkde/kdeui/kactioncollection.cpp
+++ b/microkde/kdeui/kactioncollection.cpp
@@ -13,80 +13,82 @@
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 "kactioncollection.h" 26#include "kactioncollection.h"
27//US#include "kactionshortcutlist.h" 27//US#include "kactionshortcutlist.h"
28 28
29#include <qptrdict.h> 29#include <q3ptrdict.h>
30//Added by qt3to4:
31#include <Q3ValueList>
30//US#include <qvariant.h> 32//US#include <qvariant.h>
31 33
32//US#include <kaccel.h> 34//US#include <kaccel.h>
33//US#include <kaccelbase.h> 35//US#include <kaccelbase.h>
34//US#include <kapplication.h> 36//US#include <kapplication.h>
35#include <kdebug.h> 37#include <kdebug.h>
36//US#include <kxmlguifactory.h> 38//US#include <kxmlguifactory.h>
37 39
38//US I included the following files 40//US I included the following files
39#include <qasciidict.h> 41#include <q3asciidict.h>
40#include <qptrlist.h> 42#include <q3ptrlist.h>
41#include "kaction.h" 43#include "kaction.h"
42#include <kglobal.h> 44#include <kglobal.h>
43#include <qobject.h> 45#include <qobject.h>
44#include <qwidget.h> 46#include <qwidget.h>
45 47
46class KActionCollection::KActionCollectionPrivate 48class KActionCollection::KActionCollectionPrivate
47{ 49{
48public: 50public:
49 KActionCollectionPrivate() 51 KActionCollectionPrivate()
50 { 52 {
51//US m_instance = 0; 53//US m_instance = 0;
52 //m_bOneKAccelOnly = false; 54 //m_bOneKAccelOnly = false;
53 //m_iWidgetCurrent = 0; 55 //m_iWidgetCurrent = 0;
54 m_bAutoConnectShortcuts = true; 56 m_bAutoConnectShortcuts = true;
55 m_widget = 0; 57 m_widget = 0;
56 m_kaccel = m_builderKAccel = 0; 58 m_kaccel = m_builderKAccel = 0;
57 m_dctHighlightContainers.setAutoDelete( true ); 59 m_dctHighlightContainers.setAutoDelete( true );
58 m_highlight = false; 60 m_highlight = false;
59 m_currentHighlightAction = 0; 61 m_currentHighlightAction = 0;
60 m_statusCleared = true; 62 m_statusCleared = true;
61 } 63 }
62 64
63//US KInstance *m_instance; 65//US KInstance *m_instance;
64//US QString m_sXMLFile; 66//US QString m_sXMLFile;
65 bool m_bAutoConnectShortcuts; 67 bool m_bAutoConnectShortcuts;
66 //bool m_bOneKAccelOnly; 68 //bool m_bOneKAccelOnly;
67 //int m_iWidgetCurrent; 69 //int m_iWidgetCurrent;
68 //QValueList<QWidget*> m_widgetList; 70 //QValueList<QWidget*> m_widgetList;
69 //QValueList<KAccel*> m_kaccelList; 71 //QValueList<KAccel*> m_kaccelList;
70 QValueList<KActionCollection*> m_docList; 72 Q3ValueList<KActionCollection*> m_docList;
71 QWidget *m_widget; 73 QWidget *m_widget;
72 KAccel *m_kaccel; 74 KAccel *m_kaccel;
73 KAccel *m_builderKAccel; 75 KAccel *m_builderKAccel;
74 76
75 QAsciiDict<KAction> m_actionDict; 77 Q3AsciiDict<KAction> m_actionDict;
76 QPtrDict< QPtrList<KAction> > m_dctHighlightContainers; 78 Q3PtrDict< Q3PtrList<KAction> > m_dctHighlightContainers;
77 bool m_highlight; 79 bool m_highlight;
78 KAction *m_currentHighlightAction; 80 KAction *m_currentHighlightAction;
79 bool m_statusCleared; 81 bool m_statusCleared;
80}; 82};
81 83
82KActionCollection::KActionCollection( QWidget *parent, const char *name /*US, 84KActionCollection::KActionCollection( QWidget *parent, const char *name /*US,
83 KInstance *instance */) 85 KInstance *instance */)
84 : QObject( (QObject*)parent, name ) 86 : QObject( (QObject*)parent, name )
85{ 87{
86 kdDebug(129) << "KActionCollection::KActionCollection( " << parent << ", " << name << " ): this = " << this << endl; // ellis 88 kdDebug(129) << "KActionCollection::KActionCollection( " << parent << ", " << name << " ): this = " << this << endl; // ellis
87 d = new KActionCollectionPrivate; 89 d = new KActionCollectionPrivate;
88 if( parent ) 90 if( parent )
89 setWidget( parent ); 91 setWidget( parent );
90 //d->m_bOneKAccelOnly = (d->m_kaccelList.count() > 0); 92 //d->m_bOneKAccelOnly = (d->m_kaccelList.count() > 0);
91//US setInstance( instance ); 93//US setInstance( instance );
92} 94}
@@ -120,33 +122,33 @@ KActionCollection::KActionCollection( QObject *parent, const char *name /*US,
120 //d->m_bOneKAccelOnly = (d->m_kaccelList.count() > 0); 122 //d->m_bOneKAccelOnly = (d->m_kaccelList.count() > 0);
121//US setInstance( instance ); 123//US setInstance( instance );
122} 124}
123 125
124KActionCollection::KActionCollection( const KActionCollection &copy ) 126KActionCollection::KActionCollection( const KActionCollection &copy )
125 : QObject() 127 : QObject()
126{ 128{
127 kdWarning(129) << "KActionCollection::KActionCollection( const KActionCollection & ): function is severely deprecated." << endl; 129 kdWarning(129) << "KActionCollection::KActionCollection( const KActionCollection & ): function is severely deprecated." << endl;
128 d = new KActionCollectionPrivate; 130 d = new KActionCollectionPrivate;
129 *this = copy; 131 *this = copy;
130} 132}
131// KDE 4: remove end 133// KDE 4: remove end
132 134
133KActionCollection::~KActionCollection() 135KActionCollection::~KActionCollection()
134{ 136{
135 kdDebug(129) << "KActionCollection::~KActionCollection(): this = " << this << endl; 137 kdDebug(129) << "KActionCollection::~KActionCollection(): this = " << this << endl;
136 for ( QAsciiDictIterator<KAction> it( d->m_actionDict ); it.current(); ++it ) { 138 for ( Q3AsciiDictIterator<KAction> it( d->m_actionDict ); it.current(); ++it ) {
137 KAction* pAction = it.current(); 139 KAction* pAction = it.current();
138 if ( pAction->m_parentCollection == this ) 140 if ( pAction->m_parentCollection == this )
139 pAction->m_parentCollection = 0L; 141 pAction->m_parentCollection = 0L;
140 } 142 }
141 143
142//US delete d->m_kaccel; 144//US delete d->m_kaccel;
143//US delete d->m_builderKAccel; 145//US delete d->m_builderKAccel;
144 delete d; d = 0; 146 delete d; d = 0;
145} 147}
146 148
147void KActionCollection::setWidget( QWidget* w ) 149void KActionCollection::setWidget( QWidget* w )
148{ 150{
149 //if ( d->m_actionDict.count() > 0 ) { 151 //if ( d->m_actionDict.count() > 0 ) {
150 // kdError(129) << "KActionCollection::setWidget(): must be called before any actions are added to collection!" << endl; 152 // kdError(129) << "KActionCollection::setWidget(): must be called before any actions are added to collection!" << endl;
151 // kdDebug(129) << kdBacktrace() << endl; 153 // kdDebug(129) << kdBacktrace() << endl;
152 //} 154 //}
@@ -352,126 +354,126 @@ KAction* KActionCollection::_take( KAction* action )
352 if( qstrcmp( name, "unnamed" ) == 0 ) 354 if( qstrcmp( name, "unnamed" ) == 0 )
353 { 355 {
354 sprintf(unnamed_name, "unnamed-%p", (void *) action); 356 sprintf(unnamed_name, "unnamed-%p", (void *) action);
355 name = unnamed_name; 357 name = unnamed_name;
356 } 358 }
357 359
358 KAction *a = d->m_actionDict.take( name ); 360 KAction *a = d->m_actionDict.take( name );
359 if ( !a || a != action ) 361 if ( !a || a != action )
360 return 0; 362 return 0;
361 363
362 emit removed( action ); 364 emit removed( action );
363 return a; 365 return a;
364} 366}
365 367
366void KActionCollection::_clear() 368void KActionCollection::_clear()
367{ 369{
368 QAsciiDictIterator<KAction> it( d->m_actionDict ); 370 Q3AsciiDictIterator<KAction> it( d->m_actionDict );
369 while ( it.current() ) 371 while ( it.current() )
370 _remove( it.current() ); 372 _remove( it.current() );
371} 373}
372 374
373void KActionCollection::insert( KAction* action ) { _insert( action ); } 375void KActionCollection::insert( KAction* action ) { _insert( action ); }
374void KActionCollection::remove( KAction* action ) { _remove( action ); } 376void KActionCollection::remove( KAction* action ) { _remove( action ); }
375KAction* KActionCollection::take( KAction* action ) { return _take( action ); } 377KAction* KActionCollection::take( KAction* action ) { return _take( action ); }
376void KActionCollection::clear() { _clear(); } 378void KActionCollection::clear() { _clear(); }
377KAccel* KActionCollection::accel() { return kaccel(); } 379KAccel* KActionCollection::accel() { return kaccel(); }
378const KAccel* KActionCollection::accel() const { return kaccel(); } 380const KAccel* KActionCollection::accel() const { return kaccel(); }
379KAccel* KActionCollection::builderKAccel() const { return d->m_builderKAccel; } 381KAccel* KActionCollection::builderKAccel() const { return d->m_builderKAccel; }
380 382
381KAction* KActionCollection::action( const char* name, const char* classname ) const 383KAction* KActionCollection::action( const char* name, const char* classname ) const
382{ 384{
383 KAction* pAction = 0; 385 KAction* pAction = 0;
384 386
385 if ( !classname && name ) 387 if ( !classname && name )
386 pAction = d->m_actionDict[ name ]; 388 pAction = d->m_actionDict[ name ];
387 389
388 else { 390 else {
389 QAsciiDictIterator<KAction> it( d->m_actionDict ); 391 Q3AsciiDictIterator<KAction> it( d->m_actionDict );
390 for( ; it.current(); ++it ) 392 for( ; it.current(); ++it )
391 { 393 {
392 if ( ( !name || strcmp( it.current()->name(), name ) == 0 ) && 394 if ( ( !name || strcmp( it.current()->name(), name ) == 0 ) &&
393 ( !classname || strcmp( it.current()->className(), classname ) == 0 ) ) { 395 ( !classname || strcmp( it.current()->className(), classname ) == 0 ) ) {
394 pAction = it.current(); 396 pAction = it.current();
395 break; 397 break;
396 } 398 }
397 } 399 }
398 } 400 }
399 401
400 if( !pAction ) { 402 if( !pAction ) {
401 for( uint i = 0; i < d->m_docList.count() && !pAction; i++ ) 403 for( uint i = 0; i < d->m_docList.count() && !pAction; i++ )
402 pAction = d->m_docList[i]->action( name, classname ); 404 pAction = d->m_docList[i]->action( name, classname );
403 } 405 }
404 406
405 return pAction; 407 return pAction;
406} 408}
407 409
408KAction* KActionCollection::action( int index ) const 410KAction* KActionCollection::action( int index ) const
409{ 411{
410 QAsciiDictIterator<KAction> it( d->m_actionDict ); 412 Q3AsciiDictIterator<KAction> it( d->m_actionDict );
411 it += index; 413 it += index;
412 return it.current(); 414 return it.current();
413// return d->m_actions.at( index ); 415// return d->m_actions.at( index );
414} 416}
415/*US 417/*US
416bool KActionCollection::readShortcutSettings( const QString& sConfigGroup, KConfigBase* pConfig ) 418bool KActionCollection::readShortcutSettings( const QString& sConfigGroup, KConfigBase* pConfig )
417{ 419{
418 return KActionShortcutList(this).readSettings( sConfigGroup, pConfig ); 420 return KActionShortcutList(this).readSettings( sConfigGroup, pConfig );
419} 421}
420 422
421bool KActionCollection::writeShortcutSettings( const QString& sConfigGroup, KConfigBase* pConfig ) const 423bool KActionCollection::writeShortcutSettings( const QString& sConfigGroup, KConfigBase* pConfig ) const
422{ 424{
423 return KActionShortcutList((KActionCollection*)this).writeSettings( sConfigGroup, pConfig ); 425 return KActionShortcutList((KActionCollection*)this).writeSettings( sConfigGroup, pConfig );
424} 426}
425*/ 427*/
426uint KActionCollection::count() const 428uint KActionCollection::count() const
427{ 429{
428 return d->m_actionDict.count(); 430 return d->m_actionDict.count();
429} 431}
430 432
431QStringList KActionCollection::groups() const 433QStringList KActionCollection::groups() const
432{ 434{
433 QStringList lst; 435 QStringList lst;
434 436
435 QAsciiDictIterator<KAction> it( d->m_actionDict ); 437 Q3AsciiDictIterator<KAction> it( d->m_actionDict );
436 for( ; it.current(); ++it ) 438 for( ; it.current(); ++it )
437 if ( !it.current()->group().isEmpty() && !lst.contains( it.current()->group() ) ) 439 if ( !it.current()->group().isEmpty() && !lst.contains( it.current()->group() ) )
438 lst.append( it.current()->group() ); 440 lst.append( it.current()->group() );
439 441
440 return lst; 442 return lst;
441} 443}
442 444
443KActionPtrList KActionCollection::actions( const QString& group ) const 445KActionPtrList KActionCollection::actions( const QString& group ) const
444{ 446{
445 KActionPtrList lst; 447 KActionPtrList lst;
446 448
447 QAsciiDictIterator<KAction> it( d->m_actionDict ); 449 Q3AsciiDictIterator<KAction> it( d->m_actionDict );
448 for( ; it.current(); ++it ) 450 for( ; it.current(); ++it )
449 if ( it.current()->group() == group ) 451 if ( it.current()->group() == group )
450 lst.append( it.current() ); 452 lst.append( it.current() );
451 else if ( it.current()->group().isEmpty() && group.isEmpty() ) 453 else if ( it.current()->group().isEmpty() && group.isEmpty() )
452 lst.append( it.current() ); 454 lst.append( it.current() );
453 455
454 return lst; 456 return lst;
455} 457}
456 458
457KActionPtrList KActionCollection::actions() const 459KActionPtrList KActionCollection::actions() const
458{ 460{
459 KActionPtrList lst; 461 KActionPtrList lst;
460 462
461 QAsciiDictIterator<KAction> it( d->m_actionDict ); 463 Q3AsciiDictIterator<KAction> it( d->m_actionDict );
462 for( ; it.current(); ++it ) 464 for( ; it.current(); ++it )
463 lst.append( it.current() ); 465 lst.append( it.current() );
464 466
465 return lst; 467 return lst;
466} 468}
467 469
468/*US we have no instance object. Use KGlobal instead 470/*US we have no instance object. Use KGlobal instead
469void KActionCollection::setInstance( KInstance *instance ) 471void KActionCollection::setInstance( KInstance *instance )
470{ 472{
471 if ( instance ) 473 if ( instance )
472 d->m_instance = instance; 474 d->m_instance = instance;
473qDebug("KActionCollection::setInstance has to be fixed"); 475qDebug("KActionCollection::setInstance has to be fixed");
474 else 476 else
475 d->m_instance = KGlobal::instance(); 477 d->m_instance = KGlobal::instance();
476} 478}
477 479
@@ -495,67 +497,67 @@ const QString& KActionCollection::xmlFile() const
495 497
496void KActionCollection::setHighlightingEnabled( bool enable ) 498void KActionCollection::setHighlightingEnabled( bool enable )
497{ 499{
498 d->m_highlight = enable; 500 d->m_highlight = enable;
499} 501}
500 502
501bool KActionCollection::highlightingEnabled() const 503bool KActionCollection::highlightingEnabled() const
502{ 504{
503 return d->m_highlight; 505 return d->m_highlight;
504} 506}
505 507
506void KActionCollection::connectHighlight( QWidget *container, KAction *action ) 508void KActionCollection::connectHighlight( QWidget *container, KAction *action )
507{ 509{
508 if ( !d->m_highlight ) 510 if ( !d->m_highlight )
509 return; 511 return;
510 512
511 QPtrList<KAction> *actionList = d->m_dctHighlightContainers[ container ]; 513 Q3PtrList<KAction> *actionList = d->m_dctHighlightContainers[ container ];
512 514
513 if ( !actionList ) 515 if ( !actionList )
514 { 516 {
515 actionList = new QPtrList<KAction>; 517 actionList = new Q3PtrList<KAction>;
516 518
517 if ( container->inherits( "QPopupMenu" ) ) 519 if ( container->inherits( "Q3PopupMenu" ) )
518 { 520 {
519 connect( container, SIGNAL( highlighted( int ) ), 521 connect( container, SIGNAL( highlighted( int ) ),
520 this, SLOT( slotMenuItemHighlighted( int ) ) ); 522 this, SLOT( slotMenuItemHighlighted( int ) ) );
521 connect( container, SIGNAL( aboutToHide() ), 523 connect( container, SIGNAL( aboutToHide() ),
522 this, SLOT( slotMenuAboutToHide() ) ); 524 this, SLOT( slotMenuAboutToHide() ) );
523 } 525 }
524//US else if ( container->inherits( "KToolBar" ) ) 526//US else if ( container->inherits( "KToolBar" ) )
525 else if ( container->inherits( "QToolBar" ) ) 527 else if ( container->inherits( "Q3ToolBar" ) )
526 { 528 {
527 connect( container, SIGNAL( highlighted( int, bool ) ), 529 connect( container, SIGNAL( highlighted( int, bool ) ),
528 this, SLOT( slotToolBarButtonHighlighted( int, bool ) ) ); 530 this, SLOT( slotToolBarButtonHighlighted( int, bool ) ) );
529 } 531 }
530 532
531 connect( container, SIGNAL( destroyed() ), 533 connect( container, SIGNAL( destroyed() ),
532 this, SLOT( slotDestroyed() ) ); 534 this, SLOT( slotDestroyed() ) );
533 535
534 d->m_dctHighlightContainers.insert( container, actionList ); 536 d->m_dctHighlightContainers.insert( container, actionList );
535 } 537 }
536 538
537 actionList->append( action ); 539 actionList->append( action );
538} 540}
539 541
540void KActionCollection::disconnectHighlight( QWidget *container, KAction *action ) 542void KActionCollection::disconnectHighlight( QWidget *container, KAction *action )
541{ 543{
542 if ( !d->m_highlight ) 544 if ( !d->m_highlight )
543 return; 545 return;
544 546
545 QPtrList<KAction> *actionList = d->m_dctHighlightContainers[ container ]; 547 Q3PtrList<KAction> *actionList = d->m_dctHighlightContainers[ container ];
546 548
547 if ( !actionList ) 549 if ( !actionList )
548 return; 550 return;
549 551
550 actionList->removeRef( action ); 552 actionList->removeRef( action );
551 553
552 if ( actionList->count() == 0 ) 554 if ( actionList->count() == 0 )
553 d->m_dctHighlightContainers.remove( container ); 555 d->m_dctHighlightContainers.remove( container );
554} 556}
555 557
556void KActionCollection::slotMenuItemHighlighted( int id ) 558void KActionCollection::slotMenuItemHighlighted( int id )
557{ 559{
558 if ( !d->m_highlight ) 560 if ( !d->m_highlight )
559 return; 561 return;
560 562
561 if ( d->m_currentHighlightAction ) 563 if ( d->m_currentHighlightAction )
@@ -612,78 +614,78 @@ void KActionCollection::slotToolBarButtonHighlighted( int id, bool highlight )
612 if ( highlight ) 614 if ( highlight )
613 d->m_currentHighlightAction = action; 615 d->m_currentHighlightAction = action;
614 else 616 else
615 { 617 {
616 d->m_currentHighlightAction = 0; 618 d->m_currentHighlightAction = 0;
617// emit clearStatusText(); 619// emit clearStatusText();
618 } 620 }
619} 621}
620 622
621void KActionCollection::slotDestroyed() 623void KActionCollection::slotDestroyed()
622{ 624{
623 d->m_dctHighlightContainers.remove( reinterpret_cast<void *>( const_cast<QObject *>(sender()) ) ); 625 d->m_dctHighlightContainers.remove( reinterpret_cast<void *>( const_cast<QObject *>(sender()) ) );
624} 626}
625 627
626KAction *KActionCollection::findAction( QWidget *container, int id ) 628KAction *KActionCollection::findAction( QWidget *container, int id )
627{ 629{
628 QPtrList<KAction> *actionList = d->m_dctHighlightContainers[ reinterpret_cast<void *>( container ) ]; 630 Q3PtrList<KAction> *actionList = d->m_dctHighlightContainers[ reinterpret_cast<void *>( container ) ];
629 631
630 if ( !actionList ) 632 if ( !actionList )
631 return 0; 633 return 0;
632 634
633 QPtrListIterator<KAction> it( *actionList ); 635 Q3PtrListIterator<KAction> it( *actionList );
634 for (; it.current(); ++it ) 636 for (; it.current(); ++it )
635 if ( it.current()->isPlugged( container, id ) ) 637 if ( it.current()->isPlugged( container, id ) )
636 return it.current(); 638 return it.current();
637 639
638 return 0; 640 return 0;
639} 641}
640 642
641// KDE 4: remove 643// KDE 4: remove
642KActionCollection KActionCollection::operator+(const KActionCollection &c ) const 644KActionCollection KActionCollection::operator+(const KActionCollection &c ) const
643{ 645{
644 kdWarning(129) << "KActionCollection::operator+(): function is severely deprecated." << endl; 646 kdWarning(129) << "KActionCollection::operator+(): function is severely deprecated." << endl;
645 KActionCollection ret( *this ); 647 KActionCollection ret( *this );
646 648
647 QValueList<KAction *> actions = c.actions(); 649 Q3ValueList<KAction *> actions = c.actions();
648 QValueList<KAction *>::ConstIterator it = actions.begin(); 650 Q3ValueList<KAction *>::ConstIterator it = actions.begin();
649 QValueList<KAction *>::ConstIterator end = actions.end(); 651 Q3ValueList<KAction *>::ConstIterator end = actions.end();
650 for (; it != end; ++it ) 652 for (; it != end; ++it )
651 ret.insert( *it ); 653 ret.insert( *it );
652 654
653 return ret; 655 return ret;
654} 656}
655 657
656KActionCollection &KActionCollection::operator=( const KActionCollection &copy ) 658KActionCollection &KActionCollection::operator=( const KActionCollection &copy )
657{ 659{
658 kdWarning(129) << "KActionCollection::operator=(): function is severely deprecated." << endl; 660 kdWarning(129) << "KActionCollection::operator=(): function is severely deprecated." << endl;
659 //d->m_bOneKAccelOnly = copy.d->m_bOneKAccelOnly; 661 //d->m_bOneKAccelOnly = copy.d->m_bOneKAccelOnly;
660 //d->m_iWidgetCurrent = copy.d->m_iWidgetCurrent; 662 //d->m_iWidgetCurrent = copy.d->m_iWidgetCurrent;
661 //d->m_widgetList = copy.d->m_widgetList; 663 //d->m_widgetList = copy.d->m_widgetList;
662 //d->m_kaccelList = copy.d->m_kaccelList; 664 //d->m_kaccelList = copy.d->m_kaccelList;
663 d->m_widget = copy.d->m_widget; 665 d->m_widget = copy.d->m_widget;
664 d->m_kaccel = copy.d->m_kaccel; 666 d->m_kaccel = copy.d->m_kaccel;
665 d->m_actionDict = copy.d->m_actionDict; 667 d->m_actionDict = copy.d->m_actionDict;
666//US setInstance( copy.instance() ); 668//US setInstance( copy.instance() );
667 return *this; 669 return *this;
668} 670}
669 671
670KActionCollection &KActionCollection::operator+=( const KActionCollection &c ) 672KActionCollection &KActionCollection::operator+=( const KActionCollection &c )
671{ 673{
672 kdWarning(129) << "KActionCollection::operator+=(): function is severely deprecated." << endl; 674 kdWarning(129) << "KActionCollection::operator+=(): function is severely deprecated." << endl;
673 QAsciiDictIterator<KAction> it(c.d->m_actionDict); 675 Q3AsciiDictIterator<KAction> it(c.d->m_actionDict);
674 for ( ; it.current(); ++it ) 676 for ( ; it.current(); ++it )
675 insert( it.current() ); 677 insert( it.current() );
676 678
677 return *this; 679 return *this;
678} 680}
679// KDE 4: remove end 681// KDE 4: remove end
680 682
681//--------------------------------------------------------------------- 683//---------------------------------------------------------------------
682// KActionShortcutList 684// KActionShortcutList
683//--------------------------------------------------------------------- 685//---------------------------------------------------------------------
684/*US 686/*US
685KActionShortcutList::KActionShortcutList( KActionCollection* pColl ) 687KActionShortcutList::KActionShortcutList( KActionCollection* pColl )
686: m_actions( *pColl ) 688: m_actions( *pColl )
687 { } 689 { }
688KActionShortcutList::~KActionShortcutList() 690KActionShortcutList::~KActionShortcutList()
689 { } 691 { }
diff --git a/microkde/kdeui/kactioncollection.h b/microkde/kdeui/kactioncollection.h
index b9466d0..50cb02a 100644
--- a/microkde/kdeui/kactioncollection.h
+++ b/microkde/kdeui/kactioncollection.h
@@ -17,63 +17,65 @@
17 Library General Public License for more details. 17 Library General Public License for more details.
18 18
19 You should have received a copy of the GNU Library General Public License 19 You should have received a copy of the GNU Library General Public License
20 along with this library; see the file COPYING.LIB. If not, write to 20 along with this library; see the file COPYING.LIB. If not, write to
21 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 21 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
22 Boston, MA 02111-1307, USA. 22 Boston, MA 02111-1307, USA.
23*/ 23*/
24//$Id$ 24//$Id$
25 25
26#ifndef __kactioncollection_h__ 26#ifndef __kactioncollection_h__
27#define __kactioncollection_h__ 27#define __kactioncollection_h__
28 28
29#include <kaction.h> 29#include <kaction.h>
30 30
31//US #include <qkeysequence.h> 31//US #include <qkeysequence.h>
32#include <qobject.h> 32#include <qobject.h>
33//Added by qt3to4:
34#include <Q3ValueList>
33//US#include <qvaluelist.h> 35//US#include <qvaluelist.h>
34//US#include <qguardedptr.h> 36//US#include <qguardedptr.h>
35//US #include <kguiitem.h> 37//US #include <kguiitem.h>
36//US#include <kshortcut.h> 38//US#include <kshortcut.h>
37//US#include <kstdaction.h> 39//US#include <kstdaction.h>
38//US#include <kicontheme.h> 40//US#include <kicontheme.h>
39 41
40//USclass QMenuBar; 42//USclass QMenuBar;
41//USclass QPopupMenu; 43//USclass QPopupMenu;
42//USclass QComboBox; 44//USclass QComboBox;
43//USclass QPoint; 45//USclass QPoint;
44//USclass QIconSet; 46//USclass QIconSet;
45//USclass QString; 47//USclass QString;
46//USclass KToolBar; 48//USclass KToolBar;
47 49
48//USclass KAccel; 50//USclass KAccel;
49//USclass KAccelActions; 51//USclass KAccelActions;
50//USclass KConfig; 52//USclass KConfig;
51//USclass KConfigBase; 53//USclass KConfigBase;
52//USclass KURL; 54//USclass KURL;
53//USclass KInstance; 55//USclass KInstance;
54//USclass KToolBar; 56//USclass KToolBar;
55//USclass KActionCollection; 57//USclass KActionCollection;
56//USclass KPopupMenu; 58//USclass KPopupMenu;
57//USclass KMainWindow; 59//USclass KMainWindow;
58 60
59//US added inclidefiles 61//US added inclidefiles
60class QWidget; 62class QWidget;
61 63
62 64
63typedef QValueList<KAction *> KActionPtrList; 65typedef Q3ValueList<KAction *> KActionPtrList;
64 66
65/** 67/**
66 * A managed set of KAction objects. 68 * A managed set of KAction objects.
67 */ 69 */
68class KActionCollection : public QObject 70class KActionCollection : public QObject
69{ 71{
70 friend class KAction; 72 friend class KAction;
71 friend class KXMLGUIClient; 73 friend class KXMLGUIClient;
72 74
73 Q_OBJECT 75 Q_OBJECT
74public: 76public:
75 KActionCollection( QWidget *parent, const char *name = 0/*US , KInstance *instance = 0 */); 77 KActionCollection( QWidget *parent, const char *name = 0/*US , KInstance *instance = 0 */);
76 /** 78 /**
77 * Use this constructor if you want the collection's actions to restrict 79 * Use this constructor if you want the collection's actions to restrict
78 * their accelerator keys to @p watch rather than the @p parent. If 80 * their accelerator keys to @p watch rather than the @p parent. If
79 * you don't require shortcuts, you can pass a null to the @p watch parameter. 81 * you don't require shortcuts, you can pass a null to the @p watch parameter.
diff --git a/microkde/kdeui/kbuttonbox.cpp b/microkde/kdeui/kbuttonbox.cpp
index 83d622a..3ea6703 100644
--- a/microkde/kdeui/kbuttonbox.cpp
+++ b/microkde/kdeui/kbuttonbox.cpp
@@ -36,57 +36,59 @@
36 * 36 *
37 * 01/17/98 Mario Weilguni <mweilguni@sime.com> 37 * 01/17/98 Mario Weilguni <mweilguni@sime.com>
38 * Fixed a bug in sizeHint() 38 * Fixed a bug in sizeHint()
39 * Improved the handling of Motif default buttons 39 * Improved the handling of Motif default buttons
40 * 40 *
41 * 01/09/98 Mario Weilguni <mweilguni@sime.com> 41 * 01/09/98 Mario Weilguni <mweilguni@sime.com>
42 * The last button was to far right away from the right/bottom border. 42 * The last button was to far right away from the right/bottom border.
43 * Fixed this. Removed old code. Buttons get now a minimum width. 43 * Fixed this. Removed old code. Buttons get now a minimum width.
44 * Programmer may now override minimum width and height of a button. 44 * Programmer may now override minimum width and height of a button.
45 * 45 *
46 */ 46 */
47 47
48//US #include "kbuttonbox.moc" 48//US #include "kbuttonbox.moc"
49 49
50#include <kbuttonbox.h> 50#include <kbuttonbox.h>
51#include <qpushbutton.h> 51#include <qpushbutton.h>
52#include <qptrlist.h> 52#include <q3ptrlist.h>
53//Added by qt3to4:
54#include <QResizeEvent>
53#include <assert.h> 55#include <assert.h>
54 56
55#define minButtonWidth 50 57#define minButtonWidth 50
56 58
57class KButtonBox::Item { 59class KButtonBox::Item {
58public: 60public:
59 QPushButton *button; 61 QPushButton *button;
60 bool noexpand; 62 bool noexpand;
61 unsigned short stretch; 63 unsigned short stretch;
62 unsigned short actual_size; 64 unsigned short actual_size;
63}; 65};
64 66
65template class QPtrList<KButtonBox::Item>; 67template class Q3PtrList<KButtonBox::Item>;
66 68
67class KButtonBoxPrivate { 69class KButtonBoxPrivate {
68public: 70public:
69 unsigned short border; 71 unsigned short border;
70 unsigned short autoborder; 72 unsigned short autoborder;
71 unsigned short orientation; 73 unsigned short orientation;
72 bool activated; 74 bool activated;
73 QPtrList<KButtonBox::Item> buttons; 75 Q3PtrList<KButtonBox::Item> buttons;
74}; 76};
75 77
76KButtonBox::KButtonBox(QWidget *parent, Orientation _orientation, 78KButtonBox::KButtonBox(QWidget *parent, Qt::Orientation _orientation,
77 int border, int autoborder) 79 int border, int autoborder)
78 : QWidget(parent) 80 : QWidget(parent)
79{ 81{
80 data = new KButtonBoxPrivate; 82 data = new KButtonBoxPrivate;
81 assert(data != 0); 83 assert(data != 0);
82 84
83 data->orientation = _orientation; 85 data->orientation = _orientation;
84 data->border = border; 86 data->border = border;
85 data->autoborder = autoborder < 0 ? border : autoborder; 87 data->autoborder = autoborder < 0 ? border : autoborder;
86 data->buttons.setAutoDelete(TRUE); 88 data->buttons.setAutoDelete(TRUE);
87} 89}
88 90
89KButtonBox::~KButtonBox() { 91KButtonBox::~KButtonBox() {
90 delete data; 92 delete data;
91} 93}
92 94
@@ -136,33 +138,33 @@ void KButtonBox::layout() {
136 Item *item = data->buttons.at(i); 138 Item *item = data->buttons.at(i);
137 QPushButton *b = item->button; 139 QPushButton *b = item->button;
138 if(b != 0) { 140 if(b != 0) {
139 if(item->noexpand) 141 if(item->noexpand)
140 b->setFixedSize(buttonSizeHint(b)); 142 b->setFixedSize(buttonSizeHint(b));
141 else 143 else
142 b->setFixedSize(bs); 144 b->setFixedSize(bs);
143 } 145 }
144 } 146 }
145 147
146 setMinimumSize(sizeHint()); 148 setMinimumSize(sizeHint());
147} 149}
148 150
149void KButtonBox::placeButtons() { 151void KButtonBox::placeButtons() {
150 unsigned int i; 152 unsigned int i;
151 153
152 if(data->orientation == Horizontal) { 154 if(data->orientation == Qt::Horizontal) {
153 // calculate free size and stretches 155 // calculate free size and stretches
154 int fs = width() - 2 * data->border; 156 int fs = width() - 2 * data->border;
155 int stretch = 0; 157 int stretch = 0;
156 for(i = 0; i < data->buttons.count(); i++) { 158 for(i = 0; i < data->buttons.count(); i++) {
157 Item *item = data->buttons.at(i); 159 Item *item = data->buttons.at(i);
158 if(item->button != 0) { 160 if(item->button != 0) {
159 fs -= item->button->width(); 161 fs -= item->button->width();
160 162
161 // Last button? 163 // Last button?
162 if(i != data->buttons.count() - 1) 164 if(i != data->buttons.count() - 1)
163 fs -= data->autoborder; 165 fs -= data->autoborder;
164 } else 166 } else
165 stretch +=item->stretch; 167 stretch +=item->stretch;
166 } 168 }
167 169
168 // distribute buttons 170 // distribute buttons
@@ -238,52 +240,52 @@ QSize KButtonBox::sizeHint() const {
238 return QSize(0, 0); 240 return QSize(0, 0);
239 else { 241 else {
240 dw = 2 * data->border; 242 dw = 2 * data->border;
241 243
242 QSize bs = bestButtonSize(); 244 QSize bs = bestButtonSize();
243 for(i = 0; i < data->buttons.count(); i++) { 245 for(i = 0; i < data->buttons.count(); i++) {
244 KButtonBox *that = (KButtonBox*)this; 246 KButtonBox *that = (KButtonBox*)this;
245 Item *item = that->data->buttons.at(i); 247 Item *item = that->data->buttons.at(i);
246 QPushButton *b = item->button; 248 QPushButton *b = item->button;
247 if(b != 0) { 249 if(b != 0) {
248 QSize s; 250 QSize s;
249 if(item->noexpand) 251 if(item->noexpand)
250 s = that->buttonSizeHint(b); 252 s = that->buttonSizeHint(b);
251 else 253 else
252 s = bs; 254 s = bs;
253 255
254 if(data->orientation == Horizontal) 256 if(data->orientation == Qt::Horizontal)
255 dw += s.width(); 257 dw += s.width();
256 else 258 else
257 dw += s.height(); 259 dw += s.height();
258 260
259 if( i != data->buttons.count() - 1 ) 261 if( i != data->buttons.count() - 1 )
260 dw += data->autoborder; 262 dw += data->autoborder;
261 } 263 }
262 } 264 }
263 265
264 if(data->orientation == Horizontal) 266 if(data->orientation == Qt::Horizontal)
265 return QSize(dw, bs.height() + 2 * data->border); 267 return QSize(dw, bs.height() + 2 * data->border);
266 else 268 else
267 return QSize(bs.width() + 2 * data->border, dw); 269 return QSize(bs.width() + 2 * data->border, dw);
268 } 270 }
269} 271}
270 272
271QSizePolicy KButtonBox::sizePolicy() const 273QSizePolicy KButtonBox::sizePolicy() const
272{ 274{
273 return data->orientation == Horizontal? 275 return data->orientation == Qt::Horizontal?
274 QSizePolicy( QSizePolicy::Minimum, QSizePolicy::Fixed ) : 276 QSizePolicy( QSizePolicy::Minimum, QSizePolicy::Fixed ) :
275 QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Minimum ); 277 QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Minimum );
276} 278}
277 279
278/* 280/*
279 * Returns the best size for a button. If a button is less than 281 * Returns the best size for a button. If a button is less than
280 * minButtonWidth pixels wide, return minButtonWidth pixels 282 * minButtonWidth pixels wide, return minButtonWidth pixels
281 * as minimum width 283 * as minimum width
282 */ 284 */
283QSize KButtonBox::buttonSizeHint(QPushButton *b) const { 285QSize KButtonBox::buttonSizeHint(QPushButton *b) const {
284 QSize s = b->sizeHint(); 286 QSize s = b->sizeHint();
285 QSize ms = b->minimumSize(); 287 QSize ms = b->minimumSize();
286 if(s.width() < minButtonWidth) 288 if(s.width() < minButtonWidth)
287 s.setWidth(minButtonWidth); 289 s.setWidth(minButtonWidth);
288 290
289 // allows the programmer to override the settings 291 // allows the programmer to override the settings
diff --git a/microkde/kdeui/kbuttonbox.h b/microkde/kdeui/kbuttonbox.h
index 1104366..2e0f41d 100644
--- a/microkde/kdeui/kbuttonbox.h
+++ b/microkde/kdeui/kbuttonbox.h
@@ -8,60 +8,62 @@
8 8
9 This library is distributed in the hope that it will be useful, 9 This library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of 10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Library General Public License for more details. 12 Library General Public License for more details.
13 13
14 You should have received a copy of the GNU Library General Public License 14 You should have received a copy of the GNU Library General Public License
15 along with this library; see the file COPYING.LIB. If not, write to 15 along with this library; see the file COPYING.LIB. If not, write to
16 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 16 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17 Boston, MA 02111-1307, USA. 17 Boston, MA 02111-1307, USA.
18*/ 18*/
19 19
20#ifndef __KBUTTONBOX__H__ 20#ifndef __KBUTTONBOX__H__
21#define __KBUTTONBOX__H__ 21#define __KBUTTONBOX__H__
22 22
23#include <qwidget.h> 23#include <qwidget.h>
24//Added by qt3to4:
25#include <QResizeEvent>
24class QPushButton; 26class QPushButton;
25 27
26class KButtonBoxPrivate; 28class KButtonBoxPrivate;
27/** 29/**
28 * Container widget for buttons. 30 * Container widget for buttons.
29 * 31 *
30 * This class uses Qt layout control to place the buttons; can handle 32 * This class uses Qt layout control to place the buttons; can handle
31 * both vertical and horizontal button placement. The default border 33 * both vertical and horizontal button placement. The default border
32 * is now @p 0 (making it easier to deal with layouts). The space 34 * is now @p 0 (making it easier to deal with layouts). The space
33 * between buttons is now more Motif compliant. 35 * between buttons is now more Motif compliant.
34 * 36 *
35 * @author Mario Weilguni <mweilguni@sime.com> 37 * @author Mario Weilguni <mweilguni@sime.com>
36 * @version $Id$ 38 * @version $Id$
37 **/ 39 **/
38 40
39class KButtonBox : public QWidget 41class KButtonBox : public QWidget
40{ 42{
41 Q_OBJECT 43 Q_OBJECT
42 44
43public: 45public:
44 /** 46 /**
45 * Create an empty container for buttons. 47 * Create an empty container for buttons.
46 * 48 *
47 * If @p _orientation is @p Vertical, the buttons inserted with 49 * If @p _orientation is @p Vertical, the buttons inserted with
48 * @ref addButton() are laid out from top to bottom, otherwise they 50 * @ref addButton() are laid out from top to bottom, otherwise they
49 * are laid out from left to right. 51 * are laid out from left to right.
50 */ 52 */
51 KButtonBox(QWidget *parent, Orientation _orientation = Horizontal, 53 KButtonBox(QWidget *parent, Qt::Orientation _orientation = Qt::Horizontal,
52 int border = 0, int _autoborder = 6); 54 int border = 0, int _autoborder = 6);
53 55
54 /** 56 /**
55 * Free private data field 57 * Free private data field
56 */ 58 */
57 ~KButtonBox(); 59 ~KButtonBox();
58 60
59 /** 61 /**
60 * @return The minimum size needed to fit all buttons. 62 * @return The minimum size needed to fit all buttons.
61 * 63 *
62 * This size is 64 * This size is
63 * calculated by the width/height of all buttons plus border/autoborder. 65 * calculated by the width/height of all buttons plus border/autoborder.
64 */ 66 */
65 virtual QSize sizeHint() const; 67 virtual QSize sizeHint() const;
66 /** 68 /**
67 * @reimplemented 69 * @reimplemented
diff --git a/microkde/kdeui/kguiitem.cpp b/microkde/kdeui/kguiitem.cpp
index 828c5e6..c91ffb7 100644
--- a/microkde/kdeui/kguiitem.cpp
+++ b/microkde/kdeui/kguiitem.cpp
@@ -7,33 +7,33 @@
7 modify it under the terms of the GNU Library General Public 7 modify it under the terms of the GNU Library General Public
8 License version 2 as published by the Free Software Foundation. 8 License version 2 as published by the Free Software Foundation.
9 9
10 This library is distributed in the hope that it will be useful, 10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details. 13 Library General Public License for more details.
14 14
15 You should have received a copy of the GNU Library General Public License 15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to 16 along with this library; see the file COPYING.LIB. If not, write to
17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA. 18 Boston, MA 02111-1307, USA.
19*/ 19*/
20 20
21#include <qregexp.h> 21#include <qregexp.h>
22#include <qstring.h> 22#include <qstring.h>
23#include <qiconset.h> 23#include <qicon.h>
24#include <qpixmap.h> 24#include <qpixmap.h>
25 25
26#include <assert.h> 26#include <assert.h>
27//US #include <kiconloader.h> 27//US #include <kiconloader.h>
28#include <kdebug.h> 28#include <kdebug.h>
29 29
30#include "kguiitem.h" 30#include "kguiitem.h"
31 31
32class KGuiItem::KGuiItemPrivate 32class KGuiItem::KGuiItemPrivate
33{ 33{
34public: 34public:
35 KGuiItemPrivate() 35 KGuiItemPrivate()
36 { 36 {
37 m_enabled = true; 37 m_enabled = true;
38 m_hasIcon = false; 38 m_hasIcon = false;
39 } 39 }
@@ -49,53 +49,53 @@ public:
49 m_iconSet = rhs.m_iconSet; 49 m_iconSet = rhs.m_iconSet;
50 m_iconName = rhs.m_iconName; 50 m_iconName = rhs.m_iconName;
51 m_toolTip = rhs.m_toolTip; 51 m_toolTip = rhs.m_toolTip;
52 m_whatsThis = rhs.m_whatsThis; 52 m_whatsThis = rhs.m_whatsThis;
53 m_statusText = rhs.m_statusText; 53 m_statusText = rhs.m_statusText;
54 m_enabled = rhs.m_enabled; 54 m_enabled = rhs.m_enabled;
55 m_hasIcon = rhs.m_hasIcon; 55 m_hasIcon = rhs.m_hasIcon;
56 56
57 return *this; 57 return *this;
58 } 58 }
59 59
60 QString m_text; 60 QString m_text;
61 QString m_toolTip; 61 QString m_toolTip;
62 QString m_whatsThis; 62 QString m_whatsThis;
63 QString m_statusText; 63 QString m_statusText;
64 QString m_iconName; 64 QString m_iconName;
65 QIconSet m_iconSet; 65 QIcon m_iconSet;
66 bool m_hasIcon : 1; 66 bool m_hasIcon : 1;
67 bool m_enabled : 1; 67 bool m_enabled : 1;
68}; 68};
69 69
70 70
71KGuiItem::KGuiItem() { 71KGuiItem::KGuiItem() {
72 d = new KGuiItemPrivate; 72 d = new KGuiItemPrivate;
73} 73}
74 74
75KGuiItem::KGuiItem( const QString &text, const QString &iconName, 75KGuiItem::KGuiItem( const QString &text, const QString &iconName,
76 const QString &toolTip, const QString &whatsThis ) 76 const QString &toolTip, const QString &whatsThis )
77{ 77{
78 d = new KGuiItemPrivate; 78 d = new KGuiItemPrivate;
79 d->m_text = text; 79 d->m_text = text;
80 d->m_toolTip = toolTip; 80 d->m_toolTip = toolTip;
81 d->m_whatsThis = whatsThis; 81 d->m_whatsThis = whatsThis;
82 setIconName( iconName ); 82 setIconName( iconName );
83} 83}
84 84
85KGuiItem::KGuiItem( const QString &text, const QIconSet &iconSet, 85KGuiItem::KGuiItem( const QString &text, const QIcon &iconSet,
86 const QString &toolTip, const QString &whatsThis ) 86 const QString &toolTip, const QString &whatsThis )
87{ 87{
88 d = new KGuiItemPrivate; 88 d = new KGuiItemPrivate;
89 d->m_text = text; 89 d->m_text = text;
90 d->m_toolTip = toolTip; 90 d->m_toolTip = toolTip;
91 d->m_whatsThis = whatsThis; 91 d->m_whatsThis = whatsThis;
92 setIconSet( iconSet ); 92 setIconSet( iconSet );
93} 93}
94 94
95KGuiItem::KGuiItem( const KGuiItem &rhs ) 95KGuiItem::KGuiItem( const KGuiItem &rhs )
96 : d( 0 ) 96 : d( 0 )
97{ 97{
98 (*this) = rhs; 98 (*this) = rhs;
99} 99}
100 100
101KGuiItem &KGuiItem::operator=( const KGuiItem &rhs ) { 101KGuiItem &KGuiItem::operator=( const KGuiItem &rhs ) {
@@ -111,95 +111,95 @@ KGuiItem &KGuiItem::operator=( const KGuiItem &rhs ) {
111} 111}
112 112
113KGuiItem::~KGuiItem() { 113KGuiItem::~KGuiItem() {
114 delete d; 114 delete d;
115} 115}
116 116
117QString KGuiItem::text() const { 117QString KGuiItem::text() const {
118 return d->m_text; 118 return d->m_text;
119} 119}
120QString KGuiItem::plainText() const { 120QString KGuiItem::plainText() const {
121 QString stripped( d->m_text ); 121 QString stripped( d->m_text );
122 stripped.replace( QRegExp( "&(?!&)" ), QString::null ); 122 stripped.replace( QRegExp( "&(?!&)" ), QString::null );
123 123
124 return stripped; 124 return stripped;
125} 125}
126 126
127QIconSet KGuiItem::iconSet( KIcon::Group group, int size /*US, KInstance* instance */ ) const 127QIcon KGuiItem::iconSet( KIcon::Group group, int size /*US, KInstance* instance */ ) const
128{ 128{
129 if( d->m_hasIcon ) 129 if( d->m_hasIcon )
130 { 130 {
131 if( !d->m_iconName.isEmpty()) 131 if( !d->m_iconName.isEmpty())
132 { 132 {
133// some caching here would(?) come handy 133// some caching here would(?) come handy
134//US return instance->iconLoader()->loadIconSet( d->m_iconName, group, size ); 134//US return instance->iconLoader()->loadIconSet( d->m_iconName, group, size );
135 return KGlobal::iconLoader()->loadIconSet( d->m_iconName); 135 return KGlobal::iconLoader()->loadIconSet( d->m_iconName);
136// here is a little problem that with delayed icon loading 136// here is a little problem that with delayed icon loading
137// we can't check if the icon really exists ... so what ... 137// we can't check if the icon really exists ... so what ...
138// if( set.isNull() ) 138// if( set.isNull() )
139// { 139// {
140// d->m_hasIcon = false; 140// d->m_hasIcon = false;
141// return QIconSet(); 141// return QIconSet();
142// } 142// }
143// return set; 143// return set;
144 } 144 }
145 else 145 else
146 { 146 {
147 return d->m_iconSet; 147 return d->m_iconSet;
148 } 148 }
149 } 149 }
150 else 150 else
151 return QIconSet(); 151 return QIcon();
152} 152}
153 153
154QString KGuiItem::iconName() const 154QString KGuiItem::iconName() const
155{ 155{
156 return d->m_iconName; 156 return d->m_iconName;
157} 157}
158 158
159QString KGuiItem::toolTip() const { 159QString KGuiItem::toolTip() const {
160 return d->m_toolTip; 160 return d->m_toolTip;
161} 161}
162QString KGuiItem::whatsThis() const { 162QString KGuiItem::whatsThis() const {
163 return d->m_whatsThis; 163 return d->m_whatsThis;
164} 164}
165 165
166bool KGuiItem::isEnabled() const 166bool KGuiItem::isEnabled() const
167{ 167{
168 return d->m_enabled; 168 return d->m_enabled;
169} 169}
170 170
171bool KGuiItem::hasIcon() const 171bool KGuiItem::hasIcon() const
172{ 172{
173 return d->m_hasIcon; 173 return d->m_hasIcon;
174} 174}
175 175
176void KGuiItem::setText( const QString &text ) { 176void KGuiItem::setText( const QString &text ) {
177 d->m_text=text; 177 d->m_text=text;
178} 178}
179 179
180void KGuiItem::setIconSet( const QIconSet &iconset ) 180void KGuiItem::setIconSet( const QIcon &iconset )
181{ 181{
182 d->m_iconSet = iconset; 182 d->m_iconSet = iconset;
183 d->m_iconName = QString::null; 183 d->m_iconName = QString::null;
184 d->m_hasIcon = !iconset.isNull(); 184 d->m_hasIcon = !iconset.isNull();
185} 185}
186 186
187void KGuiItem::setIconName( const QString &iconName ) 187void KGuiItem::setIconName( const QString &iconName )
188{ 188{
189 d->m_iconName = iconName; 189 d->m_iconName = iconName;
190 d->m_iconSet = QIconSet(); 190 d->m_iconSet = QIcon();
191 d->m_hasIcon = !iconName.isEmpty(); 191 d->m_hasIcon = !iconName.isEmpty();
192} 192}
193 193
194void KGuiItem::setToolTip( const QString &toolTip) { 194void KGuiItem::setToolTip( const QString &toolTip) {
195 d->m_toolTip = toolTip; 195 d->m_toolTip = toolTip;
196} 196}
197void KGuiItem::setWhatsThis( const QString &whatsThis ) { 197void KGuiItem::setWhatsThis( const QString &whatsThis ) {
198 d->m_whatsThis = whatsThis; 198 d->m_whatsThis = whatsThis;
199} 199}
200void KGuiItem::setEnabled( bool enabled ){ 200void KGuiItem::setEnabled( bool enabled ){
201 d->m_enabled = enabled; 201 d->m_enabled = enabled;
202} 202}
203 203
204/* vim: et sw=4 204/* vim: et sw=4
205 */ 205 */
diff --git a/microkde/kdeui/kguiitem.h b/microkde/kdeui/kguiitem.h
index 0079bb4..6f92137 100644
--- a/microkde/kdeui/kguiitem.h
+++ b/microkde/kdeui/kguiitem.h
@@ -10,78 +10,78 @@
10 but WITHOUT ANY WARRANTY; without even the implied warranty of 10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Library General Public License for more details. 12 Library General Public License for more details.
13 13
14 You should have received a copy of the GNU Library General Public License 14 You should have received a copy of the GNU Library General Public License
15 along with this library; see the file COPYING.LIB. If not, write to 15 along with this library; see the file COPYING.LIB. If not, write to
16 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 16 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17 Boston, MA 02111-1307, USA. 17 Boston, MA 02111-1307, USA.
18 18
19 Many thanks to Simon tronical Hausmann 19 Many thanks to Simon tronical Hausmann
20*/ 20*/
21 21
22#ifndef __kguiitem_h__ 22#ifndef __kguiitem_h__
23#define __kguiitem_h__ 23#define __kguiitem_h__
24 24
25#include <qstring.h> 25#include <qstring.h>
26#include <qiconset.h> 26#include <qicon.h>
27#include <qpixmap.h> 27#include <qpixmap.h>
28#include <qvaluelist.h> 28#include <q3valuelist.h>
29//US#include <kicontheme.h> 29//US#include <kicontheme.h>
30#include <kglobal.h> 30#include <kglobal.h>
31 31
32//US added the following files 32//US added the following files
33#include <kiconloader.h> 33#include <kiconloader.h>
34 34
35class KGuiItem 35class KGuiItem
36{ 36{
37public: 37public:
38 KGuiItem(); 38 KGuiItem();
39 39
40 KGuiItem( const QString &text, 40 KGuiItem( const QString &text,
41 const QString &iconName = QString::null, 41 const QString &iconName = QString::null,
42 const QString &toolTip = QString::null, 42 const QString &toolTip = QString::null,
43 const QString &whatsThis = QString::null ); 43 const QString &whatsThis = QString::null );
44 44
45 KGuiItem( const QString &text, const QIconSet &iconSet, 45 KGuiItem( const QString &text, const QIcon &iconSet,
46 const QString &toolTip = QString::null, 46 const QString &toolTip = QString::null,
47 const QString &whatsThis = QString::null ); 47 const QString &whatsThis = QString::null );
48 48
49 KGuiItem( const KGuiItem &rhs ); 49 KGuiItem( const KGuiItem &rhs );
50 KGuiItem &operator=( const KGuiItem &rhs ); 50 KGuiItem &operator=( const KGuiItem &rhs );
51 51
52 ~KGuiItem(); 52 ~KGuiItem();
53 53
54 QString text() const; 54 QString text() const;
55 QString plainText() const; 55 QString plainText() const;
56 QIconSet iconSet( KIcon::Group, int size = 0/*US , KInstance* instance = KGlobal::instance()*/) const; 56 QIcon iconSet( KIcon::Group, int size = 0/*US , KInstance* instance = KGlobal::instance()*/) const;
57 57
58#ifndef KDE_NO_COMPAT 58#ifndef KDE_NO_COMPAT
59 QIconSet iconSet() const { return iconSet( KIcon::Small); } 59 QIcon iconSet() const { return iconSet( KIcon::Small); }
60#endif 60#endif
61 61
62 QString iconName() const; 62 QString iconName() const;
63 QString toolTip() const; 63 QString toolTip() const;
64 QString whatsThis() const; 64 QString whatsThis() const;
65 bool isEnabled() const; 65 bool isEnabled() const;
66 bool hasIcon() const; 66 bool hasIcon() const;
67#ifndef KDE_NO_COMPAT 67#ifndef KDE_NO_COMPAT
68 bool hasIconSet() const { return hasIcon(); } 68 bool hasIconSet() const { return hasIcon(); }
69#endif 69#endif
70 70
71 void setText( const QString &text ); 71 void setText( const QString &text );
72 void setIconSet( const QIconSet &iconset ); 72 void setIconSet( const QIcon &iconset );
73 void setIconName( const QString &iconName ); 73 void setIconName( const QString &iconName );
74 void setToolTip( const QString &tooltip ); 74 void setToolTip( const QString &tooltip );
75 void setWhatsThis( const QString &whatsThis ); 75 void setWhatsThis( const QString &whatsThis );
76 void setEnabled( bool enable ); 76 void setEnabled( bool enable );
77 77
78private: 78private:
79 class KGuiItemPrivate; 79 class KGuiItemPrivate;
80 KGuiItemPrivate *d; 80 KGuiItemPrivate *d;
81}; 81};
82 82
83/* vim: et sw=4 83/* vim: et sw=4
84 */ 84 */
85 85
86#endif 86#endif
87 87
diff --git a/microkde/kdeui/kjanuswidget.cpp b/microkde/kdeui/kjanuswidget.cpp
index 462c44f..3d9173d 100644
--- a/microkde/kdeui/kjanuswidget.cpp
+++ b/microkde/kdeui/kjanuswidget.cpp
@@ -9,41 +9,49 @@
9 * 9 *
10 * This library is distributed in the hope that it will be useful, 10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Library General Public License for more details. 13 * Library General Public License for more details.
14 * 14 *
15 * You should have received a copy of the GNU Library General Public License 15 * You should have received a copy of the GNU Library General Public License
16 * along with this library; see the file COPYING.LIB. If not, write to 16 * along with this library; see the file COPYING.LIB. If not, write to
17 * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 17 * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 * Boston, MA 02111-1307, USA. 18 * Boston, MA 02111-1307, USA.
19 */ 19 */
20 20
21#include <qpixmap.h> 21#include <qpixmap.h>
22#include <qbitmap.h> 22#include <qbitmap.h>
23#include <qlayout.h> 23#include <qlayout.h>
24#include <qlabel.h> 24#include <qlabel.h>
25#include <qwidgetstack.h> 25#include <q3widgetstack.h>
26#include <qtabwidget.h> 26#include <qtabwidget.h>
27#include <qlistview.h> 27#include <q3listview.h>
28#include <qhbox.h> 28#include <q3hbox.h>
29#include <qvbox.h> 29#include <q3vbox.h>
30#include <qgrid.h> 30#include <q3grid.h>
31#include <qpainter.h> 31#include <qpainter.h>
32#include <qobjectlist.h> 32#include <qobject.h>
33#include <qstringlist.h> 33#include <qstringlist.h>
34//Added by qt3to4:
35#include <Q3HBoxLayout>
36#include <Q3GridLayout>
37#include <Q3PtrList>
38#include <Q3Frame>
39#include <QEvent>
40#include <Q3VBoxLayout>
41#include <QShowEvent>
34/*US 42/*US
35#include <qbitmap.h> 43#include <qbitmap.h>
36#include <qgrid.h> 44#include <qgrid.h>
37#include <qhbox.h> 45#include <qhbox.h>
38#include <qheader.h> 46#include <qheader.h>
39#include <qlabel.h> 47#include <qlabel.h>
40#include <qlayout.h> 48#include <qlayout.h>
41#include <qobjectlist.h> 49#include <qobjectlist.h>
42#include <qpixmap.h> 50#include <qpixmap.h>
43#include <qsplitter.h> 51#include <qsplitter.h>
44#include <qtabwidget.h> 52#include <qtabwidget.h>
45#include <qvbox.h> 53#include <qvbox.h>
46#include <qwidgetstack.h> 54#include <qwidgetstack.h>
47#include <qpainter.h> 55#include <qpainter.h>
48#include <qstyle.h> 56#include <qstyle.h>
49 57
@@ -52,167 +60,167 @@
52#include <kglobal.h> 60#include <kglobal.h>
53#include <kglobalsettings.h> 61#include <kglobalsettings.h>
54#include <kseparator.h> 62#include <kseparator.h>
55#include <kdebug.h> 63#include <kdebug.h>
56#include "kjanuswidget.h" 64#include "kjanuswidget.h"
57#include <klistview.h> 65#include <klistview.h>
58 66
59*/ 67*/
60 68
61#include <kseparator.h> 69#include <kseparator.h>
62#include <kdialog.h> // Access to some static members 70#include <kdialog.h> // Access to some static members
63#include <kdebug.h> 71#include <kdebug.h>
64#include <klistview.h> 72#include <klistview.h>
65 73
66#include "kjanuswidget.h" 74#include "kjanuswidget.h"
67 75
68class KJanusWidget::IconListItem : public QListBoxItem 76class KJanusWidget::IconListItem : public Q3ListBoxItem
69{ 77{
70 public: 78 public:
71 IconListItem( QListBox *listbox, const QPixmap &pixmap, 79 IconListItem( Q3ListBox *listbox, const QPixmap &pixmap,
72 const QString &text ); 80 const QString &text );
73 virtual int height( const QListBox *lb ) const; 81 virtual int height( const Q3ListBox *lb ) const;
74 virtual int width( const QListBox *lb ) const; 82 virtual int width( const Q3ListBox *lb ) const;
75 int expandMinimumWidth( int width ); 83 int expandMinimumWidth( int width );
76 84
77 protected: 85 protected:
78 const QPixmap &defaultPixmap(); 86 const QPixmap &defaultPixmap();
79 void paint( QPainter *painter ); 87 void paint( QPainter *painter );
80 88
81 private: 89 private:
82 QPixmap mPixmap; 90 QPixmap mPixmap;
83 int mMinimumWidth; 91 int mMinimumWidth;
84}; 92};
85 93
86class KJanusWidget::KJanusWidgetPrivate 94class KJanusWidget::KJanusWidgetPrivate
87{ 95{
88public: 96public:
89 KJanusWidgetPrivate() : mNextPageIndex(0) { } 97 KJanusWidgetPrivate() : mNextPageIndex(0) { }
90 98
91 int mNextPageIndex; // The next page index. 99 int mNextPageIndex; // The next page index.
92 100
93 // Dictionary for multipage modes. 101 // Dictionary for multipage modes.
94 QMap<int,QWidget*> mIntToPage; 102 QMap<int,QWidget*> mIntToPage;
95 // Reverse dictionary. Used because showPage() may be performance critical. 103 // Reverse dictionary. Used because showPage() may be performance critical.
96 QMap<QWidget*,int> mPageToInt; 104 QMap<QWidget*,int> mPageToInt;
97 // Dictionary of title string associated with page. 105 // Dictionary of title string associated with page.
98 QMap<int, QString> mIntToTitle; 106 QMap<int, QString> mIntToTitle;
99}; 107};
100 108
101template class QPtrList<QListViewItem>; 109template class Q3PtrList<Q3ListViewItem>;
102 110
103 111
104KJanusWidget::KJanusWidget( QWidget *parent, const char *name, int face ) 112KJanusWidget::KJanusWidget( QWidget *parent, const char *name, int face )
105 : QWidget( parent, name ), 113 : QWidget( parent, name ),
106 mValid(false), mPageList(0), 114 mValid(false), mPageList(0),
107 mTitleList(0), mFace(face), mTitleLabel(0), mActivePageWidget(0), 115 mTitleList(0), mFace(face), mTitleLabel(0), mActivePageWidget(0),
108 mShowIconsInTreeList(false), d(0) 116 mShowIconsInTreeList(false), d(0)
109{ 117{
110 QVBoxLayout *topLayout = new QVBoxLayout( this ); 118 Q3VBoxLayout *topLayout = new Q3VBoxLayout( this );
111 if( mFace == TreeList || mFace == IconList ) 119 if( mFace == TreeList || mFace == IconList )
112 { 120 {
113 d = new KJanusWidgetPrivate; 121 d = new KJanusWidgetPrivate;
114 122
115 QFrame *page = 0; 123 Q3Frame *page = 0;
116 if( mFace == TreeList ) 124 if( mFace == TreeList )
117 { 125 {
118 //US 126 //US
119 qDebug("KJanusWidget::KJanusWidget TreeList not implemented yet"); 127 qDebug("KJanusWidget::KJanusWidget TreeList not implemented yet");
120/*US 128/*US
121 QSplitter *splitter = new QSplitter( this ); 129 QSplitter *splitter = new QSplitter( this );
122 topLayout->addWidget( splitter, 10 ); 130 topLayout->addWidget( splitter, 10 );
123 mTreeListResizeMode = QSplitter::KeepSize; 131 mTreeListResizeMode = QSplitter::KeepSize;
124 132
125 mTreeList = new KListView( splitter ); 133 mTreeList = new KListView( splitter );
126 mTreeList->addColumn( QString::null ); 134 mTreeList->addColumn( QString::null );
127 mTreeList->header()->hide(); 135 mTreeList->header()->hide();
128 mTreeList->setRootIsDecorated(true); 136 mTreeList->setRootIsDecorated(true);
129 mTreeList->setSorting( -1 ); 137 mTreeList->setSorting( -1 );
130 connect( mTreeList, SIGNAL(selectionChanged()), SLOT(slotShowPage()) ); 138 connect( mTreeList, SIGNAL(selectionChanged()), SLOT(slotShowPage()) );
131 connect( mTreeList, SIGNAL(clicked(QListViewItem *)), SLOT(slotItemClicked(QListViewItem *))); 139 connect( mTreeList, SIGNAL(clicked(QListViewItem *)), SLOT(slotItemClicked(QListViewItem *)));
132 140
133 // 141 //
134 // Page area. Title at top with a separator below and a pagestack using 142 // Page area. Title at top with a separator below and a pagestack using
135 // all available space at bottom. 143 // all available space at bottom.
136 // 144 //
137 QFrame *p = new QFrame( splitter ); 145 QFrame *p = new QFrame( splitter );
138 146
139 QHBoxLayout *hbox = new QHBoxLayout( p, 0, 0 ); 147 QHBoxLayout *hbox = new QHBoxLayout( p, 0, 0 );
140 hbox->addSpacing( KDialog::marginHint() ); 148 hbox->addSpacing( KDialog::marginHint() );
141 149
142 page = new QFrame( p ); 150 page = new QFrame( p );
143 hbox->addWidget( page, 10 ); 151 hbox->addWidget( page, 10 );
144*/ 152*/
145 } 153 }
146 else 154 else
147 { 155 {
148 QHBoxLayout *hbox = new QHBoxLayout( topLayout ); 156 Q3HBoxLayout *hbox = new Q3HBoxLayout( topLayout );
149 mIconList = new IconListBox( this ); 157 mIconList = new IconListBox( this );
150 158
151 QFont listFont( mIconList->font() ); 159 QFont listFont( mIconList->font() );
152 listFont.setBold( true ); 160 listFont.setBold( true );
153 mIconList->setFont( listFont ); 161 mIconList->setFont( listFont );
154 162
155 mIconList->verticalScrollBar()->installEventFilter( this ); 163 mIconList->verticalScrollBar()->installEventFilter( this );
156 hbox->addWidget( mIconList ); 164 hbox->addWidget( mIconList );
157 connect( mIconList, SIGNAL(selectionChanged()), SLOT(slotShowPage())); 165 connect( mIconList, SIGNAL(selectionChanged()), SLOT(slotShowPage()));
158 hbox->addSpacing( KDialog::marginHint() ); 166 hbox->addSpacing( KDialog::marginHint() );
159 page = new QFrame( this ); 167 page = new Q3Frame( this );
160 hbox->addWidget( page, 10 ); 168 hbox->addWidget( page, 10 );
161 } 169 }
162 170
163 // 171 //
164 // Rest of page area. Title at top with a separator below and a 172 // Rest of page area. Title at top with a separator below and a
165 // pagestack using all available space at bottom. 173 // pagestack using all available space at bottom.
166 // 174 //
167 175
168 QVBoxLayout *vbox = new QVBoxLayout( page, 0, KDialog::spacingHint() ); 176 Q3VBoxLayout *vbox = new Q3VBoxLayout( page, 0, KDialog::spacingHint() );
169 177
170 mTitleLabel = new QLabel( QString::fromLatin1("Empty page"), page, "KJanusWidgetTitleLabel" ); 178 mTitleLabel = new QLabel( QString::fromLatin1("Empty page"), page, "KJanusWidgetTitleLabel" );
171 vbox->addWidget( mTitleLabel ); 179 vbox->addWidget( mTitleLabel );
172 180
173 QFont titleFont( mTitleLabel->font() ); 181 QFont titleFont( mTitleLabel->font() );
174 titleFont.setBold( true ); 182 titleFont.setBold( true );
175 mTitleLabel->setFont( titleFont ); 183 mTitleLabel->setFont( titleFont );
176 184
177 mTitleSep = new KSeparator( page ); 185 mTitleSep = new KSeparator( page );
178 mTitleSep->setFrameStyle( QFrame::HLine|QFrame::Plain ); 186 mTitleSep->setFrameStyle( Q3Frame::HLine|Q3Frame::Plain );
179 vbox->addWidget( mTitleSep ); 187 vbox->addWidget( mTitleSep );
180 188
181 mPageStack = new QWidgetStack( page ); 189 mPageStack = new Q3WidgetStack( page );
182 connect(mPageStack, SIGNAL(aboutToShow(QWidget *)), 190 connect(mPageStack, SIGNAL(aboutToShow(QWidget *)),
183 SIGNAL(aboutToShowPage(QWidget *))); 191 SIGNAL(aboutToShowPage(QWidget *)));
184 vbox->addWidget( mPageStack, 10 ); 192 vbox->addWidget( mPageStack, 10 );
185 } 193 }
186 else if( mFace == Tabbed ) 194 else if( mFace == Tabbed )
187 { 195 {
188 d = new KJanusWidgetPrivate; 196 d = new KJanusWidgetPrivate;
189 197
190 mTabControl = new QTabWidget( this ); 198 mTabControl = new QTabWidget( this );
191 mTabControl->setMargin (KDialog::marginHint()); 199 mTabControl->setMargin (KDialog::marginHint());
192 topLayout->addWidget( mTabControl, 10 ); 200 topLayout->addWidget( mTabControl, 10 );
193 } 201 }
194 else if( mFace == Swallow ) 202 else if( mFace == Swallow )
195 { 203 {
196 mSwallowPage = new QWidget( this ); 204 mSwallowPage = new QWidget( this );
197 topLayout->addWidget( mSwallowPage, 10 ); 205 topLayout->addWidget( mSwallowPage, 10 );
198 } 206 }
199 else 207 else
200 { 208 {
201 mFace = Plain; 209 mFace = Plain;
202 mPlainPage = new QFrame( this ); 210 mPlainPage = new Q3Frame( this );
203 topLayout->addWidget( mPlainPage, 10 ); 211 topLayout->addWidget( mPlainPage, 10 );
204 } 212 }
205/*US 213/*US
206 if ( kapp ) 214 if ( kapp )
207 connect(kapp,SIGNAL(kdisplayFontChanged()),SLOT(slotFontChanged())); 215 connect(kapp,SIGNAL(kdisplayFontChanged()),SLOT(slotFontChanged()));
208*/ 216*/
209 mValid = true; 217 mValid = true;
210 setSwallowedWidget(0); // Set default size if 'mFace' is Swallow. 218 setSwallowedWidget(0); // Set default size if 'mFace' is Swallow.
211} 219}
212 220
213 221
214KJanusWidget::~KJanusWidget() 222KJanusWidget::~KJanusWidget()
215{ 223{
216 224
217/*US the destroyed signal caused a segmentation fault while closing the dialog and destructing 225/*US the destroyed signal caused a segmentation fault while closing the dialog and destructing
218 all pages. Why not just remove all pages in the destructor?? 226 all pages. Why not just remove all pages in the destructor??
@@ -232,247 +240,247 @@ KJanusWidget::~KJanusWidget()
232 qDebug("KJanusWidget::~KJanusWidget so far "); 240 qDebug("KJanusWidget::~KJanusWidget so far ");
233*/ 241*/
234//US end 242//US end
235 243
236 delete d; 244 delete d;
237 245
238 246
239} 247}
240 248
241 249
242bool KJanusWidget::isValid() const 250bool KJanusWidget::isValid() const
243{ 251{
244 return( mValid ); 252 return( mValid );
245} 253}
246 254
247 255
248QFrame *KJanusWidget::plainPage() 256Q3Frame *KJanusWidget::plainPage()
249{ 257{
250 return( mPlainPage ); 258 return( mPlainPage );
251} 259}
252 260
253 261
254int KJanusWidget::face() const 262int KJanusWidget::face() const
255{ 263{
256 return( mFace ); 264 return( mFace );
257} 265}
258 266
259QWidget *KJanusWidget::FindParent() 267QWidget *KJanusWidget::FindParent()
260{ 268{
261 if( mFace == Tabbed ) { 269 if( mFace == Tabbed ) {
262 return mTabControl; 270 return mTabControl;
263 } 271 }
264 else { 272 else {
265 return this; 273 return this;
266 } 274 }
267} 275}
268 276
269QFrame *KJanusWidget::addPage( const QStringList &items, const QString &header, 277Q3Frame *KJanusWidget::addPage( const QStringList &items, const QString &header,
270 const QPixmap &pixmap ) 278 const QPixmap &pixmap )
271{ 279{
272 if( mValid == false ) 280 if( mValid == false )
273 { 281 {
274 kdDebug() << "addPage: Invalid object" << endl; 282 kdDebug() << "addPage: Invalid object" << endl;
275 return( 0 ); 283 return( 0 );
276 } 284 }
277 285
278 QFrame *page = new QFrame( FindParent(), "page" ); 286 Q3Frame *page = new Q3Frame( FindParent(), "page" );
279 addPageWidget( page, items, header, pixmap ); 287 addPageWidget( page, items, header, pixmap );
280 288
281 return page; 289 return page;
282} 290}
283 291
284void KJanusWidget::pageGone( QObject *obj ) 292void KJanusWidget::pageGone( QObject *obj )
285{ 293{
286// QObject* obj = (QObject*)sender(); 294// QObject* obj = (QObject*)sender();
287 removePage( static_cast<QWidget*>( obj ) ); 295 removePage( static_cast<QWidget*>( obj ) );
288} 296}
289 297
290void KJanusWidget::slotReopen( QListViewItem * item ) 298void KJanusWidget::slotReopen( Q3ListViewItem * item )
291{ 299{
292 if( item ) 300 if( item )
293 item->setOpen( true ); 301 item->setOpen( true );
294} 302}
295 303
296QFrame *KJanusWidget::addPage( const QString &itemName, const QString &header, 304Q3Frame *KJanusWidget::addPage( const QString &itemName, const QString &header,
297 const QPixmap &pixmap ) 305 const QPixmap &pixmap )
298{ 306{
299 307
300 QStringList items; 308 QStringList items;
301 items << itemName; 309 items << itemName;
302 return addPage(items, header, pixmap); 310 return addPage(items, header, pixmap);
303} 311}
304 312
305 313
306 314
307QVBox *KJanusWidget::addVBoxPage( const QStringList &items, 315Q3VBox *KJanusWidget::addVBoxPage( const QStringList &items,
308 const QString &header, 316 const QString &header,
309 const QPixmap &pixmap ) 317 const QPixmap &pixmap )
310{ 318{
311 if( mValid == false ) 319 if( mValid == false )
312 { 320 {
313 qDebug("addPage: Invalid object "); 321 qDebug("addPage: Invalid object ");
314 322
315 return( 0 ); 323 return( 0 );
316 } 324 }
317 325
318 QVBox *page = new QVBox(FindParent() , "vbox_page" ); 326 Q3VBox *page = new Q3VBox(FindParent() , "vbox_page" );
319 page->setSpacing( KDialog::spacingHintSmall() ); 327 page->setSpacing( KDialog::spacingHintSmall() );
320 addPageWidget( page, items, header, pixmap ); 328 addPageWidget( page, items, header, pixmap );
321 329
322 return page; 330 return page;
323} 331}
324 332
325QVBox *KJanusWidget::addVBoxPage( const QString &itemName, 333Q3VBox *KJanusWidget::addVBoxPage( const QString &itemName,
326 const QString &header, 334 const QString &header,
327 const QPixmap &pixmap ) 335 const QPixmap &pixmap )
328{ 336{
329 QStringList items; 337 QStringList items;
330 items << itemName; 338 items << itemName;
331 return addVBoxPage(items, header, pixmap); 339 return addVBoxPage(items, header, pixmap);
332} 340}
333 341
334QHBox *KJanusWidget::addHBoxPage( const QStringList &items, 342Q3HBox *KJanusWidget::addHBoxPage( const QStringList &items,
335 const QString &header, 343 const QString &header,
336 const QPixmap &pixmap ) 344 const QPixmap &pixmap )
337{ 345{
338 if( mValid == false ) { 346 if( mValid == false ) {
339 kdDebug() << "addPage: Invalid object" << endl; 347 kdDebug() << "addPage: Invalid object" << endl;
340 return( 0 ); 348 return( 0 );
341 } 349 }
342 350
343 QHBox *page = new QHBox(FindParent(), "hbox_page"); 351 Q3HBox *page = new Q3HBox(FindParent(), "hbox_page");
344 page->setSpacing( KDialog::spacingHint() ); 352 page->setSpacing( KDialog::spacingHint() );
345 addPageWidget( page, items, header, pixmap ); 353 addPageWidget( page, items, header, pixmap );
346 354
347 return page; 355 return page;
348} 356}
349 357
350QHBox *KJanusWidget::addHBoxPage( const QString &itemName, 358Q3HBox *KJanusWidget::addHBoxPage( const QString &itemName,
351 const QString &header, 359 const QString &header,
352 const QPixmap &pixmap ) 360 const QPixmap &pixmap )
353{ 361{
354 QStringList items; 362 QStringList items;
355 items << itemName; 363 items << itemName;
356 return addHBoxPage(items, header, pixmap); 364 return addHBoxPage(items, header, pixmap);
357} 365}
358 366
359QGrid *KJanusWidget::addGridPage( int n, QGrid::Direction dir, 367Q3Grid *KJanusWidget::addGridPage( int n, Qt::Orientation dir,
360 const QStringList &items, 368 const QStringList &items,
361 const QString &header, 369 const QString &header,
362 const QPixmap &pixmap ) 370 const QPixmap &pixmap )
363{ 371{
364 if( mValid == false ) 372 if( mValid == false )
365 { 373 {
366 kdDebug() << "addPage: Invalid object" << endl; 374 kdDebug() << "addPage: Invalid object" << endl;
367 return( 0 ); 375 return( 0 );
368 } 376 }
369 377
370 QGrid *page = new QGrid( n, dir, FindParent(), "page" ); 378 Q3Grid *page = new Q3Grid( n, dir, FindParent(), "page" );
371 page->setSpacing( KDialog::spacingHint() ); 379 page->setSpacing( KDialog::spacingHint() );
372 addPageWidget( page, items, header, pixmap ); 380 addPageWidget( page, items, header, pixmap );
373 381
374 return page; 382 return page;
375} 383}
376 384
377 385
378QGrid *KJanusWidget::addGridPage( int n, QGrid::Direction dir, 386Q3Grid *KJanusWidget::addGridPage( int n, Qt::Orientation dir,
379 const QString &itemName, 387 const QString &itemName,
380 const QString &header, 388 const QString &header,
381 const QPixmap &pixmap ) 389 const QPixmap &pixmap )
382{ 390{
383 QStringList items; 391 QStringList items;
384 items << itemName; 392 items << itemName;
385 return addGridPage(n, dir, items, header, pixmap); 393 return addGridPage(n, dir, items, header, pixmap);
386} 394}
387 395
388void KJanusWidget::InsertTreeListItem(const QStringList &items, const QPixmap &pixmap, QFrame *page) 396void KJanusWidget::InsertTreeListItem(const QStringList &items, const QPixmap &pixmap, Q3Frame *page)
389{ 397{
390 bool isTop = true; 398 bool isTop = true;
391 QListViewItem *curTop = 0, *child, *last, *newChild; 399 Q3ListViewItem *curTop = 0, *child, *last, *newChild;
392 unsigned int index = 1; 400 unsigned int index = 1;
393 QStringList curPath; 401 QStringList curPath;
394 402
395 for ( QStringList::ConstIterator it = items.begin(); it != items.end(); ++it, index++ ) { 403 for ( QStringList::ConstIterator it = items.begin(); it != items.end(); ++it, index++ ) {
396 QString name = (*it); 404 QString name = (*it);
397 bool isPath = ( index != items.count() ); 405 bool isPath = ( index != items.count() );
398 406
399 // Find the first child. 407 // Find the first child.
400 if (isTop) { 408 if (isTop) {
401 child = mTreeList->firstChild(); 409 child = mTreeList->firstChild();
402 } 410 }
403 else { 411 else {
404 child = curTop->firstChild(); 412 child = curTop->firstChild();
405 } 413 }
406 414
407 // Now search for a child with the current Name, and if it we doesn't 415 // Now search for a child with the current Name, and if it we doesn't
408 // find it, then remember the location of the last child. 416 // find it, then remember the location of the last child.
409 for (last = 0; child && child->text(0) != name ; last = child, child = child->nextSibling()); 417 for (last = 0; child && child->text(0) != name ; last = child, child = child->nextSibling());
410 418
411 if (last == 0 && child == 0) { 419 if (last == 0 && child == 0) {
412 // This node didn't have any children at all, lets just insert the 420 // This node didn't have any children at all, lets just insert the
413 // new child. 421 // new child.
414 if (isTop) 422 if (isTop)
415 newChild = new QListViewItem(mTreeList, name); 423 newChild = new Q3ListViewItem(mTreeList, name);
416 else 424 else
417 newChild = new QListViewItem(curTop, name); 425 newChild = new Q3ListViewItem(curTop, name);
418 426
419 } 427 }
420 else if (child != 0) { 428 else if (child != 0) {
421 // we found the given name in this child. 429 // we found the given name in this child.
422 if (!isPath) { 430 if (!isPath) {
423 kdDebug() << "The element inserted was already in the TreeList box!" << endl; 431 kdDebug() << "The element inserted was already in the TreeList box!" << endl;
424 return; 432 return;
425 } 433 }
426 else { 434 else {
427 // Ok we found the folder 435 // Ok we found the folder
428 newChild = child; 436 newChild = child;
429 } 437 }
430 } 438 }
431 else { 439 else {
432 // the node had some children, but we didn't find the given name 440 // the node had some children, but we didn't find the given name
433 if (isTop) 441 if (isTop)
434 newChild = new QListViewItem(mTreeList, last, name); 442 newChild = new Q3ListViewItem(mTreeList, last, name);
435 else 443 else
436 newChild = new QListViewItem(curTop, last, name); 444 newChild = new Q3ListViewItem(curTop, last, name);
437 } 445 }
438 446
439 // Now make the element expandable if it is a path component, and make 447 // Now make the element expandable if it is a path component, and make
440 // ready for next loop 448 // ready for next loop
441 if (isPath) { 449 if (isPath) {
442 newChild->setExpandable(true); 450 newChild->setExpandable(true);
443 curTop = newChild; 451 curTop = newChild;
444 isTop = false; 452 isTop = false;
445 curPath << name; 453 curPath << name;
446 454
447 QString key = curPath.join("_/_"); 455 QString key = curPath.join("_/_");
448 if (mFolderIconMap.contains(key)) { 456 if (mFolderIconMap.contains(key)) {
449 QPixmap p = mFolderIconMap[key]; 457 QPixmap p = mFolderIconMap[key];
450 newChild->setPixmap(0,p); 458 newChild->setPixmap(0,p);
451 } 459 }
452 } 460 }
453 else { 461 else {
454 if (mShowIconsInTreeList) { 462 if (mShowIconsInTreeList) {
455 newChild->setPixmap(0, pixmap); 463 newChild->setPixmap(0, pixmap);
456 } 464 }
457 mTreeListToPageStack.insert(newChild, page); 465 mTreeListToPageStack.insert(newChild, page);
458 } 466 }
459 } 467 }
460} 468}
461 469
462void KJanusWidget::addPageWidget( QFrame *page, const QStringList &items, 470void KJanusWidget::addPageWidget( Q3Frame *page, const QStringList &items,
463 const QString &header,const QPixmap &pixmap ) 471 const QString &header,const QPixmap &pixmap )
464{ 472{
465/*US the following signal causes a segmentation fault while closing the dialog. 473/*US the following signal causes a segmentation fault while closing the dialog.
466 Why not just remove all pages in the destructor?? 474 Why not just remove all pages in the destructor??
467*/ 475*/
468//US connect(page, SIGNAL(destroyed(QObject*)), this, SLOT(pageGone(QObject*))); 476//US connect(page, SIGNAL(destroyed(QObject*)), this, SLOT(pageGone(QObject*)));
469// we have the SIGNAL(destroyed(QObject*) only in Qt3 477// we have the SIGNAL(destroyed(QObject*) only in Qt3
470#ifdef DESKTOP_VERSION 478#ifdef DESKTOP_VERSION
471 // connect(page, SIGNAL(destroyed(QObject*)), this, SLOT(pageGone(QObject*))); 479 // connect(page, SIGNAL(destroyed(QObject*)), this, SLOT(pageGone(QObject*)));
472#endif 480#endif
473 if( mFace == Tabbed ) 481 if( mFace == Tabbed )
474 { 482 {
475 mTabControl->addTab (page, items.last()); 483 mTabControl->addTab (page, items.last());
476 d->mIntToPage[d->mNextPageIndex] = static_cast<QWidget*>(page); 484 d->mIntToPage[d->mNextPageIndex] = static_cast<QWidget*>(page);
477 d->mPageToInt[static_cast<QWidget*>(page)] = d->mNextPageIndex; 485 d->mPageToInt[static_cast<QWidget*>(page)] = d->mNextPageIndex;
478 d->mNextPageIndex++; 486 d->mNextPageIndex++;
@@ -537,41 +545,41 @@ void KJanusWidget::setFolderIcon(const QStringList &path, const QPixmap &pixmap)
537 545
538 546
539bool KJanusWidget::setSwallowedWidget( QWidget *widget ) 547bool KJanusWidget::setSwallowedWidget( QWidget *widget )
540{ 548{
541 if( mFace != Swallow || mValid == false ) 549 if( mFace != Swallow || mValid == false )
542 { 550 {
543 return( false ); 551 return( false );
544 } 552 }
545 553
546 // 554 //
547 // Remove current layout and make a new. 555 // Remove current layout and make a new.
548 // 556 //
549 if( mSwallowPage->layout() != 0 ) 557 if( mSwallowPage->layout() != 0 )
550 { 558 {
551 delete mSwallowPage->layout(); 559 delete mSwallowPage->layout();
552 } 560 }
553 QGridLayout *gbox = new QGridLayout( mSwallowPage, 1, 1, 0 ); 561 Q3GridLayout *gbox = new Q3GridLayout( mSwallowPage, 1, 1, 0 );
554 562
555 // 563 //
556 // Hide old children 564 // Hide old children
557 // 565 //
558 QObjectList *l = (QObjectList*)mSwallowPage->children(); // silence please 566 QObjectList l = mSwallowPage->children(); // silence please
559 for( uint i=0; i < l->count(); i++ ) 567 for( uint i=0; i < l.count(); i++ )
560 { 568 {
561 QObject *o = l->at(i); 569 QObject *o = l.at(i);
562 if( o->isWidgetType() ) 570 if( o->isWidgetType() )
563 { 571 {
564 ((QWidget*)o)->hide(); 572 ((QWidget*)o)->hide();
565 } 573 }
566 } 574 }
567 575
568 // 576 //
569 // Add new child or make default size 577 // Add new child or make default size
570 // 578 //
571 if( widget == 0 ) 579 if( widget == 0 )
572 { 580 {
573 gbox->addRowSpacing(0,100); 581 gbox->addRowSpacing(0,100);
574 gbox->addColSpacing(0,100); 582 gbox->addColSpacing(0,100);
575 mSwallowPage->setMinimumSize(100,100); 583 mSwallowPage->setMinimumSize(100,100);
576 } 584 }
577 else 585 else
@@ -584,42 +592,42 @@ bool KJanusWidget::setSwallowedWidget( QWidget *widget )
584 gbox->activate(); 592 gbox->activate();
585 mSwallowPage->setMinimumSize( widget->minimumSize() ); 593 mSwallowPage->setMinimumSize( widget->minimumSize() );
586 } 594 }
587 595
588 return( true ); 596 return( true );
589} 597}
590 598
591bool KJanusWidget::slotShowPage() 599bool KJanusWidget::slotShowPage()
592{ 600{
593 if( mValid == false ) 601 if( mValid == false )
594 { 602 {
595 return( false ); 603 return( false );
596 } 604 }
597 605
598 if( mFace == TreeList ) 606 if( mFace == TreeList )
599 { 607 {
600 QListViewItem *node = mTreeList->selectedItem(); 608 Q3ListViewItem *node = mTreeList->selectedItem();
601 if( node == 0 ) { return( false ); } 609 if( node == 0 ) { return( false ); }
602 610
603 QWidget *stackItem = mTreeListToPageStack[node]; 611 QWidget *stackItem = mTreeListToPageStack[node];
604 // Make sure to call through the virtual function showPage(int) 612 // Make sure to call through the virtual function showPage(int)
605 return showPage(d->mPageToInt[stackItem]); 613 return showPage(d->mPageToInt[stackItem]);
606 } 614 }
607 else if( mFace == IconList ) 615 else if( mFace == IconList )
608 { 616 {
609 QListBoxItem *node = mIconList->item( mIconList->currentItem() ); 617 Q3ListBoxItem *node = mIconList->item( mIconList->currentItem() );
610 if( node == 0 ) { return( false ); } 618 if( node == 0 ) { return( false ); }
611 QWidget *stackItem = mIconListToPageStack[node]; 619 QWidget *stackItem = mIconListToPageStack[node];
612 // Make sure to call through the virtual function showPage(int) 620 // Make sure to call through the virtual function showPage(int)
613 return showPage(d->mPageToInt[stackItem]); 621 return showPage(d->mPageToInt[stackItem]);
614 } 622 }
615 623
616 return( false ); 624 return( false );
617} 625}
618 626
619 627
620bool KJanusWidget::showPage( int index ) 628bool KJanusWidget::showPage( int index )
621{ 629{
622 if( d == 0 || mValid == false ) 630 if( d == 0 || mValid == false )
623 { 631 {
624 return( false ); 632 return( false );
625 } 633 }
@@ -633,79 +641,79 @@ bool KJanusWidget::showPage( int index )
633bool KJanusWidget::showPage( QWidget *w ) 641bool KJanusWidget::showPage( QWidget *w )
634{ 642{
635 if( w == 0 || mValid == false ) 643 if( w == 0 || mValid == false )
636 { 644 {
637 return( false ); 645 return( false );
638 } 646 }
639 647
640 if( mFace == TreeList || mFace == IconList ) 648 if( mFace == TreeList || mFace == IconList )
641 { 649 {
642 mPageStack->raiseWidget( w ); 650 mPageStack->raiseWidget( w );
643 mActivePageWidget = w; 651 mActivePageWidget = w;
644 652
645 int index = d->mPageToInt[w]; 653 int index = d->mPageToInt[w];
646 mTitleLabel->setText( d->mIntToTitle[index] ); 654 mTitleLabel->setText( d->mIntToTitle[index] );
647 if( mFace == TreeList ) 655 if( mFace == TreeList )
648 { 656 {
649 QMap<QListViewItem *, QWidget *>::Iterator it; 657 QMap<Q3ListViewItem *, QWidget *>::Iterator it;
650 for (it = mTreeListToPageStack.begin(); it != mTreeListToPageStack.end(); ++it){ 658 for (it = mTreeListToPageStack.begin(); it != mTreeListToPageStack.end(); ++it){
651 QListViewItem *key = it.key(); 659 Q3ListViewItem *key = it.key();
652 QWidget *val = it.data(); 660 QWidget *val = it.data();
653 if (val == w) { 661 if (val == w) {
654 mTreeList->setSelected(key, true ); 662 mTreeList->setSelected(key, true );
655 break; 663 break;
656 } 664 }
657 } 665 }
658 } 666 }
659 else 667 else
660 { 668 {
661 QMap<QListBoxItem *, QWidget *>::Iterator it; 669 QMap<Q3ListBoxItem *, QWidget *>::Iterator it;
662 for (it = mIconListToPageStack.begin(); it != mIconListToPageStack.end(); ++it){ 670 for (it = mIconListToPageStack.begin(); it != mIconListToPageStack.end(); ++it){
663 QListBoxItem *key = it.key(); 671 Q3ListBoxItem *key = it.key();
664 QWidget *val = it.data(); 672 QWidget *val = it.data();
665 if (val == w) { 673 if (val == w) {
666 mIconList->setSelected( key, true ); 674 mIconList->setSelected( key, true );
667 break; 675 break;
668 } 676 }
669 } 677 }
670 } 678 }
671 } 679 }
672 else if( mFace == Tabbed ) 680 else if( mFace == Tabbed )
673 { 681 {
674 mTabControl->showPage(w); 682 mTabControl->showPage(w);
675 mActivePageWidget = w; 683 mActivePageWidget = w;
676 } 684 }
677 else 685 else
678 { 686 {
679 return( false ); 687 return( false );
680 } 688 }
681 689
682 return( true ); 690 return( true );
683} 691}
684 692
685 693
686int KJanusWidget::activePageIndex() const 694int KJanusWidget::activePageIndex() const
687{ 695{
688 if( mFace == TreeList) { 696 if( mFace == TreeList) {
689 QListViewItem *node = mTreeList->selectedItem(); 697 Q3ListViewItem *node = mTreeList->selectedItem();
690 if( node == 0 ) { return -1; } 698 if( node == 0 ) { return -1; }
691 QWidget *stackItem = mTreeListToPageStack[node]; 699 QWidget *stackItem = mTreeListToPageStack[node];
692 return d->mPageToInt[stackItem]; 700 return d->mPageToInt[stackItem];
693 } 701 }
694 else if (mFace == IconList) { 702 else if (mFace == IconList) {
695 QListBoxItem *node = mIconList->item( mIconList->currentItem() ); 703 Q3ListBoxItem *node = mIconList->item( mIconList->currentItem() );
696 if( node == 0 ) { return( false ); } 704 if( node == 0 ) { return( false ); }
697 QWidget *stackItem = mIconListToPageStack[node]; 705 QWidget *stackItem = mIconListToPageStack[node];
698 return d->mPageToInt[stackItem]; 706 return d->mPageToInt[stackItem];
699 } 707 }
700 else if( mFace == Tabbed ) { 708 else if( mFace == Tabbed ) {
701 QWidget *widget = mTabControl->currentPage(); 709 QWidget *widget = mTabControl->currentPage();
702 return( widget == 0 ? -1 : d->mPageToInt[widget] ); 710 return( widget == 0 ? -1 : d->mPageToInt[widget] );
703 } 711 }
704 else { 712 else {
705 return( -1 ); 713 return( -1 );
706 } 714 }
707} 715}
708 716
709 717
710int KJanusWidget::pageIndex( QWidget *widget ) const 718int KJanusWidget::pageIndex( QWidget *widget ) const
711{ 719{
@@ -748,33 +756,33 @@ void KJanusWidget::slotFontChanged()
748 titleFont.setBold( true ); 756 titleFont.setBold( true );
749 mTitleLabel->setFont( titleFont ); 757 mTitleLabel->setFont( titleFont );
750 } 758 }
751 759
752 if( mFace == IconList ) 760 if( mFace == IconList )
753 { 761 {
754 QFont listFont( mIconList->font() ); 762 QFont listFont( mIconList->font() );
755 listFont.setBold( true ); 763 listFont.setBold( true );
756 mIconList->setFont( listFont ); 764 mIconList->setFont( listFont );
757 mIconList->invalidateHeight(); 765 mIconList->invalidateHeight();
758 mIconList->invalidateWidth(); 766 mIconList->invalidateWidth();
759 } 767 }
760} 768}
761*/ 769*/
762 770
763// makes the treelist behave like the list of kcontrol 771// makes the treelist behave like the list of kcontrol
764void KJanusWidget::slotItemClicked(QListViewItem *it) 772void KJanusWidget::slotItemClicked(Q3ListViewItem *it)
765{ 773{
766 if(it && (it->childCount()>0)) 774 if(it && (it->childCount()>0))
767 it->setOpen(!it->isOpen()); 775 it->setOpen(!it->isOpen());
768} 776}
769 777
770void KJanusWidget::setFocus() 778void KJanusWidget::setFocus()
771{ 779{
772 if( mValid == false ) { return; } 780 if( mValid == false ) { return; }
773 if( mFace == TreeList ) 781 if( mFace == TreeList )
774 { 782 {
775 mTreeList->setFocus(); 783 mTreeList->setFocus();
776 } 784 }
777 if( mFace == IconList ) 785 if( mFace == IconList )
778 { 786 {
779 mIconList->setFocus(); 787 mIconList->setFocus();
780 } 788 }
@@ -882,37 +890,37 @@ void KJanusWidget::setShowIconsInTreeList( bool state )
882{ 890{
883 mShowIconsInTreeList = state; 891 mShowIconsInTreeList = state;
884} 892}
885 893
886void KJanusWidget::setRootIsDecorated( bool state ) 894void KJanusWidget::setRootIsDecorated( bool state )
887{ 895{
888 if( mFace == TreeList ) { 896 if( mFace == TreeList ) {
889 mTreeList->setRootIsDecorated(state); 897 mTreeList->setRootIsDecorated(state);
890 } 898 }
891} 899}
892 900
893void KJanusWidget::unfoldTreeList( bool persist ) 901void KJanusWidget::unfoldTreeList( bool persist )
894{ 902{
895 if( mFace == TreeList ) 903 if( mFace == TreeList )
896 { 904 {
897 if( persist ) 905 if( persist )
898 connect( mTreeList, SIGNAL( collapsed( QListViewItem * ) ), this, SLOT( slotReopen( QListViewItem * ) ) ); 906 connect( mTreeList, SIGNAL( collapsed( Q3ListViewItem * ) ), this, SLOT( slotReopen( Q3ListViewItem * ) ) );
899 else 907 else
900 disconnect( mTreeList, SIGNAL( collapsed( QListViewItem * ) ), this, SLOT( slotReopen( QListViewItem * ) ) ); 908 disconnect( mTreeList, SIGNAL( collapsed( Q3ListViewItem * ) ), this, SLOT( slotReopen( Q3ListViewItem * ) ) );
901 909
902 for( QListViewItem * item = mTreeList->firstChild(); item; item = item->itemBelow() ) 910 for( Q3ListViewItem * item = mTreeList->firstChild(); item; item = item->itemBelow() )
903 item->setOpen( true ); 911 item->setOpen( true );
904 } 912 }
905} 913}
906 914
907void KJanusWidget::showEvent( QShowEvent * ) 915void KJanusWidget::showEvent( QShowEvent * )
908{ 916{
909 if( mFace == TreeList ) 917 if( mFace == TreeList )
910 { 918 {
911/*US 919/*US
912 QSplitter *splitter = (QSplitter*)(mTreeList->parentWidget()); 920 QSplitter *splitter = (QSplitter*)(mTreeList->parentWidget());
913 splitter->setResizeMode( mTreeList, mTreeListResizeMode ); 921 splitter->setResizeMode( mTreeList, mTreeListResizeMode );
914*/ 922*/
915 } 923 }
916} 924}
917 925
918 926
@@ -940,66 +948,66 @@ bool KJanusWidget::eventFilter( QObject *o, QEvent *e )
940 { 948 {
941 int lw = item->width( mIconList ); 949 int lw = item->width( mIconList );
942 mIconList->setFixedWidth( lw+mIconList->frameWidth()*2 ); 950 mIconList->setFixedWidth( lw+mIconList->frameWidth()*2 );
943 } 951 }
944 } 952 }
945 return QWidget::eventFilter( o, e ); 953 return QWidget::eventFilter( o, e );
946} 954}
947 955
948 956
949 957
950// 958//
951// Code for the icon list box 959// Code for the icon list box
952// 960//
953 961
954 962
955KJanusWidget::IconListBox::IconListBox( QWidget *parent, const char *name, 963KJanusWidget::IconListBox::IconListBox( QWidget *parent, const char *name,
956 WFlags f ) 964 Qt::WFlags f )
957 :KListBox( parent, name, f ), mShowAll(false), mHeightValid(false), 965 :KListBox( parent, name, f ), mShowAll(false), mHeightValid(false),
958 mWidthValid(false) 966 mWidthValid(false)
959{ 967{
960} 968}
961 969
962 970
963void KJanusWidget::IconListBox::updateMinimumHeight() 971void KJanusWidget::IconListBox::updateMinimumHeight()
964{ 972{
965 if( mShowAll == true && mHeightValid == false ) 973 if( mShowAll == true && mHeightValid == false )
966 { 974 {
967 int h = frameWidth()*2; 975 int h = frameWidth()*2;
968 for( QListBoxItem *i = item(0); i != 0; i = i->next() ) 976 for( Q3ListBoxItem *i = item(0); i != 0; i = i->next() )
969 { 977 {
970 h += i->height( this ); 978 h += i->height( this );
971 } 979 }
972 setMinimumHeight( h ); 980 setMinimumHeight( h );
973 mHeightValid = true; 981 mHeightValid = true;
974 } 982 }
975} 983}
976 984
977 985
978void KJanusWidget::IconListBox::updateWidth() 986void KJanusWidget::IconListBox::updateWidth()
979{ 987{
980 if( mWidthValid == false ) 988 if( mWidthValid == false )
981 { 989 {
982 int maxWidth = 10; 990 int maxWidth = 10;
983 for( QListBoxItem *i = item(0); i != 0; i = i->next() ) 991 for( Q3ListBoxItem *i = item(0); i != 0; i = i->next() )
984 { 992 {
985 int w = ((IconListItem *)i)->width(this); 993 int w = ((IconListItem *)i)->width(this);
986 maxWidth = QMAX( w, maxWidth ); 994 maxWidth = QMAX( w, maxWidth );
987 } 995 }
988 996
989 for( QListBoxItem *i = item(0); i != 0; i = i->next() ) 997 for( Q3ListBoxItem *i = item(0); i != 0; i = i->next() )
990 { 998 {
991 ((IconListItem *)i)->expandMinimumWidth( maxWidth ); 999 ((IconListItem *)i)->expandMinimumWidth( maxWidth );
992 } 1000 }
993 1001
994 if( verticalScrollBar()->isVisible() ) 1002 if( verticalScrollBar()->isVisible() )
995 { 1003 {
996 maxWidth += verticalScrollBar()->sizeHint().width(); 1004 maxWidth += verticalScrollBar()->sizeHint().width();
997 } 1005 }
998 1006
999 setFixedWidth( maxWidth + frameWidth()*2 ); 1007 setFixedWidth( maxWidth + frameWidth()*2 );
1000 mWidthValid = true; 1008 mWidthValid = true;
1001 } 1009 }
1002} 1010}
1003 1011
1004 1012
1005void KJanusWidget::IconListBox::invalidateHeight() 1013void KJanusWidget::IconListBox::invalidateHeight()
@@ -1009,35 +1017,35 @@ void KJanusWidget::IconListBox::invalidateHeight()
1009 1017
1010 1018
1011void KJanusWidget::IconListBox::invalidateWidth() 1019void KJanusWidget::IconListBox::invalidateWidth()
1012{ 1020{
1013 mWidthValid = false; 1021 mWidthValid = false;
1014} 1022}
1015 1023
1016 1024
1017void KJanusWidget::IconListBox::setShowAll( bool showAll ) 1025void KJanusWidget::IconListBox::setShowAll( bool showAll )
1018{ 1026{
1019 mShowAll = showAll; 1027 mShowAll = showAll;
1020 mHeightValid = false; 1028 mHeightValid = false;
1021} 1029}
1022 1030
1023 1031
1024 1032
1025KJanusWidget::IconListItem::IconListItem( QListBox *listbox, const QPixmap &pixmap, 1033KJanusWidget::IconListItem::IconListItem( Q3ListBox *listbox, const QPixmap &pixmap,
1026 const QString &text ) 1034 const QString &text )
1027 : QListBoxItem( listbox ) 1035 : Q3ListBoxItem( listbox )
1028{ 1036{
1029 mPixmap = pixmap; 1037 mPixmap = pixmap;
1030 if( mPixmap.isNull() == true ) 1038 if( mPixmap.isNull() == true )
1031 { 1039 {
1032 mPixmap = defaultPixmap(); 1040 mPixmap = defaultPixmap();
1033 } 1041 }
1034 setText( text ); 1042 setText( text );
1035 mMinimumWidth = 0; 1043 mMinimumWidth = 0;
1036} 1044}
1037 1045
1038 1046
1039int KJanusWidget::IconListItem::expandMinimumWidth( int width ) 1047int KJanusWidget::IconListItem::expandMinimumWidth( int width )
1040{ 1048{
1041 mMinimumWidth = QMAX( mMinimumWidth, width ); 1049 mMinimumWidth = QMAX( mMinimumWidth, width );
1042 return( mMinimumWidth ); 1050 return( mMinimumWidth );
1043} 1051}
@@ -1070,87 +1078,87 @@ const QPixmap &KJanusWidget::IconListItem::defaultPixmap()
1070 1078
1071void KJanusWidget::IconListItem::paint( QPainter *painter ) 1079void KJanusWidget::IconListItem::paint( QPainter *painter )
1072{ 1080{
1073 QFontMetrics fm = painter->fontMetrics(); 1081 QFontMetrics fm = painter->fontMetrics();
1074 //int wt = fm.boundingRect(text()).width(); 1082 //int wt = fm.boundingRect(text()).width();
1075 int wp = mPixmap.width(); 1083 int wp = mPixmap.width();
1076 int ht = fm.lineSpacing(); 1084 int ht = fm.lineSpacing();
1077 int hp = mPixmap.height(); 1085 int hp = mPixmap.height();
1078 1086
1079 painter->drawPixmap( (mMinimumWidth-wp)/2, 5, mPixmap ); 1087 painter->drawPixmap( (mMinimumWidth-wp)/2, 5, mPixmap );
1080 if( text().isEmpty() == false ) 1088 if( text().isEmpty() == false )
1081 { 1089 {
1082 painter->drawText( 0, hp+7, mMinimumWidth, ht, Qt::AlignCenter, text() ); 1090 painter->drawText( 0, hp+7, mMinimumWidth, ht, Qt::AlignCenter, text() );
1083 } 1091 }
1084} 1092}
1085 1093
1086int KJanusWidget::IconListItem::height( const QListBox *lb ) const 1094int KJanusWidget::IconListItem::height( const Q3ListBox *lb ) const
1087{ 1095{
1088 if( text().isEmpty() == true ) 1096 if( text().isEmpty() == true )
1089 { 1097 {
1090 return( mPixmap.height() ); 1098 return( mPixmap.height() );
1091 } 1099 }
1092 else 1100 else
1093 { 1101 {
1094 return( mPixmap.height() + lb->fontMetrics().lineSpacing()+10 ); 1102 return( mPixmap.height() + lb->fontMetrics().lineSpacing()+10 );
1095 } 1103 }
1096} 1104}
1097 1105
1098 1106
1099int KJanusWidget::IconListItem::width( const QListBox *lb ) const 1107int KJanusWidget::IconListItem::width( const Q3ListBox *lb ) const
1100{ 1108{
1101 int wt = lb->fontMetrics().boundingRect(text()).width()+10; 1109 int wt = lb->fontMetrics().boundingRect(text()).width()+10;
1102 int wp = mPixmap.width() + 10; 1110 int wp = mPixmap.width() + 10;
1103 int w = QMAX( wt, wp ); 1111 int w = QMAX( wt, wp );
1104 return( QMAX( w, mMinimumWidth ) ); 1112 return( QMAX( w, mMinimumWidth ) );
1105} 1113}
1106 1114
1107 1115
1108void KJanusWidget::virtual_hook( int, void* ) 1116void KJanusWidget::virtual_hook( int, void* )
1109{ /*BASE::virtual_hook( id, data );*/ } 1117{ /*BASE::virtual_hook( id, data );*/ }
1110 1118
1111// TODO: In TreeList, if the last child of a node is removed, and there is no corrsponding widget for that node, allow the caller to 1119// TODO: In TreeList, if the last child of a node is removed, and there is no corrsponding widget for that node, allow the caller to
1112// delete the node. 1120// delete the node.
1113void KJanusWidget::removePage( QWidget *page ) 1121void KJanusWidget::removePage( QWidget *page )
1114{ 1122{
1115//US qDebug("KJanusWidget::removePage 1 %lu , %lu, %lu", d, page, &(d->mPageToInt)); 1123//US qDebug("KJanusWidget::removePage 1 %lu , %lu, %lu", d, page, &(d->mPageToInt));
1116 if (!d || !(d->mPageToInt.contains(page))) 1124 if (!d || !(d->mPageToInt.contains(page)))
1117 { 1125 {
1118 return; 1126 return;
1119 } 1127 }
1120 1128
1121 int index = d->mPageToInt[page]; 1129 int index = d->mPageToInt[page];
1122 1130
1123 if ( mFace == TreeList ) 1131 if ( mFace == TreeList )
1124 { 1132 {
1125 QMap<QListViewItem*, QWidget *>::Iterator i; 1133 QMap<Q3ListViewItem*, QWidget *>::Iterator i;
1126 for( i = mTreeListToPageStack.begin(); i != mTreeListToPageStack.end(); ++i ) 1134 for( i = mTreeListToPageStack.begin(); i != mTreeListToPageStack.end(); ++i )
1127 if (i.data()==page) 1135 if (i.data()==page)
1128 { 1136 {
1129 delete i.key(); 1137 delete i.key();
1130 mPageStack->removeWidget(page); 1138 mPageStack->removeWidget(page);
1131 mTreeListToPageStack.remove(i); 1139 mTreeListToPageStack.remove(i);
1132 d->mIntToTitle.remove(index); 1140 d->mIntToTitle.remove(index);
1133 d->mPageToInt.remove(page); 1141 d->mPageToInt.remove(page);
1134 d->mIntToPage.remove(index); 1142 d->mIntToPage.remove(index);
1135 break; 1143 break;
1136 } 1144 }
1137 } 1145 }
1138 else if ( mFace == IconList ) 1146 else if ( mFace == IconList )
1139 { 1147 {
1140 QMap<QListBoxItem*, QWidget *>::Iterator i; 1148 QMap<Q3ListBoxItem*, QWidget *>::Iterator i;
1141 for( i = mIconListToPageStack.begin(); i != mIconListToPageStack.end(); ++i ) 1149 for( i = mIconListToPageStack.begin(); i != mIconListToPageStack.end(); ++i )
1142 if (i.data()==page) 1150 if (i.data()==page)
1143 { 1151 {
1144 delete i.key(); 1152 delete i.key();
1145 mPageStack->removeWidget(page); 1153 mPageStack->removeWidget(page);
1146 mIconListToPageStack.remove(i); 1154 mIconListToPageStack.remove(i);
1147 d->mIntToTitle.remove(index); 1155 d->mIntToTitle.remove(index);
1148 d->mPageToInt.remove(page); 1156 d->mPageToInt.remove(page);
1149 d->mIntToPage.remove(index); 1157 d->mIntToPage.remove(index);
1150 break; 1158 break;
1151 } 1159 }
1152 } 1160 }
1153 else // Tabbed 1161 else // Tabbed
1154 { 1162 {
1155 mTabControl->removePage(page); 1163 mTabControl->removePage(page);
1156 d->mPageToInt.remove(page); 1164 d->mPageToInt.remove(page);
diff --git a/microkde/kdeui/kjanuswidget.h b/microkde/kdeui/kjanuswidget.h
index 6d3f23d..72465ea 100644
--- a/microkde/kdeui/kjanuswidget.h
+++ b/microkde/kdeui/kjanuswidget.h
@@ -7,56 +7,62 @@
7 * version 2 of the License, or (at your option) any later version. 7 * version 2 of the License, or (at your option) any later version.
8 * 8 *
9 * This library is distributed in the hope that it will be useful, 9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Library General Public License for more details. 12 * Library General Public License for more details.
13 * 13 *
14 * You should have received a copy of the GNU Library General Public License 14 * You should have received a copy of the GNU Library General Public License
15 * along with this library; see the file COPYING.LIB. If not, write to 15 * along with this library; see the file COPYING.LIB. If not, write to
16 * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 16 * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17 * Boston, MA 02111-1307, USA. 17 * Boston, MA 02111-1307, USA.
18 */ 18 */
19 19
20#ifndef _KJANUS_WIDGET_H_ 20#ifndef _KJANUS_WIDGET_H_
21#define _KJANUS_WIDGET_H_ 21#define _KJANUS_WIDGET_H_
22 22
23#include <qptrlist.h> 23#include <q3ptrlist.h>
24#include <qwidget.h> 24#include <qwidget.h>
25#include <qmap.h> 25#include <qmap.h>
26#include <qgrid.h> 26#include <q3grid.h>
27//Added by qt3to4:
28#include <QShowEvent>
29#include <Q3Frame>
30#include <QPixmap>
31#include <QLabel>
32#include <QEvent>
27#include <klistbox.h> 33#include <klistbox.h>
28 34
29/*US 35/*US
30#include <qptrlist.h> 36#include <qptrlist.h>
31#include <qpixmap.h> 37#include <qpixmap.h>
32#include <qsplitter.h> 38#include <qsplitter.h>
33 39
34#include <qstringlist.h> 40#include <qstringlist.h>
35#include <qmap.h> 41#include <qmap.h>
36 42
37*/ 43*/
38 44
39class KSeparator; 45class KSeparator;
40class KListView; 46class KListView;
41class QWidgetStack; 47class Q3WidgetStack;
42class QLabel; 48class QLabel;
43class QTabWidget; 49class QTabWidget;
44class QListViewItem; 50class Q3ListViewItem;
45class QVBox; 51class Q3VBox;
46class QHBox; 52class Q3HBox;
47 53
48/** 54/**
49 * Provides a number of ready to use layouts (faces). It is used 55 * Provides a number of ready to use layouts (faces). It is used
50 * as an internal widget in @ref KDialogBase, but can also used as a 56 * as an internal widget in @ref KDialogBase, but can also used as a
51 * widget of its own. 57 * widget of its own.
52 * 58 *
53 * It provides TreeList, IconList, Tabbed, Plain and Swallow layouts. 59 * It provides TreeList, IconList, Tabbed, Plain and Swallow layouts.
54 * 60 *
55 * The TreeList face provides a list in the left area and pages in the 61 * The TreeList face provides a list in the left area and pages in the
56 * right. The area are separated by a movable splitter. The style is somewhat 62 * right. The area are separated by a movable splitter. The style is somewhat
57 * similar to the layout in the Control Center. A page is raised by 63 * similar to the layout in the Control Center. A page is raised by
58 * selecting the corresponding tree list item. 64 * selecting the corresponding tree list item.
59 * 65 *
60 * The IconList face provides an icon list in the left area and pages in the 66 * The IconList face provides an icon list in the left area and pages in the
61 * right. For each entry the Icon is on top with the text below. The style 67 * right. For each entry the Icon is on top with the text below. The style
62 * is somewhat similar to the layout of the Eudora configuation dialog box. 68 * is somewhat similar to the layout of the Eudora configuation dialog box.
@@ -89,33 +95,33 @@ class QHBox;
89 * Pages that have been added in TreeList, IconList or Tabbed mode can be 95 * Pages that have been added in TreeList, IconList or Tabbed mode can be
90 * removed by simply deleting the page. However, it would be preferable to use 96 * removed by simply deleting the page. However, it would be preferable to use
91 * the QObject::deleteLater() function on the page as the main event loop 97 * the QObject::deleteLater() function on the page as the main event loop
92 * may have optimized UI update events of the page by scheduling them for later. 98 * may have optimized UI update events of the page by scheduling them for later.
93 * 99 *
94 * @short Easy to use widget with many layouts 100 * @short Easy to use widget with many layouts
95 * @author Espen Sand (espen@kde.org) 101 * @author Espen Sand (espen@kde.org)
96 */ 102 */
97class KJanusWidget : public QWidget 103class KJanusWidget : public QWidget
98{ 104{
99 Q_OBJECT 105 Q_OBJECT
100 106
101 private: 107 private:
102 class IconListBox : public KListBox 108 class IconListBox : public KListBox
103 { 109 {
104 public: 110 public:
105 IconListBox( QWidget *parent=0, const char *name=0, WFlags f=0 ); 111 IconListBox( QWidget *parent=0, const char *name=0, Qt::WFlags f=0 );
106 void updateMinimumHeight(); 112 void updateMinimumHeight();
107 void updateWidth(); 113 void updateWidth();
108 void invalidateHeight(); 114 void invalidateHeight();
109 void invalidateWidth(); 115 void invalidateWidth();
110 void setShowAll( bool showAll ); 116 void setShowAll( bool showAll );
111 117
112 private: 118 private:
113 bool mShowAll; 119 bool mShowAll;
114 bool mHeightValid; 120 bool mHeightValid;
115 bool mWidthValid; 121 bool mWidthValid;
116 }; 122 };
117 123
118 public: 124 public:
119 enum Face 125 enum Face
120 { 126 {
121 TreeList = 0, 127 TreeList = 0,
@@ -180,195 +186,195 @@ class KJanusWidget : public QWidget
180 */ 186 */
181 virtual QSize minimumSizeHint() const; 187 virtual QSize minimumSizeHint() const;
182 188
183 /** 189 /**
184 * Returns the recommended size for the widget in order to be displayed 190 * Returns the recommended size for the widget in order to be displayed
185 * properly. 191 * properly.
186 * 192 *
187 * @return The recommended size. 193 * @return The recommended size.
188 */ 194 */
189 virtual QSize sizeHint() const; 195 virtual QSize sizeHint() const;
190 196
191 /** 197 /**
192 * Returns the empty widget that is available in Plain mode. 198 * Returns the empty widget that is available in Plain mode.
193 * 199 *
194 * @return The widget or 0 if the face in not Plain. 200 * @return The widget or 0 if the face in not Plain.
195 */ 201 */
196 virtual QFrame *plainPage(); 202 virtual Q3Frame *plainPage();
197 203
198 /** 204 /**
199 * Add a new page when the class is used in TreeList, IconList or Tabbed 205 * Add a new page when the class is used in TreeList, IconList or Tabbed
200 * mode. The returned widget is empty and you must add your widgets 206 * mode. The returned widget is empty and you must add your widgets
201 * as children to this widget. In most cases you must create a layout 207 * as children to this widget. In most cases you must create a layout
202 * manager and associate it with this widget as well. 208 * manager and associate it with this widget as well.
203 * 209 *
204 * Deleting the returned frame will cause the listitem or tab to be 210 * Deleting the returned frame will cause the listitem or tab to be
205 * removed (you can re-add a page with the same name later. 211 * removed (you can re-add a page with the same name later.
206 * 212 *
207 * @param item String used in the list or Tab item. 213 * @param item String used in the list or Tab item.
208 * @param header A longer string used in TreeList and IconList mode to 214 * @param header A longer string used in TreeList and IconList mode to
209 * describe the contents of a page. If empty, the item string 215 * describe the contents of a page. If empty, the item string
210 * will be used instead. 216 * will be used instead.
211 * @param pixmap Used in IconList mode or in TreeList mode. You should 217 * @param pixmap Used in IconList mode or in TreeList mode. You should
212 * prefer a pixmap with size 32x32 pixels. 218 * prefer a pixmap with size 32x32 pixels.
213 * 219 *
214 * @return The empty page or 0 if the face is not TreeList, IconList or 220 * @return The empty page or 0 if the face is not TreeList, IconList or
215 * Tabbed. 221 * Tabbed.
216 */ 222 */
217 virtual QFrame *addPage(const QString &item,const QString &header=QString::null, 223 virtual Q3Frame *addPage(const QString &item,const QString &header=QString::null,
218 const QPixmap &pixmap=QPixmap() ); 224 const QPixmap &pixmap=QPixmap() );
219 225
220 /** 226 /**
221 * This is like addPage just above, with the difference that the first 227 * This is like addPage just above, with the difference that the first
222 * element is a list of strings. These strings are used to form a path 228 * element is a list of strings. These strings are used to form a path
223 * of folders down to the given page. The initial elements are names 229 * of folders down to the given page. The initial elements are names
224 * for the folders, while the last element is the name of the page. 230 * for the folders, while the last element is the name of the page.
225 * Note: This does yet only work for the TreeList face. Later this may 231 * Note: This does yet only work for the TreeList face. Later this may
226 * be added for the IconList face too. In other faces than the 232 * be added for the IconList face too. In other faces than the
227 * TreeList, all the strings except the last one is ignored. 233 * TreeList, all the strings except the last one is ignored.
228 * Deleting the returned frame will cause the listitem or tab to be 234 * Deleting the returned frame will cause the listitem or tab to be
229 * removed (you can re-add a page with the same name later. 235 * removed (you can re-add a page with the same name later.
230 * 236 *
231 * Deleting the returned frame will cause the listitem or tab to be 237 * Deleting the returned frame will cause the listitem or tab to be
232 * removed (you can re-add a page with the same name later. 238 * removed (you can re-add a page with the same name later.
233 **/ 239 **/
234 virtual QFrame *addPage(const QStringList &items, const QString &header=QString::null, 240 virtual Q3Frame *addPage(const QStringList &items, const QString &header=QString::null,
235 const QPixmap &pixmap=QPixmap() ); 241 const QPixmap &pixmap=QPixmap() );
236 242
237 /** 243 /**
238 * Add a new page when the class is used in TreeList, IconList or Tabbed 244 * Add a new page when the class is used in TreeList, IconList or Tabbed
239 * mode. The returned widget is empty and you must add your widgets 245 * mode. The returned widget is empty and you must add your widgets
240 * as children to this widget. The returned widget is a @ref QVBox 246 * as children to this widget. The returned widget is a @ref QVBox
241 * so it contains a QVBoxLayout layout that lines up the child widgets 247 * so it contains a QVBoxLayout layout that lines up the child widgets
242 * are vertically. 248 * are vertically.
243 * 249 *
244 * Deleting the returned frame will cause the listitem or tab to be 250 * Deleting the returned frame will cause the listitem or tab to be
245 * removed (you can re-add a page with the same name later. 251 * removed (you can re-add a page with the same name later.
246 * 252 *
247 * @param item String used in the list or Tab item. 253 * @param item String used in the list or Tab item.
248 * @param header A longer string used in TreeList and IconList mode to 254 * @param header A longer string used in TreeList and IconList mode to
249 * describe the contents of a page. If empty, the item string 255 * describe the contents of a page. If empty, the item string
250 * will be used instead. 256 * will be used instead.
251 * @param pixmap Used in IconList mode or in TreeList mode. You should 257 * @param pixmap Used in IconList mode or in TreeList mode. You should
252 * prefer a pixmap with size 32x32 pixels. 258 * prefer a pixmap with size 32x32 pixels.
253 * 259 *
254 * @return The empty page or 0 if the face is not TreeList, IconList or 260 * @return The empty page or 0 if the face is not TreeList, IconList or
255 * Tabbed. */ 261 * Tabbed. */
256 virtual QVBox *addVBoxPage( const QString &item, 262 virtual Q3VBox *addVBoxPage( const QString &item,
257 const QString &header=QString::null, 263 const QString &header=QString::null,
258 const QPixmap &pixmap=QPixmap() ); 264 const QPixmap &pixmap=QPixmap() );
259 265
260 /** 266 /**
261 * This is like addVBoxPage just above, with the difference that the first 267 * This is like addVBoxPage just above, with the difference that the first
262 * element is a list of strings. These strings are used to form a path 268 * element is a list of strings. These strings are used to form a path
263 * of folders down to the given page. The initial elements are names 269 * of folders down to the given page. The initial elements are names
264 * for the folders, while the last element is the name of the page. 270 * for the folders, while the last element is the name of the page.
265 * Note: This does yet only work for the TreeList face. Later this may 271 * Note: This does yet only work for the TreeList face. Later this may
266 * be added for the IconList face too. In other faces than the 272 * be added for the IconList face too. In other faces than the
267 * TreeList, all the strings except the last one is ignored. 273 * TreeList, all the strings except the last one is ignored.
268 * 274 *
269 * Deleting the returned frame will cause the listitem or tab to be 275 * Deleting the returned frame will cause the listitem or tab to be
270 * removed (you can re-add a page with the same name later. 276 * removed (you can re-add a page with the same name later.
271 **/ 277 **/
272 virtual QVBox *addVBoxPage( const QStringList &items, 278 virtual Q3VBox *addVBoxPage( const QStringList &items,
273 const QString &header=QString::null, 279 const QString &header=QString::null,
274 const QPixmap &pixmap=QPixmap() ); 280 const QPixmap &pixmap=QPixmap() );
275 281
276 /** 282 /**
277 * Add a new page when the class is used in TreeList, IconList or Tabbed 283 * Add a new page when the class is used in TreeList, IconList or Tabbed
278 * mode. The returned widget is empty and you must add your widgets 284 * mode. The returned widget is empty and you must add your widgets
279 * as children to this widget. The returned widget is a @ref QHBox 285 * as children to this widget. The returned widget is a @ref QHBox
280 * so it contains a QHBoxLayout layout that lines up the child widgets 286 * so it contains a QHBoxLayout layout that lines up the child widgets
281 * are horizontally. 287 * are horizontally.
282 * 288 *
283 * Deleting the returned frame will cause the listitem or tab to be 289 * Deleting the returned frame will cause the listitem or tab to be
284 * removed (you can re-add a page with the same name later. 290 * removed (you can re-add a page with the same name later.
285 * 291 *
286 * @param item String used in the list or Tab item. 292 * @param item String used in the list or Tab item.
287 * @param header A longer string used in TreeList and IconList mode to 293 * @param header A longer string used in TreeList and IconList mode to
288 * describe the contents of a page. If empty, the item string 294 * describe the contents of a page. If empty, the item string
289 * will be used instead. 295 * will be used instead.
290 * @param pixmap Used in IconList mode or in TreeList mode. You should 296 * @param pixmap Used in IconList mode or in TreeList mode. You should
291 * prefer a pixmap with size 32x32 pixels. 297 * prefer a pixmap with size 32x32 pixels.
292 * 298 *
293 * @return The empty page or 0 if the face is not TreeList, IconList or 299 * @return The empty page or 0 if the face is not TreeList, IconList or
294 * Tabbed. 300 * Tabbed.
295 */ 301 */
296 virtual QHBox *addHBoxPage( const QString &itemName, 302 virtual Q3HBox *addHBoxPage( const QString &itemName,
297 const QString &header=QString::null, 303 const QString &header=QString::null,
298 const QPixmap &pixmap=QPixmap() ); 304 const QPixmap &pixmap=QPixmap() );
299 305
300 /** 306 /**
301 * This is like addHBoxPage just above, with the difference that the first 307 * This is like addHBoxPage just above, with the difference that the first
302 * element is a list of strings. These strings are used to form a path 308 * element is a list of strings. These strings are used to form a path
303 * of folders down to the given page. The initial elements are names 309 * of folders down to the given page. The initial elements are names
304 * for the folders, while the last element is the name of the page. 310 * for the folders, while the last element is the name of the page.
305 * Note: This does yet only work for the TreeList face. Later this may 311 * Note: This does yet only work for the TreeList face. Later this may
306 * be added for the IconList face too. In other faces than the 312 * be added for the IconList face too. In other faces than the
307 * TreeList, all the strings except the last one is ignored. 313 * TreeList, all the strings except the last one is ignored.
308 * 314 *
309 * Deleting the returned frame will cause the listitem or tab to be 315 * Deleting the returned frame will cause the listitem or tab to be
310 * removed (you can re-add a page with the same name later. 316 * removed (you can re-add a page with the same name later.
311 **/ 317 **/
312 virtual QHBox *addHBoxPage( const QStringList &items, 318 virtual Q3HBox *addHBoxPage( const QStringList &items,
313 const QString &header=QString::null, 319 const QString &header=QString::null,
314 const QPixmap &pixmap=QPixmap() ); 320 const QPixmap &pixmap=QPixmap() );
315 321
316 /** 322 /**
317 * Add a new page when the class is used in either TreeList or Tabbed 323 * Add a new page when the class is used in either TreeList or Tabbed
318 * mode. The returned widget is empty and you must add your widgets 324 * mode. The returned widget is empty and you must add your widgets
319 * as children to this widget. The returned widget is a @ref QGrid 325 * as children to this widget. The returned widget is a @ref QGrid
320 * so it contains a QGridLayout layout that places up the child widgets 326 * so it contains a QGridLayout layout that places up the child widgets
321 * in a grid. 327 * in a grid.
322 * 328 *
323 * Deleting the returned frame will cause the listitem or tab to be 329 * Deleting the returned frame will cause the listitem or tab to be
324 * removed (you can re-add a page with the same name later. 330 * removed (you can re-add a page with the same name later.
325 * 331 *
326 * @param n Specifies the number of columns if 'dir' is QGrid::Horizontal 332 * @param n Specifies the number of columns if 'dir' is QGrid::Horizontal
327 * or the number of rows if 'dir' is QGrid::Vertical. 333 * or the number of rows if 'dir' is QGrid::Vertical.
328 * @param dir Can be QGrid::Horizontal or QGrid::Vertical. 334 * @param dir Can be QGrid::Horizontal or QGrid::Vertical.
329 * @param item String used in the list or Tab item. 335 * @param item String used in the list or Tab item.
330 * @param header A longer string used in TreeList and IconList mode to 336 * @param header A longer string used in TreeList and IconList mode to
331 * describe the contents of a page. If empty, the item string 337 * describe the contents of a page. If empty, the item string
332 * will be used instead. 338 * will be used instead.
333 * @param pixmap Used in IconList mode or in TreeList mode. You should 339 * @param pixmap Used in IconList mode or in TreeList mode. You should
334 * prefer a pixmap with size 32x32 pixels. 340 * prefer a pixmap with size 32x32 pixels.
335 * 341 *
336 * @return The empty page or 0 if the face is not TreeList, IconList or 342 * @return The empty page or 0 if the face is not TreeList, IconList or
337 * Tabbed. 343 * Tabbed.
338 */ 344 */
339//US changed Orientation into Direction for compatibility 345//US changed Orientation into Direction for compatibility
340 virtual QGrid *addGridPage( int n, QGrid::Direction dir, 346 virtual Q3Grid *addGridPage( int n, Qt::Orientation dir,
341 const QString &itemName, 347 const QString &itemName,
342 const QString &header=QString::null, 348 const QString &header=QString::null,
343 const QPixmap &pixmap=QPixmap() ); 349 const QPixmap &pixmap=QPixmap() );
344 350
345 /** 351 /**
346 * This is like addGridPage just above, with the difference that the first 352 * This is like addGridPage just above, with the difference that the first
347 * element is a list of strings. These strings are used to form a path 353 * element is a list of strings. These strings are used to form a path
348 * of folders down to the given page. The initial elements are names 354 * of folders down to the given page. The initial elements are names
349 * for the folders, while the last element is the name of the page. 355 * for the folders, while the last element is the name of the page.
350 * Note: This does yet only work for the TreeList face. Later this may 356 * Note: This does yet only work for the TreeList face. Later this may
351 * be added for the IconList face too. In other faces than the 357 * be added for the IconList face too. In other faces than the
352 * TreeList, all the strings except the last one is ignored. 358 * TreeList, all the strings except the last one is ignored.
353 * 359 *
354 * Deleting the returned frame will cause the listitem or tab to be 360 * Deleting the returned frame will cause the listitem or tab to be
355 * removed (you can re-add a page with the same name later. 361 * removed (you can re-add a page with the same name later.
356 **/ 362 **/
357//US changed Orientation into Direction for compatibility 363//US changed Orientation into Direction for compatibility
358 virtual QGrid *addGridPage( int n, QGrid::Direction dir, 364 virtual Q3Grid *addGridPage( int n, Qt::Orientation dir,
359 const QStringList &items, 365 const QStringList &items,
360 const QString &header=QString::null, 366 const QString &header=QString::null,
361 const QPixmap &pixmap=QPixmap() ); 367 const QPixmap &pixmap=QPixmap() );
362 368
363 /** 369 /**
364 * @short Removes a page created with @ref addPage, @ref addVBoxPage, 370 * @short Removes a page created with @ref addPage, @ref addVBoxPage,
365 * @ref addHBoxPage or @ref addGridPage. If the page has already 371 * @ref addHBoxPage or @ref addGridPage. If the page has already
366 * been deleted or has already been removed, nothing happens. The widget 372 * been deleted or has already been removed, nothing happens. The widget
367 * itself is not deleted. 373 * itself is not deleted.
368 * 374 *
369 * @param page The widget returned by @ref addPage , @ref addVBoxPage , 375 * @param page The widget returned by @ref addPage , @ref addVBoxPage ,
370 * @ref addHBoxPage or @ref addGridPage . 376 * @ref addHBoxPage or @ref addGridPage .
371 */ 377 */
372 void removePage( QWidget *page ); 378 void removePage( QWidget *page );
373 379
374 380
@@ -504,62 +510,62 @@ class KJanusWidget : public QWidget
504 */ 510 */
505 virtual void showEvent( QShowEvent * ); 511 virtual void showEvent( QShowEvent * );
506 512
507 /** 513 /**
508 * This function is used internally when in IconList mode. If you 514 * This function is used internally when in IconList mode. If you
509 * reimplement this class a make your own event filter, make sure to 515 * reimplement this class a make your own event filter, make sure to
510 * call this function from your filter. 516 * call this function from your filter.
511 * 517 *
512 * @param o Object that has received an event. 518 * @param o Object that has received an event.
513 * @param e The event. 519 * @param e The event.
514 */ 520 */
515 virtual bool eventFilter( QObject *o, QEvent *e ); 521 virtual bool eventFilter( QObject *o, QEvent *e );
516 522
517 private slots: 523 private slots:
518 bool slotShowPage(); 524 bool slotShowPage();
519//US not yet implemented void slotFontChanged(); 525//US not yet implemented void slotFontChanged();
520 void slotItemClicked(QListViewItem *it); 526 void slotItemClicked(Q3ListViewItem *it);
521 void pageGone( QObject *obj); // signal from the added page's "destroyed" signal 527 void pageGone( QObject *obj); // signal from the added page's "destroyed" signal
522 void slotReopen(QListViewItem *item); 528 void slotReopen(Q3ListViewItem *item);
523 529
524 protected: 530 protected:
525 bool showPage( QWidget *w ); 531 bool showPage( QWidget *w );
526 void addPageWidget( QFrame *page, const QStringList &items, 532 void addPageWidget( Q3Frame *page, const QStringList &items,
527 const QString &header, const QPixmap &pixmap ); 533 const QString &header, const QPixmap &pixmap );
528 void InsertTreeListItem(const QStringList &items, const QPixmap &pixmap, QFrame *page); 534 void InsertTreeListItem(const QStringList &items, const QPixmap &pixmap, Q3Frame *page);
529 QWidget *FindParent(); 535 QWidget *FindParent();
530 536
531 private: 537 private:
532 bool mValid; 538 bool mValid;
533 539
534 // Obsolete members. Remove in KDE 4. 540 // Obsolete members. Remove in KDE 4.
535 QPtrList<QWidget> *mPageList; 541 Q3PtrList<QWidget> *mPageList;
536 QStringList *mTitleList; 542 QStringList *mTitleList;
537 543
538 int mFace; 544 int mFace;
539 KListView *mTreeList; 545 KListView *mTreeList;
540 IconListBox *mIconList; 546 IconListBox *mIconList;
541 QWidgetStack *mPageStack; 547 Q3WidgetStack *mPageStack;
542 QLabel *mTitleLabel; 548 QLabel *mTitleLabel;
543 QTabWidget *mTabControl; 549 QTabWidget *mTabControl;
544 QFrame *mPlainPage; 550 Q3Frame *mPlainPage;
545 QWidget *mSwallowPage; 551 QWidget *mSwallowPage;
546 QWidget *mActivePageWidget; 552 QWidget *mActivePageWidget;
547 KSeparator *mTitleSep; 553 KSeparator *mTitleSep;
548//US QSplitter::ResizeMode mTreeListResizeMode; 554//US QSplitter::ResizeMode mTreeListResizeMode;
549 bool mShowIconsInTreeList; 555 bool mShowIconsInTreeList;
550 QMap<QListViewItem *, QWidget *> mTreeListToPageStack; 556 QMap<Q3ListViewItem *, QWidget *> mTreeListToPageStack;
551 QMap<QListBoxItem *, QWidget *> mIconListToPageStack; 557 QMap<Q3ListBoxItem *, QWidget *> mIconListToPageStack;
552 QMap<QString, QPixmap> mFolderIconMap; 558 QMap<QString, QPixmap> mFolderIconMap;
553 QMap<QString, QStringList> mChildrenNames; 559 QMap<QString, QStringList> mChildrenNames;
554 QMap<QString, QWidget *> mChildPages; 560 QMap<QString, QWidget *> mChildPages;
555 561
556 public: 562 public:
557 class IconListItem; 563 class IconListItem;
558 protected: 564 protected:
559 virtual void virtual_hook( int id, void* data ); 565 virtual void virtual_hook( int id, void* data );
560 private: 566 private:
561 class KJanusWidgetPrivate; 567 class KJanusWidgetPrivate;
562 KJanusWidgetPrivate *d; 568 KJanusWidgetPrivate *d;
563}; 569};
564 570
565#endif 571#endif
diff --git a/microkde/kdeui/klistbox.cpp b/microkde/kdeui/klistbox.cpp
index c65b892..71020b3 100644
--- a/microkde/kdeui/klistbox.cpp
+++ b/microkde/kdeui/klistbox.cpp
@@ -3,77 +3,83 @@
3 3
4 This library is free software; you can redistribute it and/or 4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Library General Public 5 modify it under the terms of the GNU Library General Public
6 License version 2 as published by the Free Software Foundation. 6 License version 2 as published by the Free Software Foundation.
7 7
8 This library is distributed in the hope that it will be useful, 8 This library is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of 9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 Library General Public License for more details. 11 Library General Public License for more details.
12 12
13 You should have received a copy of the GNU Library General Public License 13 You should have received a copy of the GNU Library General Public License
14 along with this library; see the file COPYING.LIB. If not, write to 14 along with this library; see the file COPYING.LIB. If not, write to
15 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 15 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
16 Boston, MA 02111-1307, USA. 16 Boston, MA 02111-1307, USA.
17*/ 17*/
18#include <qtimer.h> 18#include <qtimer.h>
19//Added by qt3to4:
20#include <QEvent>
21#include <QMouseEvent>
22#include <QKeyEvent>
23#include <QFocusEvent>
19 24
20#include <kglobalsettings.h> 25#include <kglobalsettings.h>
21//US#include <kcursor.h> 26//US#include <kcursor.h>
22#include <kapplication.h> 27#include <kapplication.h>
23//US#include <kipc.h> 28//US#include <kipc.h>
24#include <kdebug.h> 29#include <kdebug.h>
25 30
26#include "klistbox.h" 31#include "klistbox.h"
27 32
28#ifdef Q_WS_X11 33#ifdef Q_WS_X11
34#include <QX11Info>
29#include <X11/Xlib.h> 35#include <X11/Xlib.h>
30#endif 36#endif
31#ifdef _WIN32_ 37#ifdef _WIN32_
32#define Q_WS_QWS 38#define Q_WS_QWS
33#endif 39#endif
34KListBox::KListBox( QWidget *parent, const char *name, WFlags f ) 40KListBox::KListBox( QWidget *parent, const char *name, Qt::WFlags f )
35 : QListBox( parent, name, f ) 41 : Q3ListBox( parent, name, f )
36{ 42{
37 connect( this, SIGNAL( onViewport() ), 43 connect( this, SIGNAL( onViewport() ),
38 this, SLOT( slotOnViewport() ) ); 44 this, SLOT( slotOnViewport() ) );
39 connect( this, SIGNAL( onItem( QListBoxItem * ) ), 45 connect( this, SIGNAL( onItem( Q3ListBoxItem * ) ),
40 this, SLOT( slotOnItem( QListBoxItem * ) ) ); 46 this, SLOT( slotOnItem( Q3ListBoxItem * ) ) );
41 47
42 connect( this, SIGNAL( mouseButtonClicked( int, QListBoxItem *, 48 connect( this, SIGNAL( mouseButtonClicked( int, Q3ListBoxItem *,
43 const QPoint & ) ), 49 const QPoint & ) ),
44 this, SLOT( slotMouseButtonClicked( int, QListBoxItem *, 50 this, SLOT( slotMouseButtonClicked( int, Q3ListBoxItem *,
45 const QPoint & ) ) ); 51 const QPoint & ) ) );
46/*US 52/*US
47 53
48 slotSettingsChanged(KApplication::SETTINGS_MOUSE); 54 slotSettingsChanged(KApplication::SETTINGS_MOUSE);
49 if (kapp) 55 if (kapp)
50 { 56 {
51 connect( kapp, SIGNAL( settingsChanged(int) ), SLOT( slotSettingsChanged(int) ) ); 57 connect( kapp, SIGNAL( settingsChanged(int) ), SLOT( slotSettingsChanged(int) ) );
52 kapp->addKipcEventMask( KIPC::SettingsChanged ); 58 kapp->addKipcEventMask( KIPC::SettingsChanged );
53 } 59 }
54*/ 60*/
55 m_pCurrentItem = 0L; 61 m_pCurrentItem = 0L;
56//US set single to true 62//US set single to true
57 m_bUseSingle = true; 63 m_bUseSingle = true;
58 m_pAutoSelect = new QTimer( this ); 64 m_pAutoSelect = new QTimer( this );
59 connect( m_pAutoSelect, SIGNAL( timeout() ), 65 connect( m_pAutoSelect, SIGNAL( timeout() ),
60 this, SLOT( slotAutoSelect() ) ); 66 this, SLOT( slotAutoSelect() ) );
61} 67}
62 68
63void KListBox::slotOnItem( QListBoxItem *item ) 69void KListBox::slotOnItem( Q3ListBoxItem *item )
64{ 70{
65/*US 71/*US
66 if ( item && m_bChangeCursorOverItem && m_bUseSingle ) 72 if ( item && m_bChangeCursorOverItem && m_bUseSingle )
67 viewport()->setCursor( KCursor().handCursor() ); 73 viewport()->setCursor( KCursor().handCursor() );
68*/ 74*/
69 if ( item && (m_autoSelectDelay > -1) && m_bUseSingle ) { 75 if ( item && (m_autoSelectDelay > -1) && m_bUseSingle ) {
70 m_pAutoSelect->start( m_autoSelectDelay, true ); 76 m_pAutoSelect->start( m_autoSelectDelay, true );
71 m_pCurrentItem = item; 77 m_pCurrentItem = item;
72 } 78 }
73} 79}
74 80
75void KListBox::slotOnViewport() 81void KListBox::slotOnViewport()
76{ 82{
77/*US 83/*US
78 if ( m_bChangeCursorOverItem ) 84 if ( m_bChangeCursorOverItem )
79 viewport()->unsetCursor(); 85 viewport()->unsetCursor();
@@ -126,189 +132,189 @@ void KListBox::slotSettingsChanged(int category)
126*/ 132*/
127void KListBox::slotAutoSelect() 133void KListBox::slotAutoSelect()
128{ 134{
129 // check that the item still exists 135 // check that the item still exists
130 if( index( m_pCurrentItem ) == -1 ) 136 if( index( m_pCurrentItem ) == -1 )
131 return; 137 return;
132 138
133 //Give this widget the keyboard focus. 139 //Give this widget the keyboard focus.
134 if( !hasFocus() ) 140 if( !hasFocus() )
135 setFocus(); 141 setFocus();
136 142
137#ifdef Q_WS_X11 //FIXME 143#ifdef Q_WS_X11 //FIXME
138 Window root; 144 Window root;
139 Window child; 145 Window child;
140 int root_x, root_y, win_x, win_y; 146 int root_x, root_y, win_x, win_y;
141 uint keybstate; 147 uint keybstate;
142 XQueryPointer( qt_xdisplay(), qt_xrootwin(), &root, &child, 148 XQueryPointer( x11Info().display(), x11Info().appRootWindow(), &root, &child,
143 &root_x, &root_y, &win_x, &win_y, &keybstate ); 149 &root_x, &root_y, &win_x, &win_y, &keybstate );
144#endif 150#endif
145 151
146 QListBoxItem* previousItem = item( currentItem() ); 152 Q3ListBoxItem* previousItem = item( currentItem() );
147 setCurrentItem( m_pCurrentItem ); 153 setCurrentItem( m_pCurrentItem );
148 154
149 if( m_pCurrentItem ) { 155 if( m_pCurrentItem ) {
150#ifndef Q_WS_QWS //FIXME 156#ifndef Q_WS_QWS //FIXME
151 //Shift pressed? 157 //Shift pressed?
152 if( (keybstate & ShiftMask) ) { 158 if( (keybstate & ShiftMask) ) {
153#endif 159#endif
154 bool block = signalsBlocked(); 160 bool block = signalsBlocked();
155 blockSignals( true ); 161 blockSignals( true );
156 162
157#ifndef Q_WS_QWS //FIXME 163#ifndef Q_WS_QWS //FIXME
158 //No Ctrl? Then clear before! 164 //No Ctrl? Then clear before!
159 if( !(keybstate & ControlMask) ) 165 if( !(keybstate & ControlMask) )
160 clearSelection(); 166 clearSelection();
161#endif 167#endif
162 168
163//US in my QT version it is called isSelected() So what is right? 169//US in my QT version it is called isSelected() So what is right?
164//US bool select = !m_pCurrentItem->isSelected(); 170//US bool select = !m_pCurrentItem->isSelected();
165 bool select = !m_pCurrentItem->selected(); 171 bool select = !m_pCurrentItem->selected();
166 bool update = viewport()->isUpdatesEnabled(); 172 bool update = viewport()->isUpdatesEnabled();
167 viewport()->setUpdatesEnabled( false ); 173 viewport()->setUpdatesEnabled( false );
168 174
169 bool down = index( previousItem ) < index( m_pCurrentItem ); 175 bool down = index( previousItem ) < index( m_pCurrentItem );
170 QListBoxItem* it = down ? previousItem : m_pCurrentItem; 176 Q3ListBoxItem* it = down ? previousItem : m_pCurrentItem;
171 for (;it ; it = it->next() ) { 177 for (;it ; it = it->next() ) {
172 if ( down && it == m_pCurrentItem ) { 178 if ( down && it == m_pCurrentItem ) {
173 setSelected( m_pCurrentItem, select ); 179 setSelected( m_pCurrentItem, select );
174 break; 180 break;
175 } 181 }
176 if ( !down && it == previousItem ) { 182 if ( !down && it == previousItem ) {
177 setSelected( previousItem, select ); 183 setSelected( previousItem, select );
178 break; 184 break;
179 } 185 }
180 setSelected( it, select ); 186 setSelected( it, select );
181 } 187 }
182 188
183 blockSignals( block ); 189 blockSignals( block );
184 viewport()->setUpdatesEnabled( update ); 190 viewport()->setUpdatesEnabled( update );
185 triggerUpdate( false ); 191 triggerUpdate( false );
186 192
187 emit selectionChanged(); 193 emit selectionChanged();
188 194
189 if( selectionMode() == QListBox::Single ) 195 if( selectionMode() == Q3ListBox::Single )
190 emit selectionChanged( m_pCurrentItem ); 196 emit selectionChanged( m_pCurrentItem );
191 } 197 }
192#ifndef Q_WS_QWS //FIXME 198#ifndef Q_WS_QWS //FIXME
193 else if( (keybstate & ControlMask) ) 199 else if( (keybstate & ControlMask) )
194 setSelected( m_pCurrentItem, !m_pCurrentItem->isSelected() ); 200 setSelected( m_pCurrentItem, !m_pCurrentItem->isSelected() );
195#endif 201#endif
196 else { 202 else {
197 bool block = signalsBlocked(); 203 bool block = signalsBlocked();
198 blockSignals( true ); 204 blockSignals( true );
199 205
200//US in my QT version it is called isSelected() So what is right? 206//US in my QT version it is called isSelected() So what is right?
201//US if( !m_pCurrentItem->isSelected() ) 207//US if( !m_pCurrentItem->isSelected() )
202 if( !m_pCurrentItem->selected() ) 208 if( !m_pCurrentItem->selected() )
203 clearSelection(); 209 clearSelection();
204 210
205 blockSignals( block ); 211 blockSignals( block );
206 212
207 setSelected( m_pCurrentItem, true ); 213 setSelected( m_pCurrentItem, true );
208 } 214 }
209#ifndef Q_WS_QWS //FIXME 215#ifndef Q_WS_QWS //FIXME
210 } 216 }
211 else 217 else
212 kdDebug() << "Thats not supposed to happen!!!!" << endl; 218 kdDebug() << "Thats not supposed to happen!!!!" << endl;
213#endif 219#endif
214} 220}
215 221
216void KListBox::emitExecute( QListBoxItem *item, const QPoint &pos ) 222void KListBox::emitExecute( Q3ListBoxItem *item, const QPoint &pos )
217{ 223{
218#ifdef Q_WS_X11 //FIXME 224#ifdef Q_WS_X11 //FIXME
219 Window root; 225 Window root;
220 Window child; 226 Window child;
221 int root_x, root_y, win_x, win_y; 227 int root_x, root_y, win_x, win_y;
222 uint keybstate; 228 uint keybstate;
223 XQueryPointer( qt_xdisplay(), qt_xrootwin(), &root, &child, 229 XQueryPointer( x11Info().display(), x11Info().appRootWindow(), &root, &child,
224 &root_x, &root_y, &win_x, &win_y, &keybstate ); 230 &root_x, &root_y, &win_x, &win_y, &keybstate );
225#endif 231#endif
226 232
227 m_pAutoSelect->stop(); 233 m_pAutoSelect->stop();
228 234
229#ifndef Q_WS_QWS //FIXME 235#ifndef Q_WS_QWS //FIXME
230 //Dont emit executed if in SC mode and Shift or Ctrl are pressed 236 //Dont emit executed if in SC mode and Shift or Ctrl are pressed
231 if( !( m_bUseSingle && ((keybstate & ShiftMask) || (keybstate & ControlMask)) ) ) { 237 if( !( m_bUseSingle && ((keybstate & ShiftMask) || (keybstate & ControlMask)) ) ) {
232#endif 238#endif
233 emit executed( item ); 239 emit executed( item );
234 emit executed( item, pos ); 240 emit executed( item, pos );
235#ifndef Q_WS_QWS //FIXME 241#ifndef Q_WS_QWS //FIXME
236 } 242 }
237#endif 243#endif
238} 244}
239 245
240// 246//
241// 2000-16-01 Espen Sand 247// 2000-16-01 Espen Sand
242// This widget is used in dialogs. It should ignore 248// This widget is used in dialogs. It should ignore
243// F1 (and combinations) and Escape since these are used 249// F1 (and combinations) and Escape since these are used
244// to start help or close the dialog. This functionality 250// to start help or close the dialog. This functionality
245// should be done in QListView but it is not (at least now) 251// should be done in QListView but it is not (at least now)
246// 252//
247void KListBox::keyPressEvent(QKeyEvent *e) 253void KListBox::keyPressEvent(QKeyEvent *e)
248{ 254{
249 if( e->key() == Key_Escape ) 255 if( e->key() == Qt::Key_Escape )
250 { 256 {
251 e->ignore(); 257 e->ignore();
252 } 258 }
253 else if( e->key() == Key_F1 ) 259 else if( e->key() == Qt::Key_F1 )
254 { 260 {
255 e->ignore(); 261 e->ignore();
256 } 262 }
257 else 263 else
258 { 264 {
259 QListBox::keyPressEvent(e); 265 Q3ListBox::keyPressEvent(e);
260 } 266 }
261} 267}
262 268
263void KListBox::focusOutEvent( QFocusEvent *fe ) 269void KListBox::focusOutEvent( QFocusEvent *fe )
264{ 270{
265 m_pAutoSelect->stop(); 271 m_pAutoSelect->stop();
266 272
267 QListBox::focusOutEvent( fe ); 273 Q3ListBox::focusOutEvent( fe );
268} 274}
269 275
270void KListBox::leaveEvent( QEvent *e ) 276void KListBox::leaveEvent( QEvent *e )
271{ 277{
272 m_pAutoSelect->stop(); 278 m_pAutoSelect->stop();
273 279
274 QListBox::leaveEvent( e ); 280 Q3ListBox::leaveEvent( e );
275} 281}
276 282
277void KListBox::contentsMousePressEvent( QMouseEvent *e ) 283void KListBox::contentsMousePressEvent( QMouseEvent *e )
278{ 284{
279 if( (selectionMode() == Extended) && (e->state() & ShiftButton) && !(e->state() & ControlButton) ) { 285 if( (selectionMode() == Extended) && (e->state() & Qt::ShiftButton) && !(e->state() & Qt::ControlButton) ) {
280 bool block = signalsBlocked(); 286 bool block = signalsBlocked();
281 blockSignals( true ); 287 blockSignals( true );
282 288
283 clearSelection(); 289 clearSelection();
284 290
285 blockSignals( block ); 291 blockSignals( block );
286 } 292 }
287 293
288 QListBox::contentsMousePressEvent( e ); 294 Q3ListBox::contentsMousePressEvent( e );
289} 295}
290 296
291void KListBox::contentsMouseDoubleClickEvent ( QMouseEvent * e ) 297void KListBox::contentsMouseDoubleClickEvent ( QMouseEvent * e )
292{ 298{
293 QListBox::contentsMouseDoubleClickEvent( e ); 299 Q3ListBox::contentsMouseDoubleClickEvent( e );
294 300
295 QListBoxItem* item = itemAt( e->pos() ); 301 Q3ListBoxItem* item = itemAt( e->pos() );
296 302
297 if( item ) { 303 if( item ) {
298 emit doubleClicked( item, e->globalPos() ); 304 emit doubleClicked( item, e->globalPos() );
299 305
300 if( (e->button() == LeftButton) && !m_bUseSingle ) 306 if( (e->button() == Qt::LeftButton) && !m_bUseSingle )
301 emitExecute( item, e->globalPos() ); 307 emitExecute( item, e->globalPos() );
302 } 308 }
303} 309}
304 310
305void KListBox::slotMouseButtonClicked( int btn, QListBoxItem *item, const QPoint &pos ) 311void KListBox::slotMouseButtonClicked( int btn, Q3ListBoxItem *item, const QPoint &pos )
306{ 312{
307 if( (btn == LeftButton) && item ) 313 if( (btn == Qt::LeftButton) && item )
308 emitExecute( item, pos ); 314 emitExecute( item, pos );
309} 315}
310 316
311void KListBox::virtual_hook( int, void* ) 317void KListBox::virtual_hook( int, void* )
312{ /*BASE::virtual_hook( id, data );*/ } 318{ /*BASE::virtual_hook( id, data );*/ }
313 319
314//US #include "klistbox.moc" 320//US #include "klistbox.moc"
diff --git a/microkde/kdeui/klistbox.h b/microkde/kdeui/klistbox.h
index 8023780..5ec514b 100644
--- a/microkde/kdeui/klistbox.h
+++ b/microkde/kdeui/klistbox.h
@@ -5,137 +5,142 @@
5 modify it under the terms of the GNU Library General Public 5 modify it under the terms of the GNU Library General Public
6 License version 2 as published by the Free Software Foundation. 6 License version 2 as published by the Free Software Foundation.
7 7
8 This library is distributed in the hope that it will be useful, 8 This library is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of 9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 Library General Public License for more details. 11 Library General Public License for more details.
12 12
13 You should have received a copy of the GNU Library General Public License 13 You should have received a copy of the GNU Library General Public License
14 along with this library; see the file COPYING.LIB. If not, write to 14 along with this library; see the file COPYING.LIB. If not, write to
15 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 15 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
16 Boston, MA 02111-1307, USA. 16 Boston, MA 02111-1307, USA.
17*/ 17*/
18#ifndef KLISTBOX_H 18#ifndef KLISTBOX_H
19#define KLISTBOX_H 19#define KLISTBOX_H
20 20
21#include <qlistbox.h> 21#include <q3listbox.h>
22//Added by qt3to4:
23#include <QMouseEvent>
24#include <QFocusEvent>
25#include <QKeyEvent>
26#include <QEvent>
22 27
23/** 28/**
24 * Extends the functionality of @ref QListBox to honor the system 29 * Extends the functionality of @ref QListBox to honor the system
25 * wide settings for Single Click/Double Click mode, Auto Selection and 30 * wide settings for Single Click/Double Click mode, Auto Selection and
26 * Change Cursor over Link. 31 * Change Cursor over Link.
27 * 32 *
28 * There is a new signal @ref executed(). It gets connected to either 33 * There is a new signal @ref executed(). It gets connected to either
29 * @ref QListBox::clicked() or @ref QListBox::doubleClicked() 34 * @ref QListBox::clicked() or @ref QListBox::doubleClicked()
30 * depending on the KDE wide Single Click/Double Click settings. It is 35 * depending on the KDE wide Single Click/Double Click settings. It is
31 * strongly recomended that you use this signal instead of the above 36 * strongly recomended that you use this signal instead of the above
32 * mentioned. This way you don't need to care about the current 37 * mentioned. This way you don't need to care about the current
33 * settings. If you want to get informed when the user selects 38 * settings. If you want to get informed when the user selects
34 * something connect to the @ref QListBox::selectionChanged() signal. 39 * something connect to the @ref QListBox::selectionChanged() signal.
35 * 40 *
36 * @short A variant of @ref QListBox that honors KDE's system-wide settings. 41 * @short A variant of @ref QListBox that honors KDE's system-wide settings.
37 **/ 42 **/
38class KListBox : public QListBox 43class KListBox : public Q3ListBox
39{ 44{
40 Q_OBJECT 45 Q_OBJECT
41 46
42public: 47public:
43 KListBox( QWidget *parent = 0, const char *name = 0, WFlags f = 0 ); 48 KListBox( QWidget *parent = 0, const char *name = 0, Qt::WFlags f = 0 );
44 49
45signals: 50signals:
46 51
47 /** 52 /**
48 * Emitted whenever the user executes an listbox item. 53 * Emitted whenever the user executes an listbox item.
49 * 54 *
50 * That means depending on the KDE wide Single Click/Double Click 55 * That means depending on the KDE wide Single Click/Double Click
51 * setting the user clicked or double clicked on that item. 56 * setting the user clicked or double clicked on that item.
52 * @param item is the pointer to the executed listbox item. 57 * @param item is the pointer to the executed listbox item.
53 * 58 *
54 * Note that you may not delete any @ref QListBoxItem objects in slots 59 * Note that you may not delete any @ref QListBoxItem objects in slots
55 * connected to this signal. 60 * connected to this signal.
56 */ 61 */
57 void executed( QListBoxItem *item ); 62 void executed( Q3ListBoxItem *item );
58 63
59 /** 64 /**
60 * Emitted whenever the user executes an listbox item. 65 * Emitted whenever the user executes an listbox item.
61 * 66 *
62 * That means depending on the KDE wide Single Click/Double Click 67 * That means depending on the KDE wide Single Click/Double Click
63 * setting the user clicked or double clicked on that item. 68 * setting the user clicked or double clicked on that item.
64 * @param item is the pointer to the executed listbox item. 69 * @param item is the pointer to the executed listbox item.
65 * @param pos is the position where the user has clicked 70 * @param pos is the position where the user has clicked
66 * 71 *
67 * Note that you may not delete any @ref QListBoxItem objects in slots 72 * Note that you may not delete any @ref QListBoxItem objects in slots
68 * connected to this signal. 73 * connected to this signal.
69 */ 74 */
70 void executed( QListBoxItem *item, const QPoint &pos ); 75 void executed( Q3ListBoxItem *item, const QPoint &pos );
71 76
72 /** 77 /**
73 * This signal gets emitted whenever the user double clicks into the 78 * This signal gets emitted whenever the user double clicks into the
74 * listbox. 79 * listbox.
75 * 80 *
76 * @param item The pointer to the clicked listbox item. 81 * @param item The pointer to the clicked listbox item.
77 * @param pos The position where the user has clicked. 82 * @param pos The position where the user has clicked.
78 * 83 *
79 * Note that you may not delete any @ref QListBoxItem objects in slots 84 * Note that you may not delete any @ref QListBoxItem objects in slots
80 * connected to this signal. 85 * connected to this signal.
81 * 86 *
82 * This signal is more or less here for the sake of completeness. 87 * This signal is more or less here for the sake of completeness.
83 * You should normally not need to use this. In most cases it's better 88 * You should normally not need to use this. In most cases it's better
84 * to use @ref executed() instead. 89 * to use @ref executed() instead.
85 */ 90 */
86 void doubleClicked( QListBoxItem *item, const QPoint &pos ); 91 void doubleClicked( Q3ListBoxItem *item, const QPoint &pos );
87 92
88protected slots: 93protected slots:
89 void slotOnItem( QListBoxItem *item ); 94 void slotOnItem( Q3ListBoxItem *item );
90 void slotOnViewport(); 95 void slotOnViewport();
91 96
92//US void slotSettingsChanged(int); 97//US void slotSettingsChanged(int);
93 98
94 /** 99 /**
95 * Auto selection happend. 100 * Auto selection happend.
96 */ 101 */
97 void slotAutoSelect(); 102 void slotAutoSelect();
98 103
99protected: 104protected:
100 void emitExecute( QListBoxItem *item, const QPoint &pos ); 105 void emitExecute( Q3ListBoxItem *item, const QPoint &pos );
101 106
102 /** 107 /**
103 * @reimplemented 108 * @reimplemented
104 */ 109 */
105 virtual void keyPressEvent(QKeyEvent *e); 110 virtual void keyPressEvent(QKeyEvent *e);
106 /** 111 /**
107 * @reimplemented 112 * @reimplemented
108 */ 113 */
109 virtual void focusOutEvent( QFocusEvent *fe ); 114 virtual void focusOutEvent( QFocusEvent *fe );
110 /** 115 /**
111 * @reimplemented 116 * @reimplemented
112 */ 117 */
113 virtual void leaveEvent( QEvent *e ); 118 virtual void leaveEvent( QEvent *e );
114 /** 119 /**
115 * @reimplemented 120 * @reimplemented
116 */ 121 */
117 virtual void contentsMousePressEvent( QMouseEvent *e ); 122 virtual void contentsMousePressEvent( QMouseEvent *e );
118 /** 123 /**
119 * @reimplemented 124 * @reimplemented
120 */ 125 */
121 virtual void contentsMouseDoubleClickEvent ( QMouseEvent *e ); 126 virtual void contentsMouseDoubleClickEvent ( QMouseEvent *e );
122 127
123 bool m_bUseSingle; 128 bool m_bUseSingle;
124//US bool m_bChangeCursorOverItem; 129//US bool m_bChangeCursorOverItem;
125 130
126 QListBoxItem* m_pCurrentItem; 131 Q3ListBoxItem* m_pCurrentItem;
127 132
128 QTimer* m_pAutoSelect; 133 QTimer* m_pAutoSelect;
129 int m_autoSelectDelay; 134 int m_autoSelectDelay;
130 135
131private slots: 136private slots:
132 void slotMouseButtonClicked( int btn, QListBoxItem *item, const QPoint &pos ); 137 void slotMouseButtonClicked( int btn, Q3ListBoxItem *item, const QPoint &pos );
133 138
134protected: 139protected:
135 virtual void virtual_hook( int id, void* data ); 140 virtual void virtual_hook( int id, void* data );
136private: 141private:
137 class KListBoxPrivate; 142 class KListBoxPrivate;
138 KListBoxPrivate *d; 143 KListBoxPrivate *d;
139}; 144};
140 145
141#endif 146#endif
diff --git a/microkde/kdeui/klistview.cpp b/microkde/kdeui/klistview.cpp
index 60f3084..0e98160 100644
--- a/microkde/kdeui/klistview.cpp
+++ b/microkde/kdeui/klistview.cpp
@@ -5,82 +5,97 @@
5 5
6 This library is free software; you can redistribute it and/or 6 This library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Library General Public 7 modify it under the terms of the GNU Library General Public
8 License version 2 as published by the Free Software Foundation. 8 License version 2 as published by the Free Software Foundation.
9 9
10 This library is distributed in the hope that it will be useful, 10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details. 13 Library General Public License for more details.
14 14
15 You should have received a copy of the GNU Library General Public License 15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to 16 along with this library; see the file COPYING.LIB. If not, write to
17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA. 18 Boston, MA 02111-1307, USA.
19*/ 19*/
20 20
21#include <qdragobject.h> 21#include <q3dragobject.h>
22#include <qtimer.h> 22#include <qtimer.h>
23#include <qheader.h> 23#include <q3header.h>
24#include <qcursor.h> 24#include <qcursor.h>
25#include <qtooltip.h> 25#include <qtooltip.h>
26#include <qstyle.h> 26#include <qstyle.h>
27#include <qpainter.h> 27#include <qpainter.h>
28//Added by qt3to4:
29#include <QDragLeaveEvent>
30#include <QKeyEvent>
31#include <Q3ValueList>
32#include <Q3PtrList>
33#include <QPixmap>
34#include <QDragEnterEvent>
35#include <QDragMoveEvent>
36#include <QDropEvent>
37#include <QResizeEvent>
38#include <QFocusEvent>
39#include <QMouseEvent>
40#include <QEvent>
41#include <QPaintEvent>
28 42
29#include <kglobalsettings.h> 43#include <kglobalsettings.h>
30#include <kconfig.h> 44#include <kconfig.h>
31#include <kconfigbase.h> 45#include <kconfigbase.h>
32//US #include <kcursor.h> 46//US #include <kcursor.h>
33#include <kapplication.h> 47#include <kapplication.h>
34//US #include <kipc.h> 48//US #include <kipc.h>
35#include <kdebug.h> 49#include <kdebug.h>
36#ifdef _WIN32_ 50#ifdef _WIN32_
37#define Q_WS_QWS 51#define Q_WS_QWS
38#endif 52#endif
39#ifndef _WIN32_ 53#ifndef _WIN32_
40#define private public 54#define private public
41#include <qlistview.h> 55#include <q3listview.h>
42#undef private 56#undef private
43#endif 57#endif
44#include "klistview.h" 58#include "klistview.h"
45//US #include "klistviewlineedit.h" 59//US #include "klistviewlineedit.h"
46#ifndef DESKTOP_VERSION 60#ifndef DESKTOP_VERSION
47#include <qpe/qpeapplication.h> 61#include <qpe/qpeapplication.h>
48#endif 62#endif
63#include <Q3Action>
49 64
50// /*US 65// /*US
51class KListView::Tooltip : public QToolTip 66class KListView::Tooltip /* TODO:hacker:TODO: : public QToolTip */
52{ 67{
53public: 68public:
54 Tooltip (KListView* parent, QToolTipGroup* group = 0L); 69 Tooltip (KListView* parent, QToolTipGroup* group = 0L);
55 virtual ~Tooltip () {} 70 virtual ~Tooltip () {}
56 71
57protected: 72protected:
58 // */ 73 // */
59 /** 74 /**
60 * Reimplemented from QToolTip for internal reasons. 75 * Reimplemented from QToolTip for internal reasons.
61 */ 76 */
62 // /*US 77 // /*US
63 virtual void maybeTip (const QPoint&); 78 virtual void maybeTip (const QPoint&);
64 79
65private: 80private:
66 KListView* mParent; 81 KListView* mParent;
67}; 82};
68 83
69KListView::Tooltip::Tooltip (KListView* parent, QToolTipGroup* group) 84KListView::Tooltip::Tooltip (KListView* parent, QToolTipGroup* group)
70 : QToolTip (parent, group), 85 : /* XXX:hacker:XXX: QToolTip (parent, group), */
71 mParent (parent) 86 mParent (parent)
72{ 87{
73} 88}
74 89
75void KListView::Tooltip::maybeTip (const QPoint&) 90void KListView::Tooltip::maybeTip (const QPoint&)
76{ 91{
77 // FIXME 92 // FIXME
78} 93}
79// */ 94// */
80 95
81class KListView::KListViewPrivate 96class KListView::KListViewPrivate
82{ 97{
83public: 98public:
84 KListViewPrivate (KListView* listview) 99 KListViewPrivate (KListView* listview)
85 : pCurrentItem (0L), 100 : pCurrentItem (0L),
86 autoSelectDelay(1), 101 autoSelectDelay(1),
@@ -110,46 +125,46 @@ public:
110 selectionDirection(0), 125 selectionDirection(0),
111 tooltipColumn (0), 126 tooltipColumn (0),
112 selectionMode (Single), 127 selectionMode (Single),
113 contextMenuKey ( Qt::Key_Menu ),//KGlobalSettings::contextMenuKey()), 128 contextMenuKey ( Qt::Key_Menu ),//KGlobalSettings::contextMenuKey()),
114 showContextMenusOnPress (true),//showContextMenusOnPress (KGlobalSettings::showContextMenusOnPress()), 129 showContextMenusOnPress (true),//showContextMenusOnPress (KGlobalSettings::showContextMenusOnPress()),
115 mDropVisualizerWidth (4) 130 mDropVisualizerWidth (4)
116 { 131 {
117 renameable += 0; 132 renameable += 0;
118//US connect(editor, SIGNAL(done(QListViewItem*,int)), listview, SLOT(doneEditing(QListViewItem*,int))); 133//US connect(editor, SIGNAL(done(QListViewItem*,int)), listview, SLOT(doneEditing(QListViewItem*,int)));
119 } 134 }
120 135
121 ~KListViewPrivate () 136 ~KListViewPrivate ()
122 { 137 {
123//US delete editor; 138//US delete editor;
124 } 139 }
125 140
126 QListViewItem* pCurrentItem; 141 Q3ListViewItem* pCurrentItem;
127 142
128 QTimer autoSelect; 143 QTimer autoSelect;
129 int autoSelectDelay; 144 int autoSelectDelay;
130 145
131 QTimer dragExpand; 146 QTimer dragExpand;
132 QListViewItem* dragOverItem; 147 Q3ListViewItem* dragOverItem;
133 QPoint dragOverPoint; 148 QPoint dragOverPoint;
134 149
135 QPoint startDragPos; 150 QPoint startDragPos;
136 int dragDelay; 151 int dragDelay;
137 152
138//US KListViewLineEdit *editor; 153//US KListViewLineEdit *editor;
139 QValueList<int> renameable; 154 Q3ValueList<int> renameable;
140 155
141 bool cursorInExecuteArea:1; 156 bool cursorInExecuteArea:1;
142 bool bUseSingle:1; 157 bool bUseSingle:1;
143 bool bChangeCursorOverItem:1; 158 bool bChangeCursorOverItem:1;
144 bool itemsMovable:1; 159 bool itemsMovable:1;
145 bool selectedBySimpleMove : 1; 160 bool selectedBySimpleMove : 1;
146 bool selectedUsingMouse:1; 161 bool selectedUsingMouse:1;
147 bool itemsRenameable:1; 162 bool itemsRenameable:1;
148 bool validDrag:1; 163 bool validDrag:1;
149 bool dragEnabled:1; 164 bool dragEnabled:1;
150 bool autoOpen:1; 165 bool autoOpen:1;
151 bool dropVisualizer:1; 166 bool dropVisualizer:1;
152 bool dropHighlighter:1; 167 bool dropHighlighter:1;
153 bool createChildren:1; 168 bool createChildren:1;
154 bool pressedOnSelected:1; 169 bool pressedOnSelected:1;
155 bool wasShiftEvent:1; 170 bool wasShiftEvent:1;
@@ -157,34 +172,34 @@ public:
157 bool sortAscending:1; 172 bool sortAscending:1;
158 bool tabRename:1; 173 bool tabRename:1;
159 174
160 int sortColumn; 175 int sortColumn;
161 176
162 //+1 means downwards (y increases, -1 means upwards, 0 means not selected), aleXXX 177 //+1 means downwards (y increases, -1 means upwards, 0 means not selected), aleXXX
163 int selectionDirection; 178 int selectionDirection;
164 int tooltipColumn; 179 int tooltipColumn;
165 180
166 SelectionModeExt selectionMode; 181 SelectionModeExt selectionMode;
167 int contextMenuKey; 182 int contextMenuKey;
168 bool showContextMenusOnPress; 183 bool showContextMenusOnPress;
169 184
170 QRect mOldDropVisualizer; 185 QRect mOldDropVisualizer;
171 int mDropVisualizerWidth; 186 int mDropVisualizerWidth;
172 QRect mOldDropHighlighter; 187 QRect mOldDropHighlighter;
173 QListViewItem *afterItemDrop; 188 Q3ListViewItem *afterItemDrop;
174 QListViewItem *parentItemDrop; 189 Q3ListViewItem *parentItemDrop;
175 190
176 QColor alternateBackground; 191 QColor alternateBackground;
177}; 192};
178 193
179/*US 194/*US
180KListViewLineEdit::KListViewLineEdit(KListView *parent) 195KListViewLineEdit::KListViewLineEdit(KListView *parent)
181 : KLineEdit(parent->viewport()), item(0), col(0), p(parent) 196 : KLineEdit(parent->viewport()), item(0), col(0), p(parent)
182{ 197{
183 setFrame( false ); 198 setFrame( false );
184 hide(); 199 hide();
185 connect( parent, SIGNAL( selectionChanged() ), SLOT( slotSelectionChanged() )); 200 connect( parent, SIGNAL( selectionChanged() ), SLOT( slotSelectionChanged() ));
186} 201}
187 202
188KListViewLineEdit::~KListViewLineEdit() 203KListViewLineEdit::~KListViewLineEdit()
189{ 204{
190} 205}
@@ -213,67 +228,67 @@ void KListViewLineEdit::load(QListViewItem *i, int c)
213 228
214 if ( i->pixmap( col ) ) {// add width of pixmap 229 if ( i->pixmap( col ) ) {// add width of pixmap
215 int d = i->pixmap( col )->width(); 230 int d = i->pixmap( col )->width();
216 fieldX += d; 231 fieldX += d;
217 fieldW -= d; 232 fieldW -= d;
218 } 233 }
219 234
220 setGeometry(fieldX, rect.y() - 1, fieldW, rect.height() + 2); 235 setGeometry(fieldX, rect.y() - 1, fieldW, rect.height() + 2);
221 show(); 236 show();
222 setFocus(); 237 setFocus();
223} 238}
224*/ 239*/
225 /*Helper functions to for 240 /*Helper functions to for
226 *tabOrderedRename functionality. 241 *tabOrderedRename functionality.
227 */ 242 */
228 243
229static int nextCol (KListView *pl, QListViewItem *pi, int start, int dir) 244static int nextCol (KListView *pl, Q3ListViewItem *pi, int start, int dir)
230{ 245{
231 if (pi) 246 if (pi)
232 { 247 {
233 //Find the next renameable column in the current row 248 //Find the next renameable column in the current row
234 for (; ((dir == +1) ? (start < pl->columns()) : (start >= 0)); start += dir) 249 for (; ((dir == +1) ? (start < pl->columns()) : (start >= 0)); start += dir)
235 if (pl->isRenameable(start)) 250 if (pl->isRenameable(start))
236 return start; 251 return start;
237 } 252 }
238 253
239 return -1; 254 return -1;
240} 255}
241 256
242static QListViewItem *prevItem (QListViewItem *pi) 257static Q3ListViewItem *prevItem (Q3ListViewItem *pi)
243{ 258{
244 QListViewItem *pa = pi->itemAbove(); 259 Q3ListViewItem *pa = pi->itemAbove();
245 260
246 /*Does what the QListViewItem::previousSibling() 261 /*Does what the QListViewItem::previousSibling()
247 *of my dreams would do. 262 *of my dreams would do.
248 */ 263 */
249 if (pa && pa->parent() == pi->parent()) 264 if (pa && pa->parent() == pi->parent())
250 return pa; 265 return pa;
251 266
252 return NULL; 267 return NULL;
253} 268}
254 269
255static QListViewItem *lastQChild (QListViewItem *pi) 270static Q3ListViewItem *lastQChild (Q3ListViewItem *pi)
256{ 271{
257 if (pi) 272 if (pi)
258 { 273 {
259 /*Since there's no QListViewItem::lastChild(). 274 /*Since there's no QListViewItem::lastChild().
260 *This finds the last sibling for the given 275 *This finds the last sibling for the given
261 *item. 276 *item.
262 */ 277 */
263 for (QListViewItem *pt = pi->nextSibling(); pt; pt = pt->nextSibling()) 278 for (Q3ListViewItem *pt = pi->nextSibling(); pt; pt = pt->nextSibling())
264 pi = pt; 279 pi = pt;
265 } 280 }
266 281
267 return pi; 282 return pi;
268} 283}
269/*US 284/*US
270void KListViewLineEdit::selectNextCell (QListViewItem *pitem, int column, bool forward) 285void KListViewLineEdit::selectNextCell (QListViewItem *pitem, int column, bool forward)
271{ 286{
272 const int ncols = p->columns(); 287 const int ncols = p->columns();
273 const int dir = forward ? +1 : -1; 288 const int dir = forward ? +1 : -1;
274 const int restart = forward ? 0 : (ncols - 1); 289 const int restart = forward ? 0 : (ncols - 1);
275 QListViewItem *top = (pitem && pitem->parent()) 290 QListViewItem *top = (pitem && pitem->parent())
276 ? pitem->parent()->firstChild() 291 ? pitem->parent()->firstChild()
277 : p->firstChild(); 292 : p->firstChild();
278 QListViewItem *pi = pitem; 293 QListViewItem *pi = pitem;
279 294
@@ -315,36 +330,36 @@ void KListViewLineEdit::selectNextCell (QListViewItem *pitem, int column, bool f
315} 330}
316*/ 331*/
317 332
318/*US 333/*US
319#ifdef KeyPress 334#ifdef KeyPress
320#undef KeyPress 335#undef KeyPress
321#endif 336#endif
322 337
323bool KListViewLineEdit::event (QEvent *pe) 338bool KListViewLineEdit::event (QEvent *pe)
324{ 339{
325 if (pe->type() == QEvent::KeyPress) 340 if (pe->type() == QEvent::KeyPress)
326 { 341 {
327 QKeyEvent *k = (QKeyEvent *) pe; 342 QKeyEvent *k = (QKeyEvent *) pe;
328 343
329 if ((k->key() == Qt::Key_Backtab || k->key() == Qt::Key_Tab) && 344 if ((k->key() == Qt::Key_Backtab || k->key() == Qt::Key_Tab) &&
330 p->tabOrderedRenaming() && p->itemsRenameable() && 345 p->tabOrderedRenaming() && p->itemsRenameable() &&
331 !(k->state() & ControlButton || k->state() & AltButton)) 346 !(k->state() & Qt::ControlButton || k->state() & AltButton))
332 { 347 {
333 selectNextCell(item, col, 348 selectNextCell(item, col,
334 (k->key() == Key_Tab && !(k->state() & ShiftButton))); 349 (k->key() == Key_Tab && !(k->state() & Qt::ShiftButton)));
335 return true; 350 return true;
336 } 351 }
337 } 352 }
338 353
339 return KLineEdit::event(pe); 354 return KLineEdit::event(pe);
340} 355}
341 356
342void KListViewLineEdit::keyPressEvent(QKeyEvent *e) 357void KListViewLineEdit::keyPressEvent(QKeyEvent *e)
343{ 358{
344 if(e->key() == Qt::Key_Return || e->key() == Qt::Key_Enter ) 359 if(e->key() == Qt::Key_Return || e->key() == Qt::Key_Enter )
345 terminate(true); 360 terminate(true);
346 else if(e->key() == Qt::Key_Escape) 361 else if(e->key() == Qt::Key_Escape)
347 terminate(false); 362 terminate(false);
348 else if (e->key() == Qt::Key_Down || e->key() == Qt::Key_Up) 363 else if (e->key() == Qt::Key_Down || e->key() == Qt::Key_Up)
349 { 364 {
350 terminate(true); 365 terminate(true);
@@ -393,166 +408,166 @@ void KListViewLineEdit::paintEvent( QPaintEvent *e )
393 p.drawRect( rect() ); 408 p.drawRect( rect() );
394 } 409 }
395} 410}
396 411
397// selection changed -> terminate. As our "item" can be already deleted, 412// selection changed -> terminate. As our "item" can be already deleted,
398// we can't call terminate(false), because that would emit done() with 413// we can't call terminate(false), because that would emit done() with
399// a dangling pointer to "item". 414// a dangling pointer to "item".
400void KListViewLineEdit::slotSelectionChanged() 415void KListViewLineEdit::slotSelectionChanged()
401{ 416{
402 item = 0; 417 item = 0;
403 col = 0; 418 col = 0;
404 hide(); 419 hide();
405} 420}
406*/ 421*/
407 422
408KListView::KListView( QWidget *parent, const char *name ,bool emulateRightMouse ) 423KListView::KListView( QWidget *parent, const char *name ,bool emulateRightMouse )
409 : QListView( parent, name ), 424 : Q3ListView( parent, name ),
410 d (new KListViewPrivate (this)) 425 d (new KListViewPrivate (this))
411{ 426{
412#ifndef DESKTOP_VERSION 427#ifndef DESKTOP_VERSION
413 if ( emulateRightMouse ) 428 if ( emulateRightMouse )
414 QPEApplication::setStylusOperation( viewport(), QPEApplication::RightOnHold ); 429 QPEApplication::setStylusOperation( viewport(), QPEApplication::RightOnHold );
415#endif 430#endif
416//US setDragAutoScroll(true); 431//US setDragAutoScroll(true);
417 432
418 connect( this, SIGNAL( onViewport() ), 433 connect( this, SIGNAL( onViewport() ),
419 this, SLOT( slotOnViewport() ) ); 434 this, SLOT( slotOnViewport() ) );
420 connect( this, SIGNAL( onItem( QListViewItem * ) ), 435 connect( this, SIGNAL( onItem( Q3ListViewItem * ) ),
421 this, SLOT( slotOnItem( QListViewItem * ) ) ); 436 this, SLOT( slotOnItem( Q3ListViewItem * ) ) );
422 437
423 connect (this, SIGNAL(contentsMoving(int,int)), 438 connect (this, SIGNAL(contentsMoving(int,int)),
424 this, SLOT(cleanDropVisualizer())); 439 this, SLOT(cleanDropVisualizer()));
425 connect (this, SIGNAL(contentsMoving(int,int)), 440 connect (this, SIGNAL(contentsMoving(int,int)),
426 this, SLOT(cleanItemHighlighter())); 441 this, SLOT(cleanItemHighlighter()));
427 442
428/*US 443/*US
429 slotSettingsChanged(KApplication::SETTINGS_MOUSE); 444 slotSettingsChanged(KApplication::SETTINGS_MOUSE);
430 445
431 if (kapp) 446 if (kapp)
432 { 447 {
433 connect( kapp, SIGNAL( settingsChanged(int) ), SLOT( slotSettingsChanged(int) ) ); 448 connect( kapp, SIGNAL( settingsChanged(int) ), SLOT( slotSettingsChanged(int) ) );
434 kapp->addKipcEventMask( KIPC::SettingsChanged ); 449 kapp->addKipcEventMask( KIPC::SettingsChanged );
435 } 450 }
436*/ 451*/
437 slotSettingsChanged(1); //US do this to initialize the connections 452 slotSettingsChanged(1); //US do this to initialize the connections
438 453
439 454
440 connect(&d->autoSelect, SIGNAL( timeout() ), 455 connect(&d->autoSelect, SIGNAL( timeout() ),
441 this, SLOT( slotAutoSelect() ) ); 456 this, SLOT( slotAutoSelect() ) );
442 connect(&d->dragExpand, SIGNAL( timeout() ), 457 connect(&d->dragExpand, SIGNAL( timeout() ),
443 this, SLOT( slotDragExpand() ) ); 458 this, SLOT( slotDragExpand() ) );
444 459
445 // context menu handling 460 // context menu handling
446 if (d->showContextMenusOnPress) 461 if (d->showContextMenusOnPress)
447 { 462 {
448 connect (this, SIGNAL (rightButtonPressed (QListViewItem*, const QPoint&, int)), 463 connect (this, SIGNAL (rightButtonPressed (Q3ListViewItem*, const QPoint&, int)),
449 this, SLOT (emitContextMenu (QListViewItem*, const QPoint&, int))); 464 this, SLOT (emitContextMenu (Q3ListViewItem*, const QPoint&, int)));
450 } 465 }
451 else 466 else
452 { 467 {
453 connect (this, SIGNAL (rightButtonClicked (QListViewItem*, const QPoint&, int)), 468 connect (this, SIGNAL (rightButtonClicked (Q3ListViewItem*, const QPoint&, int)),
454 this, SLOT (emitContextMenu (QListViewItem*, const QPoint&, int))); 469 this, SLOT (emitContextMenu (Q3ListViewItem*, const QPoint&, int)));
455 } 470 }
456 471
457 connect (this, SIGNAL (menuShortCutPressed (KListView*, QListViewItem*)), 472 connect (this, SIGNAL (menuShortCutPressed (KListView*, Q3ListViewItem*)),
458 this, SLOT (emitContextMenu (KListView*, QListViewItem*))); 473 this, SLOT (emitContextMenu (KListView*, Q3ListViewItem*)));
459 474
460 475
461 //qDebug("KListView::KListView make alternate color configurable"); 476 //qDebug("KListView::KListView make alternate color configurable");
462 d->alternateBackground = KGlobalSettings::alternateBackgroundColor(); 477 d->alternateBackground = KGlobalSettings::alternateBackgroundColor();
463} 478}
464 479
465 480
466 481
467KListView::~KListView() 482KListView::~KListView()
468{ 483{
469 delete d; 484 delete d;
470} 485}
471 486
472bool KListView::isExecuteArea( const QPoint& point ) 487bool KListView::isExecuteArea( const QPoint& point )
473{ 488{
474 if ( itemAt( point ) ) 489 if ( itemAt( point ) )
475 return isExecuteArea( point.x() ); 490 return isExecuteArea( point.x() );
476 491
477 return false; 492 return false;
478} 493}
479QSize KListView::sizeHint() const 494QSize KListView::sizeHint() const
480{ 495{
481 //qDebug("KListView::QSize sizeHint() "); 496 //qDebug("KListView::QSize sizeHint() ");
482#ifdef DESKTOP_VERSION 497#ifdef DESKTOP_VERSION
483 return QListView::sizeHint(); 498 return Q3ListView::sizeHint();
484#else 499#else
485 return QSize ( 40, 40 ); 500 return QSize ( 40, 40 );
486#endif 501#endif
487 502
488} 503}
489bool KListView::isExecuteArea( int x ) 504bool KListView::isExecuteArea( int x )
490{ 505{
491 if( allColumnsShowFocus() ) 506 if( allColumnsShowFocus() )
492 return true; 507 return true;
493 else { 508 else {
494 int offset = 0; 509 int offset = 0;
495 int width = columnWidth( 0 ); 510 int width = columnWidth( 0 );
496 int pos = header()->mapToIndex( 0 ); 511 int pos = header()->mapToIndex( 0 );
497 512
498 for ( int index = 0; index < pos; index++ ) 513 for ( int index = 0; index < pos; index++ )
499 offset += columnWidth( header()->mapToSection( index ) ); 514 offset += columnWidth( header()->mapToSection( index ) );
500 515
501 x += contentsX(); // in case of a horizontal scrollbar 516 x += contentsX(); // in case of a horizontal scrollbar
502 return ( x > offset && x < ( offset + width ) ); 517 return ( x > offset && x < ( offset + width ) );
503 } 518 }
504} 519}
505 520
506void KListView::slotOnItem( QListViewItem *item ) 521void KListView::slotOnItem( Q3ListViewItem *item )
507{ 522{
508 QPoint vp = viewport()->mapFromGlobal( QCursor::pos() ); 523 QPoint vp = viewport()->mapFromGlobal( QCursor::pos() );
509 if ( item && isExecuteArea( vp.x() ) && (d->autoSelectDelay > -1) && d->bUseSingle ) { 524 if ( item && isExecuteArea( vp.x() ) && (d->autoSelectDelay > -1) && d->bUseSingle ) {
510 d->autoSelect.start( d->autoSelectDelay, true ); 525 d->autoSelect.start( d->autoSelectDelay, true );
511 d->pCurrentItem = item; 526 d->pCurrentItem = item;
512 } 527 }
513} 528}
514 529
515void KListView::slotOnViewport() 530void KListView::slotOnViewport()
516{ 531{
517 if ( d->bChangeCursorOverItem ) 532 if ( d->bChangeCursorOverItem )
518 viewport()->unsetCursor(); 533 viewport()->unsetCursor();
519 534
520 d->autoSelect.stop(); 535 d->autoSelect.stop();
521 d->pCurrentItem = 0L; 536 d->pCurrentItem = 0L;
522} 537}
523 538
524void KListView::slotSettingsChanged(int category) 539void KListView::slotSettingsChanged(int category)
525{ 540{
526 //qDebug("KListView::slotSettingsChanged has to be verified"); 541 //qDebug("KListView::slotSettingsChanged has to be verified");
527 542
528 543
529 switch (category) 544 switch (category)
530 { 545 {
531 //US I create my private category (=1) to set the settings 546 //US I create my private category (=1) to set the settings
532 case 1: 547 case 1:
533 d->dragDelay = 2; 548 d->dragDelay = 2;
534 //US set explicitly d->bUseSingle = KGlobalSettings::singleClick(); 549 //US set explicitly d->bUseSingle = KGlobalSettings::singleClick();
535 // qDebug("KListView::slotSettingsChanged: single%i", d->bUseSingle); 550 // qDebug("KListView::slotSettingsChanged: single%i", d->bUseSingle);
536 551
537 disconnect(this, SIGNAL (mouseButtonClicked (int, QListViewItem*, const QPoint &, int)), 552 disconnect(this, SIGNAL (mouseButtonClicked (int, Q3ListViewItem*, const QPoint &, int)),
538 this, SLOT (slotMouseButtonClicked (int, QListViewItem*, const QPoint &, int))); 553 this, SLOT (slotMouseButtonClicked (int, Q3ListViewItem*, const QPoint &, int)));
539 554
540 if( d->bUseSingle ) 555 if( d->bUseSingle )
541 connect (this, SIGNAL (mouseButtonClicked (int, QListViewItem*, const QPoint &, int)), 556 connect (this, SIGNAL (mouseButtonClicked (int, Q3ListViewItem*, const QPoint &, int)),
542 this, SLOT (slotMouseButtonClicked( int, QListViewItem*, const QPoint &, int))); 557 this, SLOT (slotMouseButtonClicked( int, Q3ListViewItem*, const QPoint &, int)));
543 558
544 //US d->bChangeCursorOverItem = KGlobalSettings::changeCursorOverIcon(); 559 //US d->bChangeCursorOverItem = KGlobalSettings::changeCursorOverIcon();
545 //US d->autoSelectDelay = KGlobalSettings::autoSelectDelay(); 560 //US d->autoSelectDelay = KGlobalSettings::autoSelectDelay();
546 561
547 if( !d->bUseSingle || !d->bChangeCursorOverItem ) 562 if( !d->bUseSingle || !d->bChangeCursorOverItem )
548 viewport()->unsetCursor(); 563 viewport()->unsetCursor();
549 564
550 break; 565 break;
551 566
552 /*US 567 /*US
553 case KApplication::SETTINGS_MOUSE: 568 case KApplication::SETTINGS_MOUSE:
554 d->dragDelay = KGlobalSettings::dndEventDelay(); 569 d->dragDelay = KGlobalSettings::dndEventDelay();
555 d->bUseSingle = KGlobalSettings::singleClick(); 570 d->bUseSingle = KGlobalSettings::singleClick();
556 571
557 disconnect(this, SIGNAL (mouseButtonClicked (int, QListViewItem*, const QPoint &, int)), 572 disconnect(this, SIGNAL (mouseButtonClicked (int, QListViewItem*, const QPoint &, int)),
558 this, SLOT (slotMouseButtonClicked (int, QListViewItem*, const QPoint &, int))); 573 this, SLOT (slotMouseButtonClicked (int, QListViewItem*, const QPoint &, int)));
@@ -598,345 +613,345 @@ void KListView::slotSettingsChanged(int category)
598void KListView::slotAutoSelect() 613void KListView::slotAutoSelect()
599{ 614{
600 // check that the item still exists 615 // check that the item still exists
601 if( itemIndex( d->pCurrentItem ) == -1 ) 616 if( itemIndex( d->pCurrentItem ) == -1 )
602 return; 617 return;
603 618
604 if (!isActiveWindow()) 619 if (!isActiveWindow())
605 { 620 {
606 d->autoSelect.stop(); 621 d->autoSelect.stop();
607 return; 622 return;
608 } 623 }
609 624
610 //Give this widget the keyboard focus. 625 //Give this widget the keyboard focus.
611 if( !hasFocus() ) 626 if( !hasFocus() )
612 setFocus(); 627 setFocus();
613 628
614 QListViewItem* previousItem = currentItem(); 629 Q3ListViewItem* previousItem = currentItem();
615 setCurrentItem( d->pCurrentItem ); 630 setCurrentItem( d->pCurrentItem );
616 631
617#if 0 632#if 0
618#ifndef Q_WS_QWS 633#ifndef Q_WS_QWS
619 // FIXME(E): Implement for Qt Embedded 634 // FIXME(E): Implement for Qt Embedded
620 if( d->pCurrentItem ) { 635 if( d->pCurrentItem ) {
621 //Shift pressed? 636 //Shift pressed?
622 if( (keybstate & ShiftMask) ) { 637 if( (keybstate & ShiftMask) ) {
623 bool block = signalsBlocked(); 638 bool block = signalsBlocked();
624 blockSignals( true ); 639 blockSignals( true );
625 640
626 //No Ctrl? Then clear before! 641 //No Ctrl? Then clear before!
627 if( !(keybstate & ControlMask) ) 642 if( !(keybstate & ControlMask) )
628 clearSelection(); 643 clearSelection();
629 644
630 bool select = !d->pCurrentItem->isSelected(); 645 bool select = !d->pCurrentItem->isSelected();
631 bool update = viewport()->isUpdatesEnabled(); 646 bool update = viewport()->isUpdatesEnabled();
632 viewport()->setUpdatesEnabled( false ); 647 viewport()->setUpdatesEnabled( false );
633 648
634 bool down = previousItem->itemPos() < d->pCurrentItem->itemPos(); 649 bool down = previousItem->itemPos() < d->pCurrentItem->itemPos();
635 QListViewItemIterator lit( down ? previousItem : d->pCurrentItem ); 650 Q3ListViewItemIterator lit( down ? previousItem : d->pCurrentItem );
636 for ( ; lit.current(); ++lit ) { 651 for ( ; lit.current(); ++lit ) {
637 if ( down && lit.current() == d->pCurrentItem ) { 652 if ( down && lit.current() == d->pCurrentItem ) {
638 d->pCurrentItem->setSelected( select ); 653 d->pCurrentItem->setSelected( select );
639 break; 654 break;
640 } 655 }
641 if ( !down && lit.current() == previousItem ) { 656 if ( !down && lit.current() == previousItem ) {
642 previousItem->setSelected( select ); 657 previousItem->setSelected( select );
643 break; 658 break;
644 } 659 }
645 lit.current()->setSelected( select ); 660 lit.current()->setSelected( select );
646 } 661 }
647 662
648 blockSignals( block ); 663 blockSignals( block );
649 viewport()->setUpdatesEnabled( update ); 664 viewport()->setUpdatesEnabled( update );
650 triggerUpdate(); 665 triggerUpdate();
651 666
652 emit selectionChanged(); 667 emit selectionChanged();
653 668
654 if( selectionMode() == QListView::Single ) 669 if( selectionMode() == Q3ListView::Single )
655 emit selectionChanged( d->pCurrentItem ); 670 emit selectionChanged( d->pCurrentItem );
656 } 671 }
657 else if( (keybstate & ControlMask) ) 672 else if( (keybstate & ControlMask) )
658 setSelected( d->pCurrentItem, !d->pCurrentItem->isSelected() ); 673 setSelected( d->pCurrentItem, !d->pCurrentItem->isSelected() );
659 else { 674 else {
660 bool block = signalsBlocked(); 675 bool block = signalsBlocked();
661 blockSignals( true ); 676 blockSignals( true );
662 677
663 if( !d->pCurrentItem->isSelected() ) 678 if( !d->pCurrentItem->isSelected() )
664 clearSelection(); 679 clearSelection();
665 680
666 blockSignals( block ); 681 blockSignals( block );
667 682
668 setSelected( d->pCurrentItem, true ); 683 setSelected( d->pCurrentItem, true );
669 } 684 }
670 } 685 }
671 else 686 else
672 kdDebug() << "KListView::slotAutoSelect: Thats not supposed to happen!!!!" << endl; 687 kdDebug() << "KListView::slotAutoSelect: Thats not supposed to happen!!!!" << endl;
673#endif 688#endif
674#endif 689#endif
675} 690}
676 691
677void KListView::slotHeaderChanged() 692void KListView::slotHeaderChanged()
678{ 693{
679 if (d->fullWidth && columns()) 694 if (d->fullWidth && columns())
680 { 695 {
681 int w = 0; 696 int w = 0;
682 for (int i = 0; i < columns() - 1; ++i) w += columnWidth(i); 697 for (int i = 0; i < columns() - 1; ++i) w += columnWidth(i);
683 setColumnWidth( columns() - 1, viewport()->width() - w - 1 ); 698 setColumnWidth( columns() - 1, viewport()->width() - w - 1 );
684 } 699 }
685} 700}
686 701
687void KListView::emitExecute( int buttonstate, QListViewItem *item, const QPoint &pos, int c) 702void KListView::emitExecute( int buttonstate, Q3ListViewItem *item, const QPoint &pos, int c)
688{ 703{
689 // qDebug("KListView::emitExecute buttonstate=%i", buttonstate); 704 // qDebug("KListView::emitExecute buttonstate=%i", buttonstate);
690 if( isExecuteArea( viewport()->mapFromGlobal(pos) ) ) { 705 if( isExecuteArea( viewport()->mapFromGlobal(pos) ) ) {
691 706
692 // Double click mode ? 707 // Double click mode ?
693 if ( !d->bUseSingle ) 708 if ( !d->bUseSingle )
694 { 709 {
695 emit executed( item ); 710 emit executed( item );
696 emit executed( item, pos, c ); 711 emit executed( item, pos, c );
697 } 712 }
698 else 713 else
699 { 714 {
700 //US special implementation for embedded systems 715 //US special implementation for embedded systems
701 d->autoSelect.stop(); 716 d->autoSelect.stop();
702 717
703 //Dont emit executed if in SC mode and Shift or Ctrl are pressed 718 //Dont emit executed if in SC mode and Shift or Ctrl are pressed
704 if( !( (buttonstate==ShiftButton) || (buttonstate==ControlButton) )) { 719 if( !( (buttonstate==Qt::ShiftButton) || (buttonstate==Qt::ControlButton) )) {
705 // if( !( ((keybstate & ShiftMask) || (keybstate & ControlMask)) ) ) { 720 // if( !( ((keybstate & ShiftMask) || (keybstate & ControlMask)) ) ) {
706 721
707 emit executed( item ); 722 emit executed( item );
708 emit executed( item, pos, c ); 723 emit executed( item, pos, c );
709 } 724 }
710 } 725 }
711 } 726 }
712} 727}
713 728
714void KListView::focusInEvent( QFocusEvent *fe ) 729void KListView::focusInEvent( QFocusEvent *fe )
715{ 730{
716 // kdDebug()<<"KListView::focusInEvent()"<<endl; 731 // kdDebug()<<"KListView::focusInEvent()"<<endl;
717 QListView::focusInEvent( fe ); 732 Q3ListView::focusInEvent( fe );
718 if ((d->selectedBySimpleMove) 733 if ((d->selectedBySimpleMove)
719 && (d->selectionMode == FileManager) 734 && (d->selectionMode == FileManager)
720 && (fe->reason()!=QFocusEvent::Popup) 735 && (fe->reason()!=QFocusEvent::Popup)
721 && (fe->reason()!=QFocusEvent::ActiveWindow) 736 && (fe->reason()!=QFocusEvent::ActiveWindow)
722 && (currentItem()!=0)) 737 && (currentItem()!=0))
723 { 738 {
724 currentItem()->setSelected(true); 739 currentItem()->setSelected(true);
725 currentItem()->repaint(); 740 currentItem()->repaint();
726 emit selectionChanged(); 741 emit selectionChanged();
727 }; 742 };
728} 743}
729 744
730void KListView::focusOutEvent( QFocusEvent *fe ) 745void KListView::focusOutEvent( QFocusEvent *fe )
731{ 746{
732 cleanDropVisualizer(); 747 cleanDropVisualizer();
733 cleanItemHighlighter(); 748 cleanItemHighlighter();
734 749
735 d->autoSelect.stop(); 750 d->autoSelect.stop();
736 751
737 if ((d->selectedBySimpleMove) 752 if ((d->selectedBySimpleMove)
738 && (d->selectionMode == FileManager) 753 && (d->selectionMode == FileManager)
739 && (fe->reason()!=QFocusEvent::Popup) 754 && (fe->reason()!=QFocusEvent::Popup)
740 && (fe->reason()!=QFocusEvent::ActiveWindow) 755 && (fe->reason()!=QFocusEvent::ActiveWindow)
741 && (currentItem()!=0) 756 && (currentItem()!=0)
742/*US && (!d->editor->isVisible()) */ 757/*US && (!d->editor->isVisible()) */
743 ) 758 )
744 { 759 {
745 currentItem()->setSelected(false); 760 currentItem()->setSelected(false);
746 currentItem()->repaint(); 761 currentItem()->repaint();
747 emit selectionChanged(); 762 emit selectionChanged();
748 }; 763 };
749 764
750 QListView::focusOutEvent( fe ); 765 Q3ListView::focusOutEvent( fe );
751} 766}
752 767
753void KListView::leaveEvent( QEvent *e ) 768void KListView::leaveEvent( QEvent *e )
754{ 769{
755 d->autoSelect.stop(); 770 d->autoSelect.stop();
756 771
757 QListView::leaveEvent( e ); 772 Q3ListView::leaveEvent( e );
758} 773}
759 774
760bool KListView::event( QEvent *e ) 775bool KListView::event( QEvent *e )
761{ 776{
762 if (e->type() == QEvent::ApplicationPaletteChange) { 777 if (e->type() == QEvent::ApplicationPaletteChange) {
763 //qDebug("KListView::event make alternate color configurable"); 778 //qDebug("KListView::event make alternate color configurable");
764//US d->alternateBackground=KGlobalSettings::alternateBackgroundColor(); 779//US d->alternateBackground=KGlobalSettings::alternateBackgroundColor();
765 d->alternateBackground = QColor(240, 240, 240); 780 d->alternateBackground = QColor(240, 240, 240);
766 } 781 }
767 782
768 return QListView::event(e); 783 return Q3ListView::event(e);
769} 784}
770 785
771void KListView::contentsMousePressEvent( QMouseEvent *e ) 786void KListView::contentsMousePressEvent( QMouseEvent *e )
772{ 787{
773 //qDebug("KListView::contentsMousePressEvent"); 788 //qDebug("KListView::contentsMousePressEvent");
774 if( (selectionModeExt() == Extended) && (e->state() & ShiftButton) && !(e->state() & ControlButton) ) 789 if( (selectionModeExt() == Extended) && (e->state() & Qt::ShiftButton) && !(e->state() & Qt::ControlButton) )
775 { 790 {
776 bool block = signalsBlocked(); 791 bool block = signalsBlocked();
777 blockSignals( true ); 792 blockSignals( true );
778 793
779 clearSelection(); 794 clearSelection();
780 795
781 blockSignals( block ); 796 blockSignals( block );
782 } 797 }
783 else if ((selectionModeExt()==FileManager) && (d->selectedBySimpleMove)) 798 else if ((selectionModeExt()==FileManager) && (d->selectedBySimpleMove))
784 { 799 {
785 d->selectedBySimpleMove=false; 800 d->selectedBySimpleMove=false;
786 d->selectedUsingMouse=true; 801 d->selectedUsingMouse=true;
787 if (currentItem()!=0) 802 if (currentItem()!=0)
788 { 803 {
789 currentItem()->setSelected(false); 804 currentItem()->setSelected(false);
790 currentItem()->repaint(); 805 currentItem()->repaint();
791// emit selectionChanged(); 806// emit selectionChanged();
792 }; 807 };
793 }; 808 };
794 809
795 QPoint p( contentsToViewport( e->pos() ) ); 810 QPoint p( contentsToViewport( e->pos() ) );
796 QListViewItem *at = itemAt (p); 811 Q3ListViewItem *at = itemAt (p);
797 812
798 // true if the root decoration of the item "at" was clicked (i.e. the +/- sign) 813 // true if the root decoration of the item "at" was clicked (i.e. the +/- sign)
799 bool rootDecoClicked = at 814 bool rootDecoClicked = at
800 && ( p.x() <= header()->cellPos( header()->mapToActual( 0 ) ) + 815 && ( p.x() <= header()->cellPos( header()->mapToActual( 0 ) ) +
801 treeStepSize() * ( at->depth() + ( rootIsDecorated() ? 1 : 0) ) + itemMargin() ) 816 treeStepSize() * ( at->depth() + ( rootIsDecorated() ? 1 : 0) ) + itemMargin() )
802 && ( p.x() >= header()->cellPos( header()->mapToActual( 0 ) ) ); 817 && ( p.x() >= header()->cellPos( header()->mapToActual( 0 ) ) );
803 818
804 if (e->button() == LeftButton && !rootDecoClicked) 819 if (e->button() == Qt::LeftButton && !rootDecoClicked)
805 { 820 {
806 //Start a drag 821 //Start a drag
807 d->startDragPos = e->pos(); 822 d->startDragPos = e->pos();
808 823
809 if (at) 824 if (at)
810 { 825 {
811 d->validDrag = true; 826 d->validDrag = true;
812 d->pressedOnSelected = at->isSelected(); 827 d->pressedOnSelected = at->isSelected();
813 } 828 }
814 } 829 }
815 830
816 QListView::contentsMousePressEvent( e ); 831 Q3ListView::contentsMousePressEvent( e );
817} 832}
818 833
819void KListView::contentsMouseMoveEvent( QMouseEvent *e ) 834void KListView::contentsMouseMoveEvent( QMouseEvent *e )
820{ 835{
821 if (!dragEnabled() || d->startDragPos.isNull() || !d->validDrag) { 836 if (!dragEnabled() || d->startDragPos.isNull() || !d->validDrag) {
822 QListView::contentsMouseMoveEvent (e); 837 Q3ListView::contentsMouseMoveEvent (e);
823 return; 838 return;
824 } 839 }
825 840
826 QPoint vp = contentsToViewport(e->pos()); 841 QPoint vp = contentsToViewport(e->pos());
827 QListViewItem *item = itemAt( vp ); 842 Q3ListViewItem *item = itemAt( vp );
828 843
829 //do we process cursor changes at all? 844 //do we process cursor changes at all?
830 if ( item && d->bChangeCursorOverItem && d->bUseSingle ) 845 if ( item && d->bChangeCursorOverItem && d->bUseSingle )
831 { 846 {
832 //Cursor moved on a new item or in/out the execute area 847 //Cursor moved on a new item or in/out the execute area
833 if( (item != d->pCurrentItem) || 848 if( (item != d->pCurrentItem) ||
834 (isExecuteArea(vp) != d->cursorInExecuteArea) ) 849 (isExecuteArea(vp) != d->cursorInExecuteArea) )
835 { 850 {
836 d->cursorInExecuteArea = isExecuteArea(vp); 851 d->cursorInExecuteArea = isExecuteArea(vp);
837 //qDebug("KListView::contentsMouseMoveEvent drag&drop not supported yet"); 852 //qDebug("KListView::contentsMouseMoveEvent drag&drop not supported yet");
838/*US 853/*US
839 if( d->cursorInExecuteArea ) //cursor moved in execute area 854 if( d->cursorInExecuteArea ) //cursor moved in execute area
840 viewport()->setCursor( KCursor::handCursor() ); 855 viewport()->setCursor( KCursor::handCursor() );
841 else //cursor moved out of execute area 856 else //cursor moved out of execute area
842 viewport()->unsetCursor(); 857 viewport()->unsetCursor();
843*/ 858*/
844 } 859 }
845 } 860 }
846 861
847 bool dragOn = dragEnabled(); 862 bool dragOn = dragEnabled();
848 QPoint newPos = e->pos(); 863 QPoint newPos = e->pos();
849 if (dragOn && d->validDrag && 864 if (dragOn && d->validDrag &&
850 (newPos.x() > d->startDragPos.x()+d->dragDelay || 865 (newPos.x() > d->startDragPos.x()+d->dragDelay ||
851 newPos.x() < d->startDragPos.x()-d->dragDelay || 866 newPos.x() < d->startDragPos.x()-d->dragDelay ||
852 newPos.y() > d->startDragPos.y()+d->dragDelay || 867 newPos.y() > d->startDragPos.y()+d->dragDelay ||
853 newPos.y() < d->startDragPos.y()-d->dragDelay)) 868 newPos.y() < d->startDragPos.y()-d->dragDelay))
854 //(d->startDragPos - e->pos()).manhattanLength() > QApplication::startDragDistance()) 869 //(d->startDragPos - e->pos()).manhattanLength() > QApplication::startDragDistance())
855 { 870 {
856 QListView::contentsMouseReleaseEvent( 0 ); 871 Q3ListView::contentsMouseReleaseEvent( 0 );
857 startDrag(); 872 startDrag();
858 d->startDragPos = QPoint(); 873 d->startDragPos = QPoint();
859 d->validDrag = false; 874 d->validDrag = false;
860 } 875 }
861} 876}
862 877
863void KListView::contentsMouseReleaseEvent( QMouseEvent *e ) 878void KListView::contentsMouseReleaseEvent( QMouseEvent *e )
864{ 879{
865 if (e->button() == LeftButton) 880 if (e->button() == Qt::LeftButton)
866 { 881 {
867 // If the row was already selected, maybe we want to start an in-place editing 882 // If the row was already selected, maybe we want to start an in-place editing
868 if ( d->pressedOnSelected && itemsRenameable() ) 883 if ( d->pressedOnSelected && itemsRenameable() )
869 { 884 {
870 QPoint p( contentsToViewport( e->pos() ) ); 885 QPoint p( contentsToViewport( e->pos() ) );
871 QListViewItem *at = itemAt (p); 886 Q3ListViewItem *at = itemAt (p);
872 if ( at ) 887 if ( at )
873 { 888 {
874 // true if the root decoration of the item "at" was clicked (i.e. the +/- sign) 889 // true if the root decoration of the item "at" was clicked (i.e. the +/- sign)
875 bool rootDecoClicked = 890 bool rootDecoClicked =
876 ( p.x() <= header()->cellPos( header()->mapToActual( 0 ) ) + 891 ( p.x() <= header()->cellPos( header()->mapToActual( 0 ) ) +
877 treeStepSize() * ( at->depth() + ( rootIsDecorated() ? 1 : 0) ) + itemMargin() ) 892 treeStepSize() * ( at->depth() + ( rootIsDecorated() ? 1 : 0) ) + itemMargin() )
878 && ( p.x() >= header()->cellPos( header()->mapToActual( 0 ) ) ); 893 && ( p.x() >= header()->cellPos( header()->mapToActual( 0 ) ) );
879 894
880 if (!rootDecoClicked) 895 if (!rootDecoClicked)
881 { 896 {
882 int col = header()->mapToLogical( header()->cellAt( p.x() ) ); 897 int col = header()->mapToLogical( header()->cellAt( p.x() ) );
883 if ( d->renameable.contains(col) ) 898 if ( d->renameable.contains(col) )
884 rename(at, col); 899 rename(at, col);
885 } 900 }
886 } 901 }
887 } 902 }
888 903
889 d->pressedOnSelected = false; 904 d->pressedOnSelected = false;
890 d->validDrag = false; 905 d->validDrag = false;
891 d->startDragPos = QPoint(); 906 d->startDragPos = QPoint();
892 } 907 }
893 QListView::contentsMouseReleaseEvent( e ); 908 Q3ListView::contentsMouseReleaseEvent( e );
894} 909}
895 910
896void KListView::contentsMouseDoubleClickEvent ( QMouseEvent *e ) 911void KListView::contentsMouseDoubleClickEvent ( QMouseEvent *e )
897{ 912{
898 //qDebug("KListView::contentsMouseDoubleClickEvent"); 913 //qDebug("KListView::contentsMouseDoubleClickEvent");
899 // We don't want to call the parent method because it does setOpen, 914 // We don't want to call the parent method because it does setOpen,
900 // whereas we don't do it in single click mode... (David) 915 // whereas we don't do it in single click mode... (David)
901 //QListView::contentsMouseDoubleClickEvent( e ); 916 //QListView::contentsMouseDoubleClickEvent( e );
902 917
903 QPoint vp = contentsToViewport(e->pos()); 918 QPoint vp = contentsToViewport(e->pos());
904 QListViewItem *item = itemAt( vp ); 919 Q3ListViewItem *item = itemAt( vp );
905 emit QListView::doubleClicked( item ); // we do it now 920 emit Q3ListView::doubleClicked( item ); // we do it now
906 921
907 int col = item ? header()->mapToLogical( header()->cellAt( vp.x() ) ) : -1; 922 int col = item ? header()->mapToLogical( header()->cellAt( vp.x() ) ) : -1;
908 923
909 if( item ) { 924 if( item ) {
910 //qDebug("KListView::contentsMouseDoubleClickEvent: emit doubleClicked"); 925 //qDebug("KListView::contentsMouseDoubleClickEvent: emit doubleClicked");
911 926
912 emit doubleClicked( item, e->globalPos(), col ); 927 emit doubleClicked( item, e->globalPos(), col );
913 928
914 if( (e->button() == LeftButton) && !d->bUseSingle ) { 929 if( (e->button() == Qt::LeftButton) && !d->bUseSingle ) {
915 //qDebug("KListView::contentsMouseDoubleClickEvent: emitExecute"); 930 //qDebug("KListView::contentsMouseDoubleClickEvent: emitExecute");
916 931
917 emitExecute( e->button(), item, e->globalPos(), col); 932 emitExecute( e->button(), item, e->globalPos(), col);
918 } 933 }
919 } 934 }
920} 935}
921 936
922void KListView::slotMouseButtonClicked( int btn, QListViewItem *item, const QPoint &pos, int c ) 937void KListView::slotMouseButtonClicked( int btn, Q3ListViewItem *item, const QPoint &pos, int c )
923{ 938{
924 //qDebug("KListView::slotMouseButtonClicked"); 939 //qDebug("KListView::slotMouseButtonClicked");
925 940
926 if( (btn == LeftButton) && item ) { 941 if( (btn == Qt::LeftButton) && item ) {
927 //qDebug("KListView::slotMouseButtonClicked: emitExecute"); 942 //qDebug("KListView::slotMouseButtonClicked: emitExecute");
928 943
929 emitExecute(btn, item, pos, c); 944 emitExecute(btn, item, pos, c);
930 } 945 }
931} 946}
932 947
933void KListView::contentsDropEvent(QDropEvent* e) 948void KListView::contentsDropEvent(QDropEvent* e)
934{ 949{
935qDebug("KListView::contentsDropEvent drag&drop not supported yet"); 950qDebug("KListView::contentsDropEvent drag&drop not supported yet");
936/*US 951/*US
937 cleanDropVisualizer(); 952 cleanDropVisualizer();
938 cleanItemHighlighter(); 953 cleanItemHighlighter();
939 d->dragExpand.stop(); 954 d->dragExpand.stop();
940 955
941 if (acceptDrag (e)) 956 if (acceptDrag (e))
942 { 957 {
@@ -948,72 +963,72 @@ qDebug("KListView::contentsDropEvent drag&drop not supported yet");
948 if (e->source() == viewport() && itemsMovable()) 963 if (e->source() == viewport() && itemsMovable())
949 movableDropEvent(parent, afterme); 964 movableDropEvent(parent, afterme);
950 else 965 else
951 { 966 {
952 967
953 emit dropped(e, afterme); 968 emit dropped(e, afterme);
954 emit dropped(this, e, afterme); 969 emit dropped(this, e, afterme);
955 emit dropped(e, parent, afterme); 970 emit dropped(e, parent, afterme);
956 emit dropped(this, e, parent, afterme); 971 emit dropped(this, e, parent, afterme);
957 972
958 } 973 }
959 } 974 }
960*/ 975*/
961 976
962} 977}
963 978
964void KListView::movableDropEvent (QListViewItem* parent, QListViewItem* afterme) 979void KListView::movableDropEvent (Q3ListViewItem* parent, Q3ListViewItem* afterme)
965{ 980{
966 QPtrList<QListViewItem> items, afterFirsts, afterNows; 981 Q3PtrList<Q3ListViewItem> items, afterFirsts, afterNows;
967 QListViewItem *current=currentItem(); 982 Q3ListViewItem *current=currentItem();
968 bool hasMoved=false; 983 bool hasMoved=false;
969 for (QListViewItem *i = firstChild(), *iNext=0; i != 0; i = iNext) 984 for (Q3ListViewItem *i = firstChild(), *iNext=0; i != 0; i = iNext)
970 { 985 {
971 iNext=i->itemBelow(); 986 iNext=i->itemBelow();
972 if (!i->isSelected()) 987 if (!i->isSelected())
973 continue; 988 continue;
974 989
975 // don't drop an item after itself, or else 990 // don't drop an item after itself, or else
976 // it moves to the top of the list 991 // it moves to the top of the list
977 if (i==afterme) 992 if (i==afterme)
978 continue; 993 continue;
979 994
980 i->setSelected(false); 995 i->setSelected(false);
981 996
982 QListViewItem *afterFirst = i->itemAbove(); 997 Q3ListViewItem *afterFirst = i->itemAbove();
983 998
984 if (!hasMoved) 999 if (!hasMoved)
985 { 1000 {
986 emit aboutToMove(); 1001 emit aboutToMove();
987 hasMoved=true; 1002 hasMoved=true;
988 } 1003 }
989 1004
990 moveItem(i, parent, afterme); 1005 moveItem(i, parent, afterme);
991 1006
992 // ###### This should include the new parent !!! -> KDE 3.0 1007 // ###### This should include the new parent !!! -> KDE 3.0
993 // If you need this right now, have a look at keditbookmarks. 1008 // If you need this right now, have a look at keditbookmarks.
994 emit moved(i, afterFirst, afterme); 1009 emit moved(i, afterFirst, afterme);
995 1010
996 items.append (i); 1011 items.append (i);
997 afterFirsts.append (afterFirst); 1012 afterFirsts.append (afterFirst);
998 afterNows.append (afterme); 1013 afterNows.append (afterme);
999 1014
1000 afterme = i; 1015 afterme = i;
1001 } 1016 }
1002 clearSelection(); 1017 clearSelection();
1003 for (QListViewItem *i=items.first(); i != 0; i=items.next() ) 1018 for (Q3ListViewItem *i=items.first(); i != 0; i=items.next() )
1004 i->setSelected(true); 1019 i->setSelected(true);
1005 if (current) 1020 if (current)
1006 setCurrentItem(current); 1021 setCurrentItem(current);
1007 1022
1008 emit moved(items,afterFirsts,afterNows); 1023 emit moved(items,afterFirsts,afterNows);
1009 1024
1010 if (firstChild()) 1025 if (firstChild())
1011 emit moved(); 1026 emit moved();
1012} 1027}
1013 1028
1014void KListView::contentsDragMoveEvent(QDragMoveEvent *event) 1029void KListView::contentsDragMoveEvent(QDragMoveEvent *event)
1015{ 1030{
1016 qDebug("KListView::contentsDropEvent drag&drop not supported yet"); 1031 qDebug("KListView::contentsDropEvent drag&drop not supported yet");
1017/*US 1032/*US
1018 if (acceptDrag(event)) 1033 if (acceptDrag(event))
1019 { 1034 {
@@ -1073,139 +1088,139 @@ void KListView::contentsDragLeaveEvent (QDragLeaveEvent*)
1073 1088
1074void KListView::cleanDropVisualizer() 1089void KListView::cleanDropVisualizer()
1075{ 1090{
1076 if (d->mOldDropVisualizer.isValid()) 1091 if (d->mOldDropVisualizer.isValid())
1077 { 1092 {
1078 QRect rect=d->mOldDropVisualizer; 1093 QRect rect=d->mOldDropVisualizer;
1079 d->mOldDropVisualizer = QRect(); 1094 d->mOldDropVisualizer = QRect();
1080 viewport()->repaint(rect, true); 1095 viewport()->repaint(rect, true);
1081 } 1096 }
1082} 1097}
1083 1098
1084int KListView::depthToPixels( int depth ) 1099int KListView::depthToPixels( int depth )
1085{ 1100{
1086 return treeStepSize() * ( depth + (rootIsDecorated() ? 1 : 0) ) + itemMargin(); 1101 return treeStepSize() * ( depth + (rootIsDecorated() ? 1 : 0) ) + itemMargin();
1087} 1102}
1088 1103
1089void KListView::findDrop(const QPoint &pos, QListViewItem *&parent, QListViewItem *&after) 1104void KListView::findDrop(const QPoint &pos, Q3ListViewItem *&parent, Q3ListViewItem *&after)
1090{ 1105{
1091 QPoint p (contentsToViewport(pos)); 1106 QPoint p (contentsToViewport(pos));
1092 1107
1093 // Get the position to put it in 1108 // Get the position to put it in
1094 QListViewItem *atpos = itemAt(p); 1109 Q3ListViewItem *atpos = itemAt(p);
1095 1110
1096 QListViewItem *above; 1111 Q3ListViewItem *above;
1097 if (!atpos) // put it at the end 1112 if (!atpos) // put it at the end
1098 above = lastItem(); 1113 above = lastItem();
1099 else 1114 else
1100 { 1115 {
1101 // Get the closest item before us ('atpos' or the one above, if any) 1116 // Get the closest item before us ('atpos' or the one above, if any)
1102 if (p.y() - itemRect(atpos).topLeft().y() < (atpos->height()/2)) 1117 if (p.y() - itemRect(atpos).topLeft().y() < (atpos->height()/2))
1103 above = atpos->itemAbove(); 1118 above = atpos->itemAbove();
1104 else 1119 else
1105 above = atpos; 1120 above = atpos;
1106 } 1121 }
1107 1122
1108 if (above) 1123 if (above)
1109 { 1124 {
1110 // Now, we know we want to go after "above". But as a child or as a sibling ? 1125 // Now, we know we want to go after "above". But as a child or as a sibling ?
1111 // We have to ask the "above" item if it accepts children. 1126 // We have to ask the "above" item if it accepts children.
1112 if (above->isExpandable()) 1127 if (above->isExpandable())
1113 { 1128 {
1114 // The mouse is sufficiently on the right ? - doesn't matter if 'above' has visible children 1129 // The mouse is sufficiently on the right ? - doesn't matter if 'above' has visible children
1115 if (p.x() >= depthToPixels( above->depth() + 1 ) || 1130 if (p.x() >= depthToPixels( above->depth() + 1 ) ||
1116 (above->isOpen() && above->childCount() > 0) ) 1131 (above->isOpen() && above->childCount() > 0) )
1117 { 1132 {
1118 parent = above; 1133 parent = above;
1119 after = 0L; 1134 after = 0L;
1120 return; 1135 return;
1121 } 1136 }
1122 } 1137 }
1123 1138
1124 // Ok, there's one more level of complexity. We may want to become a new 1139 // Ok, there's one more level of complexity. We may want to become a new
1125 // sibling, but of an upper-level group, rather than the "above" item 1140 // sibling, but of an upper-level group, rather than the "above" item
1126 QListViewItem * betterAbove = above->parent(); 1141 Q3ListViewItem * betterAbove = above->parent();
1127 QListViewItem * last = above; 1142 Q3ListViewItem * last = above;
1128 while ( betterAbove ) 1143 while ( betterAbove )
1129 { 1144 {
1130 // We are allowed to become a sibling of "betterAbove" only if we are 1145 // We are allowed to become a sibling of "betterAbove" only if we are
1131 // after its last child 1146 // after its last child
1132 if ( last->nextSibling() == 0 ) 1147 if ( last->nextSibling() == 0 )
1133 { 1148 {
1134 if (p.x() < depthToPixels ( betterAbove->depth() + 1 )) 1149 if (p.x() < depthToPixels ( betterAbove->depth() + 1 ))
1135 above = betterAbove; // store this one, but don't stop yet, there may be a better one 1150 above = betterAbove; // store this one, but don't stop yet, there may be a better one
1136 else 1151 else
1137 break; // not enough on the left, so stop 1152 break; // not enough on the left, so stop
1138 last = betterAbove; 1153 last = betterAbove;
1139 betterAbove = betterAbove->parent(); // up one level 1154 betterAbove = betterAbove->parent(); // up one level
1140 } else 1155 } else
1141 break; // we're among the child of betterAbove, not after the last one 1156 break; // we're among the child of betterAbove, not after the last one
1142 } 1157 }
1143 } 1158 }
1144 // set as sibling 1159 // set as sibling
1145 after = above; 1160 after = above;
1146 parent = after ? after->parent() : 0L ; 1161 parent = after ? after->parent() : 0L ;
1147} 1162}
1148 1163
1149QListViewItem* KListView::lastChild () const 1164Q3ListViewItem* KListView::lastChild () const
1150{ 1165{
1151 QListViewItem* lastchild = firstChild(); 1166 Q3ListViewItem* lastchild = firstChild();
1152 1167
1153 if (lastchild) 1168 if (lastchild)
1154 for (; lastchild->nextSibling(); lastchild = lastchild->nextSibling()); 1169 for (; lastchild->nextSibling(); lastchild = lastchild->nextSibling());
1155 1170
1156 return lastchild; 1171 return lastchild;
1157} 1172}
1158 1173
1159QListViewItem *KListView::lastItem() const 1174Q3ListViewItem *KListView::lastItem() const
1160{ 1175{
1161 QListViewItem* last = lastChild(); 1176 Q3ListViewItem* last = lastChild();
1162 1177
1163 for (QListViewItemIterator it (last); it.current(); ++it) 1178 for (Q3ListViewItemIterator it (last); it.current(); ++it)
1164 last = it.current(); 1179 last = it.current();
1165 1180
1166 return last; 1181 return last;
1167} 1182}
1168 1183
1169KLineEdit *KListView::renameLineEdit() const 1184KLineEdit *KListView::renameLineEdit() const
1170{ 1185{
1171//US return d->editor; 1186//US return d->editor;
1172qDebug("KListView::renameLineEdit returns 0. Might crash"); 1187qDebug("KListView::renameLineEdit returns 0. Might crash");
1173return 0; 1188return 0;
1174} 1189}
1175 1190
1176void KListView::startDrag() 1191void KListView::startDrag()
1177{ 1192{
1178qDebug("KListView::startDrag drag&drop not supported yet."); 1193qDebug("KListView::startDrag drag&drop not supported yet.");
1179/*US 1194/*US
1180 QDragObject *drag = dragObject(); 1195 QDragObject *drag = dragObject();
1181 1196
1182 if (!drag) 1197 if (!drag)
1183 return; 1198 return;
1184 1199
1185 if (drag->drag() && drag->target() != viewport()) 1200 if (drag->drag() && drag->target() != viewport())
1186 emit moved(); 1201 emit moved();
1187*/ 1202*/
1188} 1203}
1189 1204
1190QDragObject *KListView::dragObject() 1205Q3DragObject *KListView::dragObject()
1191{ 1206{
1192 if (!currentItem()) 1207 if (!currentItem())
1193 return 0; 1208 return 0;
1194 1209
1195 return new QStoredDrag("application/x-qlistviewitem", viewport()); 1210 return new Q3StoredDrag("application/x-qlistviewitem", viewport());
1196} 1211}
1197 1212
1198void KListView::setItemsMovable(bool b) 1213void KListView::setItemsMovable(bool b)
1199{ 1214{
1200 d->itemsMovable=b; 1215 d->itemsMovable=b;
1201} 1216}
1202 1217
1203bool KListView::itemsMovable() const 1218bool KListView::itemsMovable() const
1204{ 1219{
1205 return d->itemsMovable; 1220 return d->itemsMovable;
1206} 1221}
1207 1222
1208void KListView::setItemsRenameable(bool b) 1223void KListView::setItemsRenameable(bool b)
1209{ 1224{
1210 d->itemsRenameable=b; 1225 d->itemsRenameable=b;
1211} 1226}
@@ -1233,45 +1248,45 @@ void KListView::setAutoOpen(bool b)
1233 1248
1234bool KListView::autoOpen() const 1249bool KListView::autoOpen() const
1235{ 1250{
1236 return d->autoOpen; 1251 return d->autoOpen;
1237} 1252}
1238 1253
1239bool KListView::dropVisualizer() const 1254bool KListView::dropVisualizer() const
1240{ 1255{
1241 return d->dropVisualizer; 1256 return d->dropVisualizer;
1242} 1257}
1243 1258
1244void KListView::setDropVisualizer(bool b) 1259void KListView::setDropVisualizer(bool b)
1245{ 1260{
1246 d->dropVisualizer=b; 1261 d->dropVisualizer=b;
1247} 1262}
1248 1263
1249QPtrList<QListViewItem> KListView::selectedItems() const 1264Q3PtrList<Q3ListViewItem> KListView::selectedItems() const
1250{ 1265{
1251 QPtrList<QListViewItem> list; 1266 Q3PtrList<Q3ListViewItem> list;
1252 for (QListViewItem *i=firstChild(); i!=0; i=i->itemBelow()) 1267 for (Q3ListViewItem *i=firstChild(); i!=0; i=i->itemBelow())
1253 if (i->isSelected()) list.append(i); 1268 if (i->isSelected()) list.append(i);
1254 return list; 1269 return list;
1255} 1270}
1256 1271
1257 1272
1258void KListView::moveItem(QListViewItem *item, QListViewItem *parent, QListViewItem *after) 1273void KListView::moveItem(Q3ListViewItem *item, Q3ListViewItem *parent, Q3ListViewItem *after)
1259{ 1274{
1260 // sanity check - don't move a item into it's own child structure 1275 // sanity check - don't move a item into it's own child structure
1261 QListViewItem *i = parent; 1276 Q3ListViewItem *i = parent;
1262 while(i) 1277 while(i)
1263 { 1278 {
1264 if(i == item) 1279 if(i == item)
1265 return; 1280 return;
1266 i = i->parent(); 1281 i = i->parent();
1267 } 1282 }
1268 1283
1269 // Basically reimplementing the QListViewItem(QListViewItem*, QListViewItem*) constructor 1284 // Basically reimplementing the QListViewItem(QListViewItem*, QListViewItem*) constructor
1270 // in here, without ever deleting the item. 1285 // in here, without ever deleting the item.
1271 if (item->parent()) 1286 if (item->parent())
1272 item->parent()->takeItem(item); 1287 item->parent()->takeItem(item);
1273 else 1288 else
1274 takeItem(item); 1289 takeItem(item);
1275 1290
1276 if (parent) 1291 if (parent)
1277 parent->insertItem(item); 1292 parent->insertItem(item);
@@ -1283,140 +1298,140 @@ void KListView::moveItem(QListViewItem *item, QListViewItem *parent, QListViewIt
1283} 1298}
1284 1299
1285void KListView::contentsDragEnterEvent(QDragEnterEvent *event) 1300void KListView::contentsDragEnterEvent(QDragEnterEvent *event)
1286{ 1301{
1287qDebug("KListView::contentsDragEnterEvent drag&drop not supported yet."); 1302qDebug("KListView::contentsDragEnterEvent drag&drop not supported yet.");
1288/*US 1303/*US
1289 if (acceptDrag (event)) 1304 if (acceptDrag (event))
1290 event->accept(); 1305 event->accept();
1291*/ 1306*/
1292} 1307}
1293 1308
1294void KListView::setDropVisualizerWidth (int w) 1309void KListView::setDropVisualizerWidth (int w)
1295{ 1310{
1296 d->mDropVisualizerWidth = w > 0 ? w : 1; 1311 d->mDropVisualizerWidth = w > 0 ? w : 1;
1297} 1312}
1298 1313
1299QRect KListView::drawDropVisualizer(QPainter *p, QListViewItem *parent, 1314QRect KListView::drawDropVisualizer(QPainter *p, Q3ListViewItem *parent,
1300 QListViewItem *after) 1315 Q3ListViewItem *after)
1301{ 1316{
1302 QRect insertmarker; 1317 QRect insertmarker;
1303 1318
1304 if (!after && !parent) 1319 if (!after && !parent)
1305 insertmarker = QRect (0, 0, viewport()->width(), d->mDropVisualizerWidth/2); 1320 insertmarker = QRect (0, 0, viewport()->width(), d->mDropVisualizerWidth/2);
1306 else 1321 else
1307 { 1322 {
1308 int level = 0; 1323 int level = 0;
1309 if (after) 1324 if (after)
1310 { 1325 {
1311 QListViewItem* it = 0L; 1326 Q3ListViewItem* it = 0L;
1312 if (after->isOpen()) 1327 if (after->isOpen())
1313 { 1328 {
1314 // Look for the last child (recursively) 1329 // Look for the last child (recursively)
1315 it = after->firstChild(); 1330 it = after->firstChild();
1316 if (it) 1331 if (it)
1317 while (it->nextSibling() || it->firstChild()) 1332 while (it->nextSibling() || it->firstChild())
1318 if ( it->nextSibling() ) 1333 if ( it->nextSibling() )
1319 it = it->nextSibling(); 1334 it = it->nextSibling();
1320 else 1335 else
1321 it = it->firstChild(); 1336 it = it->firstChild();
1322 } 1337 }
1323 1338
1324 insertmarker = itemRect (it ? it : after); 1339 insertmarker = itemRect (it ? it : after);
1325 level = after->depth(); 1340 level = after->depth();
1326 } 1341 }
1327 else if (parent) 1342 else if (parent)
1328 { 1343 {
1329 insertmarker = itemRect (parent); 1344 insertmarker = itemRect (parent);
1330 level = parent->depth() + 1; 1345 level = parent->depth() + 1;
1331 } 1346 }
1332 insertmarker.setLeft( treeStepSize() * ( level + (rootIsDecorated() ? 1 : 0) ) + itemMargin() ); 1347 insertmarker.setLeft( treeStepSize() * ( level + (rootIsDecorated() ? 1 : 0) ) + itemMargin() );
1333 insertmarker.setRight (viewport()->width()); 1348 insertmarker.setRight (viewport()->width());
1334 insertmarker.setTop (insertmarker.bottom() - d->mDropVisualizerWidth/2 + 1); 1349 insertmarker.setTop (insertmarker.bottom() - d->mDropVisualizerWidth/2 + 1);
1335 insertmarker.setBottom (insertmarker.bottom() + d->mDropVisualizerWidth/2); 1350 insertmarker.setBottom (insertmarker.bottom() + d->mDropVisualizerWidth/2);
1336 } 1351 }
1337 1352
1338 // This is not used anymore, at least by KListView itself (see viewportPaintEvent) 1353 // This is not used anymore, at least by KListView itself (see viewportPaintEvent)
1339 // Remove for KDE 3.0. 1354 // Remove for KDE 3.0.
1340 if (p) 1355 if (p)
1341 p->fillRect(insertmarker, Dense4Pattern); 1356 p->fillRect(insertmarker, Qt::Dense4Pattern);
1342 1357
1343 return insertmarker; 1358 return insertmarker;
1344} 1359}
1345 1360
1346QRect KListView::drawItemHighlighter(QPainter *painter, QListViewItem *item) 1361QRect KListView::drawItemHighlighter(QPainter *painter, Q3ListViewItem *item)
1347{ 1362{
1348 QRect r; 1363 QRect r;
1349 1364
1350 if (item) 1365 if (item)
1351 { 1366 {
1352 r = itemRect(item); 1367 r = itemRect(item);
1353 r.setLeft(r.left()+(item->depth()+1)*treeStepSize()); 1368 r.setLeft(r.left()+(item->depth()+1)*treeStepSize());
1354 if (painter) { 1369 if (painter) {
1355//US style().drawPrimitive(QStyle::PE_FocusRect, painter, r, colorGroup(), 1370//US style().drawPrimitive(QStyle::PE_FocusRect, painter, r, colorGroup(),
1356//US QStyle::Style_FocusAtBorder, colorGroup().highlight()); 1371//US QStyle::Style_FocusAtBorder, colorGroup().highlight());
1357 const QColor* pHighl = &(colorGroup().highlight()); 1372 const QColor* pHighl = &(colorGroup().highlight());
1358 //LR style().drawFocusRect(painter, r, colorGroup(), pHighl, true); 1373 //LR style().drawFocusRect(painter, r, colorGroup(), pHighl, true);
1359 1374
1360qDebug("KListView::drawItemHighlighter has to be verified"); 1375qDebug("KListView::drawItemHighlighter has to be verified");
1361 1376
1362 } 1377 }
1363 1378
1364 } 1379 }
1365 1380
1366 return r; 1381 return r;
1367} 1382}
1368 1383
1369void KListView::cleanItemHighlighter () 1384void KListView::cleanItemHighlighter ()
1370{ 1385{
1371 if (d->mOldDropHighlighter.isValid()) 1386 if (d->mOldDropHighlighter.isValid())
1372 { 1387 {
1373 QRect rect=d->mOldDropHighlighter; 1388 QRect rect=d->mOldDropHighlighter;
1374 d->mOldDropHighlighter = QRect(); 1389 d->mOldDropHighlighter = QRect();
1375 viewport()->repaint(rect, true); 1390 viewport()->repaint(rect, true);
1376 } 1391 }
1377} 1392}
1378 1393
1379void KListView::rename(QListViewItem *item, int c) 1394void KListView::rename(Q3ListViewItem *item, int c)
1380{ 1395{
1381 if (d->renameable.contains(c)) 1396 if (d->renameable.contains(c))
1382 { 1397 {
1383 ensureItemVisible(item); 1398 ensureItemVisible(item);
1384//US d->editor->load(item,c); 1399//US d->editor->load(item,c);
1385qDebug("KListView::rename has to be verified"); 1400qDebug("KListView::rename has to be verified");
1386 1401
1387 } 1402 }
1388} 1403}
1389 1404
1390bool KListView::isRenameable (int col) const 1405bool KListView::isRenameable (int col) const
1391{ 1406{
1392 return d->renameable.contains(col); 1407 return d->renameable.contains(col);
1393} 1408}
1394 1409
1395void KListView::setRenameable (int col, bool yesno) 1410void KListView::setRenameable (int col, bool yesno)
1396{ 1411{
1397 if (col>=header()->count()) return; 1412 if (col>=header()->count()) return;
1398 1413
1399 d->renameable.remove(col); 1414 d->renameable.remove(col);
1400 if (yesno && d->renameable.find(col)==d->renameable.end()) 1415 if (yesno && d->renameable.find(col)==d->renameable.end())
1401 d->renameable+=col; 1416 d->renameable+=col;
1402 else if (!yesno && d->renameable.find(col)!=d->renameable.end()) 1417 else if (!yesno && d->renameable.find(col)!=d->renameable.end())
1403 d->renameable.remove(col); 1418 d->renameable.remove(col);
1404} 1419}
1405 1420
1406void KListView::doneEditing(QListViewItem *item, int row) 1421void KListView::doneEditing(Q3ListViewItem *item, int row)
1407{ 1422{
1408 emit itemRenamed(item, item->text(row), row); 1423 emit itemRenamed(item, item->text(row), row);
1409 emit itemRenamed(item); 1424 emit itemRenamed(item);
1410} 1425}
1411 1426
1412bool KListView::acceptDrag(QDropEvent* e) const 1427bool KListView::acceptDrag(QDropEvent* e) const
1413{ 1428{
1414qDebug("KListView::acceptDrag drag&drop not supported yet"); 1429qDebug("KListView::acceptDrag drag&drop not supported yet");
1415//US return acceptDrops() && itemsMovable() && (e->source()==viewport()); 1430//US return acceptDrops() && itemsMovable() && (e->source()==viewport());
1416return false; 1431return false;
1417} 1432}
1418 1433
1419void KListView::setCreateChildren(bool b) 1434void KListView::setCreateChildren(bool b)
1420{ 1435{
1421 d->createChildren=b; 1436 d->createChildren=b;
1422} 1437}
@@ -1434,219 +1449,219 @@ int KListView::tooltipColumn() const
1434 1449
1435void KListView::setTooltipColumn(int column) 1450void KListView::setTooltipColumn(int column)
1436{ 1451{
1437 d->tooltipColumn=column; 1452 d->tooltipColumn=column;
1438} 1453}
1439 1454
1440void KListView::setDropHighlighter(bool b) 1455void KListView::setDropHighlighter(bool b)
1441{ 1456{
1442 d->dropHighlighter=b; 1457 d->dropHighlighter=b;
1443} 1458}
1444 1459
1445bool KListView::dropHighlighter() const 1460bool KListView::dropHighlighter() const
1446{ 1461{
1447 return d->dropHighlighter; 1462 return d->dropHighlighter;
1448} 1463}
1449 1464
1450bool KListView::showTooltip(QListViewItem *item, const QPoint &, int column) const 1465bool KListView::showTooltip(Q3ListViewItem *item, const QPoint &, int column) const
1451{ 1466{
1452 return ((tooltip(item, column).length()>0) && (column==tooltipColumn())); 1467 return ((tooltip(item, column).length()>0) && (column==tooltipColumn()));
1453} 1468}
1454 1469
1455QString KListView::tooltip(QListViewItem *item, int column) const 1470QString KListView::tooltip(Q3ListViewItem *item, int column) const
1456{ 1471{
1457 return item->text(column); 1472 return item->text(column);
1458} 1473}
1459 1474
1460void KListView::setTabOrderedRenaming(bool b) 1475void KListView::setTabOrderedRenaming(bool b)
1461{ 1476{
1462 d->tabRename = b; 1477 d->tabRename = b;
1463} 1478}
1464 1479
1465bool KListView::tabOrderedRenaming() const 1480bool KListView::tabOrderedRenaming() const
1466{ 1481{
1467 return d->tabRename; 1482 return d->tabRename;
1468} 1483}
1469 1484
1470void KListView::keyPressEvent (QKeyEvent* e) 1485void KListView::keyPressEvent (QKeyEvent* e)
1471{ 1486{
1472 //don't we need a contextMenuModifier too ? (aleXXX) 1487 //don't we need a contextMenuModifier too ? (aleXXX)
1473 if (e->key() == d->contextMenuKey) 1488 if (e->key() == d->contextMenuKey)
1474 { 1489 {
1475 emit menuShortCutPressed (this, currentItem()); 1490 emit menuShortCutPressed (this, currentItem());
1476 return; 1491 return;
1477 } 1492 }
1478 if (e->key() == Qt::Key_Delete || e->key() == Qt::Key_Backspace) 1493 if (e->key() == Qt::Key_Delete || e->key() == Qt::Key_Backspace)
1479 { 1494 {
1480 emit signalDelete ( ); 1495 emit signalDelete ( );
1481 return; 1496 return;
1482 } 1497 }
1483 1498
1484 if (d->selectionMode != FileManager) 1499 if (d->selectionMode != FileManager)
1485 QListView::keyPressEvent (e); 1500 Q3ListView::keyPressEvent (e);
1486 else 1501 else
1487 fileManagerKeyPressEvent (e); 1502 fileManagerKeyPressEvent (e);
1488} 1503}
1489 1504
1490void KListView::activateAutomaticSelection() 1505void KListView::activateAutomaticSelection()
1491{ 1506{
1492 d->selectedBySimpleMove=true; 1507 d->selectedBySimpleMove=true;
1493 d->selectedUsingMouse=false; 1508 d->selectedUsingMouse=false;
1494 if (currentItem()!=0) 1509 if (currentItem()!=0)
1495 { 1510 {
1496 selectAll(false); 1511 selectAll(false);
1497 currentItem()->setSelected(true); 1512 currentItem()->setSelected(true);
1498 currentItem()->repaint(); 1513 currentItem()->repaint();
1499 emit selectionChanged(); 1514 emit selectionChanged();
1500 }; 1515 };
1501} 1516}
1502 1517
1503void KListView::deactivateAutomaticSelection() 1518void KListView::deactivateAutomaticSelection()
1504{ 1519{
1505 d->selectedBySimpleMove=false; 1520 d->selectedBySimpleMove=false;
1506} 1521}
1507 1522
1508bool KListView::automaticSelection() const 1523bool KListView::automaticSelection() const
1509{ 1524{
1510 return d->selectedBySimpleMove; 1525 return d->selectedBySimpleMove;
1511} 1526}
1512 1527
1513void KListView::fileManagerKeyPressEvent (QKeyEvent* e) 1528void KListView::fileManagerKeyPressEvent (QKeyEvent* e)
1514{ 1529{
1515 //don't care whether it's on the keypad or not 1530 //don't care whether it's on the keypad or not
1516 int e_state=(e->state() & ~Keypad); 1531 int e_state=(e->state() & ~Qt::Keypad);
1517 1532
1518 int oldSelectionDirection(d->selectionDirection); 1533 int oldSelectionDirection(d->selectionDirection);
1519 1534
1520 if ((e->key()!=Key_Shift) && (e->key()!=Key_Control) 1535 if ((e->key()!=Qt::Key_Shift) && (e->key()!=Qt::Key_Control)
1521 && (e->key()!=Key_Meta) && (e->key()!=Key_Alt)) 1536 && (e->key()!=Qt::Key_Meta) && (e->key()!=Qt::Key_Alt))
1522 { 1537 {
1523 if ((e_state==ShiftButton) && (!d->wasShiftEvent) && (!d->selectedBySimpleMove)) 1538 if ((e_state==Qt::ShiftButton) && (!d->wasShiftEvent) && (!d->selectedBySimpleMove))
1524 selectAll(FALSE); 1539 selectAll(FALSE);
1525 d->selectionDirection=0; 1540 d->selectionDirection=0;
1526 d->wasShiftEvent = (e_state == ShiftButton); 1541 d->wasShiftEvent = (e_state == Qt::ShiftButton);
1527 }; 1542 };
1528 1543
1529 //d->wasShiftEvent = (e_state == ShiftButton); 1544 //d->wasShiftEvent = (e_state == Qt::ShiftButton);
1530 1545
1531 1546
1532 QListViewItem* item = currentItem(); 1547 Q3ListViewItem* item = currentItem();
1533 if (item==0) return; 1548 if (item==0) return;
1534 1549
1535 QListViewItem* repaintItem1 = item; 1550 Q3ListViewItem* repaintItem1 = item;
1536 QListViewItem* repaintItem2 = 0L; 1551 Q3ListViewItem* repaintItem2 = 0L;
1537 QListViewItem* visItem = 0L; 1552 Q3ListViewItem* visItem = 0L;
1538 1553
1539 QListViewItem* nextItem = 0L; 1554 Q3ListViewItem* nextItem = 0L;
1540 int items = 0; 1555 int items = 0;
1541 1556
1542 bool shiftOrCtrl((e_state==ControlButton) || (e_state==ShiftButton)); 1557 bool shiftOrCtrl((e_state==Qt::ControlButton) || (e_state==Qt::ShiftButton));
1543 int selectedItems(0); 1558 int selectedItems(0);
1544 for (QListViewItem *tmpItem=firstChild(); tmpItem!=0; tmpItem=tmpItem->nextSibling()) 1559 for (Q3ListViewItem *tmpItem=firstChild(); tmpItem!=0; tmpItem=tmpItem->nextSibling())
1545 if (tmpItem->isSelected()) selectedItems++; 1560 if (tmpItem->isSelected()) selectedItems++;
1546 1561
1547 if (((selectedItems==0) || ((selectedItems==1) && (d->selectedUsingMouse))) 1562 if (((selectedItems==0) || ((selectedItems==1) && (d->selectedUsingMouse)))
1548 && (e_state==NoButton) 1563 && (e_state==Qt::NoButton)
1549 && ((e->key()==Key_Down) 1564 && ((e->key()==Qt::Key_Down)
1550 || (e->key()==Key_Up) 1565 || (e->key()==Qt::Key_Up)
1551 || (e->key()==Key_Next) 1566 || (e->key()==Qt::Key_Next)
1552 || (e->key()==Key_Prior) 1567 || (e->key()==Qt::Key_Prior)
1553 || (e->key()==Key_Home) 1568 || (e->key()==Qt::Key_Home)
1554 || (e->key()==Key_End))) 1569 || (e->key()==Qt::Key_End)))
1555 { 1570 {
1556 d->selectedBySimpleMove=true; 1571 d->selectedBySimpleMove=true;
1557 d->selectedUsingMouse=false; 1572 d->selectedUsingMouse=false;
1558 } 1573 }
1559 else if (selectedItems>1) 1574 else if (selectedItems>1)
1560 d->selectedBySimpleMove=false; 1575 d->selectedBySimpleMove=false;
1561 1576
1562 bool emitSelectionChanged(false); 1577 bool emitSelectionChanged(false);
1563 1578
1564 switch (e->key()) 1579 switch (e->key())
1565 { 1580 {
1566 case Key_Escape: 1581 case Qt::Key_Escape:
1567 selectAll(FALSE); 1582 selectAll(FALSE);
1568 emitSelectionChanged=TRUE; 1583 emitSelectionChanged=TRUE;
1569 break; 1584 break;
1570 1585
1571 case Key_Space: 1586 case Qt::Key_Space:
1572 //toggle selection of current item 1587 //toggle selection of current item
1573 if (d->selectedBySimpleMove) 1588 if (d->selectedBySimpleMove)
1574 d->selectedBySimpleMove=false; 1589 d->selectedBySimpleMove=false;
1575 item->setSelected(!item->isSelected()); 1590 item->setSelected(!item->isSelected());
1576 emitSelectionChanged=TRUE; 1591 emitSelectionChanged=TRUE;
1577 break; 1592 break;
1578 1593
1579 case Key_Insert: 1594 case Qt::Key_Insert:
1580 //toggle selection of current item and move to the next item 1595 //toggle selection of current item and move to the next item
1581 if (d->selectedBySimpleMove) 1596 if (d->selectedBySimpleMove)
1582 { 1597 {
1583 d->selectedBySimpleMove=false; 1598 d->selectedBySimpleMove=false;
1584 if (!item->isSelected()) item->setSelected(TRUE); 1599 if (!item->isSelected()) item->setSelected(TRUE);
1585 } 1600 }
1586 else 1601 else
1587 { 1602 {
1588 item->setSelected(!item->isSelected()); 1603 item->setSelected(!item->isSelected());
1589 }; 1604 };
1590 1605
1591 nextItem=item->itemBelow(); 1606 nextItem=item->itemBelow();
1592 1607
1593 if (nextItem!=0) 1608 if (nextItem!=0)
1594 { 1609 {
1595 repaintItem2=nextItem; 1610 repaintItem2=nextItem;
1596 visItem=nextItem; 1611 visItem=nextItem;
1597 setCurrentItem(nextItem); 1612 setCurrentItem(nextItem);
1598 }; 1613 };
1599 d->selectionDirection=1; 1614 d->selectionDirection=1;
1600 emitSelectionChanged=TRUE; 1615 emitSelectionChanged=TRUE;
1601 break; 1616 break;
1602 1617
1603 case Key_Down: 1618 case Qt::Key_Down:
1604 nextItem=item->itemBelow(); 1619 nextItem=item->itemBelow();
1605 //toggle selection of current item and move to the next item 1620 //toggle selection of current item and move to the next item
1606 if (shiftOrCtrl) 1621 if (shiftOrCtrl)
1607 { 1622 {
1608 d->selectionDirection=1; 1623 d->selectionDirection=1;
1609 if (d->selectedBySimpleMove) 1624 if (d->selectedBySimpleMove)
1610 d->selectedBySimpleMove=false; 1625 d->selectedBySimpleMove=false;
1611 else 1626 else
1612 { 1627 {
1613 if (oldSelectionDirection!=-1) 1628 if (oldSelectionDirection!=-1)
1614 { 1629 {
1615 item->setSelected(!item->isSelected()); 1630 item->setSelected(!item->isSelected());
1616 emitSelectionChanged=TRUE; 1631 emitSelectionChanged=TRUE;
1617 }; 1632 };
1618 }; 1633 };
1619 } 1634 }
1620 else if ((d->selectedBySimpleMove) && (nextItem!=0)) 1635 else if ((d->selectedBySimpleMove) && (nextItem!=0))
1621 { 1636 {
1622 item->setSelected(false); 1637 item->setSelected(false);
1623 emitSelectionChanged=TRUE; 1638 emitSelectionChanged=TRUE;
1624 }; 1639 };
1625 1640
1626 if (nextItem!=0) 1641 if (nextItem!=0)
1627 { 1642 {
1628 if (d->selectedBySimpleMove) 1643 if (d->selectedBySimpleMove)
1629 nextItem->setSelected(true); 1644 nextItem->setSelected(true);
1630 repaintItem2=nextItem; 1645 repaintItem2=nextItem;
1631 visItem=nextItem; 1646 visItem=nextItem;
1632 setCurrentItem(nextItem); 1647 setCurrentItem(nextItem);
1633 }; 1648 };
1634 break; 1649 break;
1635 1650
1636 case Key_Up: 1651 case Qt::Key_Up:
1637 nextItem=item->itemAbove(); 1652 nextItem=item->itemAbove();
1638 d->selectionDirection=-1; 1653 d->selectionDirection=-1;
1639 //move to the prev. item and toggle selection of this one 1654 //move to the prev. item and toggle selection of this one
1640 // => No, can't select the last item, with this. For symmetry, let's 1655 // => No, can't select the last item, with this. For symmetry, let's
1641 // toggle selection and THEN move up, just like we do in down (David) 1656 // toggle selection and THEN move up, just like we do in down (David)
1642 if (shiftOrCtrl) 1657 if (shiftOrCtrl)
1643 { 1658 {
1644 if (d->selectedBySimpleMove) 1659 if (d->selectedBySimpleMove)
1645 d->selectedBySimpleMove=false; 1660 d->selectedBySimpleMove=false;
1646 else 1661 else
1647 { 1662 {
1648 if (oldSelectionDirection!=1) 1663 if (oldSelectionDirection!=1)
1649 { 1664 {
1650 item->setSelected(!item->isSelected()); 1665 item->setSelected(!item->isSelected());
1651 emitSelectionChanged=TRUE; 1666 emitSelectionChanged=TRUE;
1652 }; 1667 };
@@ -1655,80 +1670,80 @@ void KListView::fileManagerKeyPressEvent (QKeyEvent* e)
1655 else if ((d->selectedBySimpleMove) && (nextItem!=0)) 1670 else if ((d->selectedBySimpleMove) && (nextItem!=0))
1656 { 1671 {
1657 item->setSelected(false); 1672 item->setSelected(false);
1658 emitSelectionChanged=TRUE; 1673 emitSelectionChanged=TRUE;
1659 }; 1674 };
1660 1675
1661 if (nextItem!=0) 1676 if (nextItem!=0)
1662 { 1677 {
1663 if (d->selectedBySimpleMove) 1678 if (d->selectedBySimpleMove)
1664 nextItem->setSelected(true); 1679 nextItem->setSelected(true);
1665 repaintItem2=nextItem; 1680 repaintItem2=nextItem;
1666 visItem=nextItem; 1681 visItem=nextItem;
1667 setCurrentItem(nextItem); 1682 setCurrentItem(nextItem);
1668 }; 1683 };
1669 break; 1684 break;
1670 1685
1671 case Key_End: 1686 case Qt::Key_End:
1672 //move to the last item and toggle selection of all items inbetween 1687 //move to the last item and toggle selection of all items inbetween
1673 nextItem=item; 1688 nextItem=item;
1674 if (d->selectedBySimpleMove) 1689 if (d->selectedBySimpleMove)
1675 item->setSelected(false); 1690 item->setSelected(false);
1676 if (shiftOrCtrl) 1691 if (shiftOrCtrl)
1677 d->selectedBySimpleMove=false; 1692 d->selectedBySimpleMove=false;
1678 1693
1679 while(nextItem!=0) 1694 while(nextItem!=0)
1680 { 1695 {
1681 if (shiftOrCtrl) 1696 if (shiftOrCtrl)
1682 nextItem->setSelected(!nextItem->isSelected()); 1697 nextItem->setSelected(!nextItem->isSelected());
1683 if (nextItem->itemBelow()==0) 1698 if (nextItem->itemBelow()==0)
1684 { 1699 {
1685 if (d->selectedBySimpleMove) 1700 if (d->selectedBySimpleMove)
1686 nextItem->setSelected(true); 1701 nextItem->setSelected(true);
1687 repaintItem2=nextItem; 1702 repaintItem2=nextItem;
1688 visItem=nextItem; 1703 visItem=nextItem;
1689 setCurrentItem(nextItem); 1704 setCurrentItem(nextItem);
1690 } 1705 }
1691 nextItem=nextItem->itemBelow(); 1706 nextItem=nextItem->itemBelow();
1692 } 1707 }
1693 emitSelectionChanged=TRUE; 1708 emitSelectionChanged=TRUE;
1694 break; 1709 break;
1695 1710
1696 case Key_Home: 1711 case Qt::Key_Home:
1697 // move to the first item and toggle selection of all items inbetween 1712 // move to the first item and toggle selection of all items inbetween
1698 nextItem = firstChild(); 1713 nextItem = firstChild();
1699 visItem = nextItem; 1714 visItem = nextItem;
1700 repaintItem2 = visItem; 1715 repaintItem2 = visItem;
1701 if (d->selectedBySimpleMove) 1716 if (d->selectedBySimpleMove)
1702 item->setSelected(false); 1717 item->setSelected(false);
1703 if (shiftOrCtrl) 1718 if (shiftOrCtrl)
1704 { 1719 {
1705 d->selectedBySimpleMove=false; 1720 d->selectedBySimpleMove=false;
1706 1721
1707 while ( nextItem != item ) 1722 while ( nextItem != item )
1708 { 1723 {
1709 nextItem->setSelected( !nextItem->isSelected() ); 1724 nextItem->setSelected( !nextItem->isSelected() );
1710 nextItem = nextItem->itemBelow(); 1725 nextItem = nextItem->itemBelow();
1711 } 1726 }
1712 item->setSelected( !item->isSelected() ); 1727 item->setSelected( !item->isSelected() );
1713 } 1728 }
1714 setCurrentItem( firstChild() ); 1729 setCurrentItem( firstChild() );
1715 emitSelectionChanged=TRUE; 1730 emitSelectionChanged=TRUE;
1716 break; 1731 break;
1717 1732
1718 case Key_Next: 1733 case Qt::Key_Next:
1719 items=visibleHeight()/item->height(); 1734 items=visibleHeight()/item->height();
1720 nextItem=item; 1735 nextItem=item;
1721 if (d->selectedBySimpleMove) 1736 if (d->selectedBySimpleMove)
1722 item->setSelected(false); 1737 item->setSelected(false);
1723 if (shiftOrCtrl) 1738 if (shiftOrCtrl)
1724 { 1739 {
1725 d->selectedBySimpleMove=false; 1740 d->selectedBySimpleMove=false;
1726 d->selectionDirection=1; 1741 d->selectionDirection=1;
1727 }; 1742 };
1728 1743
1729 for (int i=0; i<items; i++) 1744 for (int i=0; i<items; i++)
1730 { 1745 {
1731 if (shiftOrCtrl) 1746 if (shiftOrCtrl)
1732 nextItem->setSelected(!nextItem->isSelected()); 1747 nextItem->setSelected(!nextItem->isSelected());
1733 //the end 1748 //the end
1734 if ((i==items-1) || (nextItem->itemBelow()==0)) 1749 if ((i==items-1) || (nextItem->itemBelow()==0))
@@ -1738,33 +1753,33 @@ void KListView::fileManagerKeyPressEvent (QKeyEvent* e)
1738 nextItem->setSelected(!nextItem->isSelected()); 1753 nextItem->setSelected(!nextItem->isSelected());
1739 if (d->selectedBySimpleMove) 1754 if (d->selectedBySimpleMove)
1740 nextItem->setSelected(true); 1755 nextItem->setSelected(true);
1741 ensureItemVisible(nextItem); 1756 ensureItemVisible(nextItem);
1742 setCurrentItem(nextItem); 1757 setCurrentItem(nextItem);
1743 update(); 1758 update();
1744 if ((shiftOrCtrl) || (d->selectedBySimpleMove)) 1759 if ((shiftOrCtrl) || (d->selectedBySimpleMove))
1745 { 1760 {
1746 emit selectionChanged(); 1761 emit selectionChanged();
1747 } 1762 }
1748 return; 1763 return;
1749 } 1764 }
1750 nextItem=nextItem->itemBelow(); 1765 nextItem=nextItem->itemBelow();
1751 } 1766 }
1752 break; 1767 break;
1753 1768
1754 case Key_Prior: 1769 case Qt::Key_Prior:
1755 items=visibleHeight()/item->height(); 1770 items=visibleHeight()/item->height();
1756 nextItem=item; 1771 nextItem=item;
1757 if (d->selectedBySimpleMove) 1772 if (d->selectedBySimpleMove)
1758 item->setSelected(false); 1773 item->setSelected(false);
1759 if (shiftOrCtrl) 1774 if (shiftOrCtrl)
1760 { 1775 {
1761 d->selectionDirection=-1; 1776 d->selectionDirection=-1;
1762 d->selectedBySimpleMove=false; 1777 d->selectedBySimpleMove=false;
1763 }; 1778 };
1764 1779
1765 for (int i=0; i<items; i++) 1780 for (int i=0; i<items; i++)
1766 { 1781 {
1767 if ((nextItem!=item) &&(shiftOrCtrl)) 1782 if ((nextItem!=item) &&(shiftOrCtrl))
1768 nextItem->setSelected(!nextItem->isSelected()); 1783 nextItem->setSelected(!nextItem->isSelected());
1769 //the end 1784 //the end
1770 if ((i==items-1) || (nextItem->itemAbove()==0)) 1785 if ((i==items-1) || (nextItem->itemAbove()==0))
@@ -1772,51 +1787,51 @@ void KListView::fileManagerKeyPressEvent (QKeyEvent* e)
1772 { 1787 {
1773 if (d->selectedBySimpleMove) 1788 if (d->selectedBySimpleMove)
1774 nextItem->setSelected(true); 1789 nextItem->setSelected(true);
1775 ensureItemVisible(nextItem); 1790 ensureItemVisible(nextItem);
1776 setCurrentItem(nextItem); 1791 setCurrentItem(nextItem);
1777 update(); 1792 update();
1778 if ((shiftOrCtrl) || (d->selectedBySimpleMove)) 1793 if ((shiftOrCtrl) || (d->selectedBySimpleMove))
1779 { 1794 {
1780 emit selectionChanged(); 1795 emit selectionChanged();
1781 } 1796 }
1782 return; 1797 return;
1783 } 1798 }
1784 nextItem=nextItem->itemAbove(); 1799 nextItem=nextItem->itemAbove();
1785 } 1800 }
1786 break; 1801 break;
1787 1802
1788 case Key_Minus: 1803 case Qt::Key_Minus:
1789 if ( item->isOpen() ) 1804 if ( item->isOpen() )
1790 setOpen( item, FALSE ); 1805 setOpen( item, FALSE );
1791 break; 1806 break;
1792 case Key_Plus: 1807 case Qt::Key_Plus:
1793 if ( !item->isOpen() && (item->isExpandable() || item->childCount()) ) 1808 if ( !item->isOpen() && (item->isExpandable() || item->childCount()) )
1794 setOpen( item, TRUE ); 1809 setOpen( item, TRUE );
1795 break; 1810 break;
1796 default: 1811 default:
1797 bool realKey = ((e->key()!=Key_Shift) && (e->key()!=Key_Control) 1812 bool realKey = ((e->key()!=Qt::Key_Shift) && (e->key()!=Qt::Key_Control)
1798 && (e->key()!=Key_Meta) && (e->key()!=Key_Alt)); 1813 && (e->key()!=Qt::Key_Meta) && (e->key()!=Qt::Key_Alt));
1799 1814
1800 bool selectCurrentItem = (d->selectedBySimpleMove) && (item->isSelected()); 1815 bool selectCurrentItem = (d->selectedBySimpleMove) && (item->isSelected());
1801 if (realKey && selectCurrentItem) 1816 if (realKey && selectCurrentItem)
1802 item->setSelected(false); 1817 item->setSelected(false);
1803 //this is mainly for the "goto filename beginning with pressed char" feature (aleXXX) 1818 //this is mainly for the "goto filename beginning with pressed char" feature (aleXXX)
1804 QListView::SelectionMode oldSelectionMode = selectionMode(); 1819 Q3ListView::SelectionMode oldSelectionMode = selectionMode();
1805 setSelectionMode (QListView::Multi); 1820 setSelectionMode (Q3ListView::Multi);
1806 QListView::keyPressEvent (e); 1821 Q3ListView::keyPressEvent (e);
1807 setSelectionMode (oldSelectionMode); 1822 setSelectionMode (oldSelectionMode);
1808 if (realKey && selectCurrentItem) 1823 if (realKey && selectCurrentItem)
1809 { 1824 {
1810 currentItem()->setSelected(true); 1825 currentItem()->setSelected(true);
1811 emitSelectionChanged=TRUE; 1826 emitSelectionChanged=TRUE;
1812 } 1827 }
1813 repaintItem2=currentItem(); 1828 repaintItem2=currentItem();
1814 if (realKey) 1829 if (realKey)
1815 visItem=currentItem(); 1830 visItem=currentItem();
1816 break; 1831 break;
1817 } 1832 }
1818 1833
1819 if (visItem) 1834 if (visItem)
1820 ensureItemVisible(visItem); 1835 ensureItemVisible(visItem);
1821 1836
1822 QRect ir; 1837 QRect ir;
@@ -1837,135 +1852,135 @@ void KListView::fileManagerKeyPressEvent (QKeyEvent* e)
1837 repaintItem2->repaint();*/ 1852 repaintItem2->repaint();*/
1838 update(); 1853 update();
1839 if (emitSelectionChanged) 1854 if (emitSelectionChanged)
1840 emit selectionChanged(); 1855 emit selectionChanged();
1841} 1856}
1842 1857
1843void KListView::setSelectionModeExt (SelectionModeExt mode) 1858void KListView::setSelectionModeExt (SelectionModeExt mode)
1844{ 1859{
1845 d->selectionMode = mode; 1860 d->selectionMode = mode;
1846 1861
1847 switch (mode) 1862 switch (mode)
1848 { 1863 {
1849 case Single: 1864 case Single:
1850 case Multi: 1865 case Multi:
1851 case Extended: 1866 case Extended:
1852 case NoSelection: 1867 case NoSelection:
1853 setSelectionMode (static_cast<QListView::SelectionMode>(static_cast<int>(mode))); 1868 setSelectionMode (static_cast<Q3ListView::SelectionMode>(static_cast<int>(mode)));
1854 break; 1869 break;
1855 1870
1856 case FileManager: 1871 case FileManager:
1857 setSelectionMode (QListView::Extended); 1872 setSelectionMode (Q3ListView::Extended);
1858 break; 1873 break;
1859 1874
1860 default: 1875 default:
1861 kdWarning () << "Warning: illegal selection mode " << int(mode) << " set!" << endl; 1876 kdWarning () << "Warning: illegal selection mode " << int(mode) << " set!" << endl;
1862 break; 1877 break;
1863 } 1878 }
1864} 1879}
1865 1880
1866KListView::SelectionModeExt KListView::selectionModeExt () const 1881KListView::SelectionModeExt KListView::selectionModeExt () const
1867{ 1882{
1868 return d->selectionMode; 1883 return d->selectionMode;
1869} 1884}
1870 1885
1871int KListView::itemIndex( const QListViewItem *item ) const 1886int KListView::itemIndex( const Q3ListViewItem *item ) const
1872{ 1887{
1873 if ( !item ) 1888 if ( !item )
1874 return -1; 1889 return -1;
1875 1890
1876 if ( item == firstChild() ) 1891 if ( item == firstChild() )
1877 return 0; 1892 return 0;
1878 else { 1893 else {
1879 QListViewItemIterator it(firstChild()); 1894 Q3ListViewItemIterator it(firstChild());
1880 uint j = 0; 1895 uint j = 0;
1881 for (; it.current() && it.current() != item; ++it, ++j ); 1896 for (; it.current() && it.current() != item; ++it, ++j );
1882 1897
1883 if( !it.current() ) 1898 if( !it.current() )
1884 return -1; 1899 return -1;
1885 1900
1886 return j; 1901 return j;
1887 } 1902 }
1888} 1903}
1889 1904
1890QListViewItem* KListView::itemAtIndex(int index) 1905Q3ListViewItem* KListView::itemAtIndex(int index)
1891{ 1906{
1892 if (index<0) 1907 if (index<0)
1893 return 0; 1908 return 0;
1894 1909
1895 int j(0); 1910 int j(0);
1896 for (QListViewItemIterator it=firstChild(); it.current(); it++) 1911 for (Q3ListViewItemIterator it=firstChild(); it.current(); it++)
1897 { 1912 {
1898 if (j==index) 1913 if (j==index)
1899 return it.current(); 1914 return it.current();
1900 j++; 1915 j++;
1901 }; 1916 };
1902 return 0; 1917 return 0;
1903} 1918}
1904 1919
1905 1920
1906void KListView::emitContextMenu (KListView*, QListViewItem* i) 1921void KListView::emitContextMenu (KListView*, Q3ListViewItem* i)
1907{ 1922{
1908 QPoint p; 1923 QPoint p;
1909 // qDebug("KListView::emitContextMenu "); 1924 // qDebug("KListView::emitContextMenu ");
1910 1925
1911 if (i) 1926 if (i)
1912 p = viewport()->mapToGlobal(itemRect(i).center()); 1927 p = viewport()->mapToGlobal(itemRect(i).center());
1913 else 1928 else
1914 p = mapToGlobal(rect().center()); 1929 p = mapToGlobal(rect().center());
1915 1930
1916 emit contextMenu (this, i, p); 1931 emit contextMenu (this, i, p);
1917} 1932}
1918 1933
1919void KListView::emitContextMenu (QListViewItem* i, const QPoint& p, int col) 1934void KListView::emitContextMenu (Q3ListViewItem* i, const QPoint& p, int col)
1920{ 1935{
1921 QListViewItem* item = i; 1936 Q3ListViewItem* item = i;
1922 int c = col; 1937 int c = col;
1923 // do not trust the values for QListViewItem* i and int col; 1938 // do not trust the values for QListViewItem* i and int col;
1924 // qDebug("KListView::emitContextMenu col"); 1939 // qDebug("KListView::emitContextMenu col");
1925 if ( col == -1 ) { 1940 if ( col == -1 ) {
1926 QPoint pp = viewport()->mapFromGlobal(p); 1941 QPoint pp = viewport()->mapFromGlobal(p);
1927 item = itemAt( pp); 1942 item = itemAt( pp);
1928 c = header()->sectionAt(pp.x() ); 1943 c = header()->sectionAt(pp.x() );
1929 } 1944 }
1930 emit contextRequest( item, p, c ); 1945 emit contextRequest( item, p, c );
1931 emit contextMenu (this, item, p); 1946 emit contextMenu (this, item, p);
1932} 1947}
1933 1948
1934void KListView::setAcceptDrops (bool val) 1949void KListView::setAcceptDrops (bool val)
1935{ 1950{
1936 QListView::setAcceptDrops (val); 1951 Q3ListView::setAcceptDrops (val);
1937 viewport()->setAcceptDrops (val); 1952 viewport()->setAcceptDrops (val);
1938} 1953}
1939 1954
1940int KListView::dropVisualizerWidth () const 1955int KListView::dropVisualizerWidth () const
1941{ 1956{
1942 return d->mDropVisualizerWidth; 1957 return d->mDropVisualizerWidth;
1943} 1958}
1944 1959
1945 1960
1946void KListView::viewportPaintEvent(QPaintEvent *e) 1961void KListView::viewportPaintEvent(QPaintEvent *e)
1947{ 1962{
1948 QListView::viewportPaintEvent(e); 1963 Q3ListView::viewportPaintEvent(e);
1949 1964
1950 if (d->mOldDropVisualizer.isValid() && e->rect().intersects(d->mOldDropVisualizer)) 1965 if (d->mOldDropVisualizer.isValid() && e->rect().intersects(d->mOldDropVisualizer))
1951 { 1966 {
1952 QPainter painter(viewport()); 1967 QPainter painter(viewport());
1953 1968
1954 // This is where we actually draw the drop-visualizer 1969 // This is where we actually draw the drop-visualizer
1955 painter.fillRect(d->mOldDropVisualizer, Dense4Pattern); 1970 painter.fillRect(d->mOldDropVisualizer, Qt::Dense4Pattern);
1956 } 1971 }
1957 if (d->mOldDropHighlighter.isValid() && e->rect().intersects(d->mOldDropHighlighter)) 1972 if (d->mOldDropHighlighter.isValid() && e->rect().intersects(d->mOldDropHighlighter))
1958 { 1973 {
1959 QPainter painter(viewport()); 1974 QPainter painter(viewport());
1960 1975
1961qDebug("KListView::viewportPaintEvent has to be verified"); 1976qDebug("KListView::viewportPaintEvent has to be verified");
1962 1977
1963 // This is where we actually draw the drop-highlighter 1978 // This is where we actually draw the drop-highlighter
1964//US style().drawPrimitive(QStyle::PE_FocusRect, &painter, d->mOldDropHighlighter, colorGroup(), 1979//US style().drawPrimitive(QStyle::PE_FocusRect, &painter, d->mOldDropHighlighter, colorGroup(),
1965//US QStyle::Style_FocusAtBorder); 1980//US QStyle::Style_FocusAtBorder);
1966 1981
1967//LR style().drawFocusRect(&painter, d->mOldDropHighlighter, colorGroup(), (const QColor*)0, true); 1982//LR style().drawFocusRect(&painter, d->mOldDropHighlighter, colorGroup(), (const QColor*)0, true);
1968 1983
1969 1984
1970 } 1985 }
1971} 1986}
@@ -1975,59 +1990,59 @@ void KListView::setFullWidth()
1975 setFullWidth(true); 1990 setFullWidth(true);
1976} 1991}
1977 1992
1978void KListView::setFullWidth(bool fullWidth) 1993void KListView::setFullWidth(bool fullWidth)
1979{ 1994{
1980 d->fullWidth = fullWidth; 1995 d->fullWidth = fullWidth;
1981//US header()->setStretchEnabled(fullWidth, columns()-1); 1996//US header()->setStretchEnabled(fullWidth, columns()-1);
1982} 1997}
1983 1998
1984bool KListView::fullWidth() const 1999bool KListView::fullWidth() const
1985{ 2000{
1986 return d->fullWidth; 2001 return d->fullWidth;
1987} 2002}
1988 2003
1989int KListView::addColumn(const QString& label, int width) 2004int KListView::addColumn(const QString& label, int width)
1990{ 2005{
1991 int result = QListView::addColumn(label, width); 2006 int result = Q3ListView::addColumn(label, width);
1992 if (d->fullWidth) { 2007 if (d->fullWidth) {
1993//US header()->setStretchEnabled(false, columns()-2); 2008//US header()->setStretchEnabled(false, columns()-2);
1994//US header()->setStretchEnabled(true, columns()-1); 2009//US header()->setStretchEnabled(true, columns()-1);
1995 } 2010 }
1996 return result; 2011 return result;
1997} 2012}
1998 2013
1999int KListView::addColumn(const QIconSet& iconset, const QString& label, int width) 2014int KListView::addColumn(const QIcon& iconset, const QString& label, int width)
2000{ 2015{
2001 int result = QListView::addColumn(iconset, label, width); 2016 int result = Q3ListView::addColumn(iconset, label, width);
2002 if (d->fullWidth) { 2017 if (d->fullWidth) {
2003//US header()->setStretchEnabled(false, columns()-2); 2018//US header()->setStretchEnabled(false, columns()-2);
2004//US header()->setStretchEnabled(true, columns()-1); 2019//US header()->setStretchEnabled(true, columns()-1);
2005 } 2020 }
2006 return result; 2021 return result;
2007} 2022}
2008 2023
2009void KListView::removeColumn(int index) 2024void KListView::removeColumn(int index)
2010{ 2025{
2011 QListView::removeColumn(index); 2026 Q3ListView::removeColumn(index);
2012//US if (d->fullWidth && index == columns()) header()->setStretchEnabled(true, columns()-1); 2027//US if (d->fullWidth && index == columns()) header()->setStretchEnabled(true, columns()-1);
2013} 2028}
2014 2029
2015void KListView::viewportResizeEvent(QResizeEvent* e) 2030void KListView::viewportResizeEvent(QResizeEvent* e)
2016{ 2031{
2017 QListView::viewportResizeEvent(e); 2032 Q3ListView::viewportResizeEvent(e);
2018} 2033}
2019 2034
2020const QColor &KListView::alternateBackground() const 2035const QColor &KListView::alternateBackground() const
2021{ 2036{
2022 return d->alternateBackground; 2037 return d->alternateBackground;
2023} 2038}
2024 2039
2025void KListView::setAlternateBackground(const QColor &c) 2040void KListView::setAlternateBackground(const QColor &c)
2026{ 2041{
2027 d->alternateBackground = c; 2042 d->alternateBackground = c;
2028 repaint(); 2043 repaint();
2029} 2044}
2030 2045
2031void KListView::saveLayout(KConfig *config, const QString &group) const 2046void KListView::saveLayout(KConfig *config, const QString &group) const
2032{ 2047{
2033 KConfigGroupSaver saver(config, group); 2048 KConfigGroupSaver saver(config, group);
@@ -2057,97 +2072,97 @@ void KListView::restoreLayout(KConfig *config, const QString &group)
2057 header()->moveSection(i++, (*it).toInt()); 2072 header()->moveSection(i++, (*it).toInt());
2058 2073
2059/*US I changed the following code, because hasKey is not available. 2074/*US I changed the following code, because hasKey is not available.
2060!!! check if my version is correct 2075!!! check if my version is correct
2061 if (config->hasKey("SortColumn")) 2076 if (config->hasKey("SortColumn"))
2062 setSorting(config->readNumEntry("SortColumn"), config->readBoolEntry("SortAscending", true)); 2077 setSorting(config->readNumEntry("SortColumn"), config->readBoolEntry("SortAscending", true));
2063*/ 2078*/
2064 QStringList langLst = config->readListEntry( "SortColumn" ); 2079 QStringList langLst = config->readListEntry( "SortColumn" );
2065 if (!langLst.isEmpty()) 2080 if (!langLst.isEmpty())
2066 setSorting(config->readNumEntry("SortColumn"), config->readBoolEntry("SortAscending", true)); 2081 setSorting(config->readNumEntry("SortColumn"), config->readBoolEntry("SortAscending", true));
2067} 2082}
2068 2083
2069void KListView::setSorting(int column, bool ascending) 2084void KListView::setSorting(int column, bool ascending)
2070{ 2085{
2071 d->sortColumn = column; 2086 d->sortColumn = column;
2072 d->sortAscending = ascending; 2087 d->sortAscending = ascending;
2073 QListView::setSorting(column, ascending); 2088 Q3ListView::setSorting(column, ascending);
2074} 2089}
2075 2090
2076int KListView::columnSorted(void) const 2091int KListView::columnSorted(void) const
2077{ 2092{
2078 return d->sortColumn; 2093 return d->sortColumn;
2079} 2094}
2080 2095
2081bool KListView::ascendingSort(void) const 2096bool KListView::ascendingSort(void) const
2082{ 2097{
2083 return d->sortAscending; 2098 return d->sortAscending;
2084} 2099}
2085 2100
2086KListViewItem::KListViewItem(QListView *parent) 2101KListViewItem::KListViewItem(Q3ListView *parent)
2087 : QListViewItem(parent) 2102 : Q3ListViewItem(parent)
2088{ 2103{
2089 init(); 2104 init();
2090} 2105}
2091 2106
2092KListViewItem::KListViewItem(QListViewItem *parent) 2107KListViewItem::KListViewItem(Q3ListViewItem *parent)
2093 : QListViewItem(parent) 2108 : Q3ListViewItem(parent)
2094{ 2109{
2095 init(); 2110 init();
2096} 2111}
2097 2112
2098KListViewItem::KListViewItem(QListView *parent, QListViewItem *after) 2113KListViewItem::KListViewItem(Q3ListView *parent, Q3ListViewItem *after)
2099 : QListViewItem(parent, after) 2114 : Q3ListViewItem(parent, after)
2100{ 2115{
2101 init(); 2116 init();
2102} 2117}
2103 2118
2104KListViewItem::KListViewItem(QListViewItem *parent, QListViewItem *after) 2119KListViewItem::KListViewItem(Q3ListViewItem *parent, Q3ListViewItem *after)
2105 : QListViewItem(parent, after) 2120 : Q3ListViewItem(parent, after)
2106{ 2121{
2107 init(); 2122 init();
2108} 2123}
2109 2124
2110KListViewItem::KListViewItem(QListView *parent, 2125KListViewItem::KListViewItem(Q3ListView *parent,
2111 QString label1, QString label2, QString label3, QString label4, 2126 QString label1, QString label2, QString label3, QString label4,
2112 QString label5, QString label6, QString label7, QString label8) 2127 QString label5, QString label6, QString label7, QString label8)
2113 : QListViewItem(parent, label1, label2, label3, label4, label5, label6, label7, label8) 2128 : Q3ListViewItem(parent, label1, label2, label3, label4, label5, label6, label7, label8)
2114{ 2129{
2115 init(); 2130 init();
2116} 2131}
2117 2132
2118KListViewItem::KListViewItem(QListViewItem *parent, 2133KListViewItem::KListViewItem(Q3ListViewItem *parent,
2119 QString label1, QString label2, QString label3, QString label4, 2134 QString label1, QString label2, QString label3, QString label4,
2120 QString label5, QString label6, QString label7, QString label8) 2135 QString label5, QString label6, QString label7, QString label8)
2121 : QListViewItem(parent, label1, label2, label3, label4, label5, label6, label7, label8) 2136 : Q3ListViewItem(parent, label1, label2, label3, label4, label5, label6, label7, label8)
2122{ 2137{
2123 init(); 2138 init();
2124} 2139}
2125 2140
2126KListViewItem::KListViewItem(QListView *parent, QListViewItem *after, 2141KListViewItem::KListViewItem(Q3ListView *parent, Q3ListViewItem *after,
2127 QString label1, QString label2, QString label3, QString label4, 2142 QString label1, QString label2, QString label3, QString label4,
2128 QString label5, QString label6, QString label7, QString label8) 2143 QString label5, QString label6, QString label7, QString label8)
2129 : QListViewItem(parent, after, label1, label2, label3, label4, label5, label6, label7, label8) 2144 : Q3ListViewItem(parent, after, label1, label2, label3, label4, label5, label6, label7, label8)
2130{ 2145{
2131 init(); 2146 init();
2132} 2147}
2133 2148
2134KListViewItem::KListViewItem(QListViewItem *parent, QListViewItem *after, 2149KListViewItem::KListViewItem(Q3ListViewItem *parent, Q3ListViewItem *after,
2135 QString label1, QString label2, QString label3, QString label4, 2150 QString label1, QString label2, QString label3, QString label4,
2136 QString label5, QString label6, QString label7, QString label8) 2151 QString label5, QString label6, QString label7, QString label8)
2137 : QListViewItem(parent, after, label1, label2, label3, label4, label5, label6, label7, label8) 2152 : Q3ListViewItem(parent, after, label1, label2, label3, label4, label5, label6, label7, label8)
2138{ 2153{
2139 init(); 2154 init();
2140} 2155}
2141 2156
2142KListViewItem::~KListViewItem() 2157KListViewItem::~KListViewItem()
2143{ 2158{
2144} 2159}
2145 2160
2146void KListViewItem::init() 2161void KListViewItem::init()
2147{ 2162{
2148 m_known = false; 2163 m_known = false;
2149} 2164}
2150 2165
2151const QColor &KListViewItem::backgroundColor() 2166const QColor &KListViewItem::backgroundColor()
2152{ 2167{
2153 if (isAlternate()) 2168 if (isAlternate())
@@ -2199,38 +2214,38 @@ bool KListViewItem::isAlternate()
2199 } 2214 }
2200 return false; 2215 return false;
2201} 2216}
2202 2217
2203void KListViewItem::paintCell(QPainter *p, const QColorGroup &cg, int column, int width, int alignment) 2218void KListViewItem::paintCell(QPainter *p, const QColorGroup &cg, int column, int width, int alignment)
2204{ 2219{
2205 QColorGroup _cg = cg; 2220 QColorGroup _cg = cg;
2206 const QPixmap *pm = listView()->viewport()->backgroundPixmap(); 2221 const QPixmap *pm = listView()->viewport()->backgroundPixmap();
2207 if (pm && !pm->isNull()) 2222 if (pm && !pm->isNull())
2208 { 2223 {
2209 _cg.setBrush(QColorGroup::Base, QBrush(backgroundColor(), *pm)); 2224 _cg.setBrush(QColorGroup::Base, QBrush(backgroundColor(), *pm));
2210 QPoint o = p->brushOrigin(); 2225 QPoint o = p->brushOrigin();
2211 p->setBrushOrigin( o.x()-listView()->contentsX(), o.y()-listView()->contentsY() ); 2226 p->setBrushOrigin( o.x()-listView()->contentsX(), o.y()-listView()->contentsY() );
2212 } 2227 }
2213 else if (isAlternate()) { 2228 else if (isAlternate()) {
2214//US if (listView()->viewport()->backgroundMode()==Qt::FixedColor) 2229//US if (listView()->viewport()->backgroundMode()==Qt::FixedColor)
2215 if (listView()->viewport()->backgroundMode()==QWidget::PaletteBackground) 2230 if (listView()->viewport()->backgroundMode()==Qt::PaletteBackground)
2216 _cg.setColor(QColorGroup::Background, static_cast< KListView* >(listView())->alternateBackground()); 2231 _cg.setColor(QColorGroup::Background, static_cast< KListView* >(listView())->alternateBackground());
2217 else 2232 else
2218 _cg.setColor(QColorGroup::Base, static_cast< KListView* >(listView())->alternateBackground()); 2233 _cg.setColor(QColorGroup::Base, static_cast< KListView* >(listView())->alternateBackground());
2219 } 2234 }
2220 QListViewItem::paintCell(p, _cg, column, width, alignment); 2235 Q3ListViewItem::paintCell(p, _cg, column, width, alignment);
2221} 2236}
2222 2237
2223//US we do not have a "global KDE" variable to setup singleClick functionality 2238//US we do not have a "global KDE" variable to setup singleClick functionality
2224void KListView::setSingleClick(bool s) 2239void KListView::setSingleClick(bool s)
2225{ 2240{
2226 d->bUseSingle = s; 2241 d->bUseSingle = s;
2227 slotSettingsChanged(1); 2242 slotSettingsChanged(1);
2228 // qDebug("KListView::setSingleClick: single %i", d->bUseSingle); 2243 // qDebug("KListView::setSingleClick: single %i", d->bUseSingle);
2229} 2244}
2230 2245
2231 2246
2232void KListView::virtual_hook( int, void* ) 2247void KListView::virtual_hook( int, void* )
2233{ /*BASE::virtual_hook( id, data );*/ } 2248{ /*BASE::virtual_hook( id, data );*/ }
2234 2249
2235//US #include "klistview.moc" 2250//US #include "klistview.moc"
2236//US #include "klistviewlineedit.moc" 2251//US #include "klistviewlineedit.moc"
diff --git a/microkde/kdeui/klistview.h b/microkde/kdeui/klistview.h
index 9f0d9fd..2176525 100644
--- a/microkde/kdeui/klistview.h
+++ b/microkde/kdeui/klistview.h
@@ -7,70 +7,81 @@
7 modify it under the terms of the GNU Library General Public 7 modify it under the terms of the GNU Library General Public
8 License version 2 as published by the Free Software Foundation. 8 License version 2 as published by the Free Software Foundation.
9 9
10 This library is distributed in the hope that it will be useful, 10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details. 13 Library General Public License for more details.
14 14
15 You should have received a copy of the GNU Library General Public License 15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to 16 along with this library; see the file COPYING.LIB. If not, write to
17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA. 18 Boston, MA 02111-1307, USA.
19*/ 19*/
20#ifndef KLISTVIEW_H 20#ifndef KLISTVIEW_H
21#define KLISTVIEW_H 21#define KLISTVIEW_H
22 22
23#include <qlistview.h> 23#include <q3listview.h>
24 24
25#include <qptrlist.h> 25#include <q3ptrlist.h>
26//Added by qt3to4:
27#include <QDragMoveEvent>
28#include <QDropEvent>
29#include <QDragLeaveEvent>
30#include <QPaintEvent>
31#include <QResizeEvent>
32#include <QFocusEvent>
33#include <QMouseEvent>
34#include <QKeyEvent>
35#include <QEvent>
36#include <QDragEnterEvent>
26 37
27//US 38//US
28class QDropEvent; 39class QDropEvent;
29class QDragLeaveEvent; 40class QDragLeaveEvent;
30class QDragMoveEvent; 41class QDragMoveEvent;
31class QDragEnterEvent; 42class QDragEnterEvent;
32 43
33class QDragObject; 44class Q3DragObject;
34class KConfig; 45class KConfig;
35class KLineEdit; 46class KLineEdit;
36/** 47/**
37 * This Widget extends the functionality of QListView to honor the system 48 * This Widget extends the functionality of QListView to honor the system
38 * wide settings for Single Click/Double Click mode, AutoSelection and 49 * wide settings for Single Click/Double Click mode, AutoSelection and
39 * ChangeCursorOverLink (TM). 50 * ChangeCursorOverLink (TM).
40 * 51 *
41 * There is a new signal executed(). It gets connected to either 52 * There is a new signal executed(). It gets connected to either
42 * @ref QListView::clicked() or @ref QListView::doubleClicked() depending on the KDE 53 * @ref QListView::clicked() or @ref QListView::doubleClicked() depending on the KDE
43 * wide Single Click/Double Click settings. It is strongly recommended that 54 * wide Single Click/Double Click settings. It is strongly recommended that
44 * you use this signal instead of the above mentioned. This way you dont 55 * you use this signal instead of the above mentioned. This way you dont
45 * need to care about the current settings. 56 * need to care about the current settings.
46 * If you want to get informed when the user selects something connect to the 57 * If you want to get informed when the user selects something connect to the
47 * QListView::selectionChanged() signal. 58 * QListView::selectionChanged() signal.
48 * 59 *
49 * Drag-and-Drop is supported with the signal @ref #dropped(), just @ref #setAcceptDrops(true) 60 * Drag-and-Drop is supported with the signal @ref #dropped(), just @ref #setAcceptDrops(true)
50 * and connect it to a suitable slot. 61 * and connect it to a suitable slot.
51 * To see where you are dropping, @ref setDropVisualizer(true). 62 * To see where you are dropping, @ref setDropVisualizer(true).
52 * And also you'll need @ref acceptDrag(QDropEvent*) 63 * And also you'll need @ref acceptDrag(QDropEvent*)
53 * 64 *
54 * KListView is drag-enabled, too: to benefit from that you've got derive from it. 65 * KListView is drag-enabled, too: to benefit from that you've got derive from it.
55 * Reimplement @ref dragObject() and (possibly) @ref startDrag(), 66 * Reimplement @ref dragObject() and (possibly) @ref startDrag(),
56 * and @ref setDragEnabled(true). 67 * and @ref setDragEnabled(true).
57 * 68 *
58 * @version $Id$ 69 * @version $Id$
59 */ 70 */
60class KListView : public QListView 71class KListView : public Q3ListView
61{ 72{
62 Q_OBJECT 73 Q_OBJECT
63 Q_ENUMS( SelectionModeExt ) 74 Q_ENUMS( SelectionModeExt )
64 Q_PROPERTY( bool fullWidth READ fullWidth WRITE setFullWidth ) 75 Q_PROPERTY( bool fullWidth READ fullWidth WRITE setFullWidth )
65 Q_PROPERTY( bool itemsMovable READ itemsMovable WRITE setItemsMovable ) 76 Q_PROPERTY( bool itemsMovable READ itemsMovable WRITE setItemsMovable )
66 Q_PROPERTY( bool itemsRenameable READ itemsRenameable WRITE setItemsRenameable ) 77 Q_PROPERTY( bool itemsRenameable READ itemsRenameable WRITE setItemsRenameable )
67 Q_PROPERTY( bool dragEnabled READ dragEnabled WRITE setDragEnabled ) 78 Q_PROPERTY( bool dragEnabled READ dragEnabled WRITE setDragEnabled )
68 Q_PROPERTY( bool autoOpen READ autoOpen WRITE setAutoOpen ) 79 Q_PROPERTY( bool autoOpen READ autoOpen WRITE setAutoOpen )
69 Q_PROPERTY( bool dropVisualizer READ dropVisualizer WRITE setDropVisualizer ) 80 Q_PROPERTY( bool dropVisualizer READ dropVisualizer WRITE setDropVisualizer )
70//US Q_PROPERTY( int tooltipColumn READ tooltipColumn WRITE setTooltipColumn ) 81//US Q_PROPERTY( int tooltipColumn READ tooltipColumn WRITE setTooltipColumn )
71 Q_PROPERTY( int dropVisualizerWidth READ dropVisualizerWidth WRITE setDropVisualizerWidth ) 82 Q_PROPERTY( int dropVisualizerWidth READ dropVisualizerWidth WRITE setDropVisualizerWidth )
72 Q_PROPERTY( QColor alternateBackground READ alternateBackground WRITE setAlternateBackground ) 83 Q_PROPERTY( QColor alternateBackground READ alternateBackground WRITE setAlternateBackground )
73 84
74 Q_OVERRIDE( SelectionModeExt selectionMode READ selectionModeExt WRITE setSelectionModeExt ) 85 Q_OVERRIDE( SelectionModeExt selectionMode READ selectionModeExt WRITE setSelectionModeExt )
75 86
76public: 87public:
@@ -93,41 +104,41 @@ public:
93 * item to the (including) the first item 104 * item to the (including) the first item
94 * @li CTRL+PgDn: toggle selection from (including) the current 105 * @li CTRL+PgDn: toggle selection from (including) the current
95 * item to (excluding) the item one page down 106 * item to (excluding) the item one page down
96 * @li CTRL+PgUp: toggle selection from (excluding) the current 107 * @li CTRL+PgUp: toggle selection from (excluding) the current
97 * item to (including) the item one page up 108 * item to (including) the item one page up
98 * 109 *
99 * The combinations work the same with SHIFT instead of CTRL, except 110 * The combinations work the same with SHIFT instead of CTRL, except
100 * that if you start selecting something using SHIFT everything selected 111 * that if you start selecting something using SHIFT everything selected
101 * before will be deselected first. 112 * before will be deselected first.
102 * 113 *
103 * Additionally the current item is always selected automatically when 114 * Additionally the current item is always selected automatically when
104 * navigating using the keyboard, except other items were selected explicitely. 115 * navigating using the keyboard, except other items were selected explicitely.
105 * 116 *
106 * This way e.g. SHIFT+up/PgUp then SHIFT+down/PgDn leaves no item selected 117 * This way e.g. SHIFT+up/PgUp then SHIFT+down/PgDn leaves no item selected
107 */ 118 */
108 enum SelectionModeExt { 119 enum SelectionModeExt {
109 Single = QListView::Single, 120 Single = Q3ListView::Single,
110 Multi = QListView::Multi, 121 Multi = Q3ListView::Multi,
111 Extended = QListView::Extended, 122 Extended = Q3ListView::Extended,
112 NoSelection = QListView::NoSelection, 123 NoSelection = Q3ListView::NoSelection,
113 FileManager 124 FileManager
114 }; 125 };
115 void repaintContents( bool erase = true ) 126 void repaintContents( bool erase = true )
116 { 127 {
117 QScrollView::repaintContents( contentsX(), contentsY(), 128 Q3ScrollView::repaintContents( contentsX(), contentsY(),
118 visibleWidth(), visibleHeight(), erase ); 129 visibleWidth(), visibleHeight(), erase );
119 }; 130 };
120 /** 131 /**
121 * Constructor. 132 * Constructor.
122 * 133 *
123 * The parameters @p parent and @p name are handled by 134 * The parameters @p parent and @p name are handled by
124 * @ref QListView, as usual. 135 * @ref QListView, as usual.
125 */ 136 */
126 KListView (QWidget *parent = 0, const char *name = 0, bool emulateRightMouse = true ); 137 KListView (QWidget *parent = 0, const char *name = 0, bool emulateRightMouse = true );
127 138
128 /** 139 /**
129 * Destructor. 140 * Destructor.
130 */ 141 */
131 virtual ~KListView(); 142 virtual ~KListView();
132 143
133 virtual QSize sizeHint() const; 144 virtual QSize sizeHint() const;
@@ -148,52 +159,52 @@ public:
148 * whole item or only the first column. 159 * whole item or only the first column.
149 * @return true if point is inside execute area of an item, false in all 160 * @return true if point is inside execute area of an item, false in all
150 * other cases including the case that it is over the viewport. 161 * other cases including the case that it is over the viewport.
151 */ 162 */
152 virtual bool isExecuteArea( const QPoint& point ); 163 virtual bool isExecuteArea( const QPoint& point );
153 164
154 /** 165 /**
155 * Same thing, but from an x coordinate only. This only checks if x is in 166 * Same thing, but from an x coordinate only. This only checks if x is in
156 * the first column (if all columns don't show focus), without testing if 167 * the first column (if all columns don't show focus), without testing if
157 * the y coordinate is over an item or not. 168 * the y coordinate is over an item or not.
158 */ 169 */
159 bool isExecuteArea( int x ); 170 bool isExecuteArea( int x );
160 171
161 /** 172 /**
162 * @return a list containing the currently selected items. 173 * @return a list containing the currently selected items.
163 */ 174 */
164 QPtrList<QListViewItem> selectedItems() const; // ### BIC: KDE 4: use an implicitly shared class! (QValueList?) 175 Q3PtrList<Q3ListViewItem> selectedItems() const; // ### BIC: KDE 4: use an implicitly shared class! (QValueList?)
165 176
166 /** 177 /**
167 * Arbitrarily move @p item to @p parent, positioned immediately after item @p after. 178 * Arbitrarily move @p item to @p parent, positioned immediately after item @p after.
168 */ 179 */
169 void moveItem(QListViewItem *item, QListViewItem *parent, QListViewItem *after); 180 void moveItem(Q3ListViewItem *item, Q3ListViewItem *parent, Q3ListViewItem *after);
170 181
171 /** 182 /**
172 * @return the last item (not child!) of this listview. 183 * @return the last item (not child!) of this listview.
173 * 184 *
174 * @see lastChild() 185 * @see lastChild()
175 */ 186 */
176 QListViewItem *lastItem() const; 187 Q3ListViewItem *lastItem() const;
177 188
178 /** 189 /**
179 * @return the last child of this listview. 190 * @return the last child of this listview.
180 * 191 *
181 * @see lastItem() 192 * @see lastItem()
182 */ 193 */
183 QListViewItem* lastChild () const; 194 Q3ListViewItem* lastChild () const;
184 195
185 /** 196 /**
186 * @return the lineedit used for inline renaming. 197 * @return the lineedit used for inline renaming.
187 * Use that to setup a @ref KCompletion or @ref QValidator for the lineedit 198 * Use that to setup a @ref KCompletion or @ref QValidator for the lineedit
188 * 199 *
189 * @since 3.2 200 * @since 3.2
190 */ 201 */
191 KLineEdit* renameLineEdit() const; 202 KLineEdit* renameLineEdit() const;
192 203
193 /** 204 /**
194 * @returns if it is legal to move items in the list view. True by default. 205 * @returns if it is legal to move items in the list view. True by default.
195 * 206 *
196 * @see #setDragEnabled() 207 * @see #setDragEnabled()
197 * @see #setItemsMovable() 208 * @see #setItemsMovable()
198 */ 209 */
199 bool itemsMovable() const; 210 bool itemsMovable() const;
@@ -263,71 +274,71 @@ public:
263 */ 274 */
264 int dropVisualizerWidth () const; 275 int dropVisualizerWidth () const;
265 276
266 /** 277 /**
267 * @return the "extended" selection mode of this listview. 278 * @return the "extended" selection mode of this listview.
268 * 279 *
269 * @see SelectionModeExt 280 * @see SelectionModeExt
270 * @see setSelectionModeExt 281 * @see setSelectionModeExt
271 */ 282 */
272 SelectionModeExt selectionModeExt () const; 283 SelectionModeExt selectionModeExt () const;
273 284
274 /** 285 /**
275 * Returns the index of @p item within the item tree or -1 if 286 * Returns the index of @p item within the item tree or -1 if
276 * @p item doesn't exist in this list view. This function takes 287 * @p item doesn't exist in this list view. This function takes
277 * all items into account not only the visible ones. 288 * all items into account not only the visible ones.
278 */ 289 */
279 int itemIndex( const QListViewItem *item ) const; 290 int itemIndex( const Q3ListViewItem *item ) const;
280 291
281 /** 292 /**
282 * Returns the item of @p index within the item tree or 0 if 293 * Returns the item of @p index within the item tree or 0 if
283 * @p index doesn't exist in this list view. This function takes 294 * @p index doesn't exist in this list view. This function takes
284 * all items into account not only the visible ones. 295 * all items into account not only the visible ones.
285 */ 296 */
286 QListViewItem* itemAtIndex(int index); 297 Q3ListViewItem* itemAtIndex(int index);
287 298
288 /** 299 /**
289 * @deprecated 300 * @deprecated
290 * @see #setFullWidth() 301 * @see #setFullWidth()
291 */ 302 */
292 void setFullWidth(); 303 void setFullWidth();
293 304
294 /** 305 /**
295 * Let the last column fit exactly all the available width. 306 * Let the last column fit exactly all the available width.
296 * 307 *
297 * @see #fullWidth() 308 * @see #fullWidth()
298 */ 309 */
299 void setFullWidth(bool fullWidth); 310 void setFullWidth(bool fullWidth);
300 311
301 /** 312 /**
302 * Returns whether the last column is set to fit the available width. 313 * Returns whether the last column is set to fit the available width.
303 * 314 *
304 * @see #setFullWidth() 315 * @see #setFullWidth()
305 */ 316 */
306 bool fullWidth() const; 317 bool fullWidth() const;
307 318
308 /** 319 /**
309 * Reimplemented for full width support 320 * Reimplemented for full width support
310 * 321 *
311 * @see #removeColumn() 322 * @see #removeColumn()
312 */ 323 */
313 virtual int addColumn(const QString& label, int width = -1); 324 virtual int addColumn(const QString& label, int width = -1);
314 /** 325 /**
315 * Reimplemented for full width support 326 * Reimplemented for full width support
316 */ 327 */
317 virtual int addColumn(const QIconSet& iconset, const QString& label, int width = -1); 328 virtual int addColumn(const QIcon& iconset, const QString& label, int width = -1);
318 /** 329 /**
319 * Reimplemented for full width support 330 * Reimplemented for full width support
320 * 331 *
321 * @see #addColumn() 332 * @see #addColumn()
322 */ 333 */
323 virtual void removeColumn(int index); 334 virtual void removeColumn(int index);
324 335
325 /** 336 /**
326 * sets the alternate background background color. 337 * sets the alternate background background color.
327 * This only has an effect if the items are KListViewItems 338 * This only has an effect if the items are KListViewItems
328 * 339 *
329 * @param c the color to use for every other item. Set to an invalid 340 * @param c the color to use for every other item. Set to an invalid
330 * colour to disable alternate colours. 341 * colour to disable alternate colours.
331 * 342 *
332 * @see #alternateBackground() 343 * @see #alternateBackground()
333 **/ 344 **/
@@ -375,198 +386,198 @@ public:
375 386
376 //US we do not have a "global KDE" variable to setup singleClick functionality 387 //US we do not have a "global KDE" variable to setup singleClick functionality
377 void setSingleClick(bool s); 388 void setSingleClick(bool s);
378 389
379 390
380signals: 391signals:
381 392
382 /** 393 /**
383 * This signal is emitted whenever the user executes an listview item. 394 * This signal is emitted whenever the user executes an listview item.
384 * That means depending on the KDE wide Single Click/Double Click 395 * That means depending on the KDE wide Single Click/Double Click
385 * setting the user clicked or double clicked on that item. 396 * setting the user clicked or double clicked on that item.
386 * @param item is the pointer to the executed listview item. 397 * @param item is the pointer to the executed listview item.
387 * 398 *
388 * Note that you may not delete any @ref QListViewItem objects in slots 399 * Note that you may not delete any @ref QListViewItem objects in slots
389 * connected to this signal. 400 * connected to this signal.
390 */ 401 */
391 void executed( QListViewItem *item ); 402 void executed( Q3ListViewItem *item );
392 403
393 /** 404 /**
394 * This signal is emitted whenever the user executes an listview item. 405 * This signal is emitted whenever the user executes an listview item.
395 * That means depending on the KDE wide Single Click/Double Click 406 * That means depending on the KDE wide Single Click/Double Click
396 * setting the user clicked or double clicked on that item. 407 * setting the user clicked or double clicked on that item.
397 * @param item is the pointer to the executed listview item. 408 * @param item is the pointer to the executed listview item.
398 * @param pos is the position where the user has clicked 409 * @param pos is the position where the user has clicked
399 * @param c is the column into which the user clicked. 410 * @param c is the column into which the user clicked.
400 * 411 *
401 * Note that you may not delete any @ref QListViewItem objects in slots 412 * Note that you may not delete any @ref QListViewItem objects in slots
402 * connected to this signal. 413 * connected to this signal.
403 */ 414 */
404 void executed( QListViewItem *item, const QPoint &pos, int c ); 415 void executed( Q3ListViewItem *item, const QPoint &pos, int c );
405 416
406 /** 417 /**
407 * This signal gets emitted whenever the user double clicks into the 418 * This signal gets emitted whenever the user double clicks into the
408 * listview. 419 * listview.
409 * @param item is the pointer to the clicked listview item. 420 * @param item is the pointer to the clicked listview item.
410 * @param pos is the position where the user has clicked, and 421 * @param pos is the position where the user has clicked, and
411 * @param c is the column into which the user clicked. 422 * @param c is the column into which the user clicked.
412 * 423 *
413 * Note that you may not delete any @ref QListViewItem objects in slots 424 * Note that you may not delete any @ref QListViewItem objects in slots
414 * connected to this signal. 425 * connected to this signal.
415 * 426 *
416 * This signal is more or less here for the sake of completeness. 427 * This signal is more or less here for the sake of completeness.
417 * You should normally not need to use this. In most cases its better 428 * You should normally not need to use this. In most cases its better
418 * to use @ref #executed() instead. 429 * to use @ref #executed() instead.
419 */ 430 */
420 void doubleClicked( QListViewItem *item, const QPoint &pos, int c ); 431 void doubleClicked( Q3ListViewItem *item, const QPoint &pos, int c );
421 void contextRequest( QListViewItem *item, const QPoint &pos, int c ); 432 void contextRequest( Q3ListViewItem *item, const QPoint &pos, int c );
422 433
423 /** 434 /**
424 * This signal gets emitted whenever something acceptable is 435 * This signal gets emitted whenever something acceptable is
425 * dropped onto the listview. 436 * dropped onto the listview.
426 * 437 *
427 * @param e is the drop event itself (it has already been accepted) 438 * @param e is the drop event itself (it has already been accepted)
428 * @param after is the item after which the drop occured (or 0L, if 439 * @param after is the item after which the drop occured (or 0L, if
429 * the drop was above all items) 440 * the drop was above all items)
430 * 441 *
431 * @see #acceptDrop() 442 * @see #acceptDrop()
432 */ 443 */
433 void dropped (QDropEvent * e, QListViewItem *after); 444 void dropped (QDropEvent * e, Q3ListViewItem *after);
434 445
435 /** 446 /**
436 * This signal gets emitted whenever something acceptable is 447 * This signal gets emitted whenever something acceptable is
437 * dropped onto the listview. 448 * dropped onto the listview.
438 * 449 *
439 * This is an overloaded version of the above (provided to simplify 450 * This is an overloaded version of the above (provided to simplify
440 * processing drops outside of the class). 451 * processing drops outside of the class).
441 * 452 *
442 * @param list is the listview 453 * @param list is the listview
443 * @param e is the drop event itself (it has already been accepted) 454 * @param e is the drop event itself (it has already been accepted)
444 * @param after is the item after which the drop occured (or 0L, if 455 * @param after is the item after which the drop occured (or 0L, if
445 * the drop was above all items 456 * the drop was above all items
446 */ 457 */
447 void dropped (KListView* list, QDropEvent* e, QListViewItem* after); 458 void dropped (KListView* list, QDropEvent* e, Q3ListViewItem* after);
448 459
449 /** 460 /**
450 * This signal gets emitted whenever something acceptable is 461 * This signal gets emitted whenever something acceptable is
451 * dropped onto the listview. 462 * dropped onto the listview.
452 * 463 *
453 * This function also provides a parent, in the event that your listview 464 * This function also provides a parent, in the event that your listview
454 * is a tree 465 * is a tree
455 * @param list is the listview 466 * @param list is the listview
456 * @param e is the drop event itself (it has already been accepted) 467 * @param e is the drop event itself (it has already been accepted)
457 * @param parent the item that is to be the parent of the new item 468 * @param parent the item that is to be the parent of the new item
458 * @param after is the item after which the drop occured (or 0L, if 469 * @param after is the item after which the drop occured (or 0L, if
459 * the drop was above all items 470 * the drop was above all items
460 */ 471 */
461 void dropped (KListView* list, QDropEvent* e, QListViewItem* parent, QListViewItem* after); 472 void dropped (KListView* list, QDropEvent* e, Q3ListViewItem* parent, Q3ListViewItem* after);
462 473
463 /** 474 /**
464 * This signal gets emitted whenever something acceptable is 475 * This signal gets emitted whenever something acceptable is
465 * dropped onto the listview. 476 * dropped onto the listview.
466 * 477 *
467 * This function also provides a parent, in the event that your listview 478 * This function also provides a parent, in the event that your listview
468 * is a tree 479 * is a tree
469 * @param e is the drop event itself (it has already been accepted) 480 * @param e is the drop event itself (it has already been accepted)
470 * @param parent the item that is to be the parent of the new item 481 * @param parent the item that is to be the parent of the new item
471 * @param after is the item after which the drop occured (or 0L, if 482 * @param after is the item after which the drop occured (or 0L, if
472 * the drop was above all items 483 * the drop was above all items
473 */ 484 */
474 void dropped (QDropEvent* e, QListViewItem* parent, QListViewItem* after); 485 void dropped (QDropEvent* e, Q3ListViewItem* parent, Q3ListViewItem* after);
475 486
476 /** 487 /**
477 * This signal is emitted when ever the user moves an item in the list via 488 * This signal is emitted when ever the user moves an item in the list via
478 * DnD. 489 * DnD.
479 * If more than one item is moved at the same time, this signal is only emitted 490 * If more than one item is moved at the same time, this signal is only emitted
480 * once. 491 * once.
481 */ 492 */
482 void moved(); 493 void moved();
483 494
484 /** 495 /**
485 * Connect to this signal if you want to do some preprocessing before 496 * Connect to this signal if you want to do some preprocessing before
486 * a move is made, for example, to disable sorting 497 * a move is made, for example, to disable sorting
487 * 498 *
488 * This is sent only once per each groups of moves. That is, for each 499 * This is sent only once per each groups of moves. That is, for each
489 * drop that is a move this will be emitted once, before KListView calls 500 * drop that is a move this will be emitted once, before KListView calls
490 * @see moveItem() 501 * @see moveItem()
491 */ 502 */
492 void aboutToMove(); 503 void aboutToMove();
493 504
494 /** 505 /**
495 * This signal is emitted when ever the user moves an item in the list via 506 * This signal is emitted when ever the user moves an item in the list via
496 * DnD. 507 * DnD.
497 * If more than one item is moved at the same time, @p afterFirst and 508 * If more than one item is moved at the same time, @p afterFirst and
498 * @p afterNow will reflect what was true before the move. 509 * @p afterNow will reflect what was true before the move.
499 * This differs from @ref moved(), so be careful. All the items will have been 510 * This differs from @ref moved(), so be careful. All the items will have been
500 * moved before @ref moved() is emitted, which is not true in this method. // FIXME 511 * moved before @ref moved() is emitted, which is not true in this method. // FIXME
501 * @param item the item that was moved 512 * @param item the item that was moved
502 * @param afterFirst the item that parameter item was in before the move, in the list 513 * @param afterFirst the item that parameter item was in before the move, in the list
503 * @param afterNow the item it's currently after. 514 * @param afterNow the item it's currently after.
504 */ 515 */
505 void moved (QListViewItem *item, QListViewItem *afterFirst, QListViewItem *afterNow); 516 void moved (Q3ListViewItem *item, Q3ListViewItem *afterFirst, Q3ListViewItem *afterNow);
506 517
507 518
508 /** 519 /**
509 * This signal is emitted after all the items have been moved. It reports info for 520 * This signal is emitted after all the items have been moved. It reports info for
510 * each and every item moved, in order. The first element in @p items associates 521 * each and every item moved, in order. The first element in @p items associates
511 * with the first of afterFirst and afterNow. 522 * with the first of afterFirst and afterNow.
512 */ 523 */
513 void moved(QPtrList<QListViewItem> &items, QPtrList<QListViewItem> &afterFirst, QPtrList<QListViewItem> &afterNow); 524 void moved(Q3PtrList<Q3ListViewItem> &items, Q3PtrList<Q3ListViewItem> &afterFirst, Q3PtrList<Q3ListViewItem> &afterNow);
514 525
515 /** 526 /**
516 * This signal gets emitted when an item is renamed via in-place renaming. 527 * This signal gets emitted when an item is renamed via in-place renaming.
517 * 528 *
518 * @param item is the renamed item. 529 * @param item is the renamed item.
519 * @param str is the new value of column @p col. 530 * @param str is the new value of column @p col.
520 * @param col is the renamed column. 531 * @param col is the renamed column.
521 */ 532 */
522 void itemRenamed(QListViewItem* item, const QString &str, int col); 533 void itemRenamed(Q3ListViewItem* item, const QString &str, int col);
523 534
524 /** 535 /**
525 * Same as above, but without the extra information. 536 * Same as above, but without the extra information.
526 */ 537 */
527 void itemRenamed(QListViewItem* item); 538 void itemRenamed(Q3ListViewItem* item);
528 void signalDelete(); 539 void signalDelete();
529 540
530 /** 541 /**
531 * This signal is emitted when the shortcut key for popup-menus is pressed. 542 * This signal is emitted when the shortcut key for popup-menus is pressed.
532 * 543 *
533 * Normally you should not use this, just connect a slot to signal 544 * Normally you should not use this, just connect a slot to signal
534 * @ref contextMenu (KListView*, QListViewItem*, const QPoint&) to correctly 545 * @ref contextMenu (KListView*, QListViewItem*, const QPoint&) to correctly
535 * handle showing context menus regardless of settings. 546 * handle showing context menus regardless of settings.
536 * 547 *
537 * @param list is this listview. 548 * @param list is this listview.
538 * @param item is the @ref currentItem() at the time the key was pressed. May be 0L. 549 * @param item is the @ref currentItem() at the time the key was pressed. May be 0L.
539 */ 550 */
540 void menuShortCutPressed (KListView* list, QListViewItem* item); 551 void menuShortCutPressed (KListView* list, Q3ListViewItem* item);
541 552
542 /** 553 /**
543 * This signal is emitted whenever a context-menu should be shown for item @p i. 554 * This signal is emitted whenever a context-menu should be shown for item @p i.
544 * It automatically adjusts for all settings involved (Menu key, showMenuOnPress/Click). 555 * It automatically adjusts for all settings involved (Menu key, showMenuOnPress/Click).
545 * 556 *
546 * @param l is this listview. 557 * @param l is this listview.
547 * @param i is the item for which the menu should be shown. May be 0L. 558 * @param i is the item for which the menu should be shown. May be 0L.
548 * @param p is the point at which the menu should be shown. 559 * @param p is the point at which the menu should be shown.
549 */ 560 */
550 void contextMenu (KListView* l, QListViewItem* i, const QPoint& p); 561 void contextMenu (KListView* l, Q3ListViewItem* i, const QPoint& p);
551 562
552public slots: 563public slots:
553 /** 564 /**
554 * Rename column @p c of @p item. 565 * Rename column @p c of @p item.
555 */ 566 */
556 virtual void rename(QListViewItem *item, int c); 567 virtual void rename(Q3ListViewItem *item, int c);
557 568
558 /** 569 /**
559 * By default, if you called setItemsRenameable(true), 570 * By default, if you called setItemsRenameable(true),
560 * only the first column is renameable. 571 * only the first column is renameable.
561 * Use this function to enable the feature on other columns. 572 * Use this function to enable the feature on other columns.
562 * 573 *
563 * If you want more intelligent (dynamic) selection, 574 * If you want more intelligent (dynamic) selection,
564 * you'll have to derive from KListView, 575 * you'll have to derive from KListView,
565 * and override @ref rename() and call only call it 576 * and override @ref rename() and call only call it
566 * if you want the item to be renamed. 577 * if you want the item to be renamed.
567 */ 578 */
568 void setRenameable (int column, bool yesno=true); 579 void setRenameable (int column, bool yesno=true);
569 580
570 /** 581 /**
571 * Set whether items in the list view can be moved. 582 * Set whether items in the list view can be moved.
572 * It is enabled by default. 583 * It is enabled by default.
@@ -660,86 +671,86 @@ protected:
660 * viewport coordinates. 671 * viewport coordinates.
661 */ 672 */
662 inline bool below (const QRect& rect, const QPoint& p) 673 inline bool below (const QRect& rect, const QPoint& p)
663 { 674 {
664 return (p.y() > (rect.top() + (rect.bottom() - rect.top())/2)); 675 return (p.y() > (rect.top() + (rect.bottom() - rect.top())/2));
665 } 676 }
666 677
667 /** 678 /**
668 * An overloaded version of below(const QRect&, const QPoint&). 679 * An overloaded version of below(const QRect&, const QPoint&).
669 * 680 *
670 * It differs from the above only in what arguments it takes. 681 * It differs from the above only in what arguments it takes.
671 * 682 *
672 * @param i the item whose rect() is passed to the above function. 683 * @param i the item whose rect() is passed to the above function.
673 * @param p is translated from contents coordinates to viewport coordinates 684 * @param p is translated from contents coordinates to viewport coordinates
674 * before being passed to the above function. 685 * before being passed to the above function.
675 */ 686 */
676 inline bool below (QListViewItem* i, const QPoint& p) 687 inline bool below (Q3ListViewItem* i, const QPoint& p)
677 { 688 {
678 return below (itemRect(i), contentsToViewport(p)); 689 return below (itemRect(i), contentsToViewport(p));
679 } 690 }
680 691
681 /** 692 /**
682 * Reimplemented to reload the alternate background in palette changes. 693 * Reimplemented to reload the alternate background in palette changes.
683 * @internal 694 * @internal
684 */ 695 */
685 virtual bool event( QEvent * ); 696 virtual bool event( QEvent * );
686 697
687 /** 698 /**
688 * Emit signal @ref #executed. 699 * Emit signal @ref #executed.
689 * @internal 700 * @internal
690 */ 701 */
691 //US I added buttonstate to pass the current keyboard status 702 //US I added buttonstate to pass the current keyboard status
692 void emitExecute( int buttonstate, QListViewItem *item, const QPoint &pos, int c); 703 void emitExecute( int buttonstate, Q3ListViewItem *item, const QPoint &pos, int c);
693 704
694 /** 705 /**
695 * Reimplemented for internal reasons. 706 * Reimplemented for internal reasons.
696 * Further reimplementations should call this function or else 707 * Further reimplementations should call this function or else
697 * some features may not work correctly. 708 * some features may not work correctly.
698 * 709 *
699 * The API is unaffected. 710 * The API is unaffected.
700 */ 711 */
701 virtual void focusInEvent(QFocusEvent* fe); 712 virtual void focusInEvent(QFocusEvent* fe);
702 713
703 /** 714 /**
704 * Reimplemented for internal reasons. 715 * Reimplemented for internal reasons.
705 * Further reimplementations should call this function or else 716 * Further reimplementations should call this function or else
706 * some features may not work correctly. 717 * some features may not work correctly.
707 * 718 *
708 * The API is unaffected. 719 * The API is unaffected.
709 */ 720 */
710 virtual void focusOutEvent( QFocusEvent *fe ); 721 virtual void focusOutEvent( QFocusEvent *fe );
711 722
712 /** 723 /**
713 * Reimplemented for internal reasons. 724 * Reimplemented for internal reasons.
714 * Further reimplementations should call this function or else 725 * Further reimplementations should call this function or else
715 * some features may not work correctly. 726 * some features may not work correctly.
716 * 727 *
717 * The API is unaffected. 728 * The API is unaffected.
718 */ 729 */
719 virtual void leaveEvent( QEvent *e ); 730 virtual void leaveEvent( QEvent *e );
720 731
721 /** 732 /**
722 * @return the tooltip for @p column of @p item. 733 * @return the tooltip for @p column of @p item.
723 */ 734 */
724 virtual QString tooltip(QListViewItem* item, int column) const; 735 virtual QString tooltip(Q3ListViewItem* item, int column) const;
725 736
726 /** 737 /**
727 * @return whether the tooltip for @p column of @p item shall be shown at point @p pos. 738 * @return whether the tooltip for @p column of @p item shall be shown at point @p pos.
728 */ 739 */
729 virtual bool showTooltip(QListViewItem *item, const QPoint &pos, int column) const; 740 virtual bool showTooltip(Q3ListViewItem *item, const QPoint &pos, int column) const;
730 741
731 /** 742 /**
732 * Reimplemented for internal reasons. 743 * Reimplemented for internal reasons.
733 * Further reimplementations should call this function or else 744 * Further reimplementations should call this function or else
734 * some features may not work correctly. 745 * some features may not work correctly.
735 * 746 *
736 * The API is unaffected. 747 * The API is unaffected.
737 */ 748 */
738 virtual void contentsDragMoveEvent (QDragMoveEvent *event); 749 virtual void contentsDragMoveEvent (QDragMoveEvent *event);
739 750
740 /** 751 /**
741 * Reimplemented for internal reasons. 752 * Reimplemented for internal reasons.
742 * Further reimplementations should call this function or else 753 * Further reimplementations should call this function or else
743 * some features may not work correctly. 754 * some features may not work correctly.
744 * 755 *
745 * The API is unaffected. 756 * The API is unaffected.
@@ -792,57 +803,57 @@ protected:
792 virtual void contentsDropEvent (QDropEvent*); 803 virtual void contentsDropEvent (QDropEvent*);
793 804
794 /** 805 /**
795 * Reimplemented for internal reasons. 806 * Reimplemented for internal reasons.
796 * Further reimplementations should call this function or else 807 * Further reimplementations should call this function or else
797 * some features may not work correctly. 808 * some features may not work correctly.
798 * 809 *
799 * The API is unaffected. 810 * The API is unaffected.
800 */ 811 */
801 virtual void contentsDragEnterEvent (QDragEnterEvent *); 812 virtual void contentsDragEnterEvent (QDragEnterEvent *);
802 813
803 /** 814 /**
804 * @return a dragobject encoding the current selection. 815 * @return a dragobject encoding the current selection.
805 * 816 *
806 * @see setDragEnabled() 817 * @see setDragEnabled()
807 */ 818 */
808 virtual QDragObject *dragObject(); 819 virtual Q3DragObject *dragObject();
809 820
810 /** 821 /**
811 * @return true if the @p event provides some acceptable 822 * @return true if the @p event provides some acceptable
812 * format. 823 * format.
813 * A common mistake is to forget the "const" in your reimplementation 824 * A common mistake is to forget the "const" in your reimplementation
814 */ 825 */
815 virtual bool acceptDrag (QDropEvent* event) const; 826 virtual bool acceptDrag (QDropEvent* event) const;
816 827
817 /** 828 /**
818 * Paint the drag line. If painter is null, don't try to :) 829 * Paint the drag line. If painter is null, don't try to :)
819 * 830 *
820 * If after == 0 then the marker should be drawn at the top. 831 * If after == 0 then the marker should be drawn at the top.
821 * 832 *
822 * @return the rectangle that you painted to. 833 * @return the rectangle that you painted to.
823 */ 834 */
824 virtual QRect drawDropVisualizer (QPainter *p, QListViewItem *parent, QListViewItem *after); 835 virtual QRect drawDropVisualizer (QPainter *p, Q3ListViewItem *parent, Q3ListViewItem *after);
825 836
826 /** 837 /**
827 * Paint the drag rectangle. If painter is null, don't try to :) 838 * Paint the drag rectangle. If painter is null, don't try to :)
828 * 839 *
829 * 840 *
830 * @return the rectangle that you painted to. 841 * @return the rectangle that you painted to.
831 */ 842 */
832 virtual QRect drawItemHighlighter(QPainter *painter, QListViewItem *item); 843 virtual QRect drawItemHighlighter(QPainter *painter, Q3ListViewItem *item);
833 844
834 /** 845 /**
835 * This method calls @ref dragObject() and starts the drag. 846 * This method calls @ref dragObject() and starts the drag.
836 * 847 *
837 * Reimplement it to do fancy stuff like setting a pixmap or 848 * Reimplement it to do fancy stuff like setting a pixmap or
838 * using a non-default DragMode 849 * using a non-default DragMode
839 */ 850 */
840 virtual void startDrag(); 851 virtual void startDrag();
841 852
842 /** 853 /**
843 * Reimplemented for internal reasons. 854 * Reimplemented for internal reasons.
844 * Further reimplementations should call this function or else 855 * Further reimplementations should call this function or else
845 * some features may not work correctly. 856 * some features may not work correctly.
846 * 857 *
847 * The API is unaffected. 858 * The API is unaffected.
848 */ 859 */
@@ -873,153 +884,153 @@ protected:
873 * Returns false if items were selected explicitely, e.g. using the mouse. 884 * Returns false if items were selected explicitely, e.g. using the mouse.
874 */ 885 */
875 bool automaticSelection() const; 886 bool automaticSelection() const;
876 887
877 /** 888 /**
878 * Reimplemented for setFullWidth() 889 * Reimplemented for setFullWidth()
879 */ 890 */
880 virtual void viewportResizeEvent(QResizeEvent* e); 891 virtual void viewportResizeEvent(QResizeEvent* e);
881 892
882protected slots: 893protected slots:
883 /** 894 /**
884 * Update internal settings whenever the global ones change. 895 * Update internal settings whenever the global ones change.
885 * @internal 896 * @internal
886 */ 897 */
887 void slotSettingsChanged(int); 898 void slotSettingsChanged(int);
888 899
889 void slotMouseButtonClicked( int btn, QListViewItem *item, const QPoint &pos, int c ); 900 void slotMouseButtonClicked( int btn, Q3ListViewItem *item, const QPoint &pos, int c );
890 void doneEditing(QListViewItem *item, int row); 901 void doneEditing(Q3ListViewItem *item, int row);
891 902
892 /** 903 /**
893 * Repaint the rect where I was drawing the drop line. 904 * Repaint the rect where I was drawing the drop line.
894 */ 905 */
895 void cleanDropVisualizer(); 906 void cleanDropVisualizer();
896 907
897 /** 908 /**
898 * Repaint the rect where I was drawing the drop rectangle. 909 * Repaint the rect where I was drawing the drop rectangle.
899 */ 910 */
900 void cleanItemHighlighter(); 911 void cleanItemHighlighter();
901 912
902 /** 913 /**
903 * Emit the @ref contextMenu signal. This slot is for mouse actions. 914 * Emit the @ref contextMenu signal. This slot is for mouse actions.
904 */ 915 */
905 void emitContextMenu (QListViewItem*, const QPoint&, int); 916 void emitContextMenu (Q3ListViewItem*, const QPoint&, int);
906 917
907 /** 918 /**
908 * Emit the @ref #contextMenu signal. This slot is for key presses. 919 * Emit the @ref #contextMenu signal. This slot is for key presses.
909 */ 920 */
910 void emitContextMenu (KListView*, QListViewItem*); 921 void emitContextMenu (KListView*, Q3ListViewItem*);
911 922
912 /** 923 /**
913 * Accessory slot for AutoSelect 924 * Accessory slot for AutoSelect
914 * @internal 925 * @internal
915 */ 926 */
916 void slotOnItem( QListViewItem *item ); 927 void slotOnItem( Q3ListViewItem *item );
917 928
918 /** 929 /**
919 * Accessory slot for AutoSelect/ChangeCursorOverItem 930 * Accessory slot for AutoSelect/ChangeCursorOverItem
920 * @internal 931 * @internal
921 */ 932 */
922 void slotOnViewport(); 933 void slotOnViewport();
923 934
924 /** 935 /**
925 * Process AutoSelection. 936 * Process AutoSelection.
926 * @internal 937 * @internal
927 */ 938 */
928 void slotAutoSelect(); 939 void slotAutoSelect();
929 940
930 void slotDragExpand(); 941 void slotDragExpand();
931 942
932 /** 943 /**
933 * Reacts to header changes in full width mode 944 * Reacts to header changes in full width mode
934 * @internal 945 * @internal
935 */ 946 */
936 void slotHeaderChanged(); 947 void slotHeaderChanged();
937 948
938protected: 949protected:
939 /** 950 /**
940 * Handle dropEvent when itemsMovable() is set to true. 951 * Handle dropEvent when itemsMovable() is set to true.
941 */ 952 */
942 virtual void movableDropEvent (QListViewItem* parent, QListViewItem* afterme); 953 virtual void movableDropEvent (Q3ListViewItem* parent, Q3ListViewItem* afterme);
943 954
944 /** 955 /**
945 * Where is the nearest QListViewItem that I'm going to drop? 956 * Where is the nearest QListViewItem that I'm going to drop?
946 * 957 *
947 * FIXME KDE 4.0: Make this method const so it can be called from an 958 * FIXME KDE 4.0: Make this method const so it can be called from an
948 * acceptDrag method without ugly casts 959 * acceptDrag method without ugly casts
949 */ 960 */
950 virtual void findDrop(const QPoint &pos, QListViewItem *&parent, QListViewItem *&after); 961 virtual void findDrop(const QPoint &pos, Q3ListViewItem *&parent, Q3ListViewItem *&after);
951 962
952 /** 963 /**
953 * A special keyPressEvent (for FileManager selection mode). 964 * A special keyPressEvent (for FileManager selection mode).
954 */ 965 */
955 void fileManagerKeyPressEvent (QKeyEvent*); 966 void fileManagerKeyPressEvent (QKeyEvent*);
956 967
957 /** 968 /**
958 * Convert the depth of an item into its indentation in pixels 969 * Convert the depth of an item into its indentation in pixels
959 */ 970 */
960 int depthToPixels( int depth ); 971 int depthToPixels( int depth );
961 972
962private: 973private:
963 class Tooltip; 974 class Tooltip;
964protected: 975protected:
965 virtual void virtual_hook( int id, void* data ); 976 virtual void virtual_hook( int id, void* data );
966private: 977private:
967 class KListViewPrivate; 978 class KListViewPrivate;
968 KListViewPrivate *d; 979 KListViewPrivate *d;
969}; 980};
970 981
971/** 982/**
972 * A listview item with support for alternate background colours. It is 983 * A listview item with support for alternate background colours. It is
973 * a drop-in replacement for @ref QListViewItem 984 * a drop-in replacement for @ref QListViewItem
974 * 985 *
975 * @short listview item with alternate background colour support 986 * @short listview item with alternate background colour support
976 */ 987 */
977class KListViewItem : public QListViewItem 988class KListViewItem : public Q3ListViewItem
978{ 989{
979public: 990public:
980 /** 991 /**
981 * constructors. The semantics remain as in @ref QListViewItem. 992 * constructors. The semantics remain as in @ref QListViewItem.
982 * Although they accept a @ref QListViewItem as parent, please 993 * Although they accept a @ref QListViewItem as parent, please
983 * don't mix KListViewItem (or subclasses) with QListViewItem 994 * don't mix KListViewItem (or subclasses) with QListViewItem
984 * (or subclasses). 995 * (or subclasses).
985 */ 996 */
986 KListViewItem(QListView *parent); 997 KListViewItem(Q3ListView *parent);
987 KListViewItem(QListViewItem *parent); 998 KListViewItem(Q3ListViewItem *parent);
988 KListViewItem(QListView *parent, QListViewItem *after); 999 KListViewItem(Q3ListView *parent, Q3ListViewItem *after);
989 KListViewItem(QListViewItem *parent, QListViewItem *after); 1000 KListViewItem(Q3ListViewItem *parent, Q3ListViewItem *after);
990 1001
991 KListViewItem(QListView *parent, 1002 KListViewItem(Q3ListView *parent,
992 QString, QString = QString::null, 1003 QString, QString = QString::null,
993 QString = QString::null, QString = QString::null, 1004 QString = QString::null, QString = QString::null,
994 QString = QString::null, QString = QString::null, 1005 QString = QString::null, QString = QString::null,
995 QString = QString::null, QString = QString::null); 1006 QString = QString::null, QString = QString::null);
996 1007
997 KListViewItem(QListViewItem *parent, 1008 KListViewItem(Q3ListViewItem *parent,
998 QString, QString = QString::null, 1009 QString, QString = QString::null,
999 QString = QString::null, QString = QString::null, 1010 QString = QString::null, QString = QString::null,
1000 QString = QString::null, QString = QString::null, 1011 QString = QString::null, QString = QString::null,
1001 QString = QString::null, QString = QString::null); 1012 QString = QString::null, QString = QString::null);
1002 1013
1003 KListViewItem(QListView *parent, QListViewItem *after, 1014 KListViewItem(Q3ListView *parent, Q3ListViewItem *after,
1004 QString, QString = QString::null, 1015 QString, QString = QString::null,
1005 QString = QString::null, QString = QString::null, 1016 QString = QString::null, QString = QString::null,
1006 QString = QString::null, QString = QString::null, 1017 QString = QString::null, QString = QString::null,
1007 QString = QString::null, QString = QString::null); 1018 QString = QString::null, QString = QString::null);
1008 1019
1009 KListViewItem(QListViewItem *parent, QListViewItem *after, 1020 KListViewItem(Q3ListViewItem *parent, Q3ListViewItem *after,
1010 QString, QString = QString::null, 1021 QString, QString = QString::null,
1011 QString = QString::null, QString = QString::null, 1022 QString = QString::null, QString = QString::null,
1012 QString = QString::null, QString = QString::null, 1023 QString = QString::null, QString = QString::null,
1013 QString = QString::null, QString = QString::null); 1024 QString = QString::null, QString = QString::null);
1014 1025
1015 virtual ~KListViewItem(); 1026 virtual ~KListViewItem();
1016 1027
1017 /** 1028 /**
1018 * retuns true if this item is to be drawn with the alternate background 1029 * retuns true if this item is to be drawn with the alternate background
1019 */ 1030 */
1020 bool isAlternate(); 1031 bool isAlternate();
1021 /** 1032 /**
1022 * returns the background colour for this item 1033 * returns the background colour for this item
1023 */ 1034 */
1024 const QColor &backgroundColor(); 1035 const QColor &backgroundColor();
1025 1036
diff --git a/microkde/kdeui/kmainwindow.cpp b/microkde/kdeui/kmainwindow.cpp
index fa678f2..bac0db8 100644
--- a/microkde/kdeui/kmainwindow.cpp
+++ b/microkde/kdeui/kmainwindow.cpp
@@ -8,66 +8,72 @@
8 (C) 2002 Joseph Wenninger (jowenn@kde.org) 8 (C) 2002 Joseph Wenninger (jowenn@kde.org)
9 9
10 This library is free software; you can redistribute it and/or 10 This library is free software; you can redistribute it and/or
11 modify it under the terms of the GNU Library General Public 11 modify it under the terms of the GNU Library General Public
12 License version 2 as published by the Free Software Foundation. 12 License version 2 as published by the Free Software Foundation.
13 13
14 This library is distributed in the hope that it will be useful, 14 This library is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 Library General Public License for more details. 17 Library General Public License for more details.
18 18
19 You should have received a copy of the GNU Library General Public License 19 You should have received a copy of the GNU Library General Public License
20 along with this library; see the file COPYING.LIB. If not, write to 20 along with this library; see the file COPYING.LIB. If not, write to
21 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 21 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
22 Boston, MA 02111-1307, USA. 22 Boston, MA 02111-1307, USA.
23 */ 23 */
24#include <qobjectlist.h> 24#include <qobject.h>
25#include <qstringlist.h> 25#include <qstringlist.h>
26#include <qtimer.h> 26#include <qtimer.h>
27#include <qmenubar.h> 27#include <qmenubar.h>
28#include <qstatusbar.h> 28#include <qstatusbar.h>
29#include <qapplication.h> 29#include <qapplication.h>
30//Added by qt3to4:
31#include <QCloseEvent>
32#include <QPaintEvent>
33#include <QResizeEvent>
34#include <QChildEvent>
35#include <Q3PtrList>
30 36
31 37
32#include "kdebug.h" 38#include "kdebug.h"
33#include "kmainwindow.h" 39#include "kmainwindow.h"
34#include "kglobalsettings.h" 40#include "kglobalsettings.h"
35#include "kactioncollection.h" 41#include "kactioncollection.h"
36 42
37class KMainWindowPrivate { 43class KMainWindowPrivate {
38public: 44public:
39//US bool showHelpMenu:1; 45//US bool showHelpMenu:1;
40 46
41 bool autoSaveSettings:1; 47 bool autoSaveSettings:1;
42 bool settingsDirty:1; 48 bool settingsDirty:1;
43 bool autoSaveWindowSize:1; 49 bool autoSaveWindowSize:1;
44 bool care_about_geometry:1; 50 bool care_about_geometry:1;
45 QString autoSaveGroup; 51 QString autoSaveGroup;
46//US KAccel * kaccel; 52//US KAccel * kaccel;
47//US KMainWindowInterface *m_interface; 53//US KMainWindowInterface *m_interface;
48 KDEPrivate::ToolBarHandler *toolBarHandler; 54 KDEPrivate::ToolBarHandler *toolBarHandler;
49 QTimer* settingsTimer; 55 QTimer* settingsTimer;
50 KToggleAction *showStatusBarAction; 56 KToggleAction *showStatusBarAction;
51 QRect defaultWindowSize; 57 QRect defaultWindowSize;
52}; 58};
53 59
54static bool no_query_exit = false; 60static bool no_query_exit = false;
55 61
56KMainWindow::KMainWindow( QWidget* parent, const char *name ) 62KMainWindow::KMainWindow( QWidget* parent, const char *name )
57 : QMainWindow( parent, name ) /*LR, f ) with the default widget flag we cannot have fastload */ /*US, KXMLGUIBuilder( this ), helpMenu2( 0 ), factory_( 0 )*/ 63 : Q3MainWindow( parent, name ) /*LR, f ) with the default widget flag we cannot have fastload */ /*US, KXMLGUIBuilder( this ), helpMenu2( 0 ), factory_( 0 )*/
58{ 64{
59 mQToolBar = 0; 65 mQToolBar = 0;
60 initKMainWindow(name); 66 initKMainWindow(name);
61} 67}
62 68
63void KMainWindow::parseGeometry(bool parsewidth) 69void KMainWindow::parseGeometry(bool parsewidth)
64{ 70{
65//US the following code is not getting used in the embedded version !! So disable it for now 71//US the following code is not getting used in the embedded version !! So disable it for now
66/*US 72/*US
67 73
68 assert ( !kapp->geometryArgument().isNull() ); 74 assert ( !kapp->geometryArgument().isNull() );
69 assert ( d->care_about_geometry ); 75 assert ( d->care_about_geometry );
70 76
71#ifndef Q_WS_QWS 77#ifndef Q_WS_QWS
72 // FIXME: (E) Implement something similar for Qt Embedded (or decide we don't need it) 78 // FIXME: (E) Implement something similar for Qt Embedded (or decide we don't need it)
73 int x, y; 79 int x, y;
@@ -263,33 +269,33 @@ application config.
263} 269}
264 270
265void KMainWindow::setCaption( const QString &caption ) 271void KMainWindow::setCaption( const QString &caption )
266{ 272{
267//US setPlainCaption( kapp->makeStdCaption(caption) ); 273//US setPlainCaption( kapp->makeStdCaption(caption) );
268 setPlainCaption( caption ); 274 setPlainCaption( caption );
269} 275}
270 276
271void KMainWindow::setCaption( const QString &caption, bool modified ) 277void KMainWindow::setCaption( const QString &caption, bool modified )
272{ 278{
273//US setPlainCaption( kapp->makeStdCaption(caption, true, modified) ); 279//US setPlainCaption( kapp->makeStdCaption(caption, true, modified) );
274 setPlainCaption( caption + "modified:" ); 280 setPlainCaption( caption + "modified:" );
275} 281}
276 282
277void KMainWindow::setPlainCaption( const QString &caption ) 283void KMainWindow::setPlainCaption( const QString &caption )
278{ 284{
279 QMainWindow::setCaption( caption ); 285 Q3MainWindow::setCaption( caption );
280#ifndef Q_WS_QWS 286#ifndef Q_WS_QWS
281//US the following is disabled for the embedded version 287//US the following is disabled for the embedded version
282//US NETWinInfo info( qt_xdisplay(), winId(), qt_xrootwin(), 0 ); 288//US NETWinInfo info( qt_xdisplay(), winId(), qt_xrootwin(), 0 );
283//US info.setName( caption.utf8().data() ); 289//US info.setName( caption.utf8().data() );
284#endif 290#endif
285} 291}
286 292
287void KMainWindow::slotStateChanged(const QString &newstate) 293void KMainWindow::slotStateChanged(const QString &newstate)
288{ 294{
289 stateChanged(newstate, KXMLGUIClient::StateNoReverse); 295 stateChanged(newstate, KXMLGUIClient::StateNoReverse);
290} 296}
291 297
292/* 298/*
293 * Get rid of this for KDE 4.0 299 * Get rid of this for KDE 4.0
294 */ 300 */
295void KMainWindow::slotStateChanged(const QString &newstate, 301void KMainWindow::slotStateChanged(const QString &newstate,
@@ -408,81 +414,82 @@ void KMainWindow::setStandardToolBarMenuEnabled( bool enable )
408} 414}
409 415
410bool KMainWindow::isStandardToolBarMenuEnabled() const 416bool KMainWindow::isStandardToolBarMenuEnabled() const
411{ 417{
412 return ( d->toolBarHandler != 0 ); 418 return ( d->toolBarHandler != 0 );
413} 419}
414 420
415void KMainWindow::createStandardStatusBarAction(){ 421void KMainWindow::createStandardStatusBarAction(){
416 if(!d->showStatusBarAction){ 422 if(!d->showStatusBarAction){
417 d->showStatusBarAction = KStdAction::showStatusbar(this, SLOT(setSettingsDirty()), actionCollection()); 423 d->showStatusBarAction = KStdAction::showStatusbar(this, SLOT(setSettingsDirty()), actionCollection());
418 connect(d->showStatusBarAction, SIGNAL(toggled(bool)), statusBar(), SLOT(setShown(bool))); 424 connect(d->showStatusBarAction, SIGNAL(toggled(bool)), statusBar(), SLOT(setShown(bool)));
419 if(internalStatusBar()) 425 if(internalStatusBar())
420 d->showStatusBarAction->setChecked(!internalStatusBar()->isHidden()); 426 d->showStatusBarAction->setChecked(!internalStatusBar()->isHidden());
421 } 427 }
422} 428}
423 429
424QToolBar *KMainWindow::tBar( ) 430Q3ToolBar *KMainWindow::tBar( )
425{ 431{
426 if ( ! mQToolBar ) 432 if ( ! mQToolBar )
427 mQToolBar = new QToolBar( this ); 433 mQToolBar = new Q3ToolBar( this );
428 return mQToolBar; 434 return mQToolBar;
429} 435}
430 436
431KToolBar *KMainWindow::toolBar( const char * name ) 437KToolBar *KMainWindow::toolBar( const char * name )
432{ 438{
433 439
434 if (!name) 440 if (!name)
435 name = "mainToolBar"; 441 name = "mainToolBar";
436 KToolBar *tb = (KToolBar*)child( name, "KToolBar" ); 442 KToolBar *tb = (KToolBar*)child( name, "KToolBar" );
437 if ( tb ) 443 if ( tb )
438 return tb; 444 return tb;
439 bool honor_mode = (name == "mainToolBar"); 445 bool honor_mode = (name == "mainToolBar");
440 446
441/*US 447/*US
442 if ( builderClient() ) 448 if ( builderClient() )
443 return new KToolBar(this, name, honor_mode); // XMLGUI constructor 449 return new KToolBar(this, name, honor_mode); // XMLGUI constructor
444 else 450 else
445*/ 451*/
446 return new KToolBar(this, Top, false, name, honor_mode ); // non-XMLGUI 452 return new KToolBar(this, Qt::Top, false, name, honor_mode ); // non-XMLGUI
447} 453}
448 454
449QPtrListIterator<KToolBar> KMainWindow::toolBarIterator() 455Q3PtrListIterator<KToolBar> KMainWindow::toolBarIterator()
450{ 456{
451 toolbarList.clear(); 457 toolbarList.clear();
452 QPtrList<QToolBar> lst; 458 QList<Q3ToolBar*> lst;
453 for ( int i = (int)QMainWindow::Unmanaged; i <= (int)Minimized; ++i ) { 459 for ( int i = (int)Qt::Unmanaged; i <= (int)Qt::Minimized; ++i ) {
454 lst = toolBars( (ToolBarDock)i ); 460 lst = toolBars( (Qt::ToolBarDock)i );
455 for ( QToolBar *tb = lst.first(); tb; tb = lst.next() ) { 461 for(QList<Q3ToolBar*>::iterator i=lst.begin();i!=lst.end();++i) {
462 Q3ToolBar *tb = *i;
456 if ( !tb->inherits( "KToolBar" ) ) 463 if ( !tb->inherits( "KToolBar" ) )
457 continue; 464 continue;
458 toolbarList.append( (KToolBar*)tb ); 465 toolbarList.append( (KToolBar*)tb );
459 } 466 }
460 } 467 }
461 return QPtrListIterator<KToolBar>( toolbarList ); 468 return Q3PtrListIterator<KToolBar>( toolbarList );
462} 469}
463 470
464void KMainWindow::setAutoSaveSettings( const QString & groupName, bool saveWindowSize ) 471void KMainWindow::setAutoSaveSettings( const QString & groupName, bool saveWindowSize )
465{ 472{
466 d->autoSaveSettings = true; 473 d->autoSaveSettings = true;
467 d->autoSaveGroup = groupName; 474 d->autoSaveGroup = groupName;
468 d->autoSaveWindowSize = saveWindowSize; 475 d->autoSaveWindowSize = saveWindowSize;
469 // Get notified when the user moves a toolbar around 476 // Get notified when the user moves a toolbar around
470//US connect( this, SIGNAL( dockWindowPositionChanged( QDockWindow * ) ), 477//US connect( this, SIGNAL( dockWindowPositionChanged( QDockWindow * ) ),
471//US this, SLOT( setSettingsDirty() ) ); 478//US this, SLOT( setSettingsDirty() ) );
472 connect( this, SIGNAL( toolBarPositionChanged(QToolBar *) ), 479 connect( this, SIGNAL( toolBarPositionChanged(Q3ToolBar *) ),
473 this, SLOT( setSettingsDirty() ) ); 480 this, SLOT( setSettingsDirty() ) );
474 481
475 482
476 // Get default values 483 // Get default values
477//US int scnum = QApplication::desktop()->screenNumber(parentWidget()); 484//US int scnum = QApplication::desktop()->screenNumber(parentWidget());
478//US QRect desk = QApplication::desktop()->screenGeometry(scnum); 485//US QRect desk = QApplication::desktop()->screenGeometry(scnum);
479 QRect desk = KGlobalSettings::desktopGeometry(0); 486 QRect desk = KGlobalSettings::desktopGeometry(0);
480 487
481 d->defaultWindowSize = QRect(desk.width(), width(), desk.height(), height()); 488 d->defaultWindowSize = QRect(desk.width(), width(), desk.height(), height());
482 // Now read the previously saved settings 489 // Now read the previously saved settings
483 applyMainWindowSettings( KGlobal::config(), groupName ); 490 applyMainWindowSettings( KGlobal::config(), groupName );
484} 491}
485 492
486 493
487void KMainWindow::resetAutoSaveSettings() 494void KMainWindow::resetAutoSaveSettings()
488{ 495{
@@ -490,33 +497,33 @@ void KMainWindow::resetAutoSaveSettings()
490 if ( d->settingsTimer ) 497 if ( d->settingsTimer )
491 d->settingsTimer->stop(); 498 d->settingsTimer->stop();
492} 499}
493 500
494bool KMainWindow::autoSaveSettings() const 501bool KMainWindow::autoSaveSettings() const
495{ 502{
496 return d->autoSaveSettings; 503 return d->autoSaveSettings;
497} 504}
498 505
499QString KMainWindow::autoSaveGroup() const 506QString KMainWindow::autoSaveGroup() const
500{ 507{
501 return d->autoSaveGroup; 508 return d->autoSaveGroup;
502} 509}
503 510
504void KMainWindow::saveAutoSaveSettings() 511void KMainWindow::saveAutoSaveSettings()
505{ 512{
506 ASSERT( d->autoSaveSettings ); 513 Q_ASSERT( d->autoSaveSettings );
507 //kdDebug(200) << "KMainWindow::saveAutoSaveSettings -> saving settings" << endl; 514 //kdDebug(200) << "KMainWindow::saveAutoSaveSettings -> saving settings" << endl;
508 saveMainWindowSettings( KGlobal::config(), d->autoSaveGroup ); 515 saveMainWindowSettings( KGlobal::config(), d->autoSaveGroup );
509 KGlobal::config()->sync(); 516 KGlobal::config()->sync();
510 d->settingsDirty = false; 517 d->settingsDirty = false;
511 if ( d->settingsTimer ) 518 if ( d->settingsTimer )
512 d->settingsTimer->stop(); 519 d->settingsTimer->stop();
513} 520}
514 521
515void KMainWindow::createGUI( const QString &xmlfile, bool _conserveMemory ) 522void KMainWindow::createGUI( const QString &xmlfile, bool _conserveMemory )
516{ 523{
517 // disabling the updates prevents unnecessary redraws 524 // disabling the updates prevents unnecessary redraws
518 setUpdatesEnabled( false ); 525 setUpdatesEnabled( false );
519 526
520 // just in case we are rebuilding, let's remove our old client 527 // just in case we are rebuilding, let's remove our old client
521//US guiFactory()->removeClient( this ); 528//US guiFactory()->removeClient( this );
522 529
@@ -626,33 +633,33 @@ void KMainWindow::saveMainWindowSettings(KConfig *config, const QString &configG
626 entryList.clear(); 633 entryList.clear();
627 if ( mb->isHidden() ) 634 if ( mb->isHidden() )
628 entryList.append("Disabled"); 635 entryList.append("Disabled");
629 else 636 else
630 entryList.append("Enabled"); 637 entryList.append("Enabled");
631 638
632 // By default we don't hide. 639 // By default we don't hide.
633 if(mb->isHidden()) 640 if(mb->isHidden())
634 //US config->writeEntry(QString::fromLatin1("MenuBar"), entryList, ';'); 641 //US config->writeEntry(QString::fromLatin1("MenuBar"), entryList, ';');
635 config->writeEntry(QString::fromLatin1("MenuBar"), entryList); 642 config->writeEntry(QString::fromLatin1("MenuBar"), entryList);
636 else 643 else
637 config->deleteEntry(QString::fromLatin1("MenuBar")); 644 config->deleteEntry(QString::fromLatin1("MenuBar"));
638 } 645 }
639 646
640 int n = 1; // Toolbar counter. toolbars are counted from 1, 647 int n = 1; // Toolbar counter. toolbars are counted from 1,
641 KToolBar *toolbar = 0; 648 KToolBar *toolbar = 0;
642 QPtrListIterator<KToolBar> it( toolBarIterator() ); 649 Q3PtrListIterator<KToolBar> it( toolBarIterator() );
643 while ( ( toolbar = it.current() ) ) { 650 while ( ( toolbar = it.current() ) ) {
644 ++it; 651 ++it;
645 QString group; 652 QString group;
646 if (!configGroup.isEmpty()) 653 if (!configGroup.isEmpty())
647 { 654 {
648 // Give a number to the toolbar, but prefer a name if there is one, 655 // Give a number to the toolbar, but prefer a name if there is one,
649 // because there's no real guarantee on the ordering of toolbars 656 // because there's no real guarantee on the ordering of toolbars
650 group = (!::qstrcmp(toolbar->name(), "unnamed") ? QString::number(n) : QString(" ")+toolbar->name()); 657 group = (!::qstrcmp(toolbar->name(), "unnamed") ? QString::number(n) : QString(" ")+toolbar->name());
651 group.prepend(" Toolbar"); 658 group.prepend(" Toolbar");
652 group.prepend(configGroup); 659 group.prepend(configGroup);
653 } 660 }
654 toolbar->saveSettings(config, group); 661 toolbar->saveSettings(config, group);
655 n++; 662 n++;
656 } 663 }
657 if (!configGroup.isEmpty()) 664 if (!configGroup.isEmpty())
658 config->setGroup(oldGroup); 665 config->setGroup(oldGroup);
@@ -701,75 +708,77 @@ void KMainWindow::applyMainWindowSettings(KConfig *config, const QString &config
701//US i = config->readListEntry (QString::fromLatin1("StatusBar"), entryList, ';'); 708//US i = config->readListEntry (QString::fromLatin1("StatusBar"), entryList, ';');
702 entryList = config->readListEntry (QString::fromLatin1("StatusBar")); 709 entryList = config->readListEntry (QString::fromLatin1("StatusBar"));
703 entry = entryList.first(); 710 entry = entryList.first();
704 if (entry == QString::fromLatin1("Disabled")) 711 if (entry == QString::fromLatin1("Disabled"))
705 sb->hide(); 712 sb->hide();
706 else 713 else
707 sb->show(); 714 sb->show();
708 if(d->showStatusBarAction) 715 if(d->showStatusBarAction)
709 d->showStatusBarAction->setChecked(!sb->isHidden()); 716 d->showStatusBarAction->setChecked(!sb->isHidden());
710 } 717 }
711 718
712 QMenuBar* mb = internalMenuBar(); 719 QMenuBar* mb = internalMenuBar();
713 if (mb) { 720 if (mb) {
714 entryList.clear(); 721 entryList.clear();
715//US i = config->readListEntry (QString::fromLatin1("MenuBar"), entryList, ';'); 722//US i = config->readListEntry (QString::fromLatin1("MenuBar"), entryList, ';');
716 entryList = config->readListEntry (QString::fromLatin1("MenuBar")); 723 entryList = config->readListEntry (QString::fromLatin1("MenuBar"));
717 entry = entryList.first(); 724 if(!entryList.empty()) {
718 if (entry==QString::fromLatin1("Disabled")) 725 entry = entryList.first();
719 { 726 if (entry==QString::fromLatin1("Disabled"))
720 mb->hide(); 727 {
721 } else 728 mb->hide();
722 { 729 } else
723 mb->show(); 730 {
724 } 731 mb->show();
732 }
733 }
725 } 734 }
726 735
727 int n = 1; // Toolbar counter. toolbars are counted from 1, 736 int n = 1; // Toolbar counter. toolbars are counted from 1,
728 KToolBar *toolbar; 737 KToolBar *toolbar;
729 QPtrListIterator<KToolBar> it( toolBarIterator() ); // must use own iterator 738 Q3PtrListIterator<KToolBar> it( toolBarIterator() ); // must use own iterator
730 739
731 for ( ; it.current(); ++it) { 740 for ( ; it.current(); ++it) {
732 toolbar= it.current(); 741 toolbar= it.current();
733 QString group; 742 QString group;
734 if (!configGroup.isEmpty()) 743 if (!configGroup.isEmpty())
735 { 744 {
736 // Give a number to the toolbar, but prefer a name if there is one, 745 // Give a number to the toolbar, but prefer a name if there is one,
737 // because there's no real guarantee on the ordering of toolbars 746 // because there's no real guarantee on the ordering of toolbars
738 group = (!::qstrcmp(toolbar->name(), "unnamed") ? QString::number(n) : QString(" ")+toolbar->name()); 747 group = (!::qstrcmp(toolbar->name(), "unnamed") ? QString::number(n) : QString(" ")+toolbar->name());
739 group.prepend(" Toolbar"); 748 group.prepend(" Toolbar");
740 group.prepend(configGroup); 749 group.prepend(configGroup);
741 } 750 }
742 toolbar->applySettings(config, group); 751 toolbar->applySettings(config, group);
743 n++; 752 n++;
744 } 753 }
745 754
746 finalizeGUI( true ); 755 finalizeGUI( true );
747 } 756 }
748 757
749void KMainWindow::finalizeGUI( bool force ) 758void KMainWindow::finalizeGUI( bool force )
750{ 759{
751 //kdDebug(200) << "KMainWindow::finalizeGUI force=" << force << endl; 760 //kdDebug(200) << "KMainWindow::finalizeGUI force=" << force << endl;
752 // The whole reason for this is that moveToolBar relies on the indexes 761 // The whole reason for this is that moveToolBar relies on the indexes
753 // of the other toolbars, so in theory it should be called only once per 762 // of the other toolbars, so in theory it should be called only once per
754 // toolbar, but in increasing order of indexes. 763 // toolbar, but in increasing order of indexes.
755 // Since we can't do that immediately, we move them, and _then_ 764 // Since we can't do that immediately, we move them, and _then_
756 // we call positionYourself again for each of them, but this time 765 // we call positionYourself again for each of them, but this time
757 // the toolbariterator should give them in the proper order. 766 // the toolbariterator should give them in the proper order.
758 // Both the XMLGUI and applySettings call this, hence "force" for the latter. 767 // Both the XMLGUI and applySettings call this, hence "force" for the latter.
759 QPtrListIterator<KToolBar> it( toolBarIterator() ); 768 Q3PtrListIterator<KToolBar> it( toolBarIterator() );
760 for ( ; it.current() ; ++ it ) 769 for ( ; it.current() ; ++ it )
761 it.current()->positionYourself( force ); 770 it.current()->positionYourself( force );
762 771
763 d->settingsDirty = false; 772 d->settingsDirty = false;
764} 773}
765 774
766void KMainWindow::saveWindowSize( KConfig * config ) const 775void KMainWindow::saveWindowSize( KConfig * config ) const
767{ 776{
768/*US 777/*US
769 int scnum = QApplication::desktop()->screenNumber(parentWidget()); 778 int scnum = QApplication::desktop()->screenNumber(parentWidget());
770 QRect desk = QApplication::desktop()->screenGeometry(scnum); 779 QRect desk = QApplication::desktop()->screenGeometry(scnum);
771*/ 780*/
772 QRect desk = KGlobalSettings::desktopGeometry(0); 781 QRect desk = KGlobalSettings::desktopGeometry(0);
773 782
774 QRect size( desk.width(), width(), desk.height(), height() ); 783 QRect size( desk.width(), width(), desk.height(), height() );
775 if(size != d->defaultWindowSize){ 784 if(size != d->defaultWindowSize){
@@ -838,125 +847,113 @@ void KMainWindow::setSettingsDirty()
838} 847}
839 848
840bool KMainWindow::settingsDirty() const 849bool KMainWindow::settingsDirty() const
841{ 850{
842 return d->settingsDirty; 851 return d->settingsDirty;
843} 852}
844 853
845QString KMainWindow::settingsGroup() const 854QString KMainWindow::settingsGroup() const
846{ 855{
847 return d->autoSaveGroup; 856 return d->autoSaveGroup;
848} 857}
849 858
850void KMainWindow::resizeEvent( QResizeEvent * e) 859void KMainWindow::resizeEvent( QResizeEvent * e)
851{ 860{
852 if ( d->autoSaveWindowSize ) 861 if ( d->autoSaveWindowSize )
853 setSettingsDirty(); 862 setSettingsDirty();
854 QMainWindow::resizeEvent( e ); 863 Q3MainWindow::resizeEvent( e );
855} 864}
856 865
857bool KMainWindow::hasMenuBar() 866bool KMainWindow::hasMenuBar()
858{ 867{
859 return (internalMenuBar()); 868 return (internalMenuBar());
860} 869}
861 870
862//US KMenuBar *KMainWindow::menuBar() 871//US KMenuBar *KMainWindow::menuBar()
863QMenuBar *KMainWindow::menuBar() 872QMenuBar *KMainWindow::menuBar()
864{ 873{
865//US KMenuBar * mb = internalMenuBar(); 874//US KMenuBar * mb = internalMenuBar();
866 QMenuBar * mb = internalMenuBar(); 875 QMenuBar * mb = internalMenuBar();
867 if ( !mb ) { 876 if ( !mb ) {
868//US mb = new KMenuBar( this ); 877//US mb = new KMenuBar( this );
869 mb = new QMenuBar( this ); 878 mb = new QMenuBar( this );
870 // trigger a re-layout and trigger a call to the private 879 // trigger a re-layout and trigger a call to the private
871 // setMenuBar method. 880 // setMenuBar method.
872 QMainWindow::menuBar(); 881 Q3MainWindow::menuBar();
873 } 882 }
874 return mb; 883 return mb;
875} 884}
876 885
877//US KStatusBar *KMainWindow::statusBar() 886//US KStatusBar *KMainWindow::statusBar()
878QStatusBar *KMainWindow::statusBar() 887QStatusBar *KMainWindow::statusBar()
879{ 888{
880//US KStatusBar * sb = internalStatusBar(); 889//US KStatusBar * sb = internalStatusBar();
881 QStatusBar * sb = internalStatusBar(); 890 QStatusBar * sb = internalStatusBar();
882 if ( !sb ) { 891 if ( !sb ) {
883//US sb = new KStatusBar( this ); 892//US sb = new KStatusBar( this );
884 sb = new QStatusBar( this ); 893 sb = new QStatusBar( this );
885 // trigger a re-layout and trigger a call to the private 894 // trigger a re-layout and trigger a call to the private
886 // setStatusBar method. 895 // setStatusBar method.
887 QMainWindow::statusBar(); 896 Q3MainWindow::statusBar();
888 } 897 }
889 return sb; 898 return sb;
890} 899}
891 900
892void KMainWindow::shuttingDown() 901void KMainWindow::shuttingDown()
893{ 902{
894 // Needed for Qt <= 3.0.3 at least to prevent reentrancy 903 // Needed for Qt <= 3.0.3 at least to prevent reentrancy
895 // when queryExit() shows a dialog. Check before removing! 904 // when queryExit() shows a dialog. Check before removing!
896 static bool reentrancy_protection = false; 905 static bool reentrancy_protection = false;
897 if (!reentrancy_protection) 906 if (!reentrancy_protection)
898 { 907 {
899 reentrancy_protection = true; 908 reentrancy_protection = true;
900 // call the virtual queryExit 909 // call the virtual queryExit
901 queryExit(); 910 queryExit();
902 reentrancy_protection = false; 911 reentrancy_protection = false;
903 } 912 }
904 913
905} 914}
906 915
907//US KMenuBar *KMainWindow::internalMenuBar() 916//US KMenuBar *KMainWindow::internalMenuBar()
908QMenuBar *KMainWindow::internalMenuBar() 917QMenuBar *KMainWindow::internalMenuBar()
909{ 918{
910//US QObjectList *l = queryList( "KMenuBar", 0, false, false ); 919//US QObjectList *l = queryList( "KMenuBar", 0, false, false );
911 QObjectList *l = queryList( "QMenuBar", 0, false, false ); 920 QObjectList l = queryList( "QMenuBar", 0, false, false );
912 if ( !l || !l->first() ) { 921 if(l.empty())
913 delete l; 922 return 0;
914 return 0; 923 return (QMenuBar*)l.front();
915 }
916
917//US KMenuBar *m = (KMenuBar*)l->first();
918 QMenuBar *m = (QMenuBar*)l->first();
919 delete l;
920 return m;
921} 924}
922 925
923//US KStatusBar *KMainWindow::internalStatusBar() 926//US KStatusBar *KMainWindow::internalStatusBar()
924QStatusBar *KMainWindow::internalStatusBar() 927QStatusBar *KMainWindow::internalStatusBar()
925{ 928{
926//US QObjectList *l = queryList( "KStatusBar", 0, false, false ); 929//US QObjectList *l = queryList( "KStatusBar", 0, false, false );
927 QObjectList *l = queryList( "QStatusBar", 0, false, false ); 930 QObjectList l = queryList( "QStatusBar", 0, false, false );
928 if ( !l || !l->first() ) { 931 if(l.empty())
929 delete l; 932 return 0;
930 return 0; 933 return (QStatusBar*)l.front();
931 }
932
933//US KStatusBar *s = (KStatusBar*)l->first();
934 QStatusBar *s = (QStatusBar*)l->first();
935 delete l;
936 return s;
937} 934}
938 935
939void KMainWindow::childEvent( QChildEvent* e) 936void KMainWindow::childEvent( QChildEvent* e)
940{ 937{
941 QMainWindow::childEvent( e ); 938 Q3MainWindow::childEvent( e );
942} 939}
943 940
944void KMainWindow::paintEvent( QPaintEvent * e) 941void KMainWindow::paintEvent( QPaintEvent * e)
945{ 942{
946 QMainWindow::paintEvent( e ); 943 Q3MainWindow::paintEvent( e );
947} 944}
948 945
949QSize KMainWindow::sizeForCentralWidgetSize(QSize size) 946QSize KMainWindow::sizeForCentralWidgetSize(QSize size)
950{ 947{
951 KToolBar *tb = (KToolBar*)child( "mainToolBar", "KToolBar" ); 948 KToolBar *tb = (KToolBar*)child( "mainToolBar", "KToolBar" );
952 if (tb && !tb->isHidden()) { 949 if (tb && !tb->isHidden()) {
953 switch( tb->barPos() ) 950 switch( tb->barPos() )
954 { 951 {
955 case KToolBar::Top: 952 case KToolBar::Top:
956 case KToolBar::Bottom: 953 case KToolBar::Bottom:
957 size += QSize(0, tb->sizeHint().height()); 954 size += QSize(0, tb->sizeHint().height());
958 break; 955 break;
959 956
960 case KToolBar::Left: 957 case KToolBar::Left:
961 case KToolBar::Right: 958 case KToolBar::Right:
962 size += QSize(toolBar()->sizeHint().width(), 0); 959 size += QSize(toolBar()->sizeHint().width(), 0);
diff --git a/microkde/kdeui/kmainwindow.h b/microkde/kdeui/kmainwindow.h
index 2dc8033..a3ac82f 100644
--- a/microkde/kdeui/kmainwindow.h
+++ b/microkde/kdeui/kmainwindow.h
@@ -1,16 +1,21 @@
1//Added by qt3to4:
2#include <QResizeEvent>
3#include <QChildEvent>
4#include <QCloseEvent>
5#include <QPaintEvent>
1/* 6/*
2 This file is part of the KDE libraries 7 This file is part of the KDE libraries
3 8
4 This library is free software; you can redistribute it and/or 9 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Library General Public 10 modify it under the terms of the GNU Library General Public
6 License version 2 as published by the Free Software Foundation. 11 License version 2 as published by the Free Software Foundation.
7 12
8 This library is distributed in the hope that it will be useful, 13 This library is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 Library General Public License for more details. 16 Library General Public License for more details.
12 17
13 You should have received a copy of the GNU Library General Public License 18 You should have received a copy of the GNU Library General Public License
14 along with this library; see the file COPYING.LIB. If not, write to 19 along with this library; see the file COPYING.LIB. If not, write to
15 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 20 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
16 Boston, MA 02111-1307, USA. 21 Boston, MA 02111-1307, USA.
@@ -37,38 +42,38 @@ class KHelpMenu;
37class KStatusBar; 42class KStatusBar;
38class QStatusBar; 43class QStatusBar;
39class KMenuBar; 44class KMenuBar;
40class KMWSessionManaged; 45class KMWSessionManaged;
41class KAccel; 46class KAccel;
42class KToolBarMenuAction; 47class KToolBarMenuAction;
43*/ 48*/
44 49
45class QMenuBar; 50class QMenuBar;
46class QStatusBar; 51class QStatusBar;
47class KMainWindowPrivate; 52class KMainWindowPrivate;
48class KAction; 53class KAction;
49 54
50#include <ktoolbar.h> 55#include <ktoolbar.h>
51#include <ktoolbarhandler.h> 56#include <ktoolbarhandler.h>
52#include <kxmlguiclient.h> 57#include <kxmlguiclient.h>
53#include <qmainwindow.h> 58#include <q3mainwindow.h>
54#include <qptrlist.h> 59#include <q3ptrlist.h>
55 60
56class KActionCollection; 61class KActionCollection;
57 62
58class KMainWindow : public QMainWindow, virtual public KXMLGUIClient 63class KMainWindow : public Q3MainWindow, virtual public KXMLGUIClient
59{ 64{
60 Q_OBJECT 65 Q_OBJECT
61 66
62private: 67private:
63//US create private defaultconstructor 68//US create private defaultconstructor
64 KMainWindow() {;}; 69 KMainWindow() {;};
65 70
66 71
67public: 72public:
68 /** 73 /**
69 * Construct a main window. 74 * Construct a main window.
70 * 75 *
71 * @param parent The widget parent. This is usually 0 but it may also be the window 76 * @param parent The widget parent. This is usually 0 but it may also be the window
72 * group leader. In that case, the KMainWindow becomes sort of a 77 * group leader. In that case, the KMainWindow becomes sort of a
73 * secondary window. 78 * secondary window.
74 * 79 *
@@ -307,38 +312,38 @@ public:
307 * List of members of KMainWindow class. 312 * List of members of KMainWindow class.
308 */ 313 */
309//US static QPtrList<KMainWindow>* memberList; 314//US static QPtrList<KMainWindow>* memberList;
310 315
311 /** 316 /**
312 * Returns a pointer to the toolbar with the specified name. 317 * Returns a pointer to the toolbar with the specified name.
313 * This refers to toolbars created dynamically from the XML UI 318 * This refers to toolbars created dynamically from the XML UI
314 * framework. If the toolbar does not exist one will be created. 319 * framework. If the toolbar does not exist one will be created.
315 * 320 *
316 * @param name The internal name of the toolbar. If no name is 321 * @param name The internal name of the toolbar. If no name is
317 * specified "mainToolBar" is assumed. 322 * specified "mainToolBar" is assumed.
318 * 323 *
319 * @return A pointer to the toolbar 324 * @return A pointer to the toolbar
320 **/ 325 **/
321 KToolBar *toolBar( const char *name=0 ); 326 KToolBar *toolBar( const char *name=0 );
322 // method for getting rid of KDE-Crap 327 // method for getting rid of KDE-Crap
323 QToolBar *tBar( ); 328 Q3ToolBar *tBar( );
324 329
325 /** 330 /**
326 * @return An iterator over the list of all toolbars for this window. 331 * @return An iterator over the list of all toolbars for this window.
327 */ 332 */
328 QPtrListIterator<KToolBar> toolBarIterator(); 333 Q3PtrListIterator<KToolBar> toolBarIterator();
329 334
330 /** 335 /**
331 * @return A KAccel instance bound to this mainwindow. Used automatically 336 * @return A KAccel instance bound to this mainwindow. Used automatically
332 * by KAction to make keybindings work in all cases. 337 * by KAction to make keybindings work in all cases.
333 */ 338 */
334 KAccel *accel(); 339 KAccel *accel();
335 340
336 void setFrameBorderWidth( int ) {} 341 void setFrameBorderWidth( int ) {}
337 342
338 /** 343 /**
339 * Call this to enable "auto-save" of toolbar/menubar/statusbar settings 344 * Call this to enable "auto-save" of toolbar/menubar/statusbar settings
340 * (and optionally window size). 345 * (and optionally window size).
341 * If the *bars were moved around/shown/hidden when the window is closed, 346 * If the *bars were moved around/shown/hidden when the window is closed,
342 * saveMainWindowSettings( KGlobal::config(), groupName ) will be called. 347 * saveMainWindowSettings( KGlobal::config(), groupName ) will be called.
343 * 348 *
344 * @param groupName a name that identifies this "type of window". 349 * @param groupName a name that identifies this "type of window".
@@ -745,33 +750,33 @@ protected slots:
745 * { 750 * {
746 * <activate your custom dialog> 751 * <activate your custom dialog>
747 * } 752 * }
748 * </pre> 753 * </pre>
749 */ 754 */
750//US virtual void showAboutApplication(); 755//US virtual void showAboutApplication();
751 756
752private slots: 757private slots:
753 /** 758 /**
754 * Called when the app is shutting down. 759 * Called when the app is shutting down.
755 */ 760 */
756 void shuttingDown(); 761 void shuttingDown();
757 762
758 void saveAutoSaveSettings(); 763 void saveAutoSaveSettings();
759 764
760private: 765private:
761 QToolBar * mQToolBar; 766 Q3ToolBar * mQToolBar;
762//US KMenuBar *internalMenuBar(); 767//US KMenuBar *internalMenuBar();
763 QMenuBar *internalMenuBar(); 768 QMenuBar *internalMenuBar();
764//US KStatusBar *internalStatusBar(); 769//US KStatusBar *internalStatusBar();
765 QStatusBar *internalStatusBar(); 770 QStatusBar *internalStatusBar();
766 771
767 KMainWindowPrivate *d; 772 KMainWindowPrivate *d;
768 void initKMainWindow(const char *name); 773 void initKMainWindow(const char *name);
769 774
770 QPtrList<KToolBar> toolbarList; 775 Q3PtrList<KToolBar> toolbarList;
771 776
772protected: 777protected:
773 virtual void virtual_hook( int id, void* data ); 778 virtual void virtual_hook( int id, void* data );
774 779
775}; 780};
776 781
777#endif 782#endif
diff --git a/microkde/kdeui/knuminput.cpp b/microkde/kdeui/knuminput.cpp
index 335d6f4..da01a20 100644
--- a/microkde/kdeui/knuminput.cpp
+++ b/microkde/kdeui/knuminput.cpp
@@ -29,32 +29,35 @@
29 */ 29 */
30 30
31//US #include <config.h> 31//US #include <config.h>
32#ifdef HAVE_LIMITS_H 32#ifdef HAVE_LIMITS_H
33#include <limits.h> 33#include <limits.h>
34#endif 34#endif
35#include <assert.h> 35#include <assert.h>
36#include <math.h> 36#include <math.h>
37#include <algorithm> 37#include <algorithm>
38 38
39#include <qlabel.h> 39#include <qlabel.h>
40#include <qlineedit.h> 40#include <qlineedit.h>
41#include <qsize.h> 41#include <qsize.h>
42#include <qslider.h> 42#include <qslider.h>
43#include <qspinbox.h> 43#include <qspinbox.h>
44#include <qstyle.h> 44#include <qstyle.h>
45//Added by qt3to4:
46#include <QResizeEvent>
47#include <QEvent>
45 48
46#include <kglobal.h> 49#include <kglobal.h>
47#include <klocale.h> 50#include <klocale.h>
48#include <kdebug.h> 51#include <kdebug.h>
49 52
50#include "knumvalidator.h" 53#include "knumvalidator.h"
51#include "knuminput.h" 54#include "knuminput.h"
52 55
53static inline int calcDiffByTen( int x, int y ) { 56static inline int calcDiffByTen( int x, int y ) {
54 // calculate ( x - y ) / 10 without overflowing ints: 57 // calculate ( x - y ) / 10 without overflowing ints:
55 return ( x / 10 ) - ( y / 10 ) + ( x % 10 - y % 10 ) / 10; 58 return ( x / 10 ) - ( y / 10 ) + ( x % 10 - y % 10 ) / 10;
56} 59}
57 60
58// ---------------------------------------------------------------------------- 61// ----------------------------------------------------------------------------
59 62
60KNumInput::KNumInput(QWidget* parent, const char* name) 63KNumInput::KNumInput(QWidget* parent, const char* name)
@@ -93,58 +96,58 @@ KNumInput::~KNumInput()
93 m_prev->m_next = m_next; 96 m_prev->m_next = m_next;
94 97
95 if(m_next) 98 if(m_next)
96 m_next->m_prev = m_prev; 99 m_next->m_prev = m_prev;
97} 100}
98 101
99void KNumInput::setLabel(const QString & label, int a) 102void KNumInput::setLabel(const QString & label, int a)
100{ 103{
101 if(label.isEmpty()) { 104 if(label.isEmpty()) {
102 delete m_label; 105 delete m_label;
103 m_label = 0; 106 m_label = 0;
104 m_alignment = 0; 107 m_alignment = 0;
105 } 108 }
106 else { 109 else {
107 if (m_label) m_label->setText(label); 110 if (m_label) m_label->setText(label);
108 else m_label = new QLabel(label, this, "KNumInput::QLabel"); 111 else m_label = new QLabel(label, this, "KNumInput::QLabel");
109 m_label->setAlignment((a & (~(AlignTop|AlignBottom|AlignVCenter))) 112 m_label->setAlignment((a & (~(Qt::AlignTop|Qt::AlignBottom|Qt::AlignVCenter)))
110 | AlignVCenter); 113 | Qt::AlignVCenter);
111 // if no vertical alignment set, use Top alignment 114 // if no vertical alignment set, use Top alignment
112 if(!(a & (AlignTop|AlignBottom|AlignVCenter))) 115 if(!(a & (Qt::AlignTop|Qt::AlignBottom|Qt::AlignVCenter)))
113 a |= AlignTop; 116 a |= Qt::AlignTop;
114 m_alignment = a; 117 m_alignment = a;
115 } 118 }
116 119
117 layout(true); 120 layout(true);
118} 121}
119 122
120QString KNumInput::label() const 123QString KNumInput::label() const
121{ 124{
122 if (m_label) return m_label->text(); 125 if (m_label) return m_label->text();
123 return QString::null; 126 return QString::null;
124} 127}
125 128
126void KNumInput::layout(bool deep) 129void KNumInput::layout(bool deep)
127{ 130{
128 int w1 = m_colw1; 131 int w1 = m_colw1;
129 int w2 = m_colw2; 132 int w2 = m_colw2;
130 133
131 // label sizeHint 134 // label sizeHint
132 m_sizeLabel = (m_label ? m_label->sizeHint() : QSize(0,0)); 135 m_sizeLabel = (m_label ? m_label->sizeHint() : QSize(0,0));
133 136
134 if(m_label && (m_alignment & AlignVCenter)) 137 if(m_label && (m_alignment & Qt::AlignVCenter))
135 m_colw1 = m_sizeLabel.width() + 4; 138 m_colw1 = m_sizeLabel.width() + 4;
136 else 139 else
137 m_colw1 = 0; 140 m_colw1 = 0;
138 141
139 // slider sizeHint 142 // slider sizeHint
140 m_sizeSlider = (m_slider ? m_slider->sizeHint() : QSize(0, 0)); 143 m_sizeSlider = (m_slider ? m_slider->sizeHint() : QSize(0, 0));
141 144
142 doLayout(); 145 doLayout();
143 146
144 if(!deep) { 147 if(!deep) {
145 m_colw1 = w1; 148 m_colw1 = w1;
146 m_colw2 = w2; 149 m_colw2 = w2;
147 return; 150 return;
148 } 151 }
149 152
150 KNumInput* p = this; 153 KNumInput* p = this;
@@ -189,76 +192,76 @@ QSize KNumInput::sizeHint() const
189{ 192{
190 return minimumSizeHint(); 193 return minimumSizeHint();
191} 194}
192 195
193void KNumInput::setSteps(int minor, int major) 196void KNumInput::setSteps(int minor, int major)
194{ 197{
195 if(m_slider) 198 if(m_slider)
196 m_slider->setSteps( minor, major ); 199 m_slider->setSteps( minor, major );
197} 200}
198 201
199 202
200// ---------------------------------------------------------------------------- 203// ----------------------------------------------------------------------------
201 204
202KIntSpinBox::KIntSpinBox(QWidget *parent, const char *name) 205KIntSpinBox::KIntSpinBox(QWidget *parent, const char *name)
203 : QSpinBox(0, 99, 1, parent, name) 206 : QSpinBox(0, 99, 1, parent, name)
204{ 207{
205 editor()->setAlignment(AlignRight); 208 setAlignment(Qt::AlignRight);
206 val_base = 10; 209 val_base = 10;
207 setValue(0); 210 setValue(0);
208} 211}
209 212
210KIntSpinBox::~KIntSpinBox() 213KIntSpinBox::~KIntSpinBox()
211{ 214{
212} 215}
213 216
214KIntSpinBox::KIntSpinBox(int lower, int upper, int step, int value, int base, 217KIntSpinBox::KIntSpinBox(int lower, int upper, int step, int value, int base,
215 QWidget* parent, const char* name) 218 QWidget* parent, const char* name)
216 : QSpinBox(lower, upper, step, parent, name) 219 : QSpinBox(lower, upper, step, parent, name)
217{ 220{
218 editor()->setAlignment(AlignRight); 221 setAlignment(Qt::AlignRight);
219 val_base = base; 222 val_base = base;
220 setValue(value); 223 setValue(value);
221} 224}
222 225
223void KIntSpinBox::setBase(int base) 226void KIntSpinBox::setBase(int base)
224{ 227{
225 val_base = base; 228 val_base = base;
226} 229}
227 230
228 231
229int KIntSpinBox::base() const 232int KIntSpinBox::base() const
230{ 233{
231 return val_base; 234 return val_base;
232} 235}
233 236
234QString KIntSpinBox::mapValueToText(int v) 237QString KIntSpinBox::mapValueToText(int v)
235{ 238{
236 return QString::number(v, val_base); 239 return QString::number(v, val_base);
237} 240}
238 241
239int KIntSpinBox::mapTextToValue(bool* ok) 242int KIntSpinBox::mapTextToValue(bool* ok)
240{ 243{
241 return cleanText().toInt(ok, val_base); 244 return cleanText().toInt(ok, val_base);
242} 245}
243 246
244void KIntSpinBox::setEditFocus(bool mark) 247void KIntSpinBox::setEditFocus(bool mark)
245{ 248{
246 editor()->setFocus(); 249 setFocus();
247 if(mark) 250 if(mark)
248 editor()->selectAll(); 251 selectAll();
249} 252}
250 253
251 254
252// ---------------------------------------------------------------------------- 255// ----------------------------------------------------------------------------
253 256
254class KIntNumInput::KIntNumInputPrivate { 257class KIntNumInput::KIntNumInputPrivate {
255public: 258public:
256 int referencePoint; 259 int referencePoint;
257 short blockRelative; 260 short blockRelative;
258 KIntNumInputPrivate( int r ) 261 KIntNumInputPrivate( int r )
259 : referencePoint( r ), 262 : referencePoint( r ),
260 blockRelative( 0 ) {} 263 blockRelative( 0 ) {}
261}; 264};
262 265
263 266
264KIntNumInput::KIntNumInput(KNumInput* below, int val, QWidget* parent, 267KIntNumInput::KIntNumInput(KNumInput* below, int val, QWidget* parent,
@@ -312,76 +315,76 @@ void KIntNumInput::spinValueChanged(int val)
312 emit valueChanged(val); 315 emit valueChanged(val);
313} 316}
314 317
315void KIntNumInput::slotEmitRelativeValueChanged( int value ) { 318void KIntNumInput::slotEmitRelativeValueChanged( int value ) {
316 if ( d->blockRelative || !d->referencePoint ) return; 319 if ( d->blockRelative || !d->referencePoint ) return;
317 emit relativeValueChanged( double( value ) / double( d->referencePoint ) ); 320 emit relativeValueChanged( double( value ) / double( d->referencePoint ) );
318} 321}
319 322
320void KIntNumInput::setRange(int lower, int upper, int step, bool slider) 323void KIntNumInput::setRange(int lower, int upper, int step, bool slider)
321{ 324{
322 upper = kMax(upper, lower); 325 upper = kMax(upper, lower);
323 lower = kMin(upper, lower); 326 lower = kMin(upper, lower);
324 m_spin->setMinValue(lower); 327 m_spin->setMinValue(lower);
325 m_spin->setMaxValue(upper); 328 m_spin->setMaxValue(upper);
326 m_spin->setLineStep(step); 329 m_spin->setLineStep(step);
327 330
328 step = m_spin->lineStep(); // maybe QRangeControl didn't like out lineStep? 331 step = m_spin->singleStep(); // maybe QRangeControl didn't like out lineStep?
329 332
330 if(slider) { 333 if(slider) {
331 if (m_slider) 334 if (m_slider)
332 m_slider->setRange(lower, upper); 335 m_slider->setRange(lower, upper);
333 else { 336 else {
334 m_slider = new QSlider(lower, upper, step, m_spin->value(), 337 m_slider = new QSlider(lower, upper, step, m_spin->value(),
335 QSlider::Horizontal, this); 338 Qt::Horizontal, this);
336 m_slider->setTickmarks(QSlider::Below); 339 m_slider->setTickmarks(QSlider::Below);
337 connect(m_slider, SIGNAL(valueChanged(int)), 340 connect(m_slider, SIGNAL(valueChanged(int)),
338 m_spin, SLOT(setValue(int))); 341 m_spin, SLOT(setValue(int)));
339 } 342 }
340 343
341 // calculate (upper-lower)/10 without overflowing int's: 344 // calculate (upper-lower)/10 without overflowing int's:
342 int major = calcDiffByTen( upper, lower ); 345 int major = calcDiffByTen( upper, lower );
343 if ( major==0 ) major = step; // #### workaround Qt bug in 2.1-beta4 346 if ( major==0 ) major = step; // #### workaround Qt bug in 2.1-beta4
344 347
345 m_slider->setSteps(step, major); 348 m_slider->setSteps(step, major);
346 m_slider->setTickInterval(major); 349 m_slider->setTickInterval(major);
347 } 350 }
348 else { 351 else {
349 delete m_slider; 352 delete m_slider;
350 m_slider = 0; 353 m_slider = 0;
351 } 354 }
352 355
353 // check that reference point is still inside valid range: 356 // check that reference point is still inside valid range:
354 setReferencePoint( referencePoint() ); 357 setReferencePoint( referencePoint() );
355 358
356 layout(true); 359 layout(true);
357} 360}
358 361
359void KIntNumInput::setMinValue(int min) 362void KIntNumInput::setMinValue(int min)
360{ 363{
361 setRange(min, m_spin->maxValue(), m_spin->lineStep(), m_slider); 364 setRange(min, m_spin->maxValue(), m_spin->singleStep(), m_slider);
362} 365}
363 366
364int KIntNumInput::minValue() const 367int KIntNumInput::minValue() const
365{ 368{
366 return m_spin->minValue(); 369 return m_spin->minValue();
367} 370}
368 371
369void KIntNumInput::setMaxValue(int max) 372void KIntNumInput::setMaxValue(int max)
370{ 373{
371 setRange(m_spin->minValue(), max, m_spin->lineStep(), m_slider); 374 setRange(m_spin->minValue(), max, m_spin->singleStep(), m_slider);
372} 375}
373 376
374int KIntNumInput::maxValue() const 377int KIntNumInput::maxValue() const
375{ 378{
376 return m_spin->maxValue(); 379 return m_spin->maxValue();
377} 380}
378 381
379void KIntNumInput::setSuffix(const QString &suffix) 382void KIntNumInput::setSuffix(const QString &suffix)
380{ 383{
381 m_spin->setSuffix(suffix); 384 m_spin->setSuffix(suffix);
382 385
383 layout(true); 386 layout(true);
384} 387}
385 388
386QString KIntNumInput::suffix() const 389QString KIntNumInput::suffix() const
387{ 390{
@@ -402,78 +405,78 @@ QString KIntNumInput::prefix() const
402 405
403void KIntNumInput::setEditFocus(bool mark) 406void KIntNumInput::setEditFocus(bool mark)
404{ 407{
405 m_spin->setEditFocus(mark); 408 m_spin->setEditFocus(mark);
406} 409}
407 410
408QSize KIntNumInput::minimumSizeHint() const 411QSize KIntNumInput::minimumSizeHint() const
409{ 412{
410 constPolish(); 413 constPolish();
411 414
412 int w; 415 int w;
413 int h; 416 int h;
414 417
415 h = 2 + QMAX(m_sizeSpin.height(), m_sizeSlider.height()); 418 h = 2 + QMAX(m_sizeSpin.height(), m_sizeSlider.height());
416 419
417 // if in extra row, then count it here 420 // if in extra row, then count it here
418 if(m_label && (m_alignment & (AlignBottom|AlignTop))) 421 if(m_label && (m_alignment & (Qt::AlignBottom|Qt::AlignTop)))
419 h += 4 + m_sizeLabel.height(); 422 h += 4 + m_sizeLabel.height();
420 else 423 else
421 // label is in the same row as the other widgets 424 // label is in the same row as the other widgets
422 h = QMAX(h, m_sizeLabel.height() + 2); 425 h = QMAX(h, m_sizeLabel.height() + 2);
423 426
424 w = m_slider ? m_slider->sizeHint().width() + 8 : 0; 427 w = m_slider ? m_slider->sizeHint().width() + 8 : 0;
425 w += m_colw1 + m_colw2; 428 w += m_colw1 + m_colw2;
426 429
427 if(m_alignment & (AlignTop|AlignBottom)) 430 if(m_alignment & (Qt::AlignTop|Qt::AlignBottom))
428 w = QMAX(w, m_sizeLabel.width() + 4); 431 w = QMAX(w, m_sizeLabel.width() + 4);
429 432
430 return QSize(w, h); 433 return QSize(w, h);
431} 434}
432 435
433void KIntNumInput::doLayout() 436void KIntNumInput::doLayout()
434{ 437{
435 m_sizeSpin = m_spin->sizeHint(); 438 m_sizeSpin = m_spin->sizeHint();
436 m_colw2 = m_sizeSpin.width(); 439 m_colw2 = m_sizeSpin.width();
437 440
438 if (m_label) 441 if (m_label)
439 m_label->setBuddy(m_spin); 442 m_label->setBuddy(m_spin);
440} 443}
441 444
442void KIntNumInput::resizeEvent(QResizeEvent* e) 445void KIntNumInput::resizeEvent(QResizeEvent* e)
443{ 446{
444 int w = m_colw1; 447 int w = m_colw1;
445 int h = 0; 448 int h = 0;
446 449
447 if(m_label && (m_alignment & AlignTop)) { 450 if(m_label && (m_alignment & Qt::AlignTop)) {
448 m_label->setGeometry(0, 0, e->size().width(), m_sizeLabel.height()); 451 m_label->setGeometry(0, 0, e->size().width(), m_sizeLabel.height());
449 h += m_sizeLabel.height() + 4; 452 h += m_sizeLabel.height() + 4;
450 } 453 }
451 454
452 if(m_label && (m_alignment & AlignVCenter)) 455 if(m_label && (m_alignment & Qt::AlignVCenter))
453 m_label->setGeometry(0, 0, w, m_sizeSpin.height()); 456 m_label->setGeometry(0, 0, w, m_sizeSpin.height());
454 457
455 m_spin->setGeometry(w, h, m_slider ? m_colw2 : QMAX(m_colw2, e->size().width() - w), m_sizeSpin.height()); 458 m_spin->setGeometry(w, h, m_slider ? m_colw2 : QMAX(m_colw2, e->size().width() - w), m_sizeSpin.height());
456 w += m_colw2 + 8; 459 w += m_colw2 + 8;
457 460
458 if(m_slider) 461 if(m_slider)
459 m_slider->setGeometry(w, h, e->size().width() - w, m_sizeSpin.height()); 462 m_slider->setGeometry(w, h, e->size().width() - w, m_sizeSpin.height());
460 463
461 h += m_sizeSpin.height() + 2; 464 h += m_sizeSpin.height() + 2;
462 465
463 if(m_label && (m_alignment & AlignBottom)) 466 if(m_label && (m_alignment & Qt::AlignBottom))
464 m_label->setGeometry(0, h, m_sizeLabel.width(), m_sizeLabel.height()); 467 m_label->setGeometry(0, h, m_sizeLabel.width(), m_sizeLabel.height());
465} 468}
466 469
467KIntNumInput::~KIntNumInput() 470KIntNumInput::~KIntNumInput()
468{ 471{
469 delete d; 472 delete d;
470} 473}
471 474
472void KIntNumInput::setValue(int val) 475void KIntNumInput::setValue(int val)
473{ 476{
474 m_spin->setValue(val); 477 m_spin->setValue(val);
475 // slider value is changed by spinValueChanged 478 // slider value is changed by spinValueChanged
476} 479}
477 480
478void KIntNumInput::setRelativeValue( double r ) { 481void KIntNumInput::setRelativeValue( double r ) {
479 if ( !d->referencePoint ) return; 482 if ( !d->referencePoint ) return;
@@ -633,70 +636,70 @@ void KDoubleNumInput::sliderMoved(int val)
633void KDoubleNumInput::slotEmitRelativeValueChanged( double value ) 636void KDoubleNumInput::slotEmitRelativeValueChanged( double value )
634{ 637{
635 if ( !d->referencePoint ) return; 638 if ( !d->referencePoint ) return;
636 emit relativeValueChanged( value / d->referencePoint ); 639 emit relativeValueChanged( value / d->referencePoint );
637} 640}
638 641
639QSize KDoubleNumInput::minimumSizeHint() const 642QSize KDoubleNumInput::minimumSizeHint() const
640{ 643{
641 constPolish(); 644 constPolish();
642 645
643 int w; 646 int w;
644 int h; 647 int h;
645 648
646 h = 2 + QMAX(m_sizeEdit.height(), m_sizeSlider.height()); 649 h = 2 + QMAX(m_sizeEdit.height(), m_sizeSlider.height());
647 650
648 // if in extra row, then count it here 651 // if in extra row, then count it here
649 if(m_label && (m_alignment & (AlignBottom|AlignTop))) 652 if(m_label && (m_alignment & (Qt::AlignBottom|Qt::AlignTop)))
650 h += 4 + m_sizeLabel.height(); 653 h += 4 + m_sizeLabel.height();
651 else 654 else
652 // label is in the same row as the other widgets 655 // label is in the same row as the other widgets
653 h = QMAX(h, m_sizeLabel.height() + 2); 656 h = QMAX(h, m_sizeLabel.height() + 2);
654 657
655 w = m_slider ? m_slider->sizeHint().width() + 8 : 0; 658 w = m_slider ? m_slider->sizeHint().width() + 8 : 0;
656 w += m_colw1 + m_colw2; 659 w += m_colw1 + m_colw2;
657 660
658 if(m_alignment & (AlignTop|AlignBottom)) 661 if(m_alignment & (Qt::AlignTop|Qt::AlignBottom))
659 w = QMAX(w, m_sizeLabel.width() + 4); 662 w = QMAX(w, m_sizeLabel.width() + 4);
660 663
661 return QSize(w, h); 664 return QSize(w, h);
662} 665}
663 666
664void KDoubleNumInput::resizeEvent(QResizeEvent* e) 667void KDoubleNumInput::resizeEvent(QResizeEvent* e)
665{ 668{
666 int w = m_colw1; 669 int w = m_colw1;
667 int h = 0; 670 int h = 0;
668 671
669 if(m_label && (m_alignment & AlignTop)) { 672 if(m_label && (m_alignment & Qt::AlignTop)) {
670 m_label->setGeometry(0, 0, e->size().width(), m_sizeLabel.height()); 673 m_label->setGeometry(0, 0, e->size().width(), m_sizeLabel.height());
671 h += m_sizeLabel.height() + 4; 674 h += m_sizeLabel.height() + 4;
672 } 675 }
673 676
674 if(m_label && (m_alignment & AlignVCenter)) 677 if(m_label && (m_alignment & Qt::AlignVCenter))
675 m_label->setGeometry(0, 0, w, m_sizeEdit.height()); 678 m_label->setGeometry(0, 0, w, m_sizeEdit.height());
676 679
677 d->spin->setGeometry(w, h, m_slider ? m_colw2 680 d->spin->setGeometry(w, h, m_slider ? m_colw2
678 : e->size().width() - w, m_sizeEdit.height()); 681 : e->size().width() - w, m_sizeEdit.height());
679 w += m_colw2 + 8; 682 w += m_colw2 + 8;
680 683
681 if(m_slider) 684 if(m_slider)
682 m_slider->setGeometry(w, h, e->size().width() - w, m_sizeEdit.height()); 685 m_slider->setGeometry(w, h, e->size().width() - w, m_sizeEdit.height());
683 686
684 h += m_sizeEdit.height() + 2; 687 h += m_sizeEdit.height() + 2;
685 688
686 if(m_label && (m_alignment & AlignBottom)) 689 if(m_label && (m_alignment & Qt::AlignBottom))
687 m_label->setGeometry(0, h, m_sizeLabel.width(), m_sizeLabel.height()); 690 m_label->setGeometry(0, h, m_sizeLabel.width(), m_sizeLabel.height());
688} 691}
689 692
690void KDoubleNumInput::doLayout() 693void KDoubleNumInput::doLayout()
691{ 694{
692 m_sizeEdit = d->spin->sizeHint(); 695 m_sizeEdit = d->spin->sizeHint();
693 m_colw2 = m_sizeEdit.width(); 696 m_colw2 = m_sizeEdit.width();
694} 697}
695 698
696void KDoubleNumInput::setValue(double val) 699void KDoubleNumInput::setValue(double val)
697{ 700{
698 d->spin->setValue( val ); 701 d->spin->setValue( val );
699} 702}
700 703
701void KDoubleNumInput::setRelativeValue( double r ) 704void KDoubleNumInput::setRelativeValue( double r )
702{ 705{
@@ -717,40 +720,40 @@ void KDoubleNumInput::setRange(double lower, double upper, double step,
717 bool slider) 720 bool slider)
718{ 721{
719 if( m_slider ) { 722 if( m_slider ) {
720 // don't update the slider to avoid an endless recursion 723 // don't update the slider to avoid an endless recursion
721 QSpinBox * spin = d->spin; 724 QSpinBox * spin = d->spin;
722 disconnect(spin, SIGNAL(valueChanged(int)), 725 disconnect(spin, SIGNAL(valueChanged(int)),
723 m_slider, SLOT(setValue(int)) ); 726 m_slider, SLOT(setValue(int)) );
724 } 727 }
725 d->spin->setRange( lower, upper, step, d->spin->precision() ); 728 d->spin->setRange( lower, upper, step, d->spin->precision() );
726 729
727 if(slider) { 730 if(slider) {
728 // upcast to base type to get the min/maxValue in int form: 731 // upcast to base type to get the min/maxValue in int form:
729 QSpinBox * spin = d->spin; 732 QSpinBox * spin = d->spin;
730 int slmax = spin->maxValue(); 733 int slmax = spin->maxValue();
731 int slmin = spin->minValue(); 734 int slmin = spin->minValue();
732 int slvalue = spin->value(); 735 int slvalue = spin->value();
733 int slstep = spin->lineStep(); 736 int slstep = spin->singleStep();
734 if (m_slider) { 737 if (m_slider) {
735 m_slider->setRange(slmin, slmax); 738 m_slider->setRange(slmin, slmax);
736 m_slider->setLineStep(slstep); 739 m_slider->setLineStep(slstep);
737 m_slider->setValue(slvalue); 740 m_slider->setValue(slvalue);
738 } else { 741 } else {
739 m_slider = new QSlider(slmin, slmax, slstep, slvalue, 742 m_slider = new QSlider(slmin, slmax, slstep, slvalue,
740 QSlider::Horizontal, this); 743 Qt::Horizontal, this);
741 m_slider->setTickmarks(QSlider::Below); 744 m_slider->setTickmarks(QSlider::Below);
742 // feedback line: when one moves, the other moves, too: 745 // feedback line: when one moves, the other moves, too:
743 connect(m_slider, SIGNAL(valueChanged(int)), 746 connect(m_slider, SIGNAL(valueChanged(int)),
744 SLOT(sliderMoved(int)) ); 747 SLOT(sliderMoved(int)) );
745 } 748 }
746 connect(spin, SIGNAL(valueChanged(int)), 749 connect(spin, SIGNAL(valueChanged(int)),
747 m_slider, SLOT(setValue(int)) ); 750 m_slider, SLOT(setValue(int)) );
748 // calculate ( slmax - slmin ) / 10 without overflowing ints: 751 // calculate ( slmax - slmin ) / 10 without overflowing ints:
749 int major = calcDiffByTen( slmax, slmin ); 752 int major = calcDiffByTen( slmax, slmin );
750 if ( !major ) major = slstep; // ### needed? 753 if ( !major ) major = slstep; // ### needed?
751 m_slider->setTickInterval(major); 754 m_slider->setTickInterval(major);
752 } else { 755 } else {
753 delete m_slider; 756 delete m_slider;
754 m_slider = 0; 757 m_slider = 0;
755 } 758 }
756 759
@@ -899,43 +902,43 @@ public:
899 *ok = true; 902 *ok = true;
900 return int( value * f + ( value < 0 ? -0.5 : 0.5 ) ); 903 return int( value * f + ( value < 0 ? -0.5 : 0.5 ) );
901 } 904 }
902 } 905 }
903 906
904 double mapToDouble( int value ) const { 907 double mapToDouble( int value ) const {
905 return double(value) * basicStep(); 908 return double(value) * basicStep();
906 } 909 }
907 910
908 int mPrecision; 911 int mPrecision;
909 KDoubleValidator * mValidator; 912 KDoubleValidator * mValidator;
910}; 913};
911 914
912KDoubleSpinBox::KDoubleSpinBox( QWidget * parent, const char * name ) 915KDoubleSpinBox::KDoubleSpinBox( QWidget * parent, const char * name )
913 : QSpinBox( parent, name ) 916 : QSpinBox( parent, name )
914{ 917{
915 editor()->setAlignment( Qt::AlignRight ); 918 setAlignment( Qt::AlignRight );
916 d = new Private(); 919 d = new Private();
917 updateValidator(); 920 updateValidator();
918} 921}
919 922
920KDoubleSpinBox::KDoubleSpinBox( double lower, double upper, double step, 923KDoubleSpinBox::KDoubleSpinBox( double lower, double upper, double step,
921 double value, int precision, 924 double value, int precision,
922 QWidget * parent, const char * name ) 925 QWidget * parent, const char * name )
923 : QSpinBox( parent, name ) 926 : QSpinBox( parent, name )
924{ 927{
925 editor()->setAlignment( Qt::AlignRight ); 928 setAlignment( Qt::AlignRight );
926 d = new Private(); 929 d = new Private();
927 setRange( lower, upper, step, precision ); 930 setRange( lower, upper, step, precision );
928 setValue( value ); 931 setValue( value );
929 connect( this, SIGNAL(valueChanged(int)), SLOT(slotValueChanged(int)) ); 932 connect( this, SIGNAL(valueChanged(int)), SLOT(slotValueChanged(int)) );
930} 933}
931 934
932KDoubleSpinBox::~KDoubleSpinBox() { 935KDoubleSpinBox::~KDoubleSpinBox() {
933 delete d; d = 0; 936 delete d; d = 0;
934} 937}
935 938
936bool KDoubleSpinBox::acceptLocalizedNumbers() const { 939bool KDoubleSpinBox::acceptLocalizedNumbers() const {
937 if ( !d->mValidator ) return true; // we'll set one that does; 940 if ( !d->mValidator ) return true; // we'll set one that does;
938 // can't do it now, since we're const 941 // can't do it now, since we're const
939 return d->mValidator->acceptLocalizedNumbers(); 942 return d->mValidator->acceptLocalizedNumbers();
940} 943}
941 944
@@ -1014,33 +1017,33 @@ void KDoubleSpinBox::setMinValue( double value ) {
1014} 1017}
1015 1018
1016 1019
1017double KDoubleSpinBox::maxValue() const { 1020double KDoubleSpinBox::maxValue() const {
1018 return d->mapToDouble( base::maxValue() ); 1021 return d->mapToDouble( base::maxValue() );
1019} 1022}
1020 1023
1021void KDoubleSpinBox::setMaxValue( double value ) { 1024void KDoubleSpinBox::setMaxValue( double value ) {
1022 bool ok = false; 1025 bool ok = false;
1023 int max = d->mapToInt( value, &ok ); 1026 int max = d->mapToInt( value, &ok );
1024 if ( !ok ) return; 1027 if ( !ok ) return;
1025 base::setMaxValue( max ); 1028 base::setMaxValue( max );
1026 updateValidator(); 1029 updateValidator();
1027} 1030}
1028 1031
1029double KDoubleSpinBox::lineStep() const { 1032double KDoubleSpinBox::lineStep() const {
1030 return d->mapToDouble( base::lineStep() ); 1033 return d->mapToDouble( base::singleStep() );
1031} 1034}
1032 1035
1033void KDoubleSpinBox::setLineStep( double step ) { 1036void KDoubleSpinBox::setLineStep( double step ) {
1034 bool ok = false; 1037 bool ok = false;
1035 if ( step > maxValue() - minValue() ) 1038 if ( step > maxValue() - minValue() )
1036 base::setLineStep( 1 ); 1039 base::setLineStep( 1 );
1037 else 1040 else
1038 base::setLineStep( kMax( d->mapToInt( step, &ok ), 1 ) ); 1041 base::setLineStep( kMax( d->mapToInt( step, &ok ), 1 ) );
1039} 1042}
1040 1043
1041QString KDoubleSpinBox::mapValueToText( int value ) { 1044QString KDoubleSpinBox::mapValueToText( int value ) {
1042 if ( acceptLocalizedNumbers() ) 1045 if ( acceptLocalizedNumbers() )
1043 return KGlobal::locale() 1046 return KGlobal::locale()
1044 ->formatNumber( d->mapToDouble( value ), d->mPrecision ); 1047 ->formatNumber( d->mapToDouble( value ), d->mPrecision );
1045 else 1048 else
1046 return QString().setNum( d->mapToDouble( value ), 'f', d->mPrecision ); 1049 return QString().setNum( d->mapToDouble( value ), 'f', d->mPrecision );
@@ -1059,33 +1062,33 @@ int KDoubleSpinBox::mapTextToValue( bool * ok ) {
1059 value = minValue(); 1062 value = minValue();
1060 return d->mapToInt( value, ok ); 1063 return d->mapToInt( value, ok );
1061} 1064}
1062 1065
1063void KDoubleSpinBox::setValidator( const QValidator * ) { 1066void KDoubleSpinBox::setValidator( const QValidator * ) {
1064 // silently discard the new validator. We don't want another one ;-) 1067 // silently discard the new validator. We don't want another one ;-)
1065} 1068}
1066 1069
1067void KDoubleSpinBox::slotValueChanged( int value ) { 1070void KDoubleSpinBox::slotValueChanged( int value ) {
1068 emit valueChanged( d->mapToDouble( value ) ); 1071 emit valueChanged( d->mapToDouble( value ) );
1069} 1072}
1070 1073
1071void KDoubleSpinBox::updateValidator() { 1074void KDoubleSpinBox::updateValidator() {
1072 if ( !d->mValidator ) { 1075 if ( !d->mValidator ) {
1073 d->mValidator = new KDoubleValidator( minValue(), maxValue(), precision(), 1076 d->mValidator = new KDoubleValidator( minValue(), maxValue(), precision(),
1074 this, "d->mValidator" ); 1077 this, "d->mValidator" );
1075 base::setValidator( d->mValidator ); 1078 lineEdit()->setValidator( d->mValidator );
1076 } else 1079 } else
1077 d->mValidator->setRange( minValue(), maxValue(), precision() ); 1080 d->mValidator->setRange( minValue(), maxValue(), precision() );
1078} 1081}
1079 1082
1080void KNumInput::virtual_hook( int, void* ) 1083void KNumInput::virtual_hook( int, void* )
1081{ /*BASE::virtual_hook( id, data );*/ } 1084{ /*BASE::virtual_hook( id, data );*/ }
1082 1085
1083void KIntNumInput::virtual_hook( int id, void* data ) 1086void KIntNumInput::virtual_hook( int id, void* data )
1084{ KNumInput::virtual_hook( id, data ); } 1087{ KNumInput::virtual_hook( id, data ); }
1085 1088
1086void KDoubleNumInput::virtual_hook( int id, void* data ) 1089void KDoubleNumInput::virtual_hook( int id, void* data )
1087{ KNumInput::virtual_hook( id, data ); } 1090{ KNumInput::virtual_hook( id, data ); }
1088 1091
1089void KIntSpinBox::virtual_hook( int, void* ) 1092void KIntSpinBox::virtual_hook( int, void* )
1090{ /*BASE::virtual_hook( id, data );*/ } 1093{ /*BASE::virtual_hook( id, data );*/ }
1091 1094
diff --git a/microkde/kdeui/knuminput.h b/microkde/kdeui/knuminput.h
index 123fefa..9f9e200 100644
--- a/microkde/kdeui/knuminput.h
+++ b/microkde/kdeui/knuminput.h
@@ -16,32 +16,37 @@
16 * This library is distributed in the hope that it will be useful, 16 * This library is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 * Library General Public License for more details. 19 * Library General Public License for more details.
20 * 20 *
21 * You should have received a copy of the GNU Library General Public License 21 * You should have received a copy of the GNU Library General Public License
22 * along with this library; see the file COPYING.LIB. If not, write to 22 * along with this library; see the file COPYING.LIB. If not, write to
23 * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 23 * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
24 * Boston, MA 02111-1307, USA. 24 * Boston, MA 02111-1307, USA.
25 */ 25 */
26 26
27#ifndef K_NUMINPUT_H 27#ifndef K_NUMINPUT_H
28#define K_NUMINPUT_H 28#define K_NUMINPUT_H
29 29
30#include <qwidget.h> 30#include <qwidget.h>
31#include <qspinbox.h> 31#include <qspinbox.h>
32#include <QLineEdit>
33//Added by qt3to4:
34#include <QResizeEvent>
35#include <QLabel>
36#include <QEvent>
32 37
33class QLabel; 38class QLabel;
34class QSlider; 39class QSlider;
35class QLineEdit; 40class QLineEdit;
36class QLayout; 41class QLayout;
37class QValidator; 42class QValidator;
38 43
39class KIntSpinBox; 44class KIntSpinBox;
40 45
41/* ------------------------------------------------------------------------ */ 46/* ------------------------------------------------------------------------ */
42 47
43/** 48/**
44 * You need to inherit from this class if you want to implement K*NumInput 49 * You need to inherit from this class if you want to implement K*NumInput
45 * for a different variable type 50 * for a different variable type
46 * 51 *
47 */ 52 */
@@ -68,33 +73,33 @@ public:
68 * 73 *
69 * @param label The text of the label. 74 * @param label The text of the label.
70 * Use QString::null to remove an existing one. 75 * Use QString::null to remove an existing one.
71 * 76 *
72 * @param a one of @p AlignLeft, @p AlignHCenter, YAlignRight and 77 * @param a one of @p AlignLeft, @p AlignHCenter, YAlignRight and
73 * @p AlignTop, @p AlignVCenter, @p AlignBottom. 78 * @p AlignTop, @p AlignVCenter, @p AlignBottom.
74 * default is @p AlignLeft | @p AlignTop. 79 * default is @p AlignLeft | @p AlignTop.
75 * 80 *
76 * The vertical alignment flags have special meaning with this 81 * The vertical alignment flags have special meaning with this
77 * widget: 82 * widget:
78 * 83 *
79 * @li @p AlignTop The label is placed above the edit/slider 84 * @li @p AlignTop The label is placed above the edit/slider
80 * @li @p AlignVCenter The label is placed left beside the edit 85 * @li @p AlignVCenter The label is placed left beside the edit
81 * @li @p AlignBottom The label is placed below the edit/slider 86 * @li @p AlignBottom The label is placed below the edit/slider
82 * 87 *
83 */ 88 */
84 virtual void setLabel(const QString & label, int a = AlignLeft | AlignTop); 89 virtual void setLabel(const QString & label, int a = Qt::AlignLeft | Qt::AlignTop);
85 90
86 /** 91 /**
87 * @return the text of the label. 92 * @return the text of the label.
88 */ 93 */
89 QString label() const; 94 QString label() const;
90 95
91 /** 96 /**
92 * @return if the num input has a slider. 97 * @return if the num input has a slider.
93 * @since 3.1 98 * @since 3.1
94 */ 99 */
95 bool showSlider() const { return m_slider; } 100 bool showSlider() const { return m_slider; }
96 101
97 /** 102 /**
98 * Sets the spacing of tickmarks for the slider. 103 * Sets the spacing of tickmarks for the slider.
99 * 104 *
100 * @param minor Minor tickmark separation. 105 * @param minor Minor tickmark separation.
@@ -289,33 +294,33 @@ public:
289 /** 294 /**
290 * @return the maximum value. 295 * @return the maximum value.
291 */ 296 */
292 int maxValue() const; 297 int maxValue() const;
293 298
294 /** 299 /**
295 * Sets the special value text. If set, the SpinBox will display 300 * Sets the special value text. If set, the SpinBox will display
296 * this text instead of the numeric value whenever the current 301 * this text instead of the numeric value whenever the current
297 * value is equal to minVal(). Typically this is used for indicating 302 * value is equal to minVal(). Typically this is used for indicating
298 * that the choice has a special (default) meaning. 303 * that the choice has a special (default) meaning.
299 */ 304 */
300 void setSpecialValueText(const QString& text); 305 void setSpecialValueText(const QString& text);
301 306
302 /** 307 /**
303 * @reimplemented 308 * @reimplemented
304 */ 309 */
305 virtual void setLabel(const QString & label, int a = AlignLeft | AlignTop); 310 virtual void setLabel(const QString & label, int a = Qt::AlignLeft | Qt::AlignTop);
306 311
307 /** 312 /**
308 * This method returns the minimum size necessary to display the 313 * This method returns the minimum size necessary to display the
309 * control. The minimum size is enough to show all the labels 314 * control. The minimum size is enough to show all the labels
310 * in the current font (font change may invalidate the return value). 315 * in the current font (font change may invalidate the return value).
311 * 316 *
312 * @return the minimum size necessary to show the control 317 * @return the minimum size necessary to show the control
313 */ 318 */
314 virtual QSize minimumSizeHint() const; 319 virtual QSize minimumSizeHint() const;
315 320
316public slots: 321public slots:
317 /** 322 /**
318 * Sets the value of the control. 323 * Sets the value of the control.
319 */ 324 */
320 void setValue(int); 325 void setValue(int);
321 326
@@ -575,33 +580,33 @@ public:
575 * @return the current value in units of @ref #referencePoint. 580 * @return the current value in units of @ref #referencePoint.
576 * @since 3.1 581 * @since 3.1
577 */ 582 */
578 double relativeValue() const; 583 double relativeValue() const;
579 584
580 /** 585 /**
581 * Sets the special value text. If set, the spin box will display 586 * Sets the special value text. If set, the spin box will display
582 * this text instead of the numeric value whenever the current 587 * this text instead of the numeric value whenever the current
583 * value is equal to @ref #minVal(). Typically this is used for indicating 588 * value is equal to @ref #minVal(). Typically this is used for indicating
584 * that the choice has a special (default) meaning. 589 * that the choice has a special (default) meaning.
585 */ 590 */
586 void setSpecialValueText(const QString& text); 591 void setSpecialValueText(const QString& text);
587 592
588 /** 593 /**
589 * @reimplemented 594 * @reimplemented
590 */ 595 */
591 virtual void setLabel(const QString & label, int a = AlignLeft | AlignTop); 596 virtual void setLabel(const QString & label, int a = Qt::AlignLeft | Qt::AlignTop);
592 /** 597 /**
593 * @reimplemented 598 * @reimplemented
594 */ 599 */
595 virtual QSize minimumSizeHint() const; 600 virtual QSize minimumSizeHint() const;
596 /** 601 /**
597 * @reimplemented 602 * @reimplemented
598 */ 603 */
599 virtual bool eventFilter(QObject*, QEvent*); 604 virtual bool eventFilter(QObject*, QEvent*);
600 605
601public slots: 606public slots:
602 /** 607 /**
603 * Sets the value of the control. 608 * Sets the value of the control.
604 */ 609 */
605 void setValue(double); 610 void setValue(double);
606 611
607 /** 612 /**
@@ -745,32 +750,36 @@ public:
745 virtual ~KIntSpinBox(); 750 virtual ~KIntSpinBox();
746 751
747 /** 752 /**
748 * Sets the base in which the numbers in the spin box are represented. 753 * Sets the base in which the numbers in the spin box are represented.
749 */ 754 */
750 void setBase(int base); 755 void setBase(int base);
751 /** 756 /**
752 * @return the base in which numbers in the spin box are represented. 757 * @return the base in which numbers in the spin box are represented.
753 */ 758 */
754 int base() const; 759 int base() const;
755 /** 760 /**
756 * sets focus and optionally marks all text 761 * sets focus and optionally marks all text
757 * 762 *
758 */ 763 */
759 void setEditFocus(bool mark); 764 void setEditFocus(bool mark);
760 765
766 void setValidator(const QValidator *v) {
767 lineEdit()->setValidator(v);
768 }
769
761protected: 770protected:
762 771
763 /** 772 /**
764 * Overloaded the method in QSpinBox 773 * Overloaded the method in QSpinBox
765 * to make use of the base given in the constructor. 774 * to make use of the base given in the constructor.
766 */ 775 */
767 virtual QString mapValueToText(int); 776 virtual QString mapValueToText(int);
768 777
769 /** 778 /**
770 * Overloaded the method in QSpinBox 779 * Overloaded the method in QSpinBox
771 * to make use of the base given in the constructor. 780 * to make use of the base given in the constructor.
772 */ 781 */
773 virtual int mapTextToValue(bool*); 782 virtual int mapTextToValue(bool*);
774 783
775private: 784private:
776 int val_base; 785 int val_base;
diff --git a/microkde/kdeui/kpopupmenu.cpp b/microkde/kdeui/kpopupmenu.cpp
index 96d2a87..7e1503c 100644
--- a/microkde/kdeui/kpopupmenu.cpp
+++ b/microkde/kdeui/kpopupmenu.cpp
@@ -1,19 +1,22 @@
1 1
2#include <kpopupmenu.h> 2#include <kpopupmenu.h>
3#include <qtimer.h> 3#include <qtimer.h>
4//Added by qt3to4:
5#include <QFocusEvent>
6#include <Q3PopupMenu>
4 7
5 8
6KPopupMenu::KPopupMenu ( QWidget * parent, const char * name ) 9KPopupMenu::KPopupMenu ( QWidget * parent, const char * name )
7 : QPopupMenu ( parent, name ) {;} 10 : Q3PopupMenu ( parent, name ) {;}
8 11
9 12
10 13
11KMenuBar::KMenuBar ( QWidget * parent, const char * name ) 14KMenuBar::KMenuBar ( QWidget * parent, const char * name )
12 : QPEMenuBar ( parent, name ) {} 15 : QPEMenuBar ( parent, name ) {}
13 16
14void KMenuBar::focusOutEvent ( QFocusEvent * e) 17void KMenuBar::focusOutEvent ( QFocusEvent * e)
15{ 18{
16 QPEMenuBar::focusOutEvent( e ); 19 QPEMenuBar::focusOutEvent( e );
17 QTimer::singleShot( 100, this, SIGNAL ( lostFocus() ) ); 20 QTimer::singleShot( 100, this, SIGNAL ( lostFocus() ) );
18 21
19} 22}
diff --git a/microkde/kdeui/kpopupmenu.h b/microkde/kdeui/kpopupmenu.h
index fd00f36..1c903ad 100644
--- a/microkde/kdeui/kpopupmenu.h
+++ b/microkde/kdeui/kpopupmenu.h
@@ -1,28 +1,30 @@
1#ifndef KPOPUPMENU_H 1#ifndef KPOPUPMENU_H
2#define KPOPUPMENU_H 2#define KPOPUPMENU_H
3 3
4#include <qpopupmenu.h> 4#include <q3popupmenu.h>
5//Added by qt3to4:
6#include <QFocusEvent>
5#ifdef DESKTOP_VERSION 7#ifdef DESKTOP_VERSION
6#include <qmenubar.h> 8#include <qmenubar.h>
7#define QPEMenuBar QMenuBar 9#define QPEMenuBar QMenuBar
8#else 10#else
9#include <qpe/qpemenubar.h> 11#include <qpe/qpemenubar.h>
10#endif 12#endif
11 13
12class KPopupMenu : public QPopupMenu 14class KPopupMenu : public Q3PopupMenu
13{ 15{
14Q_OBJECT 16Q_OBJECT
15 public: 17 public:
16 KPopupMenu ( QWidget * parent=0, const char * name=0 ); 18 KPopupMenu ( QWidget * parent=0, const char * name=0 );
17 19
18}; 20};
19 21
20 22
21class KMenuBar : public QPEMenuBar 23class KMenuBar : public QPEMenuBar
22{ 24{
23Q_OBJECT 25Q_OBJECT
24 public: 26 public:
25 KMenuBar ( QWidget * parent=0, const char * name=0 ); 27 KMenuBar ( QWidget * parent=0, const char * name=0 );
26 signals: 28 signals:
27 void lostFocus(); 29 void lostFocus();
28 protected: 30 protected:
diff --git a/microkde/kdeui/kseparator.cpp b/microkde/kdeui/kseparator.cpp
index d028420..66000f0 100644
--- a/microkde/kdeui/kseparator.cpp
+++ b/microkde/kdeui/kseparator.cpp
@@ -5,76 +5,78 @@
5 * it under the terms of the GNU Library General Public License as published by 5 * it under the terms of the GNU Library General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or 6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version. 7 * (at your option) any later version.
8 * 8 *
9 * This program is distributed in the hope that it will be useful, 9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU Library General Public License for more details. 12 * GNU Library General Public License for more details.
13 * 13 *
14 * You should have received a copy of the GNU Library General Public License 14 * You should have received a copy of the GNU Library General Public License
15 * along with this program; if not, write to the Free Software 15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 16 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17 * 17 *
18 */ 18 */
19 19
20#include <qstyle.h> 20#include <qstyle.h>
21//Added by qt3to4:
22#include <Q3Frame>
21 23
22#include <kdebug.h> 24#include <kdebug.h>
23//US #include <kapplication.h> 25//US #include <kapplication.h>
24 26
25//US #include "kseparator.moc" 27//US #include "kseparator.moc"
26 28
27#include "kseparator.h" 29#include "kseparator.h"
28 30
29KSeparator::KSeparator(QWidget* parent, const char* name, WFlags f) 31KSeparator::KSeparator(QWidget* parent, const char* name, Qt::WFlags f)
30 : QFrame(parent, name, f) 32 : Q3Frame(parent, name, f)
31{ 33{
32 setLineWidth(1); 34 setLineWidth(1);
33 setMidLineWidth(0); 35 setMidLineWidth(0);
34 setOrientation( HLine ); 36 setOrientation( HLine );
35} 37}
36 38
37 39
38 40
39KSeparator::KSeparator(int orientation, QWidget* parent, const char* name, WFlags f) 41KSeparator::KSeparator(int orientation, QWidget* parent, const char* name, Qt::WFlags f)
40 : QFrame(parent, name, f) 42 : Q3Frame(parent, name, f)
41{ 43{
42 setLineWidth(1); 44 setLineWidth(1);
43 setMidLineWidth(0); 45 setMidLineWidth(0);
44 setOrientation( orientation ); 46 setOrientation( orientation );
45} 47}
46 48
47 49
48 50
49void KSeparator::setOrientation(int orientation) 51void KSeparator::setOrientation(int orientation)
50{ 52{
51 switch(orientation) 53 switch(orientation)
52 { 54 {
53 case Vertical: 55 case Qt::Vertical:
54 case VLine: 56 case VLine:
55 setFrameStyle( QFrame::VLine | QFrame::Sunken ); 57 setFrameStyle( Q3Frame::VLine | Q3Frame::Sunken );
56 setMinimumSize(2, 0); 58 setMinimumSize(2, 0);
57 break; 59 break;
58 60
59 default: 61 default:
60 kdWarning() << "KSeparator::setOrientation(): invalid orientation, using default orientation HLine" << endl; 62 kdWarning() << "KSeparator::setOrientation(): invalid orientation, using default orientation HLine" << endl;
61 63
62 case Horizontal: 64 case Qt::Horizontal:
63 case HLine: 65 case HLine:
64 setFrameStyle( QFrame::HLine | QFrame::Sunken ); 66 setFrameStyle( Q3Frame::HLine | Q3Frame::Sunken );
65 setMinimumSize(0, 2); 67 setMinimumSize(0, 2);
66 break; 68 break;
67 } 69 }
68} 70}
69 71
70 72
71 73
72int KSeparator::orientation() const 74int KSeparator::orientation() const
73{ 75{
74 if ( frameStyle() & VLine ) 76 if ( frameStyle() & VLine )
75 return VLine; 77 return VLine;
76 78
77 if ( frameStyle() & HLine ) 79 if ( frameStyle() & HLine )
78 return HLine; 80 return HLine;
79 81
80 return 0; 82 return 0;
diff --git a/microkde/kdeui/kseparator.h b/microkde/kdeui/kseparator.h
index 6d2712a..c673475 100644
--- a/microkde/kdeui/kseparator.h
+++ b/microkde/kdeui/kseparator.h
@@ -7,57 +7,57 @@
7 * (at your option) any later version. 7 * (at your option) any later version.
8 * 8 *
9 * This program is distributed in the hope that it will be useful, 9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU Library General Public License for more details. 12 * GNU Library General Public License for more details.
13 * 13 *
14 * You should have received a copy of the GNU Library General Public License 14 * You should have received a copy of the GNU Library General Public License
15 * along with this program; if not, write to the Free Software 15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 16 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17 * 17 *
18 */ 18 */
19 19
20#ifndef __KSEPARATOR_H__ 20#ifndef __KSEPARATOR_H__
21#define __KSEPARATOR_H__ 21#define __KSEPARATOR_H__
22 22
23#include <qframe.h> 23#include <q3frame.h>
24 24
25/** 25/**
26 * Standard horizontal or vertical separator. 26 * Standard horizontal or vertical separator.
27 * 27 *
28 * @author Michael Roth <mroth@wirlweb.de> 28 * @author Michael Roth <mroth@wirlweb.de>
29 * @version $Id$ 29 * @version $Id$
30*/ 30*/
31class KSeparator : public QFrame 31class KSeparator : public Q3Frame
32{ 32{
33 Q_OBJECT 33 Q_OBJECT
34 Q_PROPERTY( int orientation READ orientation WRITE setOrientation ) 34 Q_PROPERTY( int orientation READ orientation WRITE setOrientation )
35 public: 35 public:
36 /** 36 /**
37 * Constructor. 37 * Constructor.
38 **/ 38 **/
39 KSeparator(QWidget* parent=0, const char* name=0, WFlags f=0); 39 KSeparator(QWidget* parent=0, const char* name=0, Qt::WFlags f=0);
40 /** 40 /**
41 * Constructor. 41 * Constructor.
42 * 42 *
43 * @param orientation Set the orientation of the separator. 43 * @param orientation Set the orientation of the separator.
44 * Possible values are HLine or Horizontal and VLine or Vertical. 44 * Possible values are HLine or Horizontal and VLine or Vertical.
45 **/ 45 **/
46 KSeparator(int orientation, QWidget* parent=0, const char* name=0, 46 KSeparator(int orientation, QWidget* parent=0, const char* name=0,
47 WFlags f=0); 47 Qt::WFlags f=0);
48 48
49 /** 49 /**
50 * Returns the orientation of the separator. 50 * Returns the orientation of the separator.
51 * 51 *
52 * Possible values are VLine and HLine. 52 * Possible values are VLine and HLine.
53 **/ 53 **/
54 int orientation() const; 54 int orientation() const;
55 55
56 /** 56 /**
57 * Set the orientation of the separator to @p orient 57 * Set the orientation of the separator to @p orient
58 * 58 *
59 * Possible values are VLine and HLine. 59 * Possible values are VLine and HLine.
60 */ 60 */
61 void setOrientation(int orient); 61 void setOrientation(int orient);
62 62
63 /** 63 /**
diff --git a/microkde/kdeui/ksqueezedtextlabel.cpp b/microkde/kdeui/ksqueezedtextlabel.cpp
index 37fa29a..e2c61fd 100644
--- a/microkde/kdeui/ksqueezedtextlabel.cpp
+++ b/microkde/kdeui/ksqueezedtextlabel.cpp
@@ -5,32 +5,35 @@
5 modify it under the terms of the GNU Library General Public 5 modify it under the terms of the GNU Library General Public
6 License version 2 as published by the Free Software Foundation. 6 License version 2 as published by the Free Software Foundation.
7 7
8 This library is distributed in the hope that it will be useful, 8 This library is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of 9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 Library General Public License for more details. 11 Library General Public License for more details.
12 12
13 You should have received a copy of the GNU Library General Public License 13 You should have received a copy of the GNU Library General Public License
14 along with this library; see the file COPYING.LIB. If not, write to 14 along with this library; see the file COPYING.LIB. If not, write to
15 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 15 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
16 Boston, MA 02111-1307, USA. 16 Boston, MA 02111-1307, USA.
17*/ 17*/
18 18
19#include "ksqueezedtextlabel.h" 19#include "ksqueezedtextlabel.h"
20#include <qtooltip.h> 20#include <qtooltip.h>
21//Added by qt3to4:
22#include <QResizeEvent>
23#include <QLabel>
21 24
22KSqueezedTextLabel::KSqueezedTextLabel( const QString &text , QWidget *parent, const char *name ) 25KSqueezedTextLabel::KSqueezedTextLabel( const QString &text , QWidget *parent, const char *name )
23 : QLabel ( parent, name ) { 26 : QLabel ( parent, name ) {
24 setSizePolicy(QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed )); 27 setSizePolicy(QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ));
25 fullText = text; 28 fullText = text;
26 squeezeTextToLabel(); 29 squeezeTextToLabel();
27} 30}
28 31
29KSqueezedTextLabel::KSqueezedTextLabel( QWidget *parent, const char *name ) 32KSqueezedTextLabel::KSqueezedTextLabel( QWidget *parent, const char *name )
30 : QLabel ( parent, name ) { 33 : QLabel ( parent, name ) {
31 setSizePolicy(QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed )); 34 setSizePolicy(QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ));
32} 35}
33 36
34void KSqueezedTextLabel::resizeEvent( QResizeEvent * ) { 37void KSqueezedTextLabel::resizeEvent( QResizeEvent * ) {
35 squeezeTextToLabel(); 38 squeezeTextToLabel();
36} 39}
diff --git a/microkde/kdeui/ksqueezedtextlabel.h b/microkde/kdeui/ksqueezedtextlabel.h
index 1634adc..487d0b0 100644
--- a/microkde/kdeui/ksqueezedtextlabel.h
+++ b/microkde/kdeui/ksqueezedtextlabel.h
@@ -7,32 +7,34 @@
7 7
8 This library is distributed in the hope that it will be useful, 8 This library is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of 9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 Library General Public License for more details. 11 Library General Public License for more details.
12 12
13 You should have received a copy of the GNU Library General Public License 13 You should have received a copy of the GNU Library General Public License
14 along with this library; see the file COPYING.LIB. If not, write to 14 along with this library; see the file COPYING.LIB. If not, write to
15 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 15 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
16 Boston, MA 02111-1307, USA. 16 Boston, MA 02111-1307, USA.
17*/ 17*/
18 18
19#ifndef KSQUEEZEDTEXTLABEL_H 19#ifndef KSQUEEZEDTEXTLABEL_H
20#define KSQUEEZEDTEXTLABEL_H 20#define KSQUEEZEDTEXTLABEL_H
21 21
22#include <qlabel.h> 22#include <qlabel.h>
23//Added by qt3to4:
24#include <QResizeEvent>
23 25
24/** 26/**
25 * A label class that squeezes its text into the label 27 * A label class that squeezes its text into the label
26 * 28 *
27 * If the text is too long to fit into the label it is divided into 29 * If the text is too long to fit into the label it is divided into
28 * remaining left and right parts which are separated by three dots. 30 * remaining left and right parts which are separated by three dots.
29 * 31 *
30 * Example: 32 * Example:
31 * http://www.kde.org/documentation/index.html could be squeezed to 33 * http://www.kde.org/documentation/index.html could be squeezed to
32 * http://www.kde...ion/index.html 34 * http://www.kde...ion/index.html
33 35
34 * @short A replacement for QLabel that squeezes its text 36 * @short A replacement for QLabel that squeezes its text
35 * @author Ronny Standtke <Ronny.Standtke@gmx.de> 37 * @author Ronny Standtke <Ronny.Standtke@gmx.de>
36 * @version $Id$ 38 * @version $Id$
37 * 39 *
38 */ 40 */
diff --git a/microkde/kdeui/kstdaction.cpp b/microkde/kdeui/kstdaction.cpp
index cfd7b54..f0d162d 100644
--- a/microkde/kdeui/kstdaction.cpp
+++ b/microkde/kdeui/kstdaction.cpp
@@ -6,33 +6,33 @@
6 License version 2 as published by the Free Software Foundation. 6 License version 2 as published by the Free Software Foundation.
7 7
8 This library is distributed in the hope that it will be useful, 8 This library is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of 9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 Library General Public License for more details. 11 Library General Public License for more details.
12 12
13 You should have received a copy of the GNU Library General Public License 13 You should have received a copy of the GNU Library General Public License
14 along with this library; see the file COPYING.LIB. If not, write to 14 along with this library; see the file COPYING.LIB. If not, write to
15 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 15 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
16 Boston, MA 02111-1307, USA. 16 Boston, MA 02111-1307, USA.
17*/ 17*/
18 18
19#include "kstdaction.h" 19#include "kstdaction.h"
20 20
21#include <qtoolbutton.h> 21#include <qtoolbutton.h>
22#include <qwhatsthis.h> 22#include <q3whatsthis.h>
23 23
24//US #include <kaboutdata.h> 24//US #include <kaboutdata.h>
25#include <kaction.h> 25#include <kaction.h>
26#include <kapplication.h> 26#include <kapplication.h>
27#include <kdebug.h> 27#include <kdebug.h>
28#include <kglobal.h> 28#include <kglobal.h>
29#include <kiconloader.h> 29#include <kiconloader.h>
30#include <klocale.h> 30#include <klocale.h>
31//US #include <kstdaccel.h> 31//US #include <kstdaccel.h>
32//US #include <kmainwindow.h> 32//US #include <kmainwindow.h>
33 33
34namespace KStdAction 34namespace KStdAction
35{ 35{
36 36
37struct KStdActionInfo 37struct KStdActionInfo
38{ 38{
diff --git a/microkde/kdeui/ktoolbar.cpp b/microkde/kdeui/ktoolbar.cpp
index 027e5e9..02db316 100644
--- a/microkde/kdeui/ktoolbar.cpp
+++ b/microkde/kdeui/ktoolbar.cpp
@@ -12,241 +12,252 @@
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#ifdef KDE_USE_FINAL 26#ifdef KDE_USE_FINAL
27#undef Always 27#undef Always
28#include <qdockwindow.h> 28#include <q3dockwindow.h>
29#endif 29#endif
30 30//Added by qt3to4:
31#include <Q3ValueList>
32#include <Q3PtrList>
33#include <QPixmap>
34#include <Q3Frame>
35#include <QResizeEvent>
36#include <QMouseEvent>
37#include <QChildEvent>
38#include <QEvent>
39#include <QShowEvent>
40#include <QDesktopWidget>
41#include <QBoxLayout>
31 42
32 43
33#include "ktoolbar.h" 44#include "ktoolbar.h"
34#include "kmainwindow.h" 45#include "kmainwindow.h"
35 46
36#include <string.h> 47#include <string.h>
37 48
38#include <qpainter.h> 49#include <qpainter.h>
39#include <qtooltip.h> 50#include <qtooltip.h>
40#include <qdrawutil.h> 51#include <qdrawutil.h>
41#include <qstring.h> 52#include <qstring.h>
42#include <qrect.h> 53#include <qrect.h>
43#include <qobjectlist.h> 54#include <qobject.h>
44#include <qtimer.h> 55#include <qtimer.h>
45#include <qstyle.h> 56#include <qstyle.h>
46#include <qapplication.h> 57#include <qapplication.h>
47 58
48//US #include <config.h> 59//US #include <config.h>
49 60
50#include "klineedit.h" 61#include "klineedit.h"
51#include "kseparator.h" 62#include "kseparator.h"
52#include <klocale.h> 63#include <klocale.h>
53#include <kapplication.h> 64#include <kapplication.h>
54#include <kaction.h> 65#include <kaction.h>
55#include <kstdaction.h> 66#include <kstdaction.h>
56#include <kglobal.h> 67#include <kglobal.h>
57#include <kconfig.h> 68#include <kconfig.h>
58#include <kiconloader.h> 69#include <kiconloader.h>
59#include <kcombobox.h> 70#include <kcombobox.h>
60//US #include <kpopupmenu.h> 71//US #include <kpopupmenu.h>
61//US #include <kanimwidget.h> 72//US #include <kanimwidget.h>
62//US #include <kipc.h> 73//US #include <kipc.h>
63//US #include <kwin.h> 74//US #include <kwin.h>
64#include <kdebug.h> 75#include <kdebug.h>
65#include <qlayout.h> 76#include <qlayout.h>
66 77
67#include "ktoolbarbutton.h" 78#include "ktoolbarbutton.h"
68 79
69//US 80//US
70#include "kconfigbase.h" 81#include "kconfigbase.h"
71 82
72#include <qpopupmenu.h> 83#include <q3popupmenu.h>
73#include <qmainwindow.h> 84#include <q3mainwindow.h>
74 85
75enum { 86enum {
76 CONTEXT_TOP = 0, 87 CONTEXT_TOP = 0,
77 CONTEXT_LEFT = 1, 88 CONTEXT_LEFT = 1,
78 CONTEXT_RIGHT = 2, 89 CONTEXT_RIGHT = 2,
79 CONTEXT_BOTTOM = 3, 90 CONTEXT_BOTTOM = 3,
80 CONTEXT_FLOAT = 4, 91 CONTEXT_FLOAT = 4,
81 CONTEXT_FLAT = 5, 92 CONTEXT_FLAT = 5,
82 CONTEXT_ICONS = 6, 93 CONTEXT_ICONS = 6,
83 CONTEXT_TEXT = 7, 94 CONTEXT_TEXT = 7,
84 CONTEXT_TEXTRIGHT = 8, 95 CONTEXT_TEXTRIGHT = 8,
85 CONTEXT_TEXTUNDER = 9, 96 CONTEXT_TEXTUNDER = 9,
86 CONTEXT_ICONSIZES = 50 // starting point for the icon size list, put everything else before 97 CONTEXT_ICONSIZES = 50 // starting point for the icon size list, put everything else before
87}; 98};
88 99
89class KToolBarPrivate 100class KToolBarPrivate
90{ 101{
91public: 102public:
92 KToolBarPrivate() { 103 KToolBarPrivate() {
93 m_iconSize = 0; 104 m_iconSize = 0;
94 m_iconText = KToolBar::IconOnly; 105 m_iconText = KToolBar::IconOnly;
95 m_highlight = true; 106 m_highlight = true;
96 m_transparent = true; 107 m_transparent = true;
97 m_honorStyle = false; 108 m_honorStyle = false;
98 109
99 m_enableContext = true; 110 m_enableContext = true;
100 111
101 m_xmlguiClient = 0; 112 m_xmlguiClient = 0;
102 m_configurePlugged = false; 113 m_configurePlugged = false;
103 114
104//US oldPos = Qt::DockUnmanaged; 115//US oldPos = Qt::DockUnmanaged;
105 oldPos = QMainWindow::Unmanaged; 116 oldPos = Qt::Unmanaged;
106 117
107 modified = m_isHorizontal = positioned = FALSE; 118 modified = m_isHorizontal = positioned = FALSE;
108 119
109 HiddenDefault = false; 120 HiddenDefault = false;
110 IconSizeDefault = 0; 121 IconSizeDefault = 0;
111 IconTextDefault = "IconOnly"; 122 IconTextDefault = "IconOnly";
112 IndexDefault = -1; 123 IndexDefault = -1;
113 NewLineDefault = false; 124 NewLineDefault = false;
114 OffsetDefault = -1; 125 OffsetDefault = -1;
115 PositionDefault = "Top"; 126 PositionDefault = "Top";
116 idleButtons.setAutoDelete(true); 127 idleButtons.setAutoDelete(true);
117 } 128 }
118 129
119 int m_iconSize; 130 int m_iconSize;
120 KToolBar::IconText m_iconText; 131 KToolBar::IconText m_iconText;
121 bool m_highlight : 1; 132 bool m_highlight : 1;
122 bool m_transparent : 1; 133 bool m_transparent : 1;
123 bool m_honorStyle : 1; 134 bool m_honorStyle : 1;
124 bool m_isHorizontal : 1; 135 bool m_isHorizontal : 1;
125 bool m_enableContext : 1; 136 bool m_enableContext : 1;
126 bool m_configurePlugged : 1; 137 bool m_configurePlugged : 1;
127 bool modified : 1; 138 bool modified : 1;
128 bool positioned : 1; 139 bool positioned : 1;
129 140
130 QWidget *m_parent; 141 QWidget *m_parent;
131 142
132 QMainWindow::ToolBarDock oldPos; 143 Qt::ToolBarDock oldPos;
133 144
134 KXMLGUIClient *m_xmlguiClient; 145 KXMLGUIClient *m_xmlguiClient;
135 146
136 struct ToolBarInfo 147 struct ToolBarInfo
137 { 148 {
138//US ToolBarInfo() : index( 0 ), offset( -1 ), newline( FALSE ), dock( Qt::DockTop ) {} 149//US ToolBarInfo() : index( 0 ), offset( -1 ), newline( FALSE ), dock( Qt::DockTop ) {}
139 ToolBarInfo() : index( 0 ), offset( -1 ), newline( FALSE ), dock( QMainWindow::Top ) {} 150 ToolBarInfo() : index( 0 ), offset( -1 ), newline( FALSE ), dock( Qt::DockTop ) {}
140//US ToolBarInfo( Qt::Dock d, int i, bool n, int o ) : index( i ), offset( o ), newline( n ), dock( d ) {} 151//US ToolBarInfo( Qt::Dock d, int i, bool n, int o ) : index( i ), offset( o ), newline( n ), dock( d ) {}
141 ToolBarInfo( QMainWindow::ToolBarDock d, int i, bool n, int o ) : index( i ), offset( o ), newline( n ), dock( d ) {} 152 ToolBarInfo( Qt::ToolBarDock d, int i, bool n, int o ) : index( i ), offset( o ), newline( n ), dock( d ) {}
142 int index, offset; 153 int index, offset;
143 bool newline; 154 bool newline;
144//US Qt::Dock dock; 155//US Qt::Dock dock;
145 QMainWindow::ToolBarDock dock; 156 Qt::ToolBarDock dock;
146 }; 157 };
147 158
148 ToolBarInfo toolBarInfo; 159 ToolBarInfo toolBarInfo;
149 QValueList<int> iconSizes; 160 Q3ValueList<int> iconSizes;
150 QTimer repaintTimer; 161 QTimer repaintTimer;
151 162
152 // Default Values. 163 // Default Values.
153 bool HiddenDefault; 164 bool HiddenDefault;
154 int IconSizeDefault; 165 int IconSizeDefault;
155 QString IconTextDefault; 166 QString IconTextDefault;
156 int IndexDefault; 167 int IndexDefault;
157 bool NewLineDefault; 168 bool NewLineDefault;
158 int OffsetDefault; 169 int OffsetDefault;
159 QString PositionDefault; 170 QString PositionDefault;
160 171
161 QPtrList<QWidget> idleButtons; 172 Q3PtrList<QWidget> idleButtons;
162}; 173};
163 174
164KToolBarSeparator::KToolBarSeparator(Orientation o , bool l, QToolBar *parent, 175KToolBarSeparator::KToolBarSeparator(Qt::Orientation o , bool l, Q3ToolBar *parent,
165 const char* name ) 176 const char* name )
166 :QFrame( parent, name ), line( l ) 177 :Q3Frame( parent, name ), line( l )
167{ 178{
168 connect( parent, SIGNAL(orientationChanged(Orientation)), 179 connect( parent, SIGNAL(orientationChanged(Qt::Orientation)),
169 this, SLOT(setOrientation(Orientation)) ); 180 this, SLOT(setOrientation(Qt::Orientation)) );
170 setOrientation( o ); 181 setOrientation( o );
171 setBackgroundMode( parent->backgroundMode() ); 182 setBackgroundMode( parent->backgroundMode() );
172 setBackgroundOrigin( ParentOrigin ); 183 setBackgroundOrigin( ParentOrigin );
173} 184}
174 185
175void KToolBarSeparator::setOrientation( Orientation o ) 186void KToolBarSeparator::setOrientation( Qt::Orientation o )
176{ 187{
177 orient = o; 188 orient = o;
178 if ( line ) { 189 if ( line ) {
179 if ( orientation() == Vertical ) 190 if ( orientation() == Qt::Vertical )
180 setFrameStyle( HLine + Sunken ); 191 setFrameStyle( HLine + Sunken );
181 else 192 else
182 setFrameStyle( VLine + Sunken ); 193 setFrameStyle( VLine + Sunken );
183 } else { 194 } else {
184 setFrameStyle( NoFrame ); 195 setFrameStyle( NoFrame );
185 } 196 }
186} 197}
187 198
188void KToolBarSeparator::styleChange( QStyle& ) 199void KToolBarSeparator::styleChange( QStyle& )
189{ 200{
190 setOrientation( orient ); 201 setOrientation( orient );
191} 202}
192 203
193QSize KToolBarSeparator::sizeHint() const 204QSize KToolBarSeparator::sizeHint() const
194{ 205{
195 return orientation() == Vertical ? QSize( 0, 6 ) : QSize( 6, 0 ); 206 return orientation() == Qt::Vertical ? QSize( 0, 6 ) : QSize( 6, 0 );
196} 207}
197 208
198QSizePolicy KToolBarSeparator::sizePolicy() const 209QSizePolicy KToolBarSeparator::sizePolicy() const
199{ 210{
200 return QSizePolicy( QSizePolicy::Minimum, QSizePolicy::Minimum ); 211 return QSizePolicy( QSizePolicy::Minimum, QSizePolicy::Minimum );
201} 212}
202 213
203KToolBar::KToolBar( QWidget *parent, const char *name, bool honorStyle, bool readConfig ) 214KToolBar::KToolBar( QWidget *parent, const char *name, bool honorStyle, bool readConfig )
204#ifdef DESKTOP_VERSION 215#ifdef DESKTOP_VERSION
205 : QToolBar( QString::fromLatin1( name ), 216 : Q3ToolBar( QString::fromLatin1( name ),
206 parent && parent->inherits( "QMainWindow" ) ? static_cast<QMainWindow*>(parent) : 0, 217 parent && parent->inherits( "Q3MainWindow" ) ? static_cast<Q3MainWindow*>(parent) : 0,
207 parent, FALSE, 218 parent, FALSE,
208 name ? name : "mainToolBar") 219 name ? name : "mainToolBar")
209#else 220#else
210 : QPEToolBar( parent && parent->inherits( "QMainWindow" ) ? static_cast<QMainWindow*>(parent) : 0, 221 : QPEToolBar( parent && parent->inherits( "Q3MainWindow" ) ? static_cast<Q3MainWindow*>(parent) : 0,
211 QString::fromLatin1( name )) 222 QString::fromLatin1( name ))
212 223
213 224
214#endif 225#endif
215{ 226{
216 init( readConfig, honorStyle ); 227 init( readConfig, honorStyle );
217} 228}
218 229
219KToolBar::KToolBar( QMainWindow *parentWindow, QMainWindow::ToolBarDock dock, bool newLine, const char *name, bool honorStyle, bool readConfig ) 230KToolBar::KToolBar( Q3MainWindow *parentWindow, Qt::ToolBarDock dock, bool newLine, const char *name, bool honorStyle, bool readConfig )
220#ifdef DESKTOP_VERSION 231#ifdef DESKTOP_VERSION
221 : QToolBar( QString::fromLatin1( name ), 232 : Q3ToolBar( QString::fromLatin1( name ),
222 parentWindow, dock, newLine, 233 parentWindow, dock, newLine,
223 name ? name : "mainToolBar") 234 name ? name : "mainToolBar")
224#else 235#else
225 : QPEToolBar( parentWindow,QString::fromLatin1( name )) 236 : QPEToolBar( parentWindow,QString::fromLatin1( name ))
226 237
227 238
228#endif 239#endif
229 240
230{ 241{
231 init( readConfig, honorStyle ); 242 init( readConfig, honorStyle );
232} 243}
233 244
234KToolBar::KToolBar( QMainWindow *parentWindow, QWidget *dock, bool newLine, const char *name, bool honorStyle, bool readConfig ) 245KToolBar::KToolBar( Q3MainWindow *parentWindow, QWidget *dock, bool newLine, const char *name, bool honorStyle, bool readConfig )
235#ifdef DESKTOP_VERSION 246#ifdef DESKTOP_VERSION
236 : QToolBar( QString::fromLatin1( name ), 247 : Q3ToolBar( QString::fromLatin1( name ),
237 parentWindow, dock, newLine, 248 parentWindow, dock, newLine,
238 name ? name : "mainToolBar") 249 name ? name : "mainToolBar")
239#else 250#else
240 : QPEToolBar( parentWindow,QString::fromLatin1( name )) 251 : QPEToolBar( parentWindow,QString::fromLatin1( name ))
241 252
242 253
243#endif 254#endif
244 255
245{ 256{
246 init( readConfig, honorStyle ); 257 init( readConfig, honorStyle );
247} 258}
248 259
249KToolBar::~KToolBar() 260KToolBar::~KToolBar()
250{ 261{
251 inshutdownprocess = true; 262 inshutdownprocess = true;
252 emit toolbarDestroyed(); 263 emit toolbarDestroyed();
@@ -267,34 +278,34 @@ void KToolBar::init( bool readConfig, bool honorStyle )
267 this, SLOT( rebuildLayout() ) ); 278 this, SLOT( rebuildLayout() ) );
268 connect( &(d->repaintTimer), SIGNAL( timeout() ), 279 connect( &(d->repaintTimer), SIGNAL( timeout() ),
269 this, SLOT( slotRepaint() ) ); 280 this, SLOT( slotRepaint() ) );
270/*US 281/*US
271 if ( kapp ) { // may be null when started inside designer 282 if ( kapp ) { // may be null when started inside designer
272 connect(kapp, SIGNAL(toolbarAppearanceChanged(int)), this, SLOT(slotAppearanceChanged())); 283 connect(kapp, SIGNAL(toolbarAppearanceChanged(int)), this, SLOT(slotAppearanceChanged()));
273 // request notification of changes in icon style 284 // request notification of changes in icon style
274 kapp->addKipcEventMask(KIPC::IconChanged); 285 kapp->addKipcEventMask(KIPC::IconChanged);
275 connect(kapp, SIGNAL(iconChanged(int)), this, SLOT(slotIconChanged(int))); 286 connect(kapp, SIGNAL(iconChanged(int)), this, SLOT(slotIconChanged(int)));
276 } 287 }
277*/ 288*/
278 // finally, read in our configurable settings 289 // finally, read in our configurable settings
279 if ( readConfig ) 290 if ( readConfig )
280 slotReadConfig(); 291 slotReadConfig();
281 292
282 if ( mainWindow() ) 293 if ( mainWindow() )
283 connect( mainWindow(), SIGNAL( toolBarPositionChanged( QToolBar * ) ), 294 connect( mainWindow(), SIGNAL( toolBarPositionChanged( Q3ToolBar * ) ),
284 this, SLOT( toolBarPosChanged( QToolBar * ) ) ); 295 this, SLOT( toolBarPosChanged( Q3ToolBar * ) ) );
285 296
286 // Hack to make sure we recalculate our size when we dock. 297 // Hack to make sure we recalculate our size when we dock.
287//US connect( this, SIGNAL(placeChanged(QDockWindow::Place)), SLOT(rebuildLayout()) ); 298//US connect( this, SIGNAL(placeChanged(QDockWindow::Place)), SLOT(rebuildLayout()) );
288} 299}
289 300
290int KToolBar::insertButton(const QString& icon, int id, bool enabled, 301int KToolBar::insertButton(const QString& icon, int id, bool enabled,
291 const QString& text, int index/*US, KInstance *_instance*/ ) 302 const QString& text, int index/*US, KInstance *_instance*/ )
292{ 303{
293 KToolBarButton *button = new KToolBarButton( icon, id, this, 0, text/*US, _instance*/ ); 304 KToolBarButton *button = new KToolBarButton( icon, id, this, 0, text/*US, _instance*/ );
294 305
295 insertWidgetInternal( button, index, id ); 306 insertWidgetInternal( button, index, id );
296 button->setEnabled( enabled ); 307 button->setEnabled( enabled );
297 doConnections( button ); 308 doConnections( button );
298 return index; 309 return index;
299} 310}
300 311
@@ -328,45 +339,45 @@ int KToolBar::insertButton(const QPixmap& pixmap, int id, bool enabled,
328#endif 339#endif
329 340
330int KToolBar::insertButton(const QPixmap& pixmap, int id, const char *signal, 341int KToolBar::insertButton(const QPixmap& pixmap, int id, const char *signal,
331 const QObject *receiver, const char *slot, 342 const QObject *receiver, const char *slot,
332 bool enabled, const QString& text, 343 bool enabled, const QString& text,
333 int index ) 344 int index )
334{ 345{
335 KToolBarButton *button = new KToolBarButton( pixmap, id, this, 0, text); 346 KToolBarButton *button = new KToolBarButton( pixmap, id, this, 0, text);
336 insertWidgetInternal( button, index, id ); 347 insertWidgetInternal( button, index, id );
337 button->setEnabled( enabled ); 348 button->setEnabled( enabled );
338 connect( button, signal, receiver, slot ); 349 connect( button, signal, receiver, slot );
339 doConnections( button ); 350 doConnections( button );
340 return index; 351 return index;
341} 352}
342 353
343 354
344int KToolBar::insertButton(const QString& icon, int id, QPopupMenu *popup, 355int KToolBar::insertButton(const QString& icon, int id, Q3PopupMenu *popup,
345 bool enabled, const QString &text, int index ) 356 bool enabled, const QString &text, int index )
346{ 357{
347 KToolBarButton *button = new KToolBarButton( icon, id, this, 0, text ); 358 KToolBarButton *button = new KToolBarButton( icon, id, this, 0, text );
348 insertWidgetInternal( button, index, id ); 359 insertWidgetInternal( button, index, id );
349 button->setEnabled( enabled ); 360 button->setEnabled( enabled );
350 button->setPopup( popup ); 361 button->setPopup( popup );
351 doConnections( button ); 362 doConnections( button );
352 return index; 363 return index;
353} 364}
354 365
355 366
356int KToolBar::insertButton(const QPixmap& pixmap, int id, QPopupMenu *popup, 367int KToolBar::insertButton(const QPixmap& pixmap, int id, Q3PopupMenu *popup,
357 bool enabled, const QString &text, int index ) 368 bool enabled, const QString &text, int index )
358{ 369{
359 KToolBarButton *button = new KToolBarButton( pixmap, id, this, 0, text ); 370 KToolBarButton *button = new KToolBarButton( pixmap, id, this, 0, text );
360 insertWidgetInternal( button, index, id ); 371 insertWidgetInternal( button, index, id );
361 button->setEnabled( enabled ); 372 button->setEnabled( enabled );
362 button->setPopup( popup ); 373 button->setPopup( popup );
363 doConnections( button ); 374 doConnections( button );
364 return index; 375 return index;
365} 376}
366 377
367 378
368int KToolBar::insertLined (const QString& text, int id, 379int KToolBar::insertLined (const QString& text, int id,
369 const char *signal, 380 const char *signal,
370 const QObject *receiver, const char *slot, 381 const QObject *receiver, const char *slot,
371 bool enabled , 382 bool enabled ,
372 const QString& toolTipText, 383 const QString& toolTipText,
@@ -527,45 +538,45 @@ void KToolBar::setButtonPixmap( int id, const QPixmap& _pixmap )
527 if ( button ) 538 if ( button )
528 button->setPixmap( _pixmap ); 539 button->setPixmap( _pixmap );
529} 540}
530 541
531 542
532void KToolBar::setButtonIcon( int id, const QString& _icon ) 543void KToolBar::setButtonIcon( int id, const QString& _icon )
533{ 544{
534 Id2WidgetMap::Iterator it = id2widget.find( id ); 545 Id2WidgetMap::Iterator it = id2widget.find( id );
535 if ( it == id2widget.end() ) 546 if ( it == id2widget.end() )
536 return; 547 return;
537//US KToolBarButton * button = dynamic_cast<KToolBarButton *>( *it ); 548//US KToolBarButton * button = dynamic_cast<KToolBarButton *>( *it );
538 KToolBarButton * button = (KToolBarButton *)( *it ); 549 KToolBarButton * button = (KToolBarButton *)( *it );
539 if ( button ) 550 if ( button )
540 button->setIcon( _icon ); 551 button->setIcon( _icon );
541} 552}
542 553
543void KToolBar::setButtonIconSet( int id, const QIconSet& iconset ) 554void KToolBar::setButtonIconSet( int id, const QIcon& iconset )
544{ 555{
545 Id2WidgetMap::Iterator it = id2widget.find( id ); 556 Id2WidgetMap::Iterator it = id2widget.find( id );
546 if ( it == id2widget.end() ) 557 if ( it == id2widget.end() )
547 return; 558 return;
548//US KToolBarButton * button = dynamic_cast<KToolBarButton *>( *it ); 559//US KToolBarButton * button = dynamic_cast<KToolBarButton *>( *it );
549 KToolBarButton * button = (KToolBarButton *)( *it ); 560 KToolBarButton * button = (KToolBarButton *)( *it );
550 if ( button ) 561 if ( button )
551 button->setIconSet( iconset ); 562 button->setIconSet( iconset );
552} 563}
553 564
554 565
555void KToolBar::setDelayedPopup (int id , QPopupMenu *_popup, bool toggle ) 566void KToolBar::setDelayedPopup (int id , Q3PopupMenu *_popup, bool toggle )
556{ 567{
557 Id2WidgetMap::Iterator it = id2widget.find( id ); 568 Id2WidgetMap::Iterator it = id2widget.find( id );
558 if ( it == id2widget.end() ) 569 if ( it == id2widget.end() )
559 return; 570 return;
560//US KToolBarButton * button = dynamic_cast<KToolBarButton *>( *it ); 571//US KToolBarButton * button = dynamic_cast<KToolBarButton *>( *it );
561 KToolBarButton * button = (KToolBarButton *)( *it ); 572 KToolBarButton * button = (KToolBarButton *)( *it );
562 if ( button ) 573 if ( button )
563 button->setDelayedPopup( _popup, toggle ); 574 button->setDelayedPopup( _popup, toggle );
564} 575}
565 576
566 577
567void KToolBar::setAutoRepeat (int id, bool flag) 578void KToolBar::setAutoRepeat (int id, bool flag)
568{ 579{
569 Id2WidgetMap::Iterator it = id2widget.find( id ); 580 Id2WidgetMap::Iterator it = id2widget.find( id );
570 if ( it == id2widget.end() ) 581 if ( it == id2widget.end() )
571 return; 582 return;
@@ -774,33 +785,33 @@ QWidget *KToolBar::getWidget (int id)
774{ 785{
775 Id2WidgetMap::Iterator it = id2widget.find( id ); 786 Id2WidgetMap::Iterator it = id2widget.find( id );
776 return ( it == id2widget.end() ) ? 0 : (*it); 787 return ( it == id2widget.end() ) ? 0 : (*it);
777} 788}
778 789
779 790
780void KToolBar::setItemAutoSized (int id, bool yes ) 791void KToolBar::setItemAutoSized (int id, bool yes )
781{ 792{
782 QWidget *w = getWidget(id); 793 QWidget *w = getWidget(id);
783 if ( w && yes ) 794 if ( w && yes )
784 setStretchableWidget( w ); 795 setStretchableWidget( w );
785} 796}
786 797
787 798
788void KToolBar::clear () 799void KToolBar::clear ()
789{ 800{
790 QToolBar::clear(); 801 Q3ToolBar::clear();
791 widget2id.clear(); 802 widget2id.clear();
792 id2widget.clear(); 803 id2widget.clear();
793} 804}
794 805
795 806
796void KToolBar::removeItem(int id) 807void KToolBar::removeItem(int id)
797{ 808{
798 Id2WidgetMap::Iterator it = id2widget.find( id ); 809 Id2WidgetMap::Iterator it = id2widget.find( id );
799 if ( it == id2widget.end() ) 810 if ( it == id2widget.end() )
800 { 811 {
801 kdDebug(220) << "KToolBar::removeItem item " << id << " not found" << endl; 812 kdDebug(220) << "KToolBar::removeItem item " << id << " not found" << endl;
802 return; 813 return;
803 } 814 }
804 QWidget * w = (*it); 815 QWidget * w = (*it);
805 id2widget.remove( id ); 816 id2widget.remove( id );
806 widget2id.remove( w ); 817 widget2id.remove( w );
@@ -863,47 +874,47 @@ bool KToolBar::fullSize() const
863 return isHorizontalStretchable() || isVerticalStretchable(); 874 return isHorizontalStretchable() || isVerticalStretchable();
864} 875}
865 876
866 877
867void KToolBar::enableMoving(bool flag ) 878void KToolBar::enableMoving(bool flag )
868{ 879{
869//US setMovingEnabled(flag); 880//US setMovingEnabled(flag);
870 this->mainWindow()->setToolBarsMovable(flag); 881 this->mainWindow()->setToolBarsMovable(flag);
871} 882}
872 883
873 884
874void KToolBar::setBarPos (BarPosition bpos) 885void KToolBar::setBarPos (BarPosition bpos)
875{ 886{
876 if ( !mainWindow() ) 887 if ( !mainWindow() )
877 return; 888 return;
878//US mainWindow()->moveDockWindow( this, (Dock)bpos ); 889//US mainWindow()->moveDockWindow( this, (Dock)bpos );
879 mainWindow()->moveToolBar( this, (QMainWindow::ToolBarDock)bpos ); 890 mainWindow()->moveToolBar( this, (Qt::ToolBarDock)bpos );
880} 891}
881 892
882 893
883const KToolBar::BarPosition KToolBar::barPos() 894const KToolBar::BarPosition KToolBar::barPos()
884{ 895{
885 if ( !(QMainWindow*)mainWindow() ) 896 if ( !(Q3MainWindow*)mainWindow() )
886 return KToolBar::Top; 897 return KToolBar::Top;
887//US Dock dock; 898//US Dock dock;
888 QMainWindow::ToolBarDock dock; 899 Qt::ToolBarDock dock;
889 int dm1, dm2; 900 int dm1, dm2;
890 bool dm3; 901 bool dm3;
891 ((QMainWindow*)mainWindow())->getLocation( (QToolBar*)this, dock, dm1, dm3, dm2 ); 902 ((Q3MainWindow*)mainWindow())->getLocation( (Q3ToolBar*)this, dock, dm1, dm3, dm2 );
892//US if ( dock == DockUnmanaged ) { 903//US if ( dock == DockUnmanaged ) {
893 if ( dock == QMainWindow::Unmanaged ) { 904 if ( dock == Qt::Unmanaged ) {
894 return (KToolBar::BarPosition)Top; 905 return (KToolBar::BarPosition)Top;
895 } 906 }
896 return (BarPosition)dock; 907 return (BarPosition)dock;
897} 908}
898 909
899 910
900bool KToolBar::enable(BarStatus stat) 911bool KToolBar::enable(BarStatus stat)
901{ 912{
902 bool mystat = isVisible(); 913 bool mystat = isVisible();
903 914
904 if ( (stat == Toggle && mystat) || stat == Hide ) 915 if ( (stat == Toggle && mystat) || stat == Hide )
905 hide(); 916 hide();
906 else 917 else
907 show(); 918 show();
908 919
909 return isVisible() == mystat; 920 return isVisible() == mystat;
@@ -954,33 +965,33 @@ void KToolBar::setIconText(IconText icontext, bool update)
954{ 965{
955 bool doUpdate=false; 966 bool doUpdate=false;
956 967
957 if (icontext != d->m_iconText) { 968 if (icontext != d->m_iconText) {
958 d->m_iconText = icontext; 969 d->m_iconText = icontext;
959 doUpdate=true; 970 doUpdate=true;
960 } 971 }
961 972
962 if (update == false) 973 if (update == false)
963 return; 974 return;
964 975
965 if (doUpdate) 976 if (doUpdate)
966 emit modechange(); // tell buttons what happened 977 emit modechange(); // tell buttons what happened
967 978
968 // ugly hack to force a QMainWindow::triggerLayout( TRUE ) 979 // ugly hack to force a QMainWindow::triggerLayout( TRUE )
969 if ( mainWindow() ) { 980 if ( mainWindow() ) {
970 QMainWindow *mw = mainWindow(); 981 Q3MainWindow *mw = mainWindow();
971 mw->setUpdatesEnabled( FALSE ); 982 mw->setUpdatesEnabled( FALSE );
972 mw->setToolBarsMovable( !mw->toolBarsMovable() ); 983 mw->setToolBarsMovable( !mw->toolBarsMovable() );
973 mw->setToolBarsMovable( !mw->toolBarsMovable() ); 984 mw->setToolBarsMovable( !mw->toolBarsMovable() );
974 mw->setUpdatesEnabled( TRUE ); 985 mw->setUpdatesEnabled( TRUE );
975 } 986 }
976} 987}
977 988
978 989
979KToolBar::IconText KToolBar::iconText() const 990KToolBar::IconText KToolBar::iconText() const
980{ 991{
981 return d->m_iconText; 992 return d->m_iconText;
982} 993}
983 994
984 995
985void KToolBar::setIconSize(int size) 996void KToolBar::setIconSize(int size)
986{ 997{
@@ -991,33 +1002,33 @@ void KToolBar::setIconSize(int size, bool update)
991{ 1002{
992 bool doUpdate=false; 1003 bool doUpdate=false;
993 1004
994 if ( size != d->m_iconSize ) { 1005 if ( size != d->m_iconSize ) {
995 d->m_iconSize = size; 1006 d->m_iconSize = size;
996 doUpdate=true; 1007 doUpdate=true;
997 } 1008 }
998 1009
999 if (update == false) 1010 if (update == false)
1000 return; 1011 return;
1001 1012
1002 if (doUpdate) 1013 if (doUpdate)
1003 emit modechange(); // tell buttons what happened 1014 emit modechange(); // tell buttons what happened
1004 1015
1005 // ugly hack to force a QMainWindow::triggerLayout( TRUE ) 1016 // ugly hack to force a QMainWindow::triggerLayout( TRUE )
1006 if ( mainWindow() ) { 1017 if ( mainWindow() ) {
1007 QMainWindow *mw = mainWindow(); 1018 Q3MainWindow *mw = mainWindow();
1008 mw->setUpdatesEnabled( FALSE ); 1019 mw->setUpdatesEnabled( FALSE );
1009 mw->setToolBarsMovable( !mw->toolBarsMovable() ); 1020 mw->setToolBarsMovable( !mw->toolBarsMovable() );
1010 mw->setToolBarsMovable( !mw->toolBarsMovable() ); 1021 mw->setToolBarsMovable( !mw->toolBarsMovable() );
1011 mw->setUpdatesEnabled( TRUE ); 1022 mw->setUpdatesEnabled( TRUE );
1012 } 1023 }
1013} 1024}
1014 1025
1015 1026
1016int KToolBar::iconSize() const 1027int KToolBar::iconSize() const
1017{ 1028{
1018/*US 1029/*US
1019 if ( !d->m_iconSize ) // default value? 1030 if ( !d->m_iconSize ) // default value?
1020 { 1031 {
1021 if (!::qstrcmp(QObject::name(), "mainToolBar")) 1032 if (!::qstrcmp(QObject::name(), "mainToolBar"))
1022 return KGlobal::iconLoader()->currentSize(KIcon::MainToolbar); 1033 return KGlobal::iconLoader()->currentSize(KIcon::MainToolbar);
1023 else 1034 else
@@ -1049,36 +1060,36 @@ void KToolBar::setItemNoStyle(int id, bool no_style )
1049 Id2WidgetMap::Iterator it = id2widget.find( id ); 1060 Id2WidgetMap::Iterator it = id2widget.find( id );
1050 if ( it == id2widget.end() ) 1061 if ( it == id2widget.end() )
1051 return; 1062 return;
1052//US KToolBarButton * button = dynamic_cast<KToolBarButton *>( *it ); 1063//US KToolBarButton * button = dynamic_cast<KToolBarButton *>( *it );
1053 KToolBarButton * button = (KToolBarButton *)( *it ); 1064 KToolBarButton * button = (KToolBarButton *)( *it );
1054 if (button) 1065 if (button)
1055 button->setNoStyle( no_style ); 1066 button->setNoStyle( no_style );
1056} 1067}
1057 1068
1058 1069
1059void KToolBar::setFlat (bool flag) 1070void KToolBar::setFlat (bool flag)
1060{ 1071{
1061 if ( !mainWindow() ) 1072 if ( !mainWindow() )
1062 return; 1073 return;
1063 if ( flag ) 1074 if ( flag )
1064//US mainWindow()->moveDockWindow( this, DockMinimized ); 1075//US mainWindow()->moveDockWindow( this, DockMinimized );
1065 mainWindow()->moveToolBar( this, QMainWindow::Minimized ); 1076 mainWindow()->moveToolBar( this, Qt::Minimized );
1066 else 1077 else
1067//US mainWindow()->moveDockWindow( this, DockTop ); 1078//US mainWindow()->moveDockWindow( this, DockTop );
1068 mainWindow()->moveToolBar( this, QMainWindow::Top ); 1079 mainWindow()->moveToolBar( this, Qt::Top );
1069 // And remember to save the new look later 1080 // And remember to save the new look later
1070/*US 1081/*US
1071 if ( mainWindow()->inherits( "KMainWindow" ) ) 1082 if ( mainWindow()->inherits( "KMainWindow" ) )
1072 static_cast<KMainWindow *>(mainWindow())->setSettingsDirty(); 1083 static_cast<KMainWindow *>(mainWindow())->setSettingsDirty();
1073*/ 1084*/
1074} 1085}
1075 1086
1076 1087
1077int KToolBar::count() const 1088int KToolBar::count() const
1078{ 1089{
1079 return id2widget.count(); 1090 return id2widget.count();
1080} 1091}
1081 1092
1082 1093
1083void KToolBar::saveState() 1094void KToolBar::saveState()
1084{ 1095{
@@ -1236,60 +1247,60 @@ QString KToolBar::text() const
1236 1247
1237 1248
1238void KToolBar::doConnections( KToolBarButton *button ) 1249void KToolBar::doConnections( KToolBarButton *button )
1239{ 1250{
1240 connect(button, SIGNAL(clicked(int)), this, SIGNAL( clicked( int ) ) ); 1251 connect(button, SIGNAL(clicked(int)), this, SIGNAL( clicked( int ) ) );
1241 connect(button, SIGNAL(doubleClicked(int)), this, SIGNAL( doubleClicked( int ) ) ); 1252 connect(button, SIGNAL(doubleClicked(int)), this, SIGNAL( doubleClicked( int ) ) );
1242 connect(button, SIGNAL(released(int)), this, SIGNAL( released( int ) ) ); 1253 connect(button, SIGNAL(released(int)), this, SIGNAL( released( int ) ) );
1243 connect(button, SIGNAL(pressed(int)), this, SIGNAL( pressed( int ) ) ); 1254 connect(button, SIGNAL(pressed(int)), this, SIGNAL( pressed( int ) ) );
1244 connect(button, SIGNAL(toggled(int)), this, SIGNAL( toggled( int ) ) ); 1255 connect(button, SIGNAL(toggled(int)), this, SIGNAL( toggled( int ) ) );
1245 connect(button, SIGNAL(highlighted(int, bool)), this, SIGNAL( highlighted( int, bool ) ) ); 1256 connect(button, SIGNAL(highlighted(int, bool)), this, SIGNAL( highlighted( int, bool ) ) );
1246} 1257}
1247 1258
1248void KToolBar::mousePressEvent ( QMouseEvent *m ) 1259void KToolBar::mousePressEvent ( QMouseEvent *m )
1249{ 1260{
1250 if ( !mainWindow() ) 1261 if ( !mainWindow() )
1251 return; 1262 return;
1252 QMainWindow *mw = mainWindow(); 1263 Q3MainWindow *mw = mainWindow();
1253 if ( mw->toolBarsMovable() && d->m_enableContext ) { 1264 if ( mw->toolBarsMovable() && d->m_enableContext ) {
1254 if ( m->button() == RightButton ) { 1265 if ( m->button() == Qt::RightButton ) {
1255 int i = contextMenu()->exec( m->globalPos(), 0 ); 1266 int i = contextMenu()->exec( m->globalPos(), 0 );
1256 switch ( i ) { 1267 switch ( i ) {
1257 case -1: 1268 case -1:
1258 return; // popup cancelled 1269 return; // popup cancelled
1259 case CONTEXT_LEFT: 1270 case CONTEXT_LEFT:
1260//US mw->moveDockWindow( this, DockLeft ); 1271//US mw->moveDockWindow( this, DockLeft );
1261 mw->moveToolBar( this, QMainWindow::Left ); 1272 mw->moveToolBar( this, Qt::Left );
1262 break; 1273 break;
1263 case CONTEXT_RIGHT: 1274 case CONTEXT_RIGHT:
1264//US mw->moveDockWindow( this, DockRight ); 1275//US mw->moveDockWindow( this, DockRight );
1265 mw->moveToolBar( this, QMainWindow::Right ); 1276 mw->moveToolBar( this, Qt::Right );
1266 break; 1277 break;
1267 case CONTEXT_TOP: 1278 case CONTEXT_TOP:
1268//US mw->moveDockWindow( this, DockTop ); 1279//US mw->moveDockWindow( this, DockTop );
1269 mw->moveToolBar( this, QMainWindow::Top ); 1280 mw->moveToolBar( this, Qt::Top );
1270 break; 1281 break;
1271 case CONTEXT_BOTTOM: 1282 case CONTEXT_BOTTOM:
1272//US mw->moveDockWindow( this, DockBottom ); 1283//US mw->moveDockWindow( this, DockBottom );
1273 mw->moveToolBar( this, QMainWindow::Bottom ); 1284 mw->moveToolBar( this, Qt::Bottom );
1274 break; 1285 break;
1275 case CONTEXT_FLOAT: 1286 case CONTEXT_FLOAT:
1276 break; 1287 break;
1277 case CONTEXT_FLAT: 1288 case CONTEXT_FLAT:
1278//US mw->moveDockWindow( this, DockMinimized ); 1289//US mw->moveDockWindow( this, DockMinimized );
1279 mw->moveToolBar( this, QMainWindow::Minimized ); 1290 mw->moveToolBar( this, Qt::Minimized );
1280 break; 1291 break;
1281 case CONTEXT_ICONS: 1292 case CONTEXT_ICONS:
1282 setIconText( IconOnly ); 1293 setIconText( IconOnly );
1283 break; 1294 break;
1284 case CONTEXT_TEXTRIGHT: 1295 case CONTEXT_TEXTRIGHT:
1285 setIconText( IconTextRight ); 1296 setIconText( IconTextRight );
1286 break; 1297 break;
1287 case CONTEXT_TEXT: 1298 case CONTEXT_TEXT:
1288 setIconText( TextOnly ); 1299 setIconText( TextOnly );
1289 break; 1300 break;
1290 case CONTEXT_TEXTUNDER: 1301 case CONTEXT_TEXTUNDER:
1291 setIconText( IconTextBottom ); 1302 setIconText( IconTextBottom );
1292 break; 1303 break;
1293 default: 1304 default:
1294 if ( i >= CONTEXT_ICONSIZES ) 1305 if ( i >= CONTEXT_ICONSIZES )
1295 setIconSize( i - CONTEXT_ICONSIZES ); 1306 setIconSize( i - CONTEXT_ICONSIZES );
@@ -1319,143 +1330,143 @@ void KToolBar::rebuildLayout()
1319 // clear the old layout 1330 // clear the old layout
1320 QLayoutIterator it = l->iterator(); 1331 QLayoutIterator it = l->iterator();
1321 1332
1322 while ( it.current() ) { 1333 while ( it.current() ) {
1323 it.deleteCurrent(); 1334 it.deleteCurrent();
1324 } 1335 }
1325 for ( QWidget *w = widgets.first(); w; w = widgets.next() ) { 1336 for ( QWidget *w = widgets.first(); w; w = widgets.next() ) {
1326 if ( w == rightAligned ) { 1337 if ( w == rightAligned ) {
1327 continue; 1338 continue;
1328 } 1339 }
1329 if ( w->inherits( "KToolBarSeparator" ) && 1340 if ( w->inherits( "KToolBarSeparator" ) &&
1330 !( (KToolBarSeparator*)w )->showLine() ) { 1341 !( (KToolBarSeparator*)w )->showLine() ) {
1331 l->addSpacing( 6 ); 1342 l->addSpacing( 6 );
1332 w->hide(); 1343 w->hide();
1333 continue; 1344 continue;
1334 } 1345 }
1335 if ( w->inherits( "QPopupMenu" ) ) 1346 if ( w->inherits( "Q3PopupMenu" ) )
1336 continue; 1347 continue;
1337 l->addWidget( w ); 1348 l->addWidget( w );
1338 w->show(); 1349 w->show();
1339 } 1350 }
1340 if ( rightAligned ) { 1351 if ( rightAligned ) {
1341 l->addStretch(); 1352 l->addStretch();
1342 l->addWidget( rightAligned ); 1353 l->addWidget( rightAligned );
1343 rightAligned->show(); 1354 rightAligned->show();
1344 } 1355 }
1345 1356
1346 if ( fullSize() ) { 1357 if ( fullSize() ) {
1347 // This code sucks. It makes the last combo in a toolbar VERY big (e.g. zoom combo in kword). 1358 // This code sucks. It makes the last combo in a toolbar VERY big (e.g. zoom combo in kword).
1348 //if ( !stretchableWidget && widgets.last() && 1359 //if ( !stretchableWidget && widgets.last() &&
1349 // !widgets.last()->inherits( "QButton" ) && !widgets.last()->inherits( "KAnimWidget" ) ) 1360 // !widgets.last()->inherits( "QButton" ) && !widgets.last()->inherits( "KAnimWidget" ) )
1350 // setStretchableWidget( widgets.last() ); 1361 // setStretchableWidget( widgets.last() );
1351 if ( !rightAligned ) 1362 if ( !rightAligned )
1352 l->addStretch(); 1363 l->addStretch();
1353 if ( stretchableWidget ) 1364 if ( stretchableWidget )
1354 l->setStretchFactor( stretchableWidget, 10 ); 1365 l->setStretchFactor( stretchableWidget, 10 );
1355 } 1366 }
1356 l->invalidate(); 1367 l->invalidate();
1357 QApplication::postEvent( this, new QEvent( QEvent::LayoutHint ) ); 1368 QApplication::postEvent( this, new QEvent( QEvent::LayoutHint ) );
1358 //#endif //DESKTOP_VERSION 1369 //#endif //DESKTOP_VERSION
1359} 1370}
1360 1371
1361void KToolBar::childEvent( QChildEvent *e ) 1372void KToolBar::childEvent( QChildEvent *e )
1362{ 1373{
1363 1374
1364 if ( e->child()->isWidgetType() ) { 1375 if ( e->child()->isWidgetType() ) {
1365 QWidget * w = (QWidget*)e->child(); 1376 QWidget * w = (QWidget*)e->child();
1366 if ( e->type() == QEvent::ChildInserted ) { 1377 if ( e->type() == QEvent::ChildInserted ) {
1367 if ( !e->child()->inherits( "QPopupMenu" ) && 1378 if ( !e->child()->inherits( "Q3PopupMenu" ) &&
1368 ::qstrcmp( "qt_dockwidget_internal", e->child()->name() ) != 0 ) { 1379 ::qstrcmp( "qt_dockwidget_internal", e->child()->name() ) != 0 ) {
1369 1380
1370 // prevent items that have been explicitly inserted by insert*() from 1381 // prevent items that have been explicitly inserted by insert*() from
1371 // being inserted again 1382 // being inserted again
1372 if ( !widget2id.contains( w ) ) 1383 if ( !widget2id.contains( w ) )
1373 { 1384 {
1374 int dummy = -1; 1385 int dummy = -1;
1375 insertWidgetInternal( w, dummy, -1 ); 1386 insertWidgetInternal( w, dummy, -1 );
1376 } 1387 }
1377 } 1388 }
1378 } else { 1389 } else if( e->type() == QEvent::ChildRemoved ) {
1379 removeWidgetInternal( w ); 1390 removeWidgetInternal( w );
1380 } 1391 }
1381 if ( isVisibleTo( 0 ) ) 1392 /* TODO:hacker: if ( isVisibleTo( 0 ) )
1382 { 1393 {
1383 QBoxLayout *l = boxLayout(); 1394 QBoxLayout *l = boxLayout();
1384 // QLayout *l = layout(); 1395 // QLayout *l = layout();
1385 1396
1386 // clear the old layout so that we don't get unnecassery layout 1397 // clear the old layout so that we don't get unnecassery layout
1387 // changes till we have rebuild the thing 1398 // changes till we have rebuild the thing
1388 QLayoutIterator it = l->iterator(); 1399 QLayoutIterator it = l->iterator();
1389 while ( it.current() ) { 1400 while ( it.current() ) {
1390 it.deleteCurrent(); 1401 it.deleteCurrent();
1391 } 1402 }
1392 layoutTimer->start( 50, TRUE ); 1403 layoutTimer->start( 50, TRUE );
1393 } 1404 } */
1394 } 1405 }
1395 QToolBar::childEvent( e ); 1406 Q3ToolBar::childEvent( e );
1396} 1407}
1397 1408
1398void KToolBar::insertWidgetInternal( QWidget *w, int &index, int id ) 1409void KToolBar::insertWidgetInternal( QWidget *w, int &index, int id )
1399{ 1410{
1400 // we can't have it in widgets, or something is really wrong 1411 // we can't have it in widgets, or something is really wrong
1401 //widgets.removeRef( w ); 1412 //widgets.removeRef( w );
1402 1413
1403 connect( w, SIGNAL( destroyed() ), 1414 connect( w, SIGNAL( destroyed() ),
1404 this, SLOT( widgetDestroyed() ) ); 1415 this, SLOT( widgetDestroyed() ) );
1405 if ( index == -1 || index > (int)widgets.count() ) { 1416 if ( index == -1 || index > (int)widgets.count() ) {
1406 widgets.append( w ); 1417 widgets.append( w );
1407 index = (int)widgets.count(); 1418 index = (int)widgets.count();
1408 } 1419 }
1409 else 1420 else
1410 widgets.insert( index, w ); 1421 widgets.insert( index, w );
1411 if ( id == -1 ) 1422 if ( id == -1 )
1412 id = id2widget.count(); 1423 id = id2widget.count();
1413 id2widget.insert( id, w ); 1424 id2widget.insert( id, w );
1414 widget2id.insert( w, id ); 1425 widget2id.insert( w, id );
1415} 1426}
1416void KToolBar::repaintMe() 1427void KToolBar::repaintMe()
1417{ 1428{
1418 setUpdatesEnabled( true ); 1429 setUpdatesEnabled( true );
1419 QToolBar::repaint( true ); 1430 Q3ToolBar::repaint( true );
1420 qDebug(" KToolBar::repaintMe() "); 1431 qDebug(" KToolBar::repaintMe() ");
1421} 1432}
1422 1433
1423void KToolBar::showEvent( QShowEvent *e ) 1434void KToolBar::showEvent( QShowEvent *e )
1424{ 1435{
1425 rebuildLayout(); 1436 rebuildLayout();
1426 QToolBar::showEvent( e ); 1437 Q3ToolBar::showEvent( e );
1427} 1438}
1428 1439
1429void KToolBar::setStretchableWidget( QWidget *w ) 1440void KToolBar::setStretchableWidget( QWidget *w )
1430{ 1441{
1431 QToolBar::setStretchableWidget( w ); 1442 Q3ToolBar::setStretchableWidget( w );
1432 stretchableWidget = w; 1443 stretchableWidget = w;
1433} 1444}
1434 1445
1435QSizePolicy KToolBar::sizePolicy() const 1446QSizePolicy KToolBar::sizePolicy() const
1436{ 1447{
1437 if ( orientation() == Horizontal ) 1448 if ( orientation() == Qt::Horizontal )
1438 return QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ); 1449 return QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed );
1439 else 1450 else
1440 return QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Expanding ); 1451 return QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Expanding );
1441} 1452}
1442 1453
1443QSize KToolBar::sizeHint() const 1454QSize KToolBar::sizeHint() const
1444{ 1455{
1445 QSize sh = QToolBar::sizeHint(); 1456 QSize sh = Q3ToolBar::sizeHint();
1446 //qDebug("%x KToolBar::sizeHint() %d %d ",this, QToolBar::sizeHint().width(),QToolBar::sizeHint().height() ); 1457 //qDebug("%x KToolBar::sizeHint() %d %d ",this, QToolBar::sizeHint().width(),QToolBar::sizeHint().height() );
1447 if ( sh.height() <= 20 || sh.width() < 60 ) 1458 if ( sh.height() <= 20 || sh.width() < 60 )
1448 return QSize( sizeHintW, sizeHintH ); 1459 return QSize( sizeHintW, sizeHintH );
1449 KToolBar* ttt = (KToolBar*) this; 1460 KToolBar* ttt = (KToolBar*) this;
1450 ttt->sizeHintW = sh.width(); 1461 ttt->sizeHintW = sh.width();
1451 ttt->sizeHintH = sh.height(); 1462 ttt->sizeHintH = sh.height();
1452 return sh; 1463 return sh;
1453 //return QToolBar::sizeHint(); 1464 //return QToolBar::sizeHint();
1454#if 0 1465#if 0
1455 QWidget::polish(); 1466 QWidget::polish();
1456 static int iii = 0; 1467 static int iii = 0;
1457 ++iii; 1468 ++iii;
1458 qDebug("++++++++ KToolBar::sizeHint() %d ", iii ); 1469 qDebug("++++++++ KToolBar::sizeHint() %d ", iii );
1459 int margin = static_cast<QWidget*>(ncThis)->layout()->margin(); 1470 int margin = static_cast<QWidget*>(ncThis)->layout()->margin();
1460 switch( barPos() ) 1471 switch( barPos() )
1461 { 1472 {
@@ -1495,69 +1506,69 @@ QSize KToolBar::sizeHint() const
1495 else 1506 else
1496 { 1507 {
1497 QSize sh = w->sizeHint(); 1508 QSize sh = w->sizeHint();
1498 if (!sh.isValid()) 1509 if (!sh.isValid())
1499 sh = w->minimumSize(); 1510 sh = w->minimumSize();
1500 minSize = minSize.expandedTo(QSize(sh.width(), 0)); 1511 minSize = minSize.expandedTo(QSize(sh.width(), 0));
1501 minSize += QSize(0, sh.height()+1); 1512 minSize += QSize(0, sh.height()+1);
1502 } 1513 }
1503 } 1514 }
1504/*US 1515/*US
1505 minSize += QSize(0, QApplication::style().pixelMetric( QStyle::PM_DockWindowHandleExtent )); 1516 minSize += QSize(0, QApplication::style().pixelMetric( QStyle::PM_DockWindowHandleExtent ));
1506*/ 1517*/
1507 minSize += QSize(margin*2, margin*2); 1518 minSize += QSize(margin*2, margin*2);
1508 break; 1519 break;
1509 1520
1510 default: 1521 default:
1511 minSize = QToolBar::sizeHint(); 1522 minSize = Q3ToolBar::sizeHint();
1512 break; 1523 break;
1513 } 1524 }
1514 return minSize; 1525 return minSize;
1515#endif 1526#endif
1516} 1527}
1517 1528
1518QSize KToolBar::minimumSize() const 1529QSize KToolBar::minimumSize() const
1519{ 1530{
1520 return minimumSizeHint(); 1531 return minimumSizeHint();
1521} 1532}
1522 1533
1523QSize KToolBar::minimumSizeHint() const 1534QSize KToolBar::minimumSizeHint() const
1524{ 1535{
1525 return sizeHint(); 1536 return sizeHint();
1526} 1537}
1527 1538
1528bool KToolBar::highlight() const 1539bool KToolBar::highlight() const
1529{ 1540{
1530 return d->m_highlight; 1541 return d->m_highlight;
1531} 1542}
1532 1543
1533void KToolBar::hide() 1544void KToolBar::hide()
1534{ 1545{
1535 QToolBar::hide(); 1546 Q3ToolBar::hide();
1536} 1547}
1537 1548
1538void KToolBar::show() 1549void KToolBar::show()
1539{ 1550{
1540 QToolBar::show(); 1551 Q3ToolBar::show();
1541} 1552}
1542 1553
1543void KToolBar::resizeEvent( QResizeEvent *e ) 1554void KToolBar::resizeEvent( QResizeEvent *e )
1544{ 1555{
1545 bool b = isUpdatesEnabled(); 1556 bool b = isUpdatesEnabled();
1546 setUpdatesEnabled( FALSE ); 1557 setUpdatesEnabled( FALSE );
1547 QToolBar::resizeEvent( e ); 1558 Q3ToolBar::resizeEvent( e );
1548 if (b) 1559 if (b)
1549 d->repaintTimer.start( 100, true ); 1560 d->repaintTimer.start( 100, true );
1550} 1561}
1551 1562
1552void KToolBar::slotIconChanged(int group) 1563void KToolBar::slotIconChanged(int group)
1553{ 1564{
1554 if ((group != KIcon::Toolbar) && (group != KIcon::MainToolbar)) 1565 if ((group != KIcon::Toolbar) && (group != KIcon::MainToolbar))
1555 return; 1566 return;
1556 if ((group == KIcon::MainToolbar) != !::qstrcmp(name(), "mainToolBar")) 1567 if ((group == KIcon::MainToolbar) != !::qstrcmp(name(), "mainToolBar"))
1557 return; 1568 return;
1558 1569
1559 emit modechange(); 1570 emit modechange();
1560 if (isVisible()) 1571 if (isVisible())
1561 updateGeometry(); 1572 updateGeometry();
1562} 1573}
1563 1574
@@ -1713,33 +1724,33 @@ void KToolBar::applyAppearanceSettings(KConfig *config, const QString &_configGr
1713 else 1724 else
1714 icon_text = IconOnly; 1725 icon_text = IconOnly;
1715 1726
1716 // check if the icon/text has changed 1727 // check if the icon/text has changed
1717 if (icon_text != d->m_iconText) { 1728 if (icon_text != d->m_iconText) {
1718 //kdDebug(220) << "KToolBar::applyAppearanceSettings setIconText " << icon_text << endl; 1729 //kdDebug(220) << "KToolBar::applyAppearanceSettings setIconText " << icon_text << endl;
1719 setIconText(icon_text, false); 1730 setIconText(icon_text, false);
1720 doUpdate = true; 1731 doUpdate = true;
1721 } 1732 }
1722 1733
1723 // ...and check if the icon size has changed 1734 // ...and check if the icon size has changed
1724 if (iconsize != d->m_iconSize) { 1735 if (iconsize != d->m_iconSize) {
1725 setIconSize(iconsize, false); 1736 setIconSize(iconsize, false);
1726 doUpdate = true; 1737 doUpdate = true;
1727 } 1738 }
1728 1739
1729 QMainWindow *mw = mainWindow(); 1740 Q3MainWindow *mw = mainWindow();
1730 1741
1731 // ...and if we should highlight 1742 // ...and if we should highlight
1732 if ( highlight != d->m_highlight ) { 1743 if ( highlight != d->m_highlight ) {
1733 d->m_highlight = highlight; 1744 d->m_highlight = highlight;
1734 doUpdate = true; 1745 doUpdate = true;
1735 } 1746 }
1736 1747
1737 // ...and if we should move transparently 1748 // ...and if we should move transparently
1738 if ( mw && transparent != (!mw->opaqueMoving()) ) { 1749 if ( mw && transparent != (!mw->opaqueMoving()) ) {
1739 mw->setOpaqueMoving( !transparent ); 1750 mw->setOpaqueMoving( !transparent );
1740 } 1751 }
1741 1752
1742 if (doUpdate) 1753 if (doUpdate)
1743 emit modechange(); // tell buttons what happened 1754 emit modechange(); // tell buttons what happened
1744 if (isVisible ()) 1755 if (isVisible ())
1745 updateGeometry(); 1756 updateGeometry();
@@ -1792,55 +1803,55 @@ void KToolBar::applySettings(KConfig *config, const QString &_configGroup)
1792 bool hidden = config->readBoolEntry("Hidden", d->HiddenDefault); 1803 bool hidden = config->readBoolEntry("Hidden", d->HiddenDefault);
1793 1804
1794/*US Dock pos(DockTop); 1805/*US Dock pos(DockTop);
1795 if ( position == "Top" ) 1806 if ( position == "Top" )
1796 pos = DockTop; 1807 pos = DockTop;
1797 else if ( position == "Bottom" ) 1808 else if ( position == "Bottom" )
1798 pos = DockBottom; 1809 pos = DockBottom;
1799 else if ( position == "Left" ) 1810 else if ( position == "Left" )
1800 pos = DockLeft; 1811 pos = DockLeft;
1801 else if ( position == "Right" ) 1812 else if ( position == "Right" )
1802 pos = DockRight; 1813 pos = DockRight;
1803 else if ( position == "Floating" ) 1814 else if ( position == "Floating" )
1804 pos = DockTornOff; 1815 pos = DockTornOff;
1805 else if ( position == "Flat" ) 1816 else if ( position == "Flat" )
1806 pos = DockMinimized; 1817 pos = DockMinimized;
1807*/ 1818*/
1808 QMainWindow::ToolBarDock pos(QMainWindow::Top); 1819 Qt::ToolBarDock pos(Qt::DockTop);
1809 if ( position == "Top" ) 1820 if ( position == "Top" )
1810 pos = QMainWindow::Top; 1821 pos = Qt::Top;
1811 else if ( position == "Bottom" ) 1822 else if ( position == "Bottom" )
1812 pos = QMainWindow::Bottom; 1823 pos = Qt::Bottom;
1813 else if ( position == "Left" ) 1824 else if ( position == "Left" )
1814 pos = QMainWindow::Left; 1825 pos = Qt::Left;
1815 else if ( position == "Right" ) 1826 else if ( position == "Right" )
1816 pos = QMainWindow::Right; 1827 pos = Qt::Right;
1817 else if ( position == "Floating" ) 1828 else if ( position == "Floating" )
1818 pos = QMainWindow::TornOff; 1829 pos = Qt::TornOff;
1819 else if ( position == "Flat" ) 1830 else if ( position == "Flat" )
1820 pos = QMainWindow::Minimized; 1831 pos = Qt::Minimized;
1821 1832
1822 //kdDebug(220) << "KToolBar::applySettings hidden=" << hidden << endl; 1833 //kdDebug(220) << "KToolBar::applySettings hidden=" << hidden << endl;
1823 if (hidden) 1834 if (hidden)
1824 hide(); 1835 hide();
1825 else 1836 else
1826 show(); 1837 show();
1827 1838
1828 if ( mainWindow() ) 1839 if ( mainWindow() )
1829 { 1840 {
1830 QMainWindow *mw = mainWindow(); 1841 Q3MainWindow *mw = mainWindow();
1831 1842
1832 //kdDebug(220) << "KToolBar::applySettings updating ToolbarInfo" << endl; 1843 //kdDebug(220) << "KToolBar::applySettings updating ToolbarInfo" << endl;
1833 d->toolBarInfo = KToolBarPrivate::ToolBarInfo( pos, index, newLine, offset ); 1844 d->toolBarInfo = KToolBarPrivate::ToolBarInfo( pos, index, newLine, offset );
1834 1845
1835 // moveDockWindow calls QDockArea which does a reparent() on us with 1846 // moveDockWindow calls QDockArea which does a reparent() on us with
1836 // showIt = true, so we loose our visibility status 1847 // showIt = true, so we loose our visibility status
1837 bool doHide = isHidden(); 1848 bool doHide = isHidden();
1838 1849
1839//US mw->moveDockWindow( this, pos, newLine, index, offset ); 1850//US mw->moveDockWindow( this, pos, newLine, index, offset );
1840 mw->moveToolBar( this, pos, newLine, index, offset ); 1851 mw->moveToolBar( this, pos, newLine, index, offset );
1841 1852
1842 //kdDebug(220) << "KToolBar::applySettings " << name() << " moveDockWindow with pos=" << pos << " newLine=" << newLine << " idx=" << index << " offs=" << offset << endl; 1853 //kdDebug(220) << "KToolBar::applySettings " << name() << " moveDockWindow with pos=" << pos << " newLine=" << newLine << " idx=" << index << " offs=" << offset << endl;
1843 if ( doHide ) 1854 if ( doHide )
1844 hide(); 1855 hide();
1845 } 1856 }
1846 if (isVisible ()) 1857 if (isVisible ())
@@ -1849,58 +1860,58 @@ void KToolBar::applySettings(KConfig *config, const QString &_configGroup)
1849} 1860}
1850 1861
1851bool KToolBar::event( QEvent *e ) 1862bool KToolBar::event( QEvent *e )
1852{ 1863{
1853 if ( (e->type() == QEvent::LayoutHint) && isUpdatesEnabled() ) 1864 if ( (e->type() == QEvent::LayoutHint) && isUpdatesEnabled() )
1854 d->repaintTimer.start( 100, true ); 1865 d->repaintTimer.start( 100, true );
1855 1866
1856 if (e->type() == QEvent::ChildInserted ) 1867 if (e->type() == QEvent::ChildInserted )
1857 { 1868 {
1858 // By pass QToolBar::event, 1869 // By pass QToolBar::event,
1859 // it will show() the inserted child and we don't want to 1870 // it will show() the inserted child and we don't want to
1860 // do that until we have rebuild the layout. 1871 // do that until we have rebuild the layout.
1861 childEvent((QChildEvent *)e); 1872 childEvent((QChildEvent *)e);
1862 return true; 1873 return true;
1863 } 1874 }
1864 1875
1865 return QToolBar::event( e ); 1876 return Q3ToolBar::event( e );
1866} 1877}
1867 1878
1868void KToolBar::slotRepaint() 1879void KToolBar::slotRepaint()
1869{ 1880{
1870 setUpdatesEnabled( FALSE ); 1881 setUpdatesEnabled( FALSE );
1871 // Send a resizeEvent to update the "toolbar extension arrow" 1882 // Send a resizeEvent to update the "toolbar extension arrow"
1872 // (The button you get when your toolbar-items don't fit in 1883 // (The button you get when your toolbar-items don't fit in
1873 // the available space) 1884 // the available space)
1874 QResizeEvent ev(size(), size()); 1885 QResizeEvent ev(size(), size());
1875 resizeEvent(&ev); 1886 resizeEvent(&ev);
1876 //#ifdef DESKTOP_VERSION 1887 //#ifdef DESKTOP_VERSION
1877 QApplication::sendPostedEvents( this, QEvent::LayoutHint ); 1888 QApplication::sendPostedEvents( this, QEvent::LayoutHint );
1878 //#endif //DESKTOP_VERSION 1889 //#endif //DESKTOP_VERSION
1879 setUpdatesEnabled( TRUE ); 1890 setUpdatesEnabled( TRUE );
1880 repaint( TRUE ); 1891 repaint( TRUE );
1881} 1892}
1882 1893
1883void KToolBar::toolBarPosChanged( QToolBar *tb ) 1894void KToolBar::toolBarPosChanged( Q3ToolBar *tb )
1884{ 1895{
1885 if ( tb != this ) 1896 if ( tb != this )
1886 return; 1897 return;
1887//US if ( d->oldPos == DockMinimized ) 1898//US if ( d->oldPos == DockMinimized )
1888 if ( d->oldPos == QMainWindow::Minimized ) 1899 if ( d->oldPos == Qt::Minimized )
1889 rebuildLayout(); 1900 rebuildLayout();
1890 d->oldPos = (QMainWindow::ToolBarDock)barPos(); 1901 d->oldPos = (Qt::ToolBarDock)barPos();
1891/*US 1902/*US
1892 if ( mainWindow() && mainWindow()->inherits( "KMainWindow" ) ) 1903 if ( mainWindow() && mainWindow()->inherits( "KMainWindow" ) )
1893 static_cast<KMainWindow *>(mainWindow())->setSettingsDirty(); 1904 static_cast<KMainWindow *>(mainWindow())->setSettingsDirty();
1894*/ 1905*/
1895} 1906}
1896 1907
1897/*US 1908/*US
1898void KToolBar::loadState( const QDomElement &element ) 1909void KToolBar::loadState( const QDomElement &element )
1899{ 1910{
1900 //kdDebug(220) << "KToolBar::loadState " << this << endl; 1911 //kdDebug(220) << "KToolBar::loadState " << this << endl;
1901 if ( !mainWindow() ) 1912 if ( !mainWindow() )
1902 return; 1913 return;
1903 1914
1904 { 1915 {
1905 QCString text = element.namedItem( "text" ).toElement().text().utf8(); 1916 QCString text = element.namedItem( "text" ).toElement().text().utf8();
1906 if ( text.isEmpty() ) 1917 if ( text.isEmpty() )
@@ -2018,33 +2029,33 @@ void KToolBar::getAttributes( QString &position, QString &icontext, int &index )
2018 case KToolBar::Left: 2029 case KToolBar::Left:
2019 position = "Left"; 2030 position = "Left";
2020 break; 2031 break;
2021 case KToolBar::Right: 2032 case KToolBar::Right:
2022 position = "Right"; 2033 position = "Right";
2023 break; 2034 break;
2024 case KToolBar::Floating: 2035 case KToolBar::Floating:
2025 position = "Floating"; 2036 position = "Floating";
2026 break; 2037 break;
2027 case KToolBar::Top: 2038 case KToolBar::Top:
2028 default: 2039 default:
2029 position = "Top"; 2040 position = "Top";
2030 break; 2041 break;
2031 } 2042 }
2032 2043
2033 if ( mainWindow() ) { 2044 if ( mainWindow() ) {
2034 QMainWindow::ToolBarDock dock; 2045 Qt::ToolBarDock dock;
2035 bool newLine; 2046 bool newLine;
2036 int offset; 2047 int offset;
2037 mainWindow()->getLocation( this, dock, index, newLine, offset ); 2048 mainWindow()->getLocation( this, dock, index, newLine, offset );
2038 } 2049 }
2039 2050
2040 switch (d->m_iconText) { 2051 switch (d->m_iconText) {
2041 case KToolBar::IconTextRight: 2052 case KToolBar::IconTextRight:
2042 icontext = "IconTextRight"; 2053 icontext = "IconTextRight";
2043 break; 2054 break;
2044 case KToolBar::IconTextBottom: 2055 case KToolBar::IconTextBottom:
2045 icontext = "IconTextBottom"; 2056 icontext = "IconTextBottom";
2046 break; 2057 break;
2047 case KToolBar::TextOnly: 2058 case KToolBar::TextOnly:
2048 icontext = "TextOnly"; 2059 icontext = "TextOnly";
2049 break; 2060 break;
2050 case KToolBar::IconOnly: 2061 case KToolBar::IconOnly:
@@ -2087,78 +2098,78 @@ void KToolBar::positionYourself( bool force )
2087 bool doHide = isHidden(); 2098 bool doHide = isHidden();
2088 //kdDebug(220) << "positionYourself " << name() << " dock=" << d->toolBarInfo.dock << " newLine=" << d->toolBarInfo.newline << " offset=" << d->toolBarInfo.offset << endl; 2099 //kdDebug(220) << "positionYourself " << name() << " dock=" << d->toolBarInfo.dock << " newLine=" << d->toolBarInfo.newline << " offset=" << d->toolBarInfo.offset << endl;
2089/*US mainWindow()->moveDockWindow( this, d->toolBarInfo.dock, 2100/*US mainWindow()->moveDockWindow( this, d->toolBarInfo.dock,
2090 d->toolBarInfo.newline, 2101 d->toolBarInfo.newline,
2091 d->toolBarInfo.index, 2102 d->toolBarInfo.index,
2092 d->toolBarInfo.offset ); 2103 d->toolBarInfo.offset );
2093*/ 2104*/
2094 mainWindow()->moveToolBar( this, d->toolBarInfo.dock, d->NewLineDefault, d->IndexDefault, d->OffsetDefault ); 2105 mainWindow()->moveToolBar( this, d->toolBarInfo.dock, d->NewLineDefault, d->IndexDefault, d->OffsetDefault );
2095 2106
2096 if ( doHide ) 2107 if ( doHide )
2097 hide(); 2108 hide();
2098 // This method can only have an effect once - unless force is set 2109 // This method can only have an effect once - unless force is set
2099 d->positioned = TRUE; 2110 d->positioned = TRUE;
2100} 2111}
2101 2112
2102//US KPopupMenu *KToolBar::contextMenu() 2113//US KPopupMenu *KToolBar::contextMenu()
2103QPopupMenu *KToolBar::contextMenu() 2114Q3PopupMenu *KToolBar::contextMenu()
2104{ 2115{
2105 if ( context ) 2116 if ( context )
2106 return context; 2117 return context;
2107 2118
2108 // Construct our context popup menu. Name it qt_dockwidget_internal so it 2119 // Construct our context popup menu. Name it qt_dockwidget_internal so it
2109 // won't be deleted by QToolBar::clear(). 2120 // won't be deleted by QToolBar::clear().
2110//US context = new KPopupMenu( this, "qt_dockwidget_internal" ); 2121//US context = new KPopupMenu( this, "qt_dockwidget_internal" );
2111 context = new QPopupMenu( this, "qt_dockwidget_internal" ); 2122 context = new Q3PopupMenu( this, "qt_dockwidget_internal" );
2112//US context->insertTitle(i18n("Toolbar Menu")); 2123//US context->insertTitle(i18n("Toolbar Menu"));
2113 2124
2114//US KPopupMenu *orient = new KPopupMenu( context, "orient" ); 2125//US KPopupMenu *orient = new KPopupMenu( context, "orient" );
2115 QPopupMenu *orient = new QPopupMenu( context, "orient" ); 2126 Q3PopupMenu *orient = new Q3PopupMenu( context, "orient" );
2116 orient->insertItem( i18n("toolbar position string","Top"), CONTEXT_TOP ); 2127 orient->insertItem( i18n("toolbar position string","Top"), CONTEXT_TOP );
2117 orient->insertItem( i18n("toolbar position string","Left"), CONTEXT_LEFT ); 2128 orient->insertItem( i18n("toolbar position string","Left"), CONTEXT_LEFT );
2118 orient->insertItem( i18n("toolbar position string","Right"), CONTEXT_RIGHT ); 2129 orient->insertItem( i18n("toolbar position string","Right"), CONTEXT_RIGHT );
2119 orient->insertItem( i18n("toolbar position string","Bottom"), CONTEXT_BOTTOM ); 2130 orient->insertItem( i18n("toolbar position string","Bottom"), CONTEXT_BOTTOM );
2120 orient->insertSeparator(-1); 2131 orient->insertSeparator(-1);
2121 //orient->insertItem( i18n("toolbar position string","Floating"), CONTEXT_FLOAT ); 2132 //orient->insertItem( i18n("toolbar position string","Floating"), CONTEXT_FLOAT );
2122 orient->insertItem( i18n("min toolbar", "Flat"), CONTEXT_FLAT ); 2133 orient->insertItem( i18n("min toolbar", "Flat"), CONTEXT_FLAT );
2123 2134
2124//US KPopupMenu *mode = new KPopupMenu( context, "mode" ); 2135//US KPopupMenu *mode = new KPopupMenu( context, "mode" );
2125 QPopupMenu *mode = new QPopupMenu( context, "mode" ); 2136 Q3PopupMenu *mode = new Q3PopupMenu( context, "mode" );
2126 mode->insertItem( i18n("Icons Only"), CONTEXT_ICONS ); 2137 mode->insertItem( i18n("Icons Only"), CONTEXT_ICONS );
2127 mode->insertItem( i18n("Text Only"), CONTEXT_TEXT ); 2138 mode->insertItem( i18n("Text Only"), CONTEXT_TEXT );
2128 mode->insertItem( i18n("Text Alongside Icons"), CONTEXT_TEXTRIGHT ); 2139 mode->insertItem( i18n("Text Alongside Icons"), CONTEXT_TEXTRIGHT );
2129 mode->insertItem( i18n("Text Under Icons"), CONTEXT_TEXTUNDER ); 2140 mode->insertItem( i18n("Text Under Icons"), CONTEXT_TEXTUNDER );
2130 2141
2131//US KPopupMenu *size = new KPopupMenu( context, "size" ); 2142//US KPopupMenu *size = new KPopupMenu( context, "size" );
2132 QPopupMenu *size = new QPopupMenu( context, "size" ); 2143 Q3PopupMenu *size = new Q3PopupMenu( context, "size" );
2133 size->insertItem( i18n("Default"), CONTEXT_ICONSIZES ); 2144 size->insertItem( i18n("Default"), CONTEXT_ICONSIZES );
2134 // Query the current theme for available sizes 2145 // Query the current theme for available sizes
2135 QValueList<int> avSizes; 2146 Q3ValueList<int> avSizes;
2136/*US 2147/*US
2137 KIconTheme *theme = KGlobal::instance()->iconLoader()->theme(); 2148 KIconTheme *theme = KGlobal::instance()->iconLoader()->theme();
2138 if (!::qstrcmp(QObject::name(), "mainToolBar")) 2149 if (!::qstrcmp(QObject::name(), "mainToolBar"))
2139 avSizes = theme->querySizes( KIcon::MainToolbar); 2150 avSizes = theme->querySizes( KIcon::MainToolbar);
2140 else 2151 else
2141 avSizes = theme->querySizes( KIcon::Toolbar); 2152 avSizes = theme->querySizes( KIcon::Toolbar);
2142*/ 2153*/
2143 avSizes << 16; 2154 avSizes << 16;
2144 avSizes << 32; 2155 avSizes << 32;
2145 2156
2146 d->iconSizes = avSizes; 2157 d->iconSizes = avSizes;
2147 2158
2148 QValueList<int>::Iterator it; 2159 Q3ValueList<int>::Iterator it;
2149 for (it=avSizes.begin(); it!=avSizes.end(); it++) { 2160 for (it=avSizes.begin(); it!=avSizes.end(); it++) {
2150 QString text; 2161 QString text;
2151 if ( *it < 19 ) 2162 if ( *it < 19 )
2152 text = i18n("Small (%1x%2)").arg(*it).arg(*it); 2163 text = i18n("Small (%1x%2)").arg(*it).arg(*it);
2153 else if (*it < 25) 2164 else if (*it < 25)
2154 text = i18n("Medium (%1x%2)").arg(*it).arg(*it); 2165 text = i18n("Medium (%1x%2)").arg(*it).arg(*it);
2155 else 2166 else
2156 text = i18n("Large (%1x%2)").arg(*it).arg(*it); 2167 text = i18n("Large (%1x%2)").arg(*it).arg(*it);
2157 //we use the size as an id, with an offset 2168 //we use the size as an id, with an offset
2158 size->insertItem( text, CONTEXT_ICONSIZES + *it ); 2169 size->insertItem( text, CONTEXT_ICONSIZES + *it );
2159 } 2170 }
2160 2171
2161 context->insertItem( i18n("Orientation"), orient ); 2172 context->insertItem( i18n("Orientation"), orient );
2162 orient->setItemChecked(CONTEXT_TOP, true); 2173 orient->setItemChecked(CONTEXT_TOP, true);
2163 context->insertItem( i18n("Text Position"), mode ); 2174 context->insertItem( i18n("Text Position"), mode );
2164 context->setItemChecked(CONTEXT_ICONS, true); 2175 context->setItemChecked(CONTEXT_ICONS, true);
@@ -2205,34 +2216,34 @@ void KToolBar::slotContextAboutToShow()
2205 { 2216 {
2206 case IconOnly: 2217 case IconOnly:
2207 default: 2218 default:
2208 context->setItemChecked(CONTEXT_ICONS, true); 2219 context->setItemChecked(CONTEXT_ICONS, true);
2209 break; 2220 break;
2210 case IconTextRight: 2221 case IconTextRight:
2211 context->setItemChecked(CONTEXT_TEXTRIGHT, true); 2222 context->setItemChecked(CONTEXT_TEXTRIGHT, true);
2212 break; 2223 break;
2213 case TextOnly: 2224 case TextOnly:
2214 context->setItemChecked(CONTEXT_TEXT, true); 2225 context->setItemChecked(CONTEXT_TEXT, true);
2215 break; 2226 break;
2216 case IconTextBottom: 2227 case IconTextBottom:
2217 context->setItemChecked(CONTEXT_TEXTUNDER, true); 2228 context->setItemChecked(CONTEXT_TEXTUNDER, true);
2218 break; 2229 break;
2219 } 2230 }
2220 2231
2221 QValueList<int>::ConstIterator iIt = d->iconSizes.begin(); 2232 Q3ValueList<int>::ConstIterator iIt = d->iconSizes.begin();
2222 QValueList<int>::ConstIterator iEnd = d->iconSizes.end(); 2233 Q3ValueList<int>::ConstIterator iEnd = d->iconSizes.end();
2223 for (; iIt != iEnd; ++iIt ) 2234 for (; iIt != iEnd; ++iIt )
2224 context->setItemChecked( CONTEXT_ICONSIZES + *iIt, false ); 2235 context->setItemChecked( CONTEXT_ICONSIZES + *iIt, false );
2225 2236
2226 context->setItemChecked( CONTEXT_ICONSIZES, false ); 2237 context->setItemChecked( CONTEXT_ICONSIZES, false );
2227 2238
2228 context->setItemChecked( CONTEXT_ICONSIZES + d->m_iconSize, true ); 2239 context->setItemChecked( CONTEXT_ICONSIZES + d->m_iconSize, true );
2229 2240
2230 for ( int i = CONTEXT_TOP; i <= CONTEXT_FLAT; ++i ) 2241 for ( int i = CONTEXT_TOP; i <= CONTEXT_FLAT; ++i )
2231 context->setItemChecked( i, false ); 2242 context->setItemChecked( i, false );
2232 2243
2233 switch ( barPos() ) 2244 switch ( barPos() )
2234 { 2245 {
2235 case KToolBar::Flat: 2246 case KToolBar::Flat:
2236 context->setItemChecked( CONTEXT_FLAT, true ); 2247 context->setItemChecked( CONTEXT_FLAT, true );
2237 break; 2248 break;
2238 case KToolBar::Bottom: 2249 case KToolBar::Bottom:
diff --git a/microkde/kdeui/ktoolbar.h b/microkde/kdeui/ktoolbar.h
index 3319fa8..4e00abd 100644
--- a/microkde/kdeui/ktoolbar.h
+++ b/microkde/kdeui/ktoolbar.h
@@ -13,134 +13,142 @@
13 This library is distributed in the hope that it will be useful, 13 This library is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 Library General Public License for more details. 16 Library General Public License for more details.
17 17
18 You should have received a copy of the GNU Library General Public License 18 You should have received a copy of the GNU Library General Public License
19 along with this library; see the file COPYING.LIB. If not, write to 19 along with this library; see the file COPYING.LIB. If not, write to
20 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 20 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
21 Boston, MA 02111-1307, USA. 21 Boston, MA 02111-1307, USA.
22 */ 22 */
23 23
24#ifndef KTOOLBAR_H 24#ifndef KTOOLBAR_H
25#define KTOOLBAR_H 25#define KTOOLBAR_H
26 26
27#ifndef DESKTOP_VERSION 27#ifndef DESKTOP_VERSION
28#define private public 28#define private public
29#include <qtoolbar.h> 29#include <q3toolbar.h>
30#undef private 30#undef private
31#include <qpe/qpetoolbar.h> 31#include <qpe/qpetoolbar.h>
32#else 32#else
33#include <qtoolbar.h> 33#include <q3toolbar.h>
34#endif 34#endif
35 35
36 36
37#include <qmainwindow.h> 37#include <q3mainwindow.h>
38#include <qcombobox.h> 38#include <qcombobox.h>
39#include <qmap.h> 39#include <qmap.h>
40#include <qptrlist.h> 40#include <q3ptrlist.h>
41//Added by qt3to4:
42#include <QPixmap>
43#include <QResizeEvent>
44#include <Q3PopupMenu>
45#include <QMouseEvent>
46#include <QChildEvent>
47#include <QEvent>
48#include <QShowEvent>
41#include <kglobal.h> 49#include <kglobal.h>
42#include <qguardedptr.h> 50#include <qpointer.h>
43#include <qframe.h> 51#include <q3frame.h>
44#include <qiconset.h> 52#include <qicon.h>
45 53
46class QDomElement; 54class QDomElement;
47class QSize; 55class QSize;
48class QPixmap; 56class QPixmap;
49class QPopupMenu; 57class Q3PopupMenu;
50class QStringList; 58class QStringList;
51class QDomDocument; 59class QDomDocument;
52class QTimer; 60class QTimer;
53 61
54class KLineEdit; 62class KLineEdit;
55class KToolBar; 63class KToolBar;
56class KToolBarButton; 64class KToolBarButton;
57class KToolBoxManager; 65class KToolBoxManager;
58//US class KAnimWidget; 66//US class KAnimWidget;
59//US class KPopupMenu; 67//US class KPopupMenu;
60//US class KInstance; 68//US class KInstance;
61class KComboBox; 69class KComboBox;
62class KXMLGUIClient; 70class KXMLGUIClient;
63 71
64class KToolBarPrivate; 72class KToolBarPrivate;
65 73
66class KToolBarSeparator : public QFrame 74class KToolBarSeparator : public Q3Frame
67{ 75{
68 Q_OBJECT 76 Q_OBJECT
69public: 77public:
70 KToolBarSeparator( Orientation, bool l, QToolBar *parent, const char* name=0 ); 78 KToolBarSeparator( Qt::Orientation, bool l, Q3ToolBar *parent, const char* name=0 );
71 79
72 QSize sizeHint() const; 80 QSize sizeHint() const;
73 Orientation orientation() const { return orient; } 81 Qt::Orientation orientation() const { return orient; }
74 QSizePolicy sizePolicy() const; 82 QSizePolicy sizePolicy() const;
75 bool showLine() const { return line; } 83 bool showLine() const { return line; }
76public slots: 84public slots:
77 void setOrientation( Orientation ); 85 void setOrientation( Qt::Orientation );
78protected: 86protected:
79 void styleChange( QStyle& ); 87 void styleChange( QStyle& );
80private: 88private:
81 Orientation orient; 89 Qt::Orientation orient;
82 bool line; 90 bool line;
83}; 91};
84 92
85 93
86 /** 94 /**
87 * A KDE-style toolbar. 95 * A KDE-style toolbar.
88 * 96 *
89 * KToolBar can be dragged around in and between different docks. 97 * KToolBar can be dragged around in and between different docks.
90 * 98 *
91 * A KToolBar can contain all sorts of widgets. 99 * A KToolBar can contain all sorts of widgets.
92 * 100 *
93 * KToolBar can be used as a standalone widget, but @ref KMainWindow 101 * KToolBar can be used as a standalone widget, but @ref KMainWindow
94 * provides easy factories and management of one or more toolbars. 102 * provides easy factories and management of one or more toolbars.
95 * Once you have a KToolBar object, you can insert items into it with the 103 * Once you have a KToolBar object, you can insert items into it with the
96 * insert... methods, or remove them with the @ref removeItem() method. This 104 * insert... methods, or remove them with the @ref removeItem() method. This
97 * can be done at any time; the toolbar will be automatically updated. 105 * can be done at any time; the toolbar will be automatically updated.
98 * There are also many methods to set per-child properties like alignment 106 * There are also many methods to set per-child properties like alignment
99 * and toggle behaviour. 107 * and toggle behaviour.
100 * 108 *
101 * KToolBar uses a global config group to load toolbar settings on 109 * KToolBar uses a global config group to load toolbar settings on
102 * construction. It will reread this config group on a 110 * construction. It will reread this config group on a
103 * @ref KApplication::appearanceChanged() signal. 111 * @ref KApplication::appearanceChanged() signal.
104 * 112 *
105 * @short Floatable toolbar with auto resize. 113 * @short Floatable toolbar with auto resize.
106 * @version $Id$ 114 * @version $Id$
107 * @author Reginald Stadlbauer <reggie@kde.org>, Stephan Kulow <coolo@kde.org>, Sven Radej <radej@kde.org>. 115 * @author Reginald Stadlbauer <reggie@kde.org>, Stephan Kulow <coolo@kde.org>, Sven Radej <radej@kde.org>.
108 */ 116 */
109 117
110// strange things are happening ... so I have to use strange define methods ... 118// strange things are happening ... so I have to use strange define methods ...
111// porting KToolBar back to Qt2 really needs some strange hacks 119// porting KToolBar back to Qt2 really needs some strange hacks
112 120
113#ifndef DESKTOP_VERSION 121#ifndef DESKTOP_VERSION
114#define QToolBar QPEToolBar 122#define Q3ToolBar QPEToolBar
115#endif 123#endif
116 124
117 class KToolBar : public QToolBar 125 class KToolBar : public Q3ToolBar
118{ 126{
119 Q_OBJECT 127 Q_OBJECT
120 128
121 129
122 Q_ENUMS( IconText BarPosition ) 130 Q_ENUMS( IconText BarPosition )
123 131
124 Q_PROPERTY( IconText iconText READ iconText WRITE setIconText ) 132 Q_PROPERTY( IconText iconText READ iconText WRITE setIconText )
125 Q_PROPERTY( BarPosition barPos READ barPos WRITE setBarPos ) 133 Q_PROPERTY( BarPosition barPos READ barPos WRITE setBarPos )
126 Q_PROPERTY( bool fullSize READ fullSize WRITE setFullSize ) 134 Q_PROPERTY( bool fullSize READ fullSize WRITE setFullSize )
127 Q_PROPERTY( int iconSize READ iconSize WRITE setIconSize ) 135 Q_PROPERTY( int iconSize READ iconSize WRITE setIconSize )
128 Q_PROPERTY( QString text READ text WRITE setText ) 136 Q_PROPERTY( QString text READ text WRITE setText )
129#ifndef DESKTOP_VERSION 137#ifndef DESKTOP_VERSION
130#undef QToolBar 138#undef Q3ToolBar
131#endif 139#endif
132public: 140public:
133 enum IconText{IconOnly = 0, IconTextRight, TextOnly, IconTextBottom}; 141 enum IconText{IconOnly = 0, IconTextRight, TextOnly, IconTextBottom};
134 /** 142 /**
135 * The state of the status bar. 143 * The state of the status bar.
136 * @deprecated 144 * @deprecated
137 **/ 145 **/
138 enum BarStatus{Toggle, Show, Hide}; 146 enum BarStatus{Toggle, Show, Hide};
139 /** 147 /**
140 * Possible bar positions. 148 * Possible bar positions.
141 **/ 149 **/
142 enum BarPosition{ Unmanaged, Floating, Top, Bottom, Right, Left, Flat}; 150 enum BarPosition{ Unmanaged, Floating, Top, Bottom, Right, Left, Flat};
143 151
144 /** 152 /**
145 * Constructor. 153 * Constructor.
146 * This constructor is used by the XML-GUI. If you use it, you need 154 * This constructor is used by the XML-GUI. If you use it, you need
@@ -162,51 +170,51 @@ public:
162 170
163 /** 171 /**
164 * Constructor for non-XML-GUI applications. 172 * Constructor for non-XML-GUI applications.
165 * 173 *
166 * The toolbar will read in various global config settings for 174 * The toolbar will read in various global config settings for
167 * things like icon size and text position, etc. However, some of 175 * things like icon size and text position, etc. However, some of
168 * the settings will be honored only if @ref #_honor_mode is set to 176 * the settings will be honored only if @ref #_honor_mode is set to
169 * true. All other toolbars will be IconOnly and use Medium icons. 177 * true. All other toolbars will be IconOnly and use Medium icons.
170 * 178 *
171 * @param parentWindow The window that should be the parent of this toolbar 179 * @param parentWindow The window that should be the parent of this toolbar
172 * @param dock The position of the toolbar. Usually QMainWindow::Top. 180 * @param dock The position of the toolbar. Usually QMainWindow::Top.
173 * @param newLine If true, start a new line in the dock for this toolbar. 181 * @param newLine If true, start a new line in the dock for this toolbar.
174 * @param name The standard internal name 182 * @param name The standard internal name
175 * @param honor_style If true, then global settings for IconSize and IconText will be honored 183 * @param honor_style If true, then global settings for IconSize and IconText will be honored
176 * @param readConfig whether to apply the configuration (global and application-specific) 184 * @param readConfig whether to apply the configuration (global and application-specific)
177 */ 185 */
178 KToolBar( QMainWindow *parentWindow, QMainWindow::ToolBarDock dock /*= QMainWindow::Top*/, bool newLine = false, 186 KToolBar( Q3MainWindow *parentWindow, Qt::ToolBarDock dock /*= QMainWindow::Top*/, bool newLine = false,
179 const char *name = 0, bool honor_style = FALSE, bool readConfig = TRUE ); 187 const char *name = 0, bool honor_style = FALSE, bool readConfig = TRUE );
180 188
181 /** 189 /**
182 * Constructor for non-XML-GUI applications. 190 * Constructor for non-XML-GUI applications.
183 * 191 *
184 * The toolbar will read in various global config settings for 192 * The toolbar will read in various global config settings for
185 * things like icon size and text position, etc. However, some of 193 * things like icon size and text position, etc. However, some of
186 * the settings will be honored only if @ref #_honor_mode is set to 194 * the settings will be honored only if @ref #_honor_mode is set to
187 * true. All other toolbars will be IconOnly and use Medium icons. 195 * true. All other toolbars will be IconOnly and use Medium icons.
188 * 196 *
189 * @param parentWindow The window that should be the parent of this toolbar 197 * @param parentWindow The window that should be the parent of this toolbar
190 * @param dock Another widget than the mainwindow to dock toolbar to. 198 * @param dock Another widget than the mainwindow to dock toolbar to.
191 * @param newLine If true, start a new line in the dock for this toolbar. 199 * @param newLine If true, start a new line in the dock for this toolbar.
192 * @param name The standard internal name 200 * @param name The standard internal name
193 * @param honor_style If true, then global settings for IconSize and IconText will be honored 201 * @param honor_style If true, then global settings for IconSize and IconText will be honored
194 * @param readConfig whether to apply the configuration (global and application-specific) 202 * @param readConfig whether to apply the configuration (global and application-specific)
195 */ 203 */
196 KToolBar( QMainWindow *parentWindow, QWidget *dock, bool newLine = false, 204 KToolBar( Q3MainWindow *parentWindow, QWidget *dock, bool newLine = false,
197 const char *name = 0, bool honor_style = FALSE, bool readConfig = TRUE ); 205 const char *name = 0, bool honor_style = FALSE, bool readConfig = TRUE );
198 206
199 virtual ~KToolBar(); 207 virtual ~KToolBar();
200 208
201 /** 209 /**
202 * Insert a button (a @ref KToolBarButton) with a pixmap. The 210 * Insert a button (a @ref KToolBarButton) with a pixmap. The
203 * pixmap is loaded by the button itself based on the global icon 211 * pixmap is loaded by the button itself based on the global icon
204 * settings. 212 * settings.
205 * 213 *
206 * You should connect to one or more signals in KToolBar: 214 * You should connect to one or more signals in KToolBar:
207 * @ref clicked() , @ref pressed() , @ref released() , or 215 * @ref clicked() , @ref pressed() , @ref released() , or
208 * @ref highlighted() and if the button is a toggle button 216 * @ref highlighted() and if the button is a toggle button
209 * (@ref setToggle() ) @ref toggled() . Those signals have @p id 217 * (@ref setToggle() ) @ref toggled() . Those signals have @p id
210 * of a button that caused the signal. If you want to bind a popup 218 * of a button that caused the signal. If you want to bind a popup
211 * to button, see @ref setButton(). 219 * to button, see @ref setButton().
212 * 220 *
@@ -290,48 +298,48 @@ public:
290 const QObject *receiver, const char *slot, 298 const QObject *receiver, const char *slot,
291 bool enabled = true, const QString& text = QString::null, 299 bool enabled = true, const QString& text = QString::null,
292 int index=-1 ); 300 int index=-1 );
293 301
294 /** 302 /**
295 * Inserts a button with popupmenu. 303 * Inserts a button with popupmenu.
296 * 304 *
297 * Button will have small 305 * Button will have small
298 * triangle. You have to connect to popup's signals. The 306 * triangle. You have to connect to popup's signals. The
299 * signals @ref KButton::pressed(), @ref KButton::released(), 307 * signals @ref KButton::pressed(), @ref KButton::released(),
300 * @ref KButton::clicked() or @ref KButton::doubleClicked() are @p not 308 * @ref KButton::clicked() or @ref KButton::doubleClicked() are @p not
301 * emmited by 309 * emmited by
302 * this button (see @ref setDelayedPopup() for that). 310 * this button (see @ref setDelayedPopup() for that).
303 * You can add custom popups which inherit @ref QPopupMenu to get popups 311 * You can add custom popups which inherit @ref QPopupMenu to get popups
304 * with tables, drawings etc. Just don't fiddle with events there. 312 * with tables, drawings etc. Just don't fiddle with events there.
305 */ 313 */
306 int insertButton(const QString& icon, int id, QPopupMenu *popup, 314 int insertButton(const QString& icon, int id, Q3PopupMenu *popup,
307 bool enabled, const QString&_text, int index=-1); 315 bool enabled, const QString&_text, int index=-1);
308 316
309 /** 317 /**
310 * Inserts a button with popupmenu. 318 * Inserts a button with popupmenu.
311 * 319 *
312 * Button will have small 320 * Button will have small
313 * triangle. You have to connect to popup's signals. The 321 * triangle. You have to connect to popup's signals. The
314 * signals @ref KButton::pressed(), @ref KButton::released(), 322 * signals @ref KButton::pressed(), @ref KButton::released(),
315 * @ref KButton::clicked() or @ref KButton::doubleClicked() are @p not 323 * @ref KButton::clicked() or @ref KButton::doubleClicked() are @p not
316 * emmited by 324 * emmited by
317 * this button (see @ref setDelayedPopup() for that). 325 * this button (see @ref setDelayedPopup() for that).
318 * You can add custom popups which inherit @ref QPopupMenu to get popups 326 * You can add custom popups which inherit @ref QPopupMenu to get popups
319 * with tables, drawings etc. Just don't fiddle with events there. 327 * with tables, drawings etc. Just don't fiddle with events there.
320 */ 328 */
321 int insertButton(const QPixmap& pixmap, int id, QPopupMenu *popup, 329 int insertButton(const QPixmap& pixmap, int id, Q3PopupMenu *popup,
322 bool enabled, const QString&_text, int index=-1); 330 bool enabled, const QString&_text, int index=-1);
323 331
324 /** 332 /**
325 * Inserts a @ref KLineEdit. You have to specify signals and slots to 333 * Inserts a @ref KLineEdit. You have to specify signals and slots to
326 * which KLineEdit will be connected. KLineEdit has all slots QLineEdit 334 * which KLineEdit will be connected. KLineEdit has all slots QLineEdit
327 * has, plus signals @ref KLineEdit::completion and @ref KLineEdit::textRotation 335 * has, plus signals @ref KLineEdit::completion and @ref KLineEdit::textRotation
328 * KLineEdit can be set to autoresize itself to full free width 336 * KLineEdit can be set to autoresize itself to full free width
329 * in toolbar, that is to last right aligned item. For that, 337 * in toolbar, that is to last right aligned item. For that,
330 * toolbar must be set to full width (which it is by default). 338 * toolbar must be set to full width (which it is by default).
331 * @see setFullWidth() 339 * @see setFullWidth()
332 * @see setItemAutoSized() 340 * @see setItemAutoSized()
333 * @see KLineEdit 341 * @see KLineEdit
334 * @return Item index. 342 * @return Item index.
335 */ 343 */
336 int insertLined (const QString& text, int id, 344 int insertLined (const QString& text, int id,
337 const char *signal, 345 const char *signal,
@@ -346,49 +354,49 @@ public:
346 * Can be writable, but cannot contain 354 * Can be writable, but cannot contain
347 * pixmaps. By default inserting policy is AtBottom, i.e. typed items 355 * pixmaps. By default inserting policy is AtBottom, i.e. typed items
348 * are placed at the bottom of the list. Can be autosized. If the size 356 * are placed at the bottom of the list. Can be autosized. If the size
349 * argument is specified as -1, the width of the combobox is automatically 357 * argument is specified as -1, the width of the combobox is automatically
350 * computed. 358 * computed.
351 * 359 *
352 * @see setFullWidth() 360 * @see setFullWidth()
353 * @see setItemAutoSized() 361 * @see setItemAutoSized()
354 * @see KComboBox 362 * @see KComboBox
355 * @return Item index. 363 * @return Item index.
356 */ 364 */
357 int insertCombo (const QStringList &list, int id, bool writable, 365 int insertCombo (const QStringList &list, int id, bool writable,
358 const char *signal, const QObject *receiver, 366 const char *signal, const QObject *receiver,
359 const char *slot, bool enabled=true, 367 const char *slot, bool enabled=true,
360 const QString& tooltiptext=QString::null, 368 const QString& tooltiptext=QString::null,
361 int size=70, int index=-1, 369 int size=70, int index=-1,
362 QComboBox::Policy policy = QComboBox::AtBottom); 370 QComboBox::Policy policy = QComboBox::InsertAtBottom);
363 371
364 /** 372 /**
365 * Insert a @ref KComboBox with text. 373 * Insert a @ref KComboBox with text.
366 * 374 *
367 * The rest is the same as above. 375 * The rest is the same as above.
368 * @see setItemAutoSized() 376 * @see setItemAutoSized()
369 * 377 *
370 * @see KComboBox 378 * @see KComboBox
371 * @return Item index. 379 * @return Item index.
372 */ 380 */
373 int insertCombo (const QString& text, int id, bool writable, 381 int insertCombo (const QString& text, int id, bool writable,
374 const char *signal, QObject *recevier, 382 const char *signal, QObject *recevier,
375 const char *slot, bool enabled=true, 383 const char *slot, bool enabled=true,
376 const QString& tooltiptext=QString::null, 384 const QString& tooltiptext=QString::null,
377 int size=70, int index=-1, 385 int size=70, int index=-1,
378 QComboBox::Policy policy = QComboBox::AtBottom); 386 QComboBox::Policy policy = QComboBox::InsertAtBottom);
379 387
380 /** 388 /**
381 * Inserts a separator into the toolbar with the given id. 389 * Inserts a separator into the toolbar with the given id.
382 * Returns the separator's index 390 * Returns the separator's index
383 */ 391 */
384 int insertSeparator( int index = -1, int id = -1 ); 392 int insertSeparator( int index = -1, int id = -1 );
385 393
386 /** 394 /**
387 * Inserts a line separator into the toolbar with the given id. 395 * Inserts a line separator into the toolbar with the given id.
388 * Returns the separator's index 396 * Returns the separator's index
389 */ 397 */
390 int insertLineSeparator( int index = -1, int id = -1 ); 398 int insertLineSeparator( int index = -1, int id = -1 );
391 399
392 /** 400 /**
393 * Inserts a user-defined widget. The widget @p must have this 401 * Inserts a user-defined widget. The widget @p must have this
394 * toolbar as its parent. 402 * toolbar as its parent.
@@ -452,59 +460,59 @@ public:
452 * Can be used while button is visible. 460 * Can be used while button is visible.
453 */ 461 */
454 void setButtonIcon( int id, const QString& _icon ); 462 void setButtonIcon( int id, const QString& _icon );
455 463
456 /** 464 /**
457 * Sets button pixmap. 465 * Sets button pixmap.
458 * 466 *
459 * Can be used while button is visible. 467 * Can be used while button is visible.
460 */ 468 */
461 void setButtonPixmap( int id, const QPixmap& _pixmap ); 469 void setButtonPixmap( int id, const QPixmap& _pixmap );
462 470
463 /** 471 /**
464 * Sets a button icon from a QIconSet. 472 * Sets a button icon from a QIconSet.
465 * 473 *
466 * Can be used while button is visible. 474 * Can be used while button is visible.
467 */ 475 */
468 void setButtonIconSet( int id, const QIconSet& iconset ); 476 void setButtonIconSet( int id, const QIcon& iconset );
469 477
470 /** 478 /**
471 * Sets a delayed popup for a button. 479 * Sets a delayed popup for a button.
472 * 480 *
473 * Delayed popup is what you see in 481 * Delayed popup is what you see in
474 * Netscape Navigator's Previous and Next buttons: If you click them you 482 * Netscape Navigator's Previous and Next buttons: If you click them you
475 * go back 483 * go back
476 * or forth. If you press them long enough, you get a history-menu. 484 * or forth. If you press them long enough, you get a history-menu.
477 * This is exactly what we do here. 485 * This is exactly what we do here.
478 * 486 *
479 * You will insert normal a button with connection (or use signals from 487 * You will insert normal a button with connection (or use signals from
480 * toolbar): 488 * toolbar):
481 * <pre> 489 * <pre>
482 * bar->insertButton(icon, id, SIGNAL(clicked ()), this, 490 * bar->insertButton(icon, id, SIGNAL(clicked ()), this,
483 * SLOT (slotClick()), true, "click or wait for popup"); 491 * SLOT (slotClick()), true, "click or wait for popup");
484 * </pre> And then add a delayed popup: 492 * </pre> And then add a delayed popup:
485 * <pre> 493 * <pre>
486 * bar->setDelayedPopup (id, historyPopup); </pre> 494 * bar->setDelayedPopup (id, historyPopup); </pre>
487 * 495 *
488 * Don't add delayed popups to buttons which have normal popups. 496 * Don't add delayed popups to buttons which have normal popups.
489 * 497 *
490 * You may add popups which are derived from @ref QPopupMenu. You may 498 * You may add popups which are derived from @ref QPopupMenu. You may
491 * add popups that are already in the menu bar or are submenus of 499 * add popups that are already in the menu bar or are submenus of
492 * other popups. 500 * other popups.
493 */ 501 */
494 void setDelayedPopup (int id , QPopupMenu *_popup, bool toggle = false); 502 void setDelayedPopup (int id , Q3PopupMenu *_popup, bool toggle = false);
495 503
496 /** 504 /**
497 * Turns a button into an autorepeat button. 505 * Turns a button into an autorepeat button.
498 * 506 *
499 * Toggle buttons, buttons with menus, or 507 * Toggle buttons, buttons with menus, or
500 * buttons with delayed menus cannot be made into autorepeat buttons. 508 * buttons with delayed menus cannot be made into autorepeat buttons.
501 * Moreover, you can and will receive 509 * Moreover, you can and will receive
502 * only the signal clicked(), but not pressed() or released(). 510 * only the signal clicked(), but not pressed() or released().
503 * When the user presses this button, you will receive the signal clicked(), 511 * When the user presses this button, you will receive the signal clicked(),
504 * and if the button is still pressed after some time, 512 * and if the button is still pressed after some time,
505 * you will receive more clicked() signals separated by regular 513 * you will receive more clicked() signals separated by regular
506 * intervals. Since this uses @ref QButton::setAutoRepeat() , 514 * intervals. Since this uses @ref QButton::setAutoRepeat() ,
507 * I can't quantify 'some'. 515 * I can't quantify 'some'.
508 */ 516 */
509 void setAutoRepeat (int id, bool flag=true); 517 void setAutoRepeat (int id, bool flag=true);
510 518
@@ -1047,64 +1055,64 @@ public:
1047 */ 1055 */
1048 void repaintMe(); 1056 void repaintMe();
1049 static bool highlightSetting(); 1057 static bool highlightSetting();
1050 1058
1051 /** 1059 /**
1052 * @return global setting for "Toolbars transparent when moving" 1060 * @return global setting for "Toolbars transparent when moving"
1053 */ 1061 */
1054 static bool transparentSetting(); 1062 static bool transparentSetting();
1055 1063
1056 /** 1064 /**
1057 * @return global setting for "Icon Text" 1065 * @return global setting for "Icon Text"
1058 */ 1066 */
1059 static IconText iconTextSetting(); 1067 static IconText iconTextSetting();
1060 1068
1061public slots: 1069public slots:
1062 virtual void setIconText( const QString &txt ) 1070 virtual void setIconText( const QString &txt )
1063 { QToolBar::setIconText( txt ); } 1071 { Q3ToolBar::setIconText( txt ); }
1064 void slotRepaint(); 1072 void slotRepaint();
1065 1073
1066protected: 1074protected:
1067 void mousePressEvent( QMouseEvent * ); 1075 void mousePressEvent( QMouseEvent * );
1068 void childEvent( QChildEvent *e ); 1076 void childEvent( QChildEvent *e );
1069 void showEvent( QShowEvent *e ); 1077 void showEvent( QShowEvent *e );
1070 void resizeEvent( QResizeEvent *e ); 1078 void resizeEvent( QResizeEvent *e );
1071 bool event( QEvent *e ); 1079 bool event( QEvent *e );
1072 void applyAppearanceSettings(KConfig *config, const QString &_configGroup, bool forceGlobal = false); 1080 void applyAppearanceSettings(KConfig *config, const QString &_configGroup, bool forceGlobal = false);
1073 QString settingsGroup(); 1081 QString settingsGroup();
1074 1082
1075private slots: 1083private slots:
1076 void rebuildLayout(); 1084 void rebuildLayout();
1077 void slotReadConfig (); 1085 void slotReadConfig ();
1078 void slotAppearanceChanged(); 1086 void slotAppearanceChanged();
1079 void slotIconChanged(int); 1087 void slotIconChanged(int);
1080 void toolBarPosChanged( QToolBar *tb ); 1088 void toolBarPosChanged( Q3ToolBar *tb );
1081 void slotContextAboutToShow(); 1089 void slotContextAboutToShow();
1082 void widgetDestroyed(); 1090 void widgetDestroyed();
1083 1091
1084private: 1092private:
1085 int sizeHintW; 1093 int sizeHintW;
1086 int sizeHintH; 1094 int sizeHintH;
1087 void init( bool readConfig = true, bool honorStyle = false ); 1095 void init( bool readConfig = true, bool honorStyle = false );
1088 void doConnections( KToolBarButton *button ); 1096 void doConnections( KToolBarButton *button );
1089 void insertWidgetInternal( QWidget *w, int &index, int id ); 1097 void insertWidgetInternal( QWidget *w, int &index, int id );
1090 void removeWidgetInternal( QWidget *w ); 1098 void removeWidgetInternal( QWidget *w );
1091 void getAttributes( QString &position, QString &icontext, int &index ); 1099 void getAttributes( QString &position, QString &icontext, int &index );
1092//US KPopupMenu *contextMenu(); 1100//US KPopupMenu *contextMenu();
1093 QPopupMenu *contextMenu(); 1101 Q3PopupMenu *contextMenu();
1094 1102
1095 QMap<QWidget*, int > widget2id; 1103 QMap<QWidget*, int > widget2id;
1096 typedef QMap<int, QWidget* > Id2WidgetMap; 1104 typedef QMap<int, QWidget* > Id2WidgetMap;
1097 Id2WidgetMap id2widget; 1105 Id2WidgetMap id2widget;
1098//US KPopupMenu *context; 1106//US KPopupMenu *context;
1099 QPopupMenu *context; 1107 Q3PopupMenu *context;
1100 QPtrList<QWidget> widgets; 1108 Q3PtrList<QWidget> widgets;
1101 QTimer *layoutTimer; 1109 QTimer *layoutTimer;
1102 QGuardedPtr<QWidget> stretchableWidget, rightAligned; 1110 QPointer<QWidget> stretchableWidget, rightAligned;
1103protected: 1111protected:
1104 virtual void virtual_hook( int id, void* data ); 1112 virtual void virtual_hook( int id, void* data );
1105private: 1113private:
1106 KToolBarPrivate *d; 1114 KToolBarPrivate *d;
1107 bool inshutdownprocess; 1115 bool inshutdownprocess;
1108}; 1116};
1109 1117
1110#endif 1118#endif
diff --git a/microkde/kdeui/ktoolbarbutton.cpp b/microkde/kdeui/ktoolbarbutton.cpp
index 1d5d0e5..7b98b32 100644
--- a/microkde/kdeui/ktoolbarbutton.cpp
+++ b/microkde/kdeui/ktoolbarbutton.cpp
@@ -20,48 +20,52 @@
20 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 20 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
21 Boston, MA 02111-1307, USA. 21 Boston, MA 02111-1307, USA.
22*/ 22*/
23 23
24//US #include <config.h> 24//US #include <config.h>
25#include <string.h> 25#include <string.h>
26 26
27#include "ktoolbarbutton.h" 27#include "ktoolbarbutton.h"
28#include "ktoolbar.h" 28#include "ktoolbar.h"
29 29
30#include <qstyle.h> 30#include <qstyle.h>
31#include <qimage.h> 31#include <qimage.h>
32#include <qtimer.h> 32#include <qtimer.h>
33#include <qdrawutil.h> 33#include <qdrawutil.h>
34#include <qtooltip.h> 34#include <qtooltip.h>
35#include <qbitmap.h> 35#include <qbitmap.h>
36#include <qpopupmenu.h> 36#include <q3popupmenu.h>
37#include <qcursor.h> 37#include <qcursor.h>
38#include <qpainter.h> 38#include <qpainter.h>
39#include <qlayout.h> 39#include <qlayout.h>
40//Added by qt3to4:
41#include <QPixmap>
42#include <QMouseEvent>
43#include <QEvent>
40 44
41#include <kapplication.h> 45#include <kapplication.h>
42#include <kdebug.h> 46#include <kdebug.h>
43#include <kglobal.h> 47#include <kglobal.h>
44#include <kglobalsettings.h> 48#include <kglobalsettings.h>
45//US #include <kiconeffect.h> 49//US #include <kiconeffect.h>
46#include <kiconloader.h> 50#include <kiconloader.h>
47 51
48// needed to get our instance 52// needed to get our instance
49#include <kmainwindow.h> 53#include <kmainwindow.h>
50 54
51template class QIntDict<KToolBarButton>; 55template class Q3IntDict<KToolBarButton>;
52 56
53class KToolBarButtonPrivate 57class KToolBarButtonPrivate
54{ 58{
55public: 59public:
56 KToolBarButtonPrivate() 60 KToolBarButtonPrivate()
57 { 61 {
58 m_noStyle = false; 62 m_noStyle = false;
59 m_isSeparator = false; 63 m_isSeparator = false;
60 m_isRadio = false; 64 m_isRadio = false;
61 m_highlight = false; 65 m_highlight = false;
62 m_isRaised = false; 66 m_isRaised = false;
63 m_isActive = false; 67 m_isActive = false;
64 68
65 m_iconName = QString::null; 69 m_iconName = QString::null;
66 m_iconText = KToolBar::IconOnly; 70 m_iconText = KToolBar::IconOnly;
67 m_iconSize = 0; 71 m_iconSize = 0;
@@ -102,79 +106,79 @@ KToolBarButton::KToolBarButton( QWidget *_parent, const char *_name )
102 hide(); 106 hide();
103 d->m_isSeparator = true; 107 d->m_isSeparator = true;
104} 108}
105 109
106KToolBarButton::KToolBarButton( const QString& _icon, int _id, 110KToolBarButton::KToolBarButton( const QString& _icon, int _id,
107 QWidget *_parent, const char *_name, 111 QWidget *_parent, const char *_name,
108 const QString &_txt/*US, KInstance *_instance*/ ) 112 const QString &_txt/*US, KInstance *_instance*/ )
109 : QToolButton( _parent, _name ), d( 0 ) 113 : QToolButton( _parent, _name ), d( 0 )
110{ 114{
111 d = new KToolBarButtonPrivate; 115 d = new KToolBarButtonPrivate;
112 116
113 d->m_id = _id; 117 d->m_id = _id;
114 d->m_parent = (KToolBar*)_parent; 118 d->m_parent = (KToolBar*)_parent;
115 QToolButton::setTextLabel(_txt); 119 QToolButton::setTextLabel(_txt);
116//US d->m_instance = _instance; 120//US d->m_instance = _instance;
117 121
118 setFocusPolicy( NoFocus ); 122 setFocusPolicy( Qt::NoFocus );
119 123
120 // connect all of our slots and start trapping events 124 // connect all of our slots and start trapping events
121 connect(d->m_parent, SIGNAL( modechange() ), 125 connect(d->m_parent, SIGNAL( modechange() ),
122 this, SLOT( modeChange() )); 126 this, SLOT( modeChange() ));
123 127
124 connect(this, SIGNAL( clicked() ), 128 connect(this, SIGNAL( clicked() ),
125 this, SLOT( slotClicked() ) ); 129 this, SLOT( slotClicked() ) );
126 connect(this, SIGNAL( pressed() ), 130 connect(this, SIGNAL( pressed() ),
127 this, SLOT( slotPressed() ) ); 131 this, SLOT( slotPressed() ) );
128 connect(this, SIGNAL( released() ), 132 connect(this, SIGNAL( released() ),
129 this, SLOT( slotReleased() ) ); 133 this, SLOT( slotReleased() ) );
130 installEventFilter(this); 134 installEventFilter(this);
131 135
132 d->m_iconName = _icon; 136 d->m_iconName = _icon;
133 137
134 // do our initial setup 138 // do our initial setup
135 modeChange(); 139 modeChange();
136} 140}
137 141
138KToolBarButton::KToolBarButton( const QPixmap& pixmap, int _id, 142KToolBarButton::KToolBarButton( const QPixmap& pixmap, int _id,
139 QWidget *_parent, const char *name, 143 QWidget *_parent, const char *name,
140 const QString& txt) 144 const QString& txt)
141 : QToolButton( _parent, name ), d( 0 ) 145 : QToolButton( _parent, name ), d( 0 )
142{ 146{
143 d = new KToolBarButtonPrivate; 147 d = new KToolBarButtonPrivate;
144 148
145 d->m_id = _id; 149 d->m_id = _id;
146 d->m_parent = (KToolBar *) _parent; 150 d->m_parent = (KToolBar *) _parent;
147 QToolButton::setTextLabel(txt); 151 QToolButton::setTextLabel(txt);
148 152
149 setFocusPolicy( NoFocus ); 153 setFocusPolicy( Qt::NoFocus );
150 154
151 // connect all of our slots and start trapping events 155 // connect all of our slots and start trapping events
152 connect(d->m_parent, SIGNAL( modechange()), 156 connect(d->m_parent, SIGNAL( modechange()),
153 this, SLOT(modeChange())); 157 this, SLOT(modeChange()));
154 158
155 connect(this, SIGNAL( clicked() ), 159 connect(this, SIGNAL( clicked() ),
156 this, SLOT( slotClicked() )); 160 this, SLOT( slotClicked() ));
157 connect(this, SIGNAL( pressed() ), 161 connect(this, SIGNAL( pressed() ),
158 this, SLOT( slotPressed() )); 162 this, SLOT( slotPressed() ));
159 connect(this, SIGNAL( released() ), 163 connect(this, SIGNAL( released() ),
160 this, SLOT( slotReleased() )); 164 this, SLOT( slotReleased() ));
161 installEventFilter(this); 165 installEventFilter(this);
162 166
163 // set our pixmap and do our initial setup 167 // set our pixmap and do our initial setup
164 setIconSet( QIconSet( pixmap )); 168 setIconSet( QIcon( pixmap ));
165 modeChange(); 169 modeChange();
166} 170}
167 171
168KToolBarButton::~KToolBarButton() 172KToolBarButton::~KToolBarButton()
169{ 173{
170 delete d; d = 0; 174 delete d; d = 0;
171} 175}
172 176
173void KToolBarButton::modeChange() 177void KToolBarButton::modeChange()
174{ 178{
175 QSize mysize; 179 QSize mysize;
176 180
177 // grab a few global variables for use in this function and others 181 // grab a few global variables for use in this function and others
178 d->m_highlight = d->m_parent->highlight(); 182 d->m_highlight = d->m_parent->highlight();
179 d->m_iconText = d->m_parent->iconText(); 183 d->m_iconText = d->m_parent->iconText();
180 184
@@ -279,107 +283,107 @@ void KToolBarButton::setIcon( const QString &icon )
279{ 283{
280 d->m_iconName = icon; 284 d->m_iconName = icon;
281 d->m_iconSize = d->m_parent->iconSize(); 285 d->m_iconSize = d->m_parent->iconSize();
282 // QObject::name() return "const char *" instead of QString. 286 // QObject::name() return "const char *" instead of QString.
283 if (!strcmp(d->m_parent->name(), "mainToolBar")) 287 if (!strcmp(d->m_parent->name(), "mainToolBar"))
284/*US QToolButton::setIconSet( d->m_instance->iconLoader()->loadIconSet( 288/*US QToolButton::setIconSet( d->m_instance->iconLoader()->loadIconSet(
285 d->m_iconName, KIcon::MainToolbar, d->m_iconSize )); 289 d->m_iconName, KIcon::MainToolbar, d->m_iconSize ));
286*/ 290*/
287 QToolButton::setIconSet( KGlobal::iconLoader()->loadIconSet(d->m_iconName )); 291 QToolButton::setIconSet( KGlobal::iconLoader()->loadIconSet(d->m_iconName ));
288 else 292 else
289/*US QToolButton::setIconSet(d->m_instance->iconLoader()->loadIconSet( 293/*US QToolButton::setIconSet(d->m_instance->iconLoader()->loadIconSet(
290 d->m_iconName, KIcon::Toolbar, d->m_iconSize )); 294 d->m_iconName, KIcon::Toolbar, d->m_iconSize ));
291*/ 295*/
292 QToolButton::setIconSet(KGlobal::iconLoader()->loadIconSet(d->m_iconName)); 296 QToolButton::setIconSet(KGlobal::iconLoader()->loadIconSet(d->m_iconName));
293} 297}
294 298
295void KToolBarButton::setIconSet( const QIconSet &iconset ) 299void KToolBarButton::setIconSet( const QIcon &iconset )
296{ 300{
297 QToolButton::setIconSet( iconset ); 301 QToolButton::setIconSet( iconset );
298} 302}
299 303
300// remove? 304// remove?
301void KToolBarButton::setPixmap( const QPixmap &pixmap ) 305void KToolBarButton::setPixmap( const QPixmap &pixmap )
302{ 306{
303 if( pixmap.isNull()) // called by QToolButton 307 if( pixmap.isNull()) // called by QToolButton
304 { 308 {
305 QToolButton::setPixmap( pixmap ); 309 QToolButton::setPixmap( pixmap );
306 return; 310 return;
307 } 311 }
308 QIconSet set = iconSet(); 312 QIcon set = iconSet();
309 set.setPixmap( pixmap, QIconSet::Automatic, QIconSet::Active ); 313 set.setPixmap( pixmap, QIcon::Automatic, QIcon::Active );
310 QToolButton::setIconSet( set ); 314 QToolButton::setIconSet( set );
311} 315}
312 316
313void KToolBarButton::setDefaultPixmap( const QPixmap &pixmap ) 317void KToolBarButton::setDefaultPixmap( const QPixmap &pixmap )
314{ 318{
315 QIconSet set = iconSet(); 319 QIcon set = iconSet();
316 set.setPixmap( pixmap, QIconSet::Automatic, QIconSet::Normal ); 320 set.setPixmap( pixmap, QIcon::Automatic, QIcon::Normal );
317 QToolButton::setIconSet( set ); 321 QToolButton::setIconSet( set );
318} 322}
319 323
320void KToolBarButton::setDisabledPixmap( const QPixmap &pixmap ) 324void KToolBarButton::setDisabledPixmap( const QPixmap &pixmap )
321{ 325{
322 QIconSet set = iconSet(); 326 QIcon set = iconSet();
323 set.setPixmap( pixmap, QIconSet::Automatic, QIconSet::Disabled ); 327 set.setPixmap( pixmap, QIcon::Automatic, QIcon::Disabled );
324 QToolButton::setIconSet( set ); 328 QToolButton::setIconSet( set );
325} 329}
326 330
327void KToolBarButton::setDefaultIcon( const QString& icon ) 331void KToolBarButton::setDefaultIcon( const QString& icon )
328{ 332{
329 QIconSet set = iconSet(); 333 QIcon set = iconSet();
330 QPixmap pm; 334 QPixmap pm;
331 if (!strcmp(d->m_parent->name(), "mainToolBar")) 335 if (!strcmp(d->m_parent->name(), "mainToolBar"))
332 pm = /*US d->m_instance->iconLoader()*/KGlobal::iconLoader()->loadIcon( icon, KIcon::MainToolbar, 336 pm = /*US d->m_instance->iconLoader()*/KGlobal::iconLoader()->loadIcon( icon, KIcon::MainToolbar,
333 d->m_iconSize ); 337 d->m_iconSize );
334 else 338 else
335 pm = /*US d->m_instance->iconLoader()*/KGlobal::iconLoader()->loadIcon( icon, KIcon::Toolbar, 339 pm = /*US d->m_instance->iconLoader()*/KGlobal::iconLoader()->loadIcon( icon, KIcon::Toolbar,
336 d->m_iconSize ); 340 d->m_iconSize );
337 set.setPixmap( pm, QIconSet::Automatic, QIconSet::Normal ); 341 set.setPixmap( pm, QIcon::Automatic, QIcon::Normal );
338 QToolButton::setIconSet( set ); 342 QToolButton::setIconSet( set );
339} 343}
340 344
341void KToolBarButton::setDisabledIcon( const QString& icon ) 345void KToolBarButton::setDisabledIcon( const QString& icon )
342{ 346{
343 QIconSet set = iconSet(); 347 QIcon set = iconSet();
344 QPixmap pm; 348 QPixmap pm;
345 if (!strcmp(d->m_parent->name(), "mainToolBar")) 349 if (!strcmp(d->m_parent->name(), "mainToolBar"))
346 pm = /*US d->m_instance->iconLoader()*/ KGlobal::iconLoader()->loadIcon( icon, KIcon::MainToolbar, 350 pm = /*US d->m_instance->iconLoader()*/ KGlobal::iconLoader()->loadIcon( icon, KIcon::MainToolbar,
347 d->m_iconSize ); 351 d->m_iconSize );
348 else 352 else
349 pm = /*US d->m_instance->iconLoader()*/ KGlobal::iconLoader()->loadIcon( icon, KIcon::Toolbar, 353 pm = /*US d->m_instance->iconLoader()*/ KGlobal::iconLoader()->loadIcon( icon, KIcon::Toolbar,
350 d->m_iconSize ); 354 d->m_iconSize );
351 set.setPixmap( pm, QIconSet::Automatic, QIconSet::Disabled ); 355 set.setPixmap( pm, QIcon::Automatic, QIcon::Disabled );
352 QToolButton::setIconSet( set ); 356 QToolButton::setIconSet( set );
353} 357}
354 358
355QPopupMenu *KToolBarButton::popup() 359QMenu *KToolBarButton::popup()
356{ 360{
357 // obsolete 361 // obsolete
358 // KDE4: remove me 362 // KDE4: remove me
359 return QToolButton::popup(); 363 return QToolButton::popup();
360} 364}
361 365
362void KToolBarButton::setPopup(QPopupMenu *p, bool) 366void KToolBarButton::setPopup(Q3PopupMenu *p, bool)
363{ 367{
364 QToolButton::setPopup(p); 368 QToolButton::setPopup(p);
365 QToolButton::setPopupDelay(1); 369 QToolButton::setPopupDelay(1);
366} 370}
367 371
368 372
369void KToolBarButton::setDelayedPopup (QPopupMenu *p, bool) 373void KToolBarButton::setDelayedPopup (Q3PopupMenu *p, bool)
370{ 374{
371 QToolButton::setPopup(p); 375 QToolButton::setPopup(p);
372//US QToolButton::setPopupDelay(QApplication::startDragTime()); 376//US QToolButton::setPopupDelay(QApplication::startDragTime());
373} 377}
374 378
375void KToolBarButton::leaveEvent(QEvent *) 379void KToolBarButton::leaveEvent(QEvent *)
376{ 380{
377 if( d->m_isRaised || d->m_isActive ) 381 if( d->m_isRaised || d->m_isActive )
378 { 382 {
379 d->m_isRaised = false; 383 d->m_isRaised = false;
380 d->m_isActive = false; 384 d->m_isActive = false;
381 repaint(false); 385 repaint(false);
382 } 386 }
383 387
384 emit highlighted(d->m_id, false); 388 emit highlighted(d->m_id, false);
385} 389}
@@ -438,199 +442,209 @@ bool KToolBarButton::eventFilter(QObject *o, QEvent *ev)
438 return true; 442 return true;
439 443
440 // From Kai-Uwe Sattler <kus@iti.CS.Uni-Magdeburg.De> 444 // From Kai-Uwe Sattler <kus@iti.CS.Uni-Magdeburg.De>
441 if (ev->type() == QEvent::MouseButtonDblClick) 445 if (ev->type() == QEvent::MouseButtonDblClick)
442 { 446 {
443 emit doubleClicked(d->m_id); 447 emit doubleClicked(d->m_id);
444 return true; 448 return true;
445 } 449 }
446 } 450 }
447 451
448 return QToolButton::eventFilter(o, ev); 452 return QToolButton::eventFilter(o, ev);
449} 453}
450 454
451void KToolBarButton::drawButton( QPainter *_painter ) 455void KToolBarButton::drawButton( QPainter *_painter )
452{ 456{
453#ifdef DESKTOP_VERSION 457#ifdef DESKTOP_VERSION
454 QStyle::SFlags flags = QStyle::Style_Default; 458 QStyle::State flags = QStyle::State_None;
455 QStyle::SCFlags active = QStyle::SC_None; 459 QStyle::SubControls active = QStyle::SC_None;
456 460
457 if (isDown()) { 461 if (isDown()) {
458 flags |= QStyle::Style_Down; 462 flags |= QStyle::State_DownArrow;
459 active |= QStyle::SC_ToolButton; 463 active |= QStyle::SC_ToolButton;
460 } 464 }
461 if (isEnabled()) flags |= QStyle::Style_Enabled; 465 if (isEnabled()) flags |= QStyle::State_Enabled;
462 if (isOn()) flags |= QStyle::Style_On; 466 if (isOn()) flags |= QStyle::State_On;
463 if (isEnabled() && d->m_isRaised)flags |= QStyle::Style_Raised; 467 if (isEnabled() && d->m_isRaised)flags |= QStyle::State_Raised;
464 if (hasFocus())flags |= QStyle::Style_HasFocus; 468 if (hasFocus())flags |= QStyle::State_HasFocus;
469
470 QStyleOptionToolButton qsotb;
471 qsotb.initFrom(this);
472 qsotb.state = flags;
473 qsotb.activeSubControls = active;
474 qsotb.rect = rect();
475 qsotb.palette = palette();
465 476
466 // Draw a styled toolbutton 477 // Draw a styled toolbutton
467 style().drawComplexControl(QStyle::CC_ToolButton, _painter, this, rect(), 478 style()->drawComplexControl(QStyle::CC_ToolButton, &qsotb, _painter, this);
468 colorGroup(), flags, QStyle::SC_ToolButton, active, QStyleOption());
469 479
470#else 480#else
471 style().drawToolButton(_painter, rect().x(), rect().y(), rect().width(), rect().height(), colorGroup()); 481 style().drawToolButton(_painter, rect().x(), rect().y(), rect().width(), rect().height(), colorGroup());
472#endif 482#endif
473 int dx, dy; 483 int dx, dy;
474 QFont tmp_font(KGlobalSettings::toolBarFont()); 484 QFont tmp_font(KGlobalSettings::toolBarFont());
475 QFontMetrics fm(tmp_font); 485 QFontMetrics fm(tmp_font);
476 QRect textRect; 486 QRect textRect;
477 int textFlags = 0; 487 int textFlags = 0;
478 488
479 if (d->m_iconText == KToolBar::IconOnly) // icon only 489 if (d->m_iconText == KToolBar::IconOnly) // icon only
480 { 490 {
481/*US 491/*US
482 QPixmap pixmap = iconSet().pixmap( QIconSet::Automatic, 492 QPixmap pixmap = iconSet().pixmap( QIconSet::Automatic,
483 isEnabled() ? (d->m_isActive ? QIconSet::Active : QIconSet::Normal) : 493 isEnabled() ? (d->m_isActive ? QIconSet::Active : QIconSet::Normal) :
484 QIconSet::Disabled, 494 QIconSet::Disabled,
485 isOn() ? QIconSet::On : QIconSet::Off ); 495 isOn() ? QIconSet::On : QIconSet::Off );
486*/ 496*/
487 QPixmap pixmap = iconSet().pixmap( QIconSet::Automatic, 497 QPixmap pixmap = iconSet().pixmap( QIcon::Automatic,
488 isEnabled() ? (d->m_isActive ? QIconSet::Active : QIconSet::Normal) : 498 isEnabled() ? (d->m_isActive ? QIcon::Active : QIcon::Normal) :
489 QIconSet::Disabled); 499 QIcon::Disabled);
490 500
491 if( !pixmap.isNull()) 501 if( !pixmap.isNull())
492 { 502 {
493 dx = ( width() - pixmap.width() ) / 2; 503 dx = ( width() - pixmap.width() ) / 2;
494 dy = ( height() - pixmap.height() ) / 2; 504 dy = ( height() - pixmap.height() ) / 2;
495 if ( isDown() /*US && style().styleHint(QStyle::SH_GUIStyle) == WindowsStyle*/ ) 505 if ( isDown() /*US && style().styleHint(QStyle::SH_GUIStyle) == WindowsStyle*/ )
496 { 506 {
497 ++dx; 507 ++dx;
498 ++dy; 508 ++dy;
499 } 509 }
500 _painter->drawPixmap( dx, dy, pixmap ); 510 _painter->drawPixmap( dx, dy, pixmap );
501 } 511 }
502 } 512 }
503 else if (d->m_iconText == KToolBar::IconTextRight) // icon and text (if any) 513 else if (d->m_iconText == KToolBar::IconTextRight) // icon and text (if any)
504 { 514 {
505/*US 515/*US
506 QPixmap pixmap = iconSet().pixmap( QIconSet::Automatic, 516 QPixmap pixmap = iconSet().pixmap( QIconSet::Automatic,
507 isEnabled() ? (d->m_isActive ? QIconSet::Active : QIconSet::Normal) : 517 isEnabled() ? (d->m_isActive ? QIconSet::Active : QIconSet::Normal) :
508 QIconSet::Disabled, 518 QIconSet::Disabled,
509 isOn() ? QIconSet::On : QIconSet::Off ); 519 isOn() ? QIconSet::On : QIconSet::Off );
510*/ 520*/
511 QPixmap pixmap = iconSet().pixmap( QIconSet::Automatic, 521 QPixmap pixmap = iconSet().pixmap( QIcon::Automatic,
512 isEnabled() ? (d->m_isActive ? QIconSet::Active : QIconSet::Normal) : 522 isEnabled() ? (d->m_isActive ? QIcon::Active : QIcon::Normal) :
513 QIconSet::Disabled); 523 QIcon::Disabled);
514 524
515 if( !pixmap.isNull()) 525 if( !pixmap.isNull())
516 { 526 {
517 dx = 4; 527 dx = 4;
518 dy = ( height() - pixmap.height() ) / 2; 528 dy = ( height() - pixmap.height() ) / 2;
519 if ( isDown() /*US && style().styleHint(QStyle::SH_GUIStyle) == WindowsStyle*/ ) 529 if ( isDown() /*US && style().styleHint(QStyle::SH_GUIStyle) == WindowsStyle*/ )
520 { 530 {
521 ++dx; 531 ++dx;
522 ++dy; 532 ++dy;
523 } 533 }
524 _painter->drawPixmap( dx, dy, pixmap ); 534 _painter->drawPixmap( dx, dy, pixmap );
525 } 535 }
526 536
527 if (!textLabel().isNull()) 537 if (!textLabel().isNull())
528 { 538 {
529 textFlags = AlignVCenter|AlignLeft; 539 textFlags = Qt::AlignVCenter|Qt::AlignLeft;
530 if (!pixmap.isNull()) 540 if (!pixmap.isNull())
531 dx = 4 + pixmap.width() + 2; 541 dx = 4 + pixmap.width() + 2;
532 else 542 else
533 dx = 4; 543 dx = 4;
534 dy = 0; 544 dy = 0;
535 if ( isDown() /*US && style().styleHint(QStyle::SH_GUIStyle) == WindowsStyle*/ ) 545 if ( isDown() /*US && style().styleHint(QStyle::SH_GUIStyle) == WindowsStyle*/ )
536 { 546 {
537 ++dx; 547 ++dx;
538 ++dy; 548 ++dy;
539 } 549 }
540 textRect = QRect(dx, dy, width()-dx, height()); 550 textRect = QRect(dx, dy, width()-dx, height());
541 } 551 }
542 } 552 }
543 else if (d->m_iconText == KToolBar::TextOnly) 553 else if (d->m_iconText == KToolBar::TextOnly)
544 { 554 {
545 if (!textLabel().isNull()) 555 if (!textLabel().isNull())
546 { 556 {
547 textFlags = AlignVCenter|AlignLeft; 557 textFlags = Qt::AlignVCenter|Qt::AlignLeft;
548 dx = (width() - fm.width(textLabel())) / 2; 558 dx = (width() - fm.width(textLabel())) / 2;
549 dy = (height() - fm.lineSpacing()) / 2; 559 dy = (height() - fm.lineSpacing()) / 2;
550 if ( isDown() /*US && style().styleHint(QStyle::SH_GUIStyle) == WindowsStyle*/ ) 560 if ( isDown() /*US && style().styleHint(QStyle::SH_GUIStyle) == WindowsStyle*/ )
551 { 561 {
552 ++dx; 562 ++dx;
553 ++dy; 563 ++dy;
554 } 564 }
555 textRect = QRect( dx, dy, fm.width(textLabel()), fm.lineSpacing() ); 565 textRect = QRect( dx, dy, fm.width(textLabel()), fm.lineSpacing() );
556 } 566 }
557 } 567 }
558 else if (d->m_iconText == KToolBar::IconTextBottom) 568 else if (d->m_iconText == KToolBar::IconTextBottom)
559 { 569 {
560/*US 570/*US
561 QPixmap pixmap = iconSet().pixmap( QIconSet::Automatic, 571 QPixmap pixmap = iconSet().pixmap( QIconSet::Automatic,
562 isEnabled() ? (d->m_isActive ? QIconSet::Active : QIconSet::Normal) : 572 isEnabled() ? (d->m_isActive ? QIconSet::Active : QIconSet::Normal) :
563 QIconSet::Disabled, 573 QIconSet::Disabled,
564 isOn() ? QIconSet::On : QIconSet::Off ); 574 isOn() ? QIconSet::On : QIconSet::Off );
565*/ 575*/
566 QPixmap pixmap = iconSet().pixmap( QIconSet::Automatic, 576 QPixmap pixmap = iconSet().pixmap( QIcon::Automatic,
567 isEnabled() ? (d->m_isActive ? QIconSet::Active : QIconSet::Normal) : 577 isEnabled() ? (d->m_isActive ? QIcon::Active : QIcon::Normal) :
568 QIconSet::Disabled); 578 QIcon::Disabled);
569 579
570 if( !pixmap.isNull()) 580 if( !pixmap.isNull())
571 { 581 {
572 dx = (width() - pixmap.width()) / 2; 582 dx = (width() - pixmap.width()) / 2;
573 dy = (height() - fm.lineSpacing() - pixmap.height()) / 2; 583 dy = (height() - fm.lineSpacing() - pixmap.height()) / 2;
574 if ( isDown() /*US && style().styleHint(QStyle::SH_GUIStyle) == WindowsStyle*/ ) 584 if ( isDown() /*US && style().styleHint(QStyle::SH_GUIStyle) == WindowsStyle*/ )
575 { 585 {
576 ++dx; 586 ++dx;
577 ++dy; 587 ++dy;
578 } 588 }
579 _painter->drawPixmap( dx, dy, pixmap ); 589 _painter->drawPixmap( dx, dy, pixmap );
580 } 590 }
581 591
582 if (!textLabel().isNull()) 592 if (!textLabel().isNull())
583 { 593 {
584 textFlags = AlignBottom|AlignHCenter; 594 textFlags = Qt::AlignBottom|Qt::AlignHCenter;
585 dx = (width() - fm.width(textLabel())) / 2; 595 dx = (width() - fm.width(textLabel())) / 2;
586 dy = height() - fm.lineSpacing() - 4; 596 dy = height() - fm.lineSpacing() - 4;
587 597
588 if ( isDown() /*US && style().styleHint(QStyle::SH_GUIStyle) == WindowsStyle*/ ) 598 if ( isDown() /*US && style().styleHint(QStyle::SH_GUIStyle) == WindowsStyle*/ )
589 { 599 {
590 ++dx; 600 ++dx;
591 ++dy; 601 ++dy;
592 } 602 }
593 textRect = QRect( dx, dy, fm.width(textLabel()), fm.lineSpacing() ); 603 textRect = QRect( dx, dy, fm.width(textLabel()), fm.lineSpacing() );
594 } 604 }
595 } 605 }
596 606
597 // Draw the text at the position given by textRect, and using textFlags 607 // Draw the text at the position given by textRect, and using textFlags
598 if (!textLabel().isNull() && !textRect.isNull()) 608 if (!textLabel().isNull() && !textRect.isNull())
599 { 609 {
600 _painter->setFont(KGlobalSettings::toolBarFont()); 610 _painter->setFont(KGlobalSettings::toolBarFont());
601 if (!isEnabled()) 611 if (!isEnabled())
602 _painter->setPen(palette().disabled().dark()); 612 _painter->setPen(palette().disabled().dark());
603 else if(d->m_isRaised) 613 else if(d->m_isRaised)
604 _painter->setPen(KGlobalSettings::toolBarHighlightColor()); 614 _painter->setPen(KGlobalSettings::toolBarHighlightColor());
605 else 615 else
606 _painter->setPen( colorGroup().buttonText() ); 616 _painter->setPen( colorGroup().buttonText() );
607 _painter->drawText(textRect, textFlags, textLabel()); 617 _painter->drawText(textRect, textFlags, textLabel());
608 } 618 }
609 619
610 if (QToolButton::popup()) 620 if (QToolButton::popup())
611 { 621 {
612#ifdef DESKTOP_VERSION 622#ifdef DESKTOP_VERSION
613 QStyle::SFlags arrowFlags = QStyle::Style_Default; 623 QStyle::State arrowFlags = QStyle::State_None;
624
625 if (isDown())arrowFlags |= QStyle::State_DownArrow;
626 if (isEnabled()) arrowFlags |= QStyle::State_Enabled;
614 627
615 if (isDown())arrowFlags |= QStyle::Style_Down; 628 QStyleOption qso;
616 if (isEnabled()) arrowFlags |= QStyle::Style_Enabled; 629 qso.initFrom(this);
630 qso.state = arrowFlags;
631 qso.rect = QRect(width()-7, height()-7, 7, 7);
632 qso.palette = palette();
617 633
618 style().drawPrimitive(QStyle::PE_ArrowDown, _painter, 634 style()->drawPrimitive(QStyle::PE_IndicatorArrowDown, &qso, _painter);
619 QRect(width()-7, height()-7, 7, 7), colorGroup(),
620 arrowFlags, QStyleOption() );
621#else 635#else
622 style().drawArrow(_painter, Qt::DownArrow, isDown(), 636 style().drawArrow(_painter, Qt::DownArrow, isDown(),
623 width()-7, height()-7, 7, 7, colorGroup(), isEnabled() ); 637 width()-7, height()-7, 7, 7, colorGroup(), isEnabled() );
624#endif 638#endif
625 639
626 } 640 }
627} 641}
628 642
629void KToolBarButton::paletteChange(const QPalette &) 643void KToolBarButton::paletteChange(const QPalette &)
630{ 644{
631 if(!d->m_isSeparator) 645 if(!d->m_isSeparator)
632 { 646 {
633 modeChange(); 647 modeChange();
634 repaint(false); // no need to delete it first therefore only false 648 repaint(false); // no need to delete it first therefore only false
635 } 649 }
636} 650}
diff --git a/microkde/kdeui/ktoolbarbutton.h b/microkde/kdeui/ktoolbarbutton.h
index 9aaa13c..ad02e4e 100644
--- a/microkde/kdeui/ktoolbarbutton.h
+++ b/microkde/kdeui/ktoolbarbutton.h
@@ -13,41 +13,44 @@
13 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 Library General Public License for more details. 15 Library General Public License for more details.
16 16
17 You should have received a copy of the GNU Library General Public License 17 You should have received a copy of the GNU Library General Public License
18 along with this library; see the file COPYING.LIB. If not, write to 18 along with this library; see the file COPYING.LIB. If not, write to
19 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 19 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
20 Boston, MA 02111-1307, USA. 20 Boston, MA 02111-1307, USA.
21*/ 21*/
22 22
23// $Id$ 23// $Id$
24#ifndef _KTOOLBARBUTTON_H 24#ifndef _KTOOLBARBUTTON_H
25#define _KTOOLBARBUTTON_H 25#define _KTOOLBARBUTTON_H
26 26
27#include <qpixmap.h> 27#include <qpixmap.h>
28#include <qtoolbutton.h> 28#include <qtoolbutton.h>
29#include <qintdict.h> 29#include <q3intdict.h>
30#include <qstring.h> 30#include <qstring.h>
31//Added by qt3to4:
32#include <QEvent>
33#include <Q3PopupMenu>
31#include <kglobal.h> 34#include <kglobal.h>
32 35
33class KToolBar; 36class KToolBar;
34class KToolBarButtonPrivate; 37class KToolBarButtonPrivate;
35//USclass KInstance; 38//USclass KInstance;
36class QEvent; 39class QEvent;
37class QPopupMenu; 40class Q3PopupMenu;
38class QPainter; 41class QPainter;
39 42
40/** 43/**
41 * A toolbar button. This is used internally by @ref KToolBar, use the 44 * A toolbar button. This is used internally by @ref KToolBar, use the
42 * KToolBar methods instead. 45 * KToolBar methods instead.
43 * @internal 46 * @internal
44 */ 47 */
45class KToolBarButton : public QToolButton 48class KToolBarButton : public QToolButton
46{ 49{
47 Q_OBJECT 50 Q_OBJECT
48 51
49public: 52public:
50 /** 53 /**
51 * Construct a button with an icon loaded by the button itself. 54 * Construct a button with an icon loaded by the button itself.
52 * This will trust the button to load the correct icon with the 55 * This will trust the button to load the correct icon with the
53 * correct size. 56 * correct size.
@@ -137,33 +140,33 @@ public:
137 * with the correct size. This function is preferred over @ref setIconSet 140 * with the correct size. This function is preferred over @ref setIconSet
138 * 141 *
139 * @param icon The name of the icon 142 * @param icon The name of the icon
140 */ 143 */
141 virtual void setIcon(const QString &icon); 144 virtual void setIcon(const QString &icon);
142 145
143 /// @since 3.1 146 /// @since 3.1
144 virtual void setIcon( const QPixmap &pixmap ) 147 virtual void setIcon( const QPixmap &pixmap )
145 { QToolButton::setIcon( pixmap ); } 148 { QToolButton::setIcon( pixmap ); }
146 149
147 /** 150 /**
148 * Set the pixmaps for this toolbar button from a QIconSet. 151 * Set the pixmaps for this toolbar button from a QIconSet.
149 * If you call this you don't need to call any of the other methods 152 * If you call this you don't need to call any of the other methods
150 * that set icons or pixmaps. 153 * that set icons or pixmaps.
151 * @param iconset The iconset to use 154 * @param iconset The iconset to use
152 */ 155 */
153 virtual void setIconSet( const QIconSet &iconset ); 156 virtual void setIconSet( const QIcon &iconset );
154 157
155#ifndef KDE_NO_COMPAT 158#ifndef KDE_NO_COMPAT
156 /** 159 /**
157 * @deprecated 160 * @deprecated
158 * Set the active icon for this button. The pixmap itself is loaded 161 * Set the active icon for this button. The pixmap itself is loaded
159 * internally based on the icon size... .. the disabled and default 162 * internally based on the icon size... .. the disabled and default
160 * pixmaps, however will only be constructed if @ref #generate is 163 * pixmaps, however will only be constructed if @ref #generate is
161 * true. This function is preferred over @ref setPixmap 164 * true. This function is preferred over @ref setPixmap
162 * 165 *
163 * @param icon The name of the active icon 166 * @param icon The name of the active icon
164 * @param generate If true, then the other icons are automagically 167 * @param generate If true, then the other icons are automagically
165 * generated from this one 168 * generated from this one
166 */ 169 */
167 void setIcon(const QString &icon, bool /*generate*/ ) { setIcon( icon ); } 170 void setIcon(const QString &icon, bool /*generate*/ ) { setIcon( icon ); }
168 171
169 /** 172 /**
@@ -196,59 +199,59 @@ public:
196 * Toggle this button 199 * Toggle this button
197 */ 200 */
198 void toggle(); 201 void toggle();
199 202
200 /** 203 /**
201 * Turn this button into a toggle button or disable the toggle 204 * Turn this button into a toggle button or disable the toggle
202 * aspects of it. This does not toggle the button itself. 205 * aspects of it. This does not toggle the button itself.
203 * Use @ref toggle() for that. 206 * Use @ref toggle() for that.
204 * 207 *
205 * @param toggle true or false 208 * @param toggle true or false
206 */ 209 */
207 void setToggle(bool toggle = true); 210 void setToggle(bool toggle = true);
208 211
209 /** 212 /**
210 * Return a pointer to this button's popup menu (if it exists) 213 * Return a pointer to this button's popup menu (if it exists)
211 */ 214 */
212 QPopupMenu *popup(); 215 QMenu *popup();
213 216
214 /** 217 /**
215 * Returns the button's id. 218 * Returns the button's id.
216 * @since 3.2 219 * @since 3.2
217 */ 220 */
218 int id() const; 221 int id() const;
219 222
220 /** 223 /**
221 * Give this button a popup menu. There will not be a delay when 224 * Give this button a popup menu. There will not be a delay when
222 * you press the button. Use @ref setDelayedPopup if you want that 225 * you press the button. Use @ref setDelayedPopup if you want that
223 * behavior. 226 * behavior.
224 * 227 *
225 * @param p The new popup menu 228 * @param p The new popup menu
226 */ 229 */
227 void setPopup (QPopupMenu *p, bool unused = false); 230 void setPopup (Q3PopupMenu *p, bool unused = false);
228 231
229 /** 232 /**
230 * Gives this button a delayed popup menu. 233 * Gives this button a delayed popup menu.
231 * 234 *
232 * This function allows you to add a delayed popup menu to the button. 235 * This function allows you to add a delayed popup menu to the button.
233 * The popup menu is then only displayed when the button is pressed and 236 * The popup menu is then only displayed when the button is pressed and
234 * held down for about half a second. 237 * held down for about half a second.
235 * 238 *
236 * @param p the new popup menu 239 * @param p the new popup menu
237 */ 240 */
238 void setDelayedPopup(QPopupMenu *p, bool unused = false); 241 void setDelayedPopup(Q3PopupMenu *p, bool unused = false);
239 242
240 /** 243 /**
241 * Turn this button into a radio button 244 * Turn this button into a radio button
242 * 245 *
243 * @param f true or false 246 * @param f true or false
244 */ 247 */
245 void setRadio(bool f = true); 248 void setRadio(bool f = true);
246 249
247 /** 250 /**
248 * Toolbar buttons naturally will assume the global styles 251 * Toolbar buttons naturally will assume the global styles
249 * concerning icons, icons sizes, etc. You can use this function to 252 * concerning icons, icons sizes, etc. You can use this function to
250 * explicitely turn this off, if you like. 253 * explicitely turn this off, if you like.
251 * 254 *
252 * @param no_style Will disable styles if true 255 * @param no_style Will disable styles if true
253 */ 256 */
254 void setNoStyle(bool no_style = true); 257 void setNoStyle(bool no_style = true);
@@ -290,24 +293,24 @@ protected slots:
290 void slotPressed(); 293 void slotPressed();
291 void slotReleased(); 294 void slotReleased();
292 void slotToggled(); 295 void slotToggled();
293 void slotDelayTimeout(); 296 void slotDelayTimeout();
294 297
295protected: 298protected:
296 virtual void virtual_hook( int id, void* data ); 299 virtual void virtual_hook( int id, void* data );
297private: 300private:
298 KToolBarButtonPrivate *d; 301 KToolBarButtonPrivate *d;
299}; 302};
300 303
301/** 304/**
302* List of @ref KToolBarButton objects. 305* List of @ref KToolBarButton objects.
303* @internal 306* @internal
304* @version $Id$ 307* @version $Id$
305*/ 308*/
306class KToolBarButtonList : public QIntDict<KToolBarButton> 309class KToolBarButtonList : public Q3IntDict<KToolBarButton>
307{ 310{
308public: 311public:
309 KToolBarButtonList(); 312 KToolBarButtonList();
310 ~KToolBarButtonList() {} 313 ~KToolBarButtonList() {}
311}; 314};
312 315
313#endif 316#endif
diff --git a/microkde/kdeui/ktoolbarhandler.cpp b/microkde/kdeui/ktoolbarhandler.cpp
index 7b97233..4d3ace7 100644
--- a/microkde/kdeui/ktoolbarhandler.cpp
+++ b/microkde/kdeui/ktoolbarhandler.cpp
@@ -5,131 +5,133 @@
5 modify it under the terms of the GNU Library General Public 5 modify it under the terms of the GNU Library General Public
6 License version 2 as published by the Free Software Foundation. 6 License version 2 as published by the Free Software Foundation.
7 7
8 This library is distributed in the hope that it will be useful, 8 This library is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of 9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 Library General Public License for more details. 11 Library General Public License for more details.
12 12
13 You should have received a copy of the GNU Library General Public License 13 You should have received a copy of the GNU Library General Public License
14 along with this library; see the file COPYING.LIB. If not, write to 14 along with this library; see the file COPYING.LIB. If not, write to
15 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 15 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
16 Boston, MA 02111-1307, USA. 16 Boston, MA 02111-1307, USA.
17*/ 17*/
18 18
19#include "ktoolbarhandler.h" 19#include "ktoolbarhandler.h"
20 20
21#include <qpopupmenu.h> 21#include <q3popupmenu.h>
22//Added by qt3to4:
23#include <Q3PtrList>
22#include <kapplication.h> 24#include <kapplication.h>
23#include <ktoolbar.h> 25#include <ktoolbar.h>
24#include <kmainwindow.h> 26#include <kmainwindow.h>
25#include <klocale.h> 27#include <klocale.h>
26#include <kaction.h> 28#include <kaction.h>
27#include <assert.h> 29#include <assert.h>
28 30
29namespace 31namespace
30{ 32{
31 const char *actionListName = "show_menu_and_toolbar_actionlist"; 33 const char *actionListName = "show_menu_and_toolbar_actionlist";
32 34
33 const char *guiDescription = "" 35 const char *guiDescription = ""
34 "<!DOCTYPE kpartgui><kpartgui name=\"StandardToolBarMenuHandler\">" 36 "<!DOCTYPE kpartgui><kpartgui name=\"StandardToolBarMenuHandler\">"
35 "<MenuBar>" 37 "<MenuBar>"
36 " <Menu name=\"settings\">" 38 " <Menu name=\"settings\">"
37 " <ActionList name=\"%1\" />" 39 " <ActionList name=\"%1\" />"
38 " </Menu>" 40 " </Menu>"
39 "</MenuBar>" 41 "</MenuBar>"
40 "</kpartgui>"; 42 "</kpartgui>";
41 43
42 const char *resourceFileName = "barhandler.rc"; 44 const char *resourceFileName = "barhandler.rc";
43 45
44 class BarActionBuilder 46 class BarActionBuilder
45 { 47 {
46 public: 48 public:
47 BarActionBuilder( KActionCollection *actionCollection, KMainWindow *mainWindow, QPtrList<KToolBar> &oldToolBarList ) 49 BarActionBuilder( KActionCollection *actionCollection, KMainWindow *mainWindow, Q3PtrList<KToolBar> &oldToolBarList )
48 : m_actionCollection( actionCollection ), m_mainWindow( mainWindow ), m_needsRebuild( false ) 50 : m_actionCollection( actionCollection ), m_mainWindow( mainWindow ), m_needsRebuild( false )
49 { 51 {
50/*US 52/*US
51 QPtrList<QDockWindow> dockWindows = m_mainWindow->dockWindows(); 53 QPtrList<QDockWindow> dockWindows = m_mainWindow->dockWindows();
52 QPtrListIterator<QDockWindow> dockWindowIt( dockWindows ); 54 QPtrListIterator<QDockWindow> dockWindowIt( dockWindows );
53 for ( ; dockWindowIt.current(); ++dockWindowIt ) { 55 for ( ; dockWindowIt.current(); ++dockWindowIt ) {
54 56
55//US KToolBar *toolBar = dynamic_cast<KToolBar *>( dockWindowIt.current() ); 57//US KToolBar *toolBar = dynamic_cast<KToolBar *>( dockWindowIt.current() );
56 KToolBar *toolBar = (KToolBar *)( dockWindowIt.current() ); 58 KToolBar *toolBar = (KToolBar *)( dockWindowIt.current() );
57 if ( !toolBar ) 59 if ( !toolBar )
58 continue; 60 continue;
59 61
60 if ( oldToolBarList.findRef( toolBar ) == -1 ) 62 if ( oldToolBarList.findRef( toolBar ) == -1 )
61 m_needsRebuild = true; 63 m_needsRebuild = true;
62 64
63 m_toolBars.append( toolBar ); 65 m_toolBars.append( toolBar );
64 } 66 }
65*/ 67*/
66 if ( !m_needsRebuild ) 68 if ( !m_needsRebuild )
67 m_needsRebuild = ( oldToolBarList.count() != m_toolBars.count() ); 69 m_needsRebuild = ( oldToolBarList.count() != m_toolBars.count() );
68 70
69 } 71 }
70 72
71 bool needsRebuild() const { return m_needsRebuild; } 73 bool needsRebuild() const { return m_needsRebuild; }
72 74
73 QPtrList<KAction> create() 75 Q3PtrList<KAction> create()
74 { 76 {
75 if ( !m_needsRebuild ) 77 if ( !m_needsRebuild )
76 return QPtrList<KAction>(); 78 return Q3PtrList<KAction>();
77 79
78 QPtrListIterator<KToolBar> toolBarIt( m_toolBars ); 80 Q3PtrListIterator<KToolBar> toolBarIt( m_toolBars );
79 for ( ; toolBarIt.current(); ++toolBarIt ) 81 for ( ; toolBarIt.current(); ++toolBarIt )
80 handleToolBar( toolBarIt.current() ); 82 handleToolBar( toolBarIt.current() );
81 83
82 QPtrList<KAction> actions; 84 Q3PtrList<KAction> actions;
83 85
84 if ( m_toolBarActions.count() == 0 ) 86 if ( m_toolBarActions.count() == 0 )
85 return actions; 87 return actions;
86 88
87 if ( m_toolBarActions.count() == 1 ) { 89 if ( m_toolBarActions.count() == 1 ) {
88 m_toolBarActions.getFirst()->setText( i18n( "Show Toolbar" ) ); 90 m_toolBarActions.getFirst()->setText( i18n( "Show Toolbar" ) );
89 return m_toolBarActions; 91 return m_toolBarActions;
90 } 92 }
91 93
92 KActionMenu *menuAction = new KActionMenu( i18n( "Toolbars" ), m_actionCollection, "toolbars_submenu_action" ); 94 KActionMenu *menuAction = new KActionMenu( i18n( "Toolbars" ), m_actionCollection, "toolbars_submenu_action" );
93 95
94 QPtrListIterator<KAction> actionIt( m_toolBarActions ); 96 Q3PtrListIterator<KAction> actionIt( m_toolBarActions );
95 for ( ; actionIt.current(); ++actionIt ) 97 for ( ; actionIt.current(); ++actionIt )
96 menuAction->insert( actionIt.current() ); 98 menuAction->insert( actionIt.current() );
97 99
98 actions.append( menuAction ); 100 actions.append( menuAction );
99 return actions; 101 return actions;
100 } 102 }
101 103
102 const QPtrList<KToolBar> &toolBars() const { return m_toolBars; } 104 const Q3PtrList<KToolBar> &toolBars() const { return m_toolBars; }
103 105
104 private: 106 private:
105 void handleToolBar( KToolBar *toolBar ) 107 void handleToolBar( KToolBar *toolBar )
106 { 108 {
107 KAction *action = new KToggleToolBarAction( toolBar, 109 KAction *action = new KToggleToolBarAction( toolBar,
108 i18n( "Show %1" ).arg( toolBar->label() ), 110 i18n( "Show %1" ).arg( toolBar->label() ),
109 m_actionCollection, 111 m_actionCollection,
110 toolBar->name() ); 112 toolBar->name() );
111 113
112 m_toolBarActions.append( action ); 114 m_toolBarActions.append( action );
113 } 115 }
114 116
115 KActionCollection *m_actionCollection; 117 KActionCollection *m_actionCollection;
116 KMainWindow *m_mainWindow; 118 KMainWindow *m_mainWindow;
117 119
118 QPtrList<KToolBar> m_toolBars; 120 Q3PtrList<KToolBar> m_toolBars;
119 QPtrList<KAction> m_toolBarActions; 121 Q3PtrList<KAction> m_toolBarActions;
120 122
121 bool m_needsRebuild : 1; 123 bool m_needsRebuild : 1;
122 }; 124 };
123} 125}
124 126
125using namespace KDEPrivate; 127using namespace KDEPrivate;
126 128
127ToolBarHandler::ToolBarHandler( KMainWindow *mainWindow, const char *name ) 129ToolBarHandler::ToolBarHandler( KMainWindow *mainWindow, const char *name )
128 : QObject( mainWindow, name ), KXMLGUIClient( mainWindow ) 130 : QObject( mainWindow, name ), KXMLGUIClient( mainWindow )
129{ 131{
130 init( mainWindow ); 132 init( mainWindow );
131} 133}
132 134
133ToolBarHandler::ToolBarHandler( KMainWindow *mainWindow, QObject *parent, const char *name ) 135ToolBarHandler::ToolBarHandler( KMainWindow *mainWindow, QObject *parent, const char *name )
134 : QObject( parent, name ), KXMLGUIClient( mainWindow ) 136 : QObject( parent, name ), KXMLGUIClient( mainWindow )
135{ 137{
@@ -211,43 +213,43 @@ void ToolBarHandler::init( KMainWindow *mainWindow )
211 /* 213 /*
212 setXMLFile( resourceFileName ); 214 setXMLFile( resourceFileName );
213 */ 215 */
214/*US 216/*US
215 if ( domDocument().documentElement().isNull() ) { 217 if ( domDocument().documentElement().isNull() ) {
216 218
217 QString completeDescription = QString::fromLatin1( guiDescription ) 219 QString completeDescription = QString::fromLatin1( guiDescription )
218 .arg( actionListName ); 220 .arg( actionListName );
219 221
220 setXML( completeDescription, false*/ /*merge*/ /*); 222 setXML( completeDescription, false*/ /*merge*/ /*);
221 } 223 }
222*/ 224*/
223} 225}
224 226
225void ToolBarHandler::connectToActionContainers() 227void ToolBarHandler::connectToActionContainers()
226{ 228{
227 QPtrListIterator<KAction> actionIt( m_actions ); 229 Q3PtrListIterator<KAction> actionIt( m_actions );
228 for ( ; actionIt.current(); ++actionIt ) 230 for ( ; actionIt.current(); ++actionIt )
229 connectToActionContainer( actionIt.current() ); 231 connectToActionContainer( actionIt.current() );
230} 232}
231 233
232void ToolBarHandler::connectToActionContainer( KAction *action ) 234void ToolBarHandler::connectToActionContainer( KAction *action )
233{ 235{
234 uint containerCount = action->containerCount(); 236 uint containerCount = action->containerCount();
235 for ( uint i = 0; i < containerCount; ++i ) 237 for ( uint i = 0; i < containerCount; ++i )
236 connectToActionContainer( action->container( i ) ); 238 connectToActionContainer( action->container( i ) );
237} 239}
238 240
239void ToolBarHandler::connectToActionContainer( QWidget *container ) 241void ToolBarHandler::connectToActionContainer( QWidget *container )
240{ 242{
241//US QPopupMenu *popupMenu = dynamic_cast<QPopupMenu *>( container ); 243//US QPopupMenu *popupMenu = dynamic_cast<QPopupMenu *>( container );
242 QPopupMenu *popupMenu = (QPopupMenu *)( container ); 244 Q3PopupMenu *popupMenu = (Q3PopupMenu *)( container );
243 if ( !popupMenu ) 245 if ( !popupMenu )
244 return; 246 return;
245 247
246 connect( popupMenu, SIGNAL( aboutToShow() ), 248 connect( popupMenu, SIGNAL( aboutToShow() ),
247 this, SLOT( setupActions() ) ); 249 this, SLOT( setupActions() ) );
248} 250}
249 251
250//US #include "ktoolbarhandler.moc" 252//US #include "ktoolbarhandler.moc"
251 253
252/* vim: et sw=4 ts=4 254/* vim: et sw=4 ts=4
253 */ 255 */
diff --git a/microkde/kdeui/ktoolbarhandler.h b/microkde/kdeui/ktoolbarhandler.h
index a1340ae..35f0d18 100644
--- a/microkde/kdeui/ktoolbarhandler.h
+++ b/microkde/kdeui/ktoolbarhandler.h
@@ -7,34 +7,34 @@
7 7
8 This library is distributed in the hope that it will be useful, 8 This library is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of 9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 Library General Public License for more details. 11 Library General Public License for more details.
12 12
13 You should have received a copy of the GNU Library General Public License 13 You should have received a copy of the GNU Library General Public License
14 along with this library; see the file COPYING.LIB. If not, write to 14 along with this library; see the file COPYING.LIB. If not, write to
15 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 15 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
16 Boston, MA 02111-1307, USA. 16 Boston, MA 02111-1307, USA.
17*/ 17*/
18 18
19#ifndef KBARHANDLER_H 19#ifndef KBARHANDLER_H
20#define KBARHANDLER_H 20#define KBARHANDLER_H
21 21
22#include <qobject.h> 22#include <qobject.h>
23#include <qguardedptr.h> 23#include <qpointer.h>
24#include <qptrlist.h> 24#include <q3ptrlist.h>
25#include <kxmlguiclient.h> 25#include <kxmlguiclient.h>
26#include <kaction.h> 26#include <kaction.h>
27 27
28class KMainWindow; 28class KMainWindow;
29class KToolBar; 29class KToolBar;
30 30
31namespace KDEPrivate 31namespace KDEPrivate
32{ 32{
33 33
34/// @since 3.1 34/// @since 3.1
35class ToolBarHandler : public QObject, public KXMLGUIClient 35class ToolBarHandler : public QObject, public KXMLGUIClient
36{ 36{
37 Q_OBJECT 37 Q_OBJECT
38public: 38public:
39 ToolBarHandler( KMainWindow *mainWindow, const char *name = 0 ); 39 ToolBarHandler( KMainWindow *mainWindow, const char *name = 0 );
40 ToolBarHandler( KMainWindow *mainWindow, QObject *parent, const char *name = 0 ); 40 ToolBarHandler( KMainWindow *mainWindow, QObject *parent, const char *name = 0 );
@@ -44,27 +44,27 @@ public:
44 44
45public slots: 45public slots:
46 void setupActions(); 46 void setupActions();
47 47
48private slots: 48private slots:
49//US void clientAdded( KXMLGUIClient *client ); 49//US void clientAdded( KXMLGUIClient *client );
50 50
51private: 51private:
52 void init( KMainWindow *mainWindow ); 52 void init( KMainWindow *mainWindow );
53 void connectToActionContainers(); 53 void connectToActionContainers();
54 void connectToActionContainer( KAction *action ); 54 void connectToActionContainer( KAction *action );
55 void connectToActionContainer( QWidget *container ); 55 void connectToActionContainer( QWidget *container );
56 56
57 struct Data; 57 struct Data;
58 Data *d; 58 Data *d;
59 59
60 QGuardedPtr<KMainWindow> m_mainWindow; 60 QPointer<KMainWindow> m_mainWindow;
61 QPtrList<KAction> m_actions; 61 Q3PtrList<KAction> m_actions;
62 QPtrList<KToolBar> m_toolBars; 62 Q3PtrList<KToolBar> m_toolBars;
63}; 63};
64 64
65} // namespace KDEPrivate 65} // namespace KDEPrivate
66 66
67#endif // KBARHANDLER_H 67#endif // KBARHANDLER_H
68 68
69/* vim: et sw=4 ts=4 69/* vim: et sw=4 ts=4
70 */ 70 */
diff --git a/microkde/kdeui/kxmlguiclient.cpp b/microkde/kdeui/kxmlguiclient.cpp
index 073e30b..8740bde 100644
--- a/microkde/kdeui/kxmlguiclient.cpp
+++ b/microkde/kdeui/kxmlguiclient.cpp
@@ -26,93 +26,95 @@
26 26
27/*US 27/*US
28#include <qdir.h> 28#include <qdir.h>
29#include <qfile.h> 29#include <qfile.h>
30#include <qdom.h> 30#include <qdom.h>
31#include <qtextstream.h> 31#include <qtextstream.h>
32#include <qregexp.h> 32#include <qregexp.h>
33*/ 33*/
34 34
35//US #include <kinstance.h> 35//US #include <kinstance.h>
36#include <kstandarddirs.h> 36#include <kstandarddirs.h>
37#include <kdebug.h> 37#include <kdebug.h>
38#include <kaction.h> 38#include <kaction.h>
39#include <kapplication.h> 39#include <kapplication.h>
40 40
41#include <assert.h> 41#include <assert.h>
42//Added by qt3to4:
43#include <Q3PtrList>
42 44
43class KXMLGUIClientPrivate 45class KXMLGUIClientPrivate
44{ 46{
45public: 47public:
46 KXMLGUIClientPrivate() 48 KXMLGUIClientPrivate()
47 { 49 {
48//US m_instance = KGlobal::instance(); 50//US m_instance = KGlobal::instance();
49//US m_factory = 0L; 51//US m_factory = 0L;
50 m_parent = 0L; 52 m_parent = 0L;
51//US m_builder = 0L; 53//US m_builder = 0L;
52 m_actionCollection = 0; 54 m_actionCollection = 0;
53 } 55 }
54 ~KXMLGUIClientPrivate() 56 ~KXMLGUIClientPrivate()
55 { 57 {
56 } 58 }
57 59
58//US KInstance *m_instance; 60//US KInstance *m_instance;
59 61
60//US QDomDocument m_doc; 62//US QDomDocument m_doc;
61 KActionCollection *m_actionCollection; 63 KActionCollection *m_actionCollection;
62//US QDomDocument m_buildDocument; 64//US QDomDocument m_buildDocument;
63//US KXMLGUIFactory *m_factory; 65//US KXMLGUIFactory *m_factory;
64 KXMLGUIClient *m_parent; 66 KXMLGUIClient *m_parent;
65 //QPtrList<KXMLGUIClient> m_supers; 67 //QPtrList<KXMLGUIClient> m_supers;
66 QPtrList<KXMLGUIClient> m_children; 68 Q3PtrList<KXMLGUIClient> m_children;
67//US KXMLGUIBuilder *m_builder; 69//US KXMLGUIBuilder *m_builder;
68//US QString m_xmlFile; 70//US QString m_xmlFile;
69//US QString m_localXMLFile; 71//US QString m_localXMLFile;
70}; 72};
71 73
72KXMLGUIClient::KXMLGUIClient() 74KXMLGUIClient::KXMLGUIClient()
73{ 75{
74 d = new KXMLGUIClientPrivate; 76 d = new KXMLGUIClientPrivate;
75} 77}
76 78
77KXMLGUIClient::KXMLGUIClient( KXMLGUIClient *parent ) 79KXMLGUIClient::KXMLGUIClient( KXMLGUIClient *parent )
78{ 80{
79 d = new KXMLGUIClientPrivate; 81 d = new KXMLGUIClientPrivate;
80 parent->insertChildClient( this ); 82 parent->insertChildClient( this );
81} 83}
82 84
83KXMLGUIClient::~KXMLGUIClient() 85KXMLGUIClient::~KXMLGUIClient()
84{ 86{
85 if ( d->m_parent ) 87 if ( d->m_parent )
86 d->m_parent->removeChildClient( this ); 88 d->m_parent->removeChildClient( this );
87 89
88 QPtrListIterator<KXMLGUIClient> it( d->m_children ); 90 Q3PtrListIterator<KXMLGUIClient> it( d->m_children );
89 for ( ; it.current(); ++it ) { 91 for ( ; it.current(); ++it ) {
90 assert( it.current()->d->m_parent == this ); 92 assert( it.current()->d->m_parent == this );
91 it.current()->d->m_parent = 0; 93 it.current()->d->m_parent = 0;
92 } 94 }
93 95
94 delete d->m_actionCollection; 96 delete d->m_actionCollection;
95 delete d; 97 delete d;
96} 98}
97 99
98KAction *KXMLGUIClient::action( const char *name ) const 100KAction *KXMLGUIClient::action( const char *name ) const
99{ 101{
100 KAction* act = actionCollection()->action( name ); 102 KAction* act = actionCollection()->action( name );
101 if ( !act ) { 103 if ( !act ) {
102 QPtrListIterator<KXMLGUIClient> childIt( d->m_children ); 104 Q3PtrListIterator<KXMLGUIClient> childIt( d->m_children );
103 for (; childIt.current(); ++childIt ) { 105 for (; childIt.current(); ++childIt ) {
104 act = childIt.current()->actionCollection()->action( name ); 106 act = childIt.current()->actionCollection()->action( name );
105 if ( act ) 107 if ( act )
106 break; 108 break;
107 } 109 }
108 } 110 }
109 return act; 111 return act;
110} 112}
111 113
112KActionCollection *KXMLGUIClient::actionCollection() const 114KActionCollection *KXMLGUIClient::actionCollection() const
113{ 115{
114 if ( !d->m_actionCollection ) 116 if ( !d->m_actionCollection )
115 d->m_actionCollection = new KActionCollection( 0, 0, 117 d->m_actionCollection = new KActionCollection( 0, 0,
116 "KXMLGUILClient-KActionCollection" ); 118 "KXMLGUILClient-KActionCollection" );
117 return d->m_actionCollection; 119 return d->m_actionCollection;
118} 120}
@@ -575,51 +577,51 @@ void KXMLGUIClient::insertChildClient( KXMLGUIClient *child )
575 577
576void KXMLGUIClient::removeChildClient( KXMLGUIClient *child ) 578void KXMLGUIClient::removeChildClient( KXMLGUIClient *child )
577{ 579{
578 assert( d->m_children.containsRef( child ) ); 580 assert( d->m_children.containsRef( child ) );
579 d->m_children.removeRef( child ); 581 d->m_children.removeRef( child );
580 child->d->m_parent = 0; 582 child->d->m_parent = 0;
581} 583}
582 584
583/*bool KXMLGUIClient::addSuperClient( KXMLGUIClient *super ) 585/*bool KXMLGUIClient::addSuperClient( KXMLGUIClient *super )
584{ 586{
585 if ( d->m_supers.contains( super ) ) 587 if ( d->m_supers.contains( super ) )
586 return false; 588 return false;
587 d->m_supers.append( super ); 589 d->m_supers.append( super );
588 return true; 590 return true;
589}*/ 591}*/
590 592
591const QPtrList<KXMLGUIClient> *KXMLGUIClient::childClients() 593const Q3PtrList<KXMLGUIClient> *KXMLGUIClient::childClients()
592{ 594{
593 return &d->m_children; 595 return &d->m_children;
594} 596}
595/*US 597/*US
596void KXMLGUIClient::setClientBuilder( KXMLGUIBuilder *builder ) 598void KXMLGUIClient::setClientBuilder( KXMLGUIBuilder *builder )
597{ 599{
598 d->m_builder = builder; 600 d->m_builder = builder;
599 if ( builder ) 601 if ( builder )
600 builder->setBuilderInstance( instance() ); 602 builder->setBuilderInstance( instance() );
601} 603}
602 604
603KXMLGUIBuilder *KXMLGUIClient::clientBuilder() const 605KXMLGUIBuilder *KXMLGUIClient::clientBuilder() const
604{ 606{
605 return d->m_builder; 607 return d->m_builder;
606} 608}
607*/ 609*/
608 610
609void KXMLGUIClient::plugActionList( const QString &name, const QPtrList<KAction> &actionList ) 611void KXMLGUIClient::plugActionList( const QString &name, const Q3PtrList<KAction> &actionList )
610{ 612{
611/*US 613/*US
612 if ( !d->m_factory ) 614 if ( !d->m_factory )
613 return; 615 return;
614 616
615 d->m_factory->plugActionList( this, name, actionList ); 617 d->m_factory->plugActionList( this, name, actionList );
616*/ 618*/
617} 619}
618 620
619void KXMLGUIClient::unplugActionList( const QString &name ) 621void KXMLGUIClient::unplugActionList( const QString &name )
620{ 622{
621/*US 623/*US
622 if ( !d->m_factory ) 624 if ( !d->m_factory )
623 return; 625 return;
624 626
625 d->m_factory->unplugActionList( this, name ); 627 d->m_factory->unplugActionList( this, name );
diff --git a/microkde/kdeui/kxmlguiclient.h b/microkde/kdeui/kxmlguiclient.h
index cd74c8e..b9d7b09 100644
--- a/microkde/kdeui/kxmlguiclient.h
+++ b/microkde/kdeui/kxmlguiclient.h
@@ -8,33 +8,33 @@
8 8
9 This library is distributed in the hope that it will be useful, 9 This library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of 10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Library General Public License for more details. 12 Library General Public License for more details.
13 13
14 You should have received a copy of the GNU Library General Public License 14 You should have received a copy of the GNU Library General Public License
15 along with this library; see the file COPYING.LIB. If not, write to 15 along with this library; see the file COPYING.LIB. If not, write to
16 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 16 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17 Boston, MA 02111-1307, USA. 17 Boston, MA 02111-1307, USA.
18*/ 18*/
19#ifndef _KXMLGUICLIENT_H 19#ifndef _KXMLGUICLIENT_H
20#define _KXMLGUICLIENT_H 20#define _KXMLGUICLIENT_H
21 21
22 22
23//US #include <qdom.h> 23//US #include <qdom.h>
24#include <qptrlist.h> 24#include <q3ptrlist.h>
25#include <qmap.h> 25#include <qmap.h>
26#include <qstringlist.h> 26#include <qstringlist.h>
27 27
28class QWidget; 28class QWidget;
29class KAction; 29class KAction;
30class KActionCollection; 30class KActionCollection;
31class KInstance; 31class KInstance;
32 32
33class KXMLGUIClientPrivate; 33class KXMLGUIClientPrivate;
34class KXMLGUIFactory; 34class KXMLGUIFactory;
35class KXMLGUIBuilder; 35class KXMLGUIBuilder;
36 36
37/** 37/**
38 * 38 *
39 * A KXMLGUIClient can be used with @ref KXMLGUIFactory to create a 39 * A KXMLGUIClient can be used with @ref KXMLGUIFactory to create a
40 * GUI from actions and an XML document, and can be dynamically merged 40 * GUI from actions and an XML document, and can be dynamically merged
@@ -148,33 +148,33 @@ public:
148 /** 148 /**
149 * Use this method to make a client a child client of another client. 149 * Use this method to make a client a child client of another client.
150 * Usually you don't need to call this method, as it is called 150 * Usually you don't need to call this method, as it is called
151 * automatically when using the second constructor, which takes a 151 * automatically when using the second constructor, which takes a
152 * arent argument. 152 * arent argument.
153 */ 153 */
154 void insertChildClient( KXMLGUIClient *child ); 154 void insertChildClient( KXMLGUIClient *child );
155 155
156 /** 156 /**
157 * Removes the given @p child from the client's children list. 157 * Removes the given @p child from the client's children list.
158 */ 158 */
159 void removeChildClient( KXMLGUIClient *child ); 159 void removeChildClient( KXMLGUIClient *child );
160 160
161 /** 161 /**
162 * Retrieves a list of all child clients. 162 * Retrieves a list of all child clients.
163 */ 163 */
164 const QPtrList<KXMLGUIClient> *childClients(); 164 const Q3PtrList<KXMLGUIClient> *childClients();
165 165
166 /** 166 /**
167 * A client can have an own @ref KXMLGUIBuilder. 167 * A client can have an own @ref KXMLGUIBuilder.
168 * Use this method to assign your builder instance to the client (so that the 168 * Use this method to assign your builder instance to the client (so that the
169 * @ref KXMLGUIFactory can use it when building the client's GUI) 169 * @ref KXMLGUIFactory can use it when building the client's GUI)
170 * 170 *
171 * Client specific guibuilders are useful if you want to create 171 * Client specific guibuilders are useful if you want to create
172 * custom container widgets for your GUI. 172 * custom container widgets for your GUI.
173 */ 173 */
174//US void setClientBuilder( KXMLGUIBuilder *builder ); 174//US void setClientBuilder( KXMLGUIBuilder *builder );
175 175
176 /** 176 /**
177 * Retrieves the client's GUI builder or 0L if no client specific 177 * Retrieves the client's GUI builder or 0L if no client specific
178 * builder has been assigned via @ref #setClientBuilder() 178 * builder has been assigned via @ref #setClientBuilder()
179 */ 179 */
180//US KXMLGUIBuilder *clientBuilder() const; 180//US KXMLGUIBuilder *clientBuilder() const;
@@ -215,33 +215,33 @@ public:
215 * QPtrList<KAction> file_actions; 215 * QPtrList<KAction> file_actions;
216 * for( ... ) 216 * for( ... )
217 * if( ... ) 217 * if( ... )
218 * file_actions.append( cool_action ); 218 * file_actions.append( cool_action );
219 * unplugActionList( "xxx_file_actionlist" ); 219 * unplugActionList( "xxx_file_actionlist" );
220 * plugActionList( "xxx_file_actionlist", file_actions ); 220 * plugActionList( "xxx_file_actionlist", file_actions );
221 * \endcode 221 * \endcode
222 * every time a file is selected, unselected or ... 222 * every time a file is selected, unselected or ...
223 * 223 *
224 * \note You should not call createGUI() after calling this 224 * \note You should not call createGUI() after calling this
225 * function. In fact, that would remove the newly added 225 * function. In fact, that would remove the newly added
226 * actionlists again... 226 * actionlists again...
227 * \note Forgetting to call unplugActionList() before 227 * \note Forgetting to call unplugActionList() before
228 * plugActionList() would leave the previous actions in the 228 * plugActionList() would leave the previous actions in the
229 * menu too.. 229 * menu too..
230 */ 230 */
231 void plugActionList( const QString &name, const QPtrList<KAction> &actionList ); 231 void plugActionList( const QString &name, const Q3PtrList<KAction> &actionList );
232 232
233 /** 233 /**
234 * The complement of \ref plugActionList() ... 234 * The complement of \ref plugActionList() ...
235 */ 235 */
236 void unplugActionList( const QString &name ); 236 void unplugActionList( const QString &name );
237 237
238//US static QString findMostRecentXMLFile( const QStringList &files, QString &doc ); 238//US static QString findMostRecentXMLFile( const QStringList &files, QString &doc );
239 239
240 void addStateActionEnabled(const QString& state, const QString& action); 240 void addStateActionEnabled(const QString& state, const QString& action);
241 241
242 void addStateActionDisabled(const QString& state, const QString& action); 242 void addStateActionDisabled(const QString& state, const QString& action);
243 243
244 enum ReverseStateChange { StateNoReverse, StateReverse }; 244 enum ReverseStateChange { StateNoReverse, StateReverse };
245 struct StateChange 245 struct StateChange
246 { 246 {
247 QStringList actionsToEnable; 247 QStringList actionsToEnable;