summaryrefslogtreecommitdiffabout
path: root/microkde
Unidiff
Diffstat (limited to 'microkde') (more/less context) (ignore whitespace changes)
-rw-r--r--microkde/kapplication.cpp4
-rw-r--r--microkde/kdeui/ktoolbar.cpp14
-rw-r--r--microkde/kdeui/ktoolbar.h4
3 files changed, 18 insertions, 4 deletions
diff --git a/microkde/kapplication.cpp b/microkde/kapplication.cpp
index f36c5ae..d7c12bb 100644
--- a/microkde/kapplication.cpp
+++ b/microkde/kapplication.cpp
@@ -1,249 +1,251 @@
1#include <stdlib.h> 1#include <stdlib.h>
2#include <stdio.h> 2#include <stdio.h>
3 3
4#include "kapplication.h" 4#include "kapplication.h"
5#include "ktextedit.h" 5#include "ktextedit.h"
6#include <qapplication.h> 6#include <qapplication.h>
7#include <qstring.h> 7#include <qstring.h>
8#include <qfile.h> 8#include <qfile.h>
9#include <qtextstream.h> 9#include <qtextstream.h>
10#include <qdialog.h> 10#include <qdialog.h>
11#include <qlayout.h> 11#include <qlayout.h>
12#include <qtextbrowser.h> 12#include <qtextbrowser.h>
13#include <qregexp.h> 13#include <qregexp.h>
14 14
15int KApplication::random() 15int KApplication::random()
16{ 16{
17 return rand(); 17 return rand();
18} 18}
19 19
20//US 20//US
21QString KApplication::randomString(int length) 21QString KApplication::randomString(int length)
22{ 22{
23 if (length <=0 ) return QString::null; 23 if (length <=0 ) return QString::null;
24 24
25 QString str; 25 QString str;
26 while (length--) 26 while (length--)
27 { 27 {
28 int r=random() % 62; 28 int r=random() % 62;
29 r+=48; 29 r+=48;
30 if (r>57) r+=7; 30 if (r>57) r+=7;
31 if (r>90) r+=6; 31 if (r>90) r+=6;
32 str += char(r); 32 str += char(r);
33 // so what if I work backwards? 33 // so what if I work backwards?
34 } 34 }
35 return str; 35 return str;
36} 36}
37int KApplication::execDialog( QDialog* d ) 37int KApplication::execDialog( QDialog* d )
38{ 38{
39 if (QApplication::desktop()->width() <= 640 ) 39 if (QApplication::desktop()->width() <= 640 )
40 d->showMaximized(); 40 d->showMaximized();
41 else 41 else
42 ;//d->resize( 800, 600 ); 42 ;//d->resize( 800, 600 );
43 return d->exec(); 43 return d->exec();
44} 44}
45void KApplication::showLicence() 45void KApplication::showLicence()
46{ 46{
47 KApplication::showFile( "KDE-Pim/Pi licence", "kdepim/licence.txt" ); 47 KApplication::showFile( "KDE-Pim/Pi licence", "kdepim/licence.txt" );
48} 48}
49 49
50void KApplication::testCoords( int* x, int* y, int* wid, int * hei ) 50void KApplication::testCoords( int* x, int* y, int* wid, int * hei )
51{ 51{
52 int dWid = QApplication::desktop()->width() ; 52 int dWid = QApplication::desktop()->width() ;
53 int dHei = QApplication::desktop()->height(); 53 int dHei = QApplication::desktop()->height();
54 if ( *x < 0 ) *x = 0;
55 if ( *y < 20 ) *y = 20 ;
54 if ( *x + *wid > dWid ) { 56 if ( *x + *wid > dWid ) {
55 *x = 0; 57 *x = 0;
56 if ( *wid > dWid ) 58 if ( *wid > dWid )
57 *wid = dWid; 59 *wid = dWid;
58 } 60 }
59 if ( *y + *hei > dHei ) { 61 if ( *y + *hei > dHei ) {
60 *y = 0; 62 *y = 20;
61 if ( *hei > dHei ) 63 if ( *hei > dHei )
62 *hei = dHei; 64 *hei = dHei;
63 } 65 }
64} 66}
65void KApplication::showFile(QString caption, QString fn) 67void KApplication::showFile(QString caption, QString fn)
66{ 68{
67 QString text; 69 QString text;
68 QString fileName; 70 QString fileName;
69#ifndef DESKTOP_VERSION 71#ifndef DESKTOP_VERSION
70 fileName = getenv("QPEDIR"); 72 fileName = getenv("QPEDIR");
71 fileName += "/pics/" + fn ; 73 fileName += "/pics/" + fn ;
72#else 74#else
73 fileName = qApp->applicationDirPath () + "/" + fn; 75 fileName = qApp->applicationDirPath () + "/" + fn;
74#endif 76#endif
75 QFile file( fileName ); 77 QFile file( fileName );
76 if (!file.open( IO_ReadOnly ) ) { 78 if (!file.open( IO_ReadOnly ) ) {
77 return ; 79 return ;
78 } 80 }
79 QTextStream ts( &file ); 81 QTextStream ts( &file );
80 text = ts.read(); 82 text = ts.read();
81 file.close(); 83 file.close();
82 KApplication::showText( caption, text ); 84 KApplication::showText( caption, text );
83 85
84} 86}
85 87
86bool KApplication::convert2latin1(QString fileName) 88bool KApplication::convert2latin1(QString fileName)
87{ 89{
88 QString text; 90 QString text;
89 QFile file( fileName ); 91 QFile file( fileName );
90 if (!file.open( IO_ReadOnly ) ) { 92 if (!file.open( IO_ReadOnly ) ) {
91 return false; 93 return false;
92 94
93 } 95 }
94 QTextStream ts( &file ); 96 QTextStream ts( &file );
95 ts.setEncoding( QTextStream::UnicodeUTF8 ); 97 ts.setEncoding( QTextStream::UnicodeUTF8 );
96 text = ts.read(); 98 text = ts.read();
97 file.close(); 99 file.close();
98 if (!file.open( IO_WriteOnly ) ) { 100 if (!file.open( IO_WriteOnly ) ) {
99 return false; 101 return false;
100 } 102 }
101 QTextStream tsIn( &file ); 103 QTextStream tsIn( &file );
102 tsIn.setEncoding( QTextStream::Latin1 ); 104 tsIn.setEncoding( QTextStream::Latin1 );
103 tsIn << text.latin1(); 105 tsIn << text.latin1();
104 file.close(); 106 file.close();
105 return true; 107 return true;
106 108
107 109
108} 110}
109void KApplication::showText(QString caption, QString text) 111void KApplication::showText(QString caption, QString text)
110{ 112{
111 QDialog dia( 0, "name", true ); ; 113 QDialog dia( 0, "name", true ); ;
112 dia.setCaption( caption ); 114 dia.setCaption( caption );
113 QVBoxLayout* lay = new QVBoxLayout( &dia ); 115 QVBoxLayout* lay = new QVBoxLayout( &dia );
114 lay->setSpacing( 3 ); 116 lay->setSpacing( 3 );
115 lay->setMargin( 3 ); 117 lay->setMargin( 3 );
116 KTextEdit tb ( &dia ); 118 KTextEdit tb ( &dia );
117 tb.setWordWrap( QMultiLineEdit::WidgetWidth ); 119 tb.setWordWrap( QMultiLineEdit::WidgetWidth );
118 lay->addWidget( &tb ); 120 lay->addWidget( &tb );
119 tb.setText( text ); 121 tb.setText( text );
120#ifdef DESKTOP_VERSION 122#ifdef DESKTOP_VERSION
121 dia.resize( 640, 480); 123 dia.resize( 640, 480);
122#else 124#else
123 dia.showMaximized(); 125 dia.showMaximized();
124#endif 126#endif
125 dia.exec(); 127 dia.exec();
126 128
127} 129}
128 130
129#include <qlabel.h> 131#include <qlabel.h>
130#include <qpushbutton.h> 132#include <qpushbutton.h>
131#include <qlayout.h> 133#include <qlayout.h>
132#include <qdir.h> 134#include <qdir.h>
133#include <qradiobutton.h> 135#include <qradiobutton.h>
134#include <qbuttongroup.h> 136#include <qbuttongroup.h>
135#include "kglobal.h" 137#include "kglobal.h"
136#include "klocale.h" 138#include "klocale.h"
137 139
138class KBackupPrefs : public QDialog 140class KBackupPrefs : public QDialog
139{ 141{
140 public: 142 public:
141 KBackupPrefs( QString message , QWidget *parent=0, const char *name=0 ) : 143 KBackupPrefs( QString message , QWidget *parent=0, const char *name=0 ) :
142 QDialog( parent, name, true ) 144 QDialog( parent, name, true )
143 { 145 {
144 setCaption( i18n("Backup Failed!") ); 146 setCaption( i18n("Backup Failed!") );
145 QVBoxLayout* lay = new QVBoxLayout( this ); 147 QVBoxLayout* lay = new QVBoxLayout( this );
146 lay->setSpacing( 3 ); 148 lay->setSpacing( 3 );
147 lay->setMargin( 3 ); 149 lay->setMargin( 3 );
148 QLabel * lab = new QLabel( message, this ); 150 QLabel * lab = new QLabel( message, this );
149 lay->addWidget( lab ); 151 lay->addWidget( lab );
150 QButtonGroup* format = new QButtonGroup( 1, Horizontal, i18n("Choose action"), this ); 152 QButtonGroup* format = new QButtonGroup( 1, Horizontal, i18n("Choose action"), this );
151 lay->addWidget( format ); 153 lay->addWidget( format );
152 format->setExclusive ( true ) ; 154 format->setExclusive ( true ) ;
153 vcal = new QRadioButton(i18n("Try again now"), format ); 155 vcal = new QRadioButton(i18n("Try again now"), format );
154 tcal = new QRadioButton(i18n("Try again later"), format ); 156 tcal = new QRadioButton(i18n("Try again later"), format );
155 ical = new QRadioButton(i18n("Try again tomorrow"), format ); 157 ical = new QRadioButton(i18n("Try again tomorrow"), format );
156 ocal = new QRadioButton(i18n("Disable backup"), format ); 158 ocal = new QRadioButton(i18n("Disable backup"), format );
157 vcal->setChecked( true ); 159 vcal->setChecked( true );
158 QPushButton * ok = new QPushButton( i18n("OK"), this ); 160 QPushButton * ok = new QPushButton( i18n("OK"), this );
159 lay->addWidget(ok ); 161 lay->addWidget(ok );
160 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); 162 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) );
161 } 163 }
162 164
163 bool again() { return vcal->isChecked(); } 165 bool again() { return vcal->isChecked(); }
164 bool later() { return tcal->isChecked(); } 166 bool later() { return tcal->isChecked(); }
165 bool againTomorrow() { return ical->isChecked(); } 167 bool againTomorrow() { return ical->isChecked(); }
166private: 168private:
167 QRadioButton* vcal, *ical, *ocal, *tcal; 169 QRadioButton* vcal, *ical, *ocal, *tcal;
168}; 170};
169int KApplication::createBackup( QString fn, QString dp, int numBup ) 171int KApplication::createBackup( QString fn, QString dp, int numBup )
170{ 172{
171 if ( numBup < 1) return 3; 173 if ( numBup < 1) return 3;
172 int ret = 3; 174 int ret = 3;
173 //qDebug("KApplication::createBackup %s --- %s --- %d", fn.latin1(), dp.latin1(), numBup); 175 //qDebug("KApplication::createBackup %s --- %s --- %d", fn.latin1(), dp.latin1(), numBup);
174 QDir bupDir ( dp ); 176 QDir bupDir ( dp );
175 bool tryAgain = true; 177 bool tryAgain = true;
176 while ( tryAgain ) { 178 while ( tryAgain ) {
177 if ( !bupDir.exists() ) { 179 if ( !bupDir.exists() ) {
178 QString bd = dp.right(25); 180 QString bd = dp.right(25);
179 if ( dp.length() > 25 ) 181 if ( dp.length() > 25 )
180 bd = "..." + bd; 182 bd = "..." + bd;
181 KBackupPrefs noDir( i18n("<b>Backup directory does not exist: </b>") + bd); 183 KBackupPrefs noDir( i18n("<b>Backup directory does not exist: </b>") + bd);
182 if ( !noDir.exec() ) return 3; 184 if ( !noDir.exec() ) return 3;
183 if ( noDir.againTomorrow() ) { 185 if ( noDir.againTomorrow() ) {
184 return 0; 186 return 0;
185 } else if ( noDir.later() ) { 187 } else if ( noDir.later() ) {
186 return 3; 188 return 3;
187 } else if ( !noDir.again() ) { 189 } else if ( !noDir.again() ) {
188 return 2; 190 return 2;
189 } 191 }
190 } else { 192 } else {
191 tryAgain = false; 193 tryAgain = false;
192 } 194 }
193 } 195 }
194 // we have a valid dir! 196 // we have a valid dir!
195 QStringList allFileList = bupDir.entryList(QDir::Files); 197 QStringList allFileList = bupDir.entryList(QDir::Files);
196 QFileInfo fileInfo ( fn ); 198 QFileInfo fileInfo ( fn );
197 QString fName = fileInfo.fileName (); 199 QString fName = fileInfo.fileName ();
198 QStringList fileList; 200 QStringList fileList;
199 201
200 int i; 202 int i;
201 for ( i = 0; i < allFileList.count(); ++i ) { 203 for ( i = 0; i < allFileList.count(); ++i ) {
202 QString fi = allFileList[i]; 204 QString fi = allFileList[i];
203 if ( fi. find( fName ) > -1 ) 205 if ( fi. find( fName ) > -1 )
204 fileList.append( fi ); 206 fileList.append( fi );
205 } 207 }
206 qDebug("KApp: %d backup files exist ", fileList.count()); 208 qDebug("KApp: %d backup files exist ", fileList.count());
207 int count = fileList.count(); 209 int count = fileList.count();
208 fileList.sort(); 210 fileList.sort();
209 int remCount = 0; 211 int remCount = 0;
210 while ( count >= numBup ) { 212 while ( count >= numBup ) {
211 QString fnr = dp + "/"+fileList[remCount]; 213 QString fnr = dp + "/"+fileList[remCount];
212 QFile::remove( fnr ); 214 QFile::remove( fnr );
213 --count; 215 --count;
214 ++remCount; 216 ++remCount;
215 } 217 }
216 QDateTime mRunStart = QDateTime::currentDateTime(); 218 QDateTime mRunStart = QDateTime::currentDateTime();
217 QString file = "%1%2%3-%4%5%6-"; 219 QString file = "%1%2%3-%4%5%6-";
218 file = file.arg( mRunStart.date().year(), 4).arg( mRunStart.date().month(),2 ).arg( mRunStart.date().day(), 2 ).arg( mRunStart.time().hour(),2 ).arg( mRunStart.time().minute(),2 ).arg( mRunStart.time().second(),2 ); 220 file = file.arg( mRunStart.date().year(), 4).arg( mRunStart.date().month(),2 ).arg( mRunStart.date().day(), 2 ).arg( mRunStart.time().hour(),2 ).arg( mRunStart.time().minute(),2 ).arg( mRunStart.time().second(),2 );
219 file.replace ( QRegExp (" "), "0" ); 221 file.replace ( QRegExp (" "), "0" );
220 file += fName ; 222 file += fName ;
221 file = dp + file; 223 file = dp + file;
222 QString command; 224 QString command;
223 int res = 0; 225 int res = 0;
224#ifdef _WIN32_ 226#ifdef _WIN32_
225 command = "copy \""+ QDir::convertSeparators( fn)+ "\" \""+QDir::convertSeparators(file)+ "\" "; 227 command = "copy \""+ QDir::convertSeparators( fn)+ "\" \""+QDir::convertSeparators(file)+ "\" ";
226#else 228#else
227 command = "cp "+ fn+ " "+file; 229 command = "cp "+ fn+ " "+file;
228#endif 230#endif
229 //qDebug("command %s ",command.latin1() ); 231 //qDebug("command %s ",command.latin1() );
230 tryAgain = true; 232 tryAgain = true;
231 while ( tryAgain ) { 233 while ( tryAgain ) {
232 res = system ( command.latin1() ); 234 res = system ( command.latin1() );
233 qDebug("KApp: Copy result %d ", res); 235 qDebug("KApp: Copy result %d ", res);
234 if ( res != 0 ) { 236 if ( res != 0 ) {
235 KBackupPrefs noDir( i18n("<b>The backup copy command failed!</b>")); 237 KBackupPrefs noDir( i18n("<b>The backup copy command failed!</b>"));
236 if ( !noDir.exec() ) return 3; 238 if ( !noDir.exec() ) return 3;
237 if ( noDir.againTomorrow() ) { 239 if ( noDir.againTomorrow() ) {
238 return 0; 240 return 0;
239 } else if ( noDir.later() ) { 241 } else if ( noDir.later() ) {
240 return 3; 242 return 3;
241 } else if ( !noDir.again() ) { 243 } else if ( !noDir.again() ) {
242 return 2; 244 return 2;
243 } 245 }
244 } else { 246 } else {
245 tryAgain = false; 247 tryAgain = false;
246 } 248 }
247 } 249 }
248 return 1; 250 return 1;
249} 251}
diff --git a/microkde/kdeui/ktoolbar.cpp b/microkde/kdeui/ktoolbar.cpp
index df2aad8..027e5e9 100644
--- a/microkde/kdeui/ktoolbar.cpp
+++ b/microkde/kdeui/ktoolbar.cpp
@@ -66,384 +66,386 @@
66 66
67#include "ktoolbarbutton.h" 67#include "ktoolbarbutton.h"
68 68
69//US 69//US
70#include "kconfigbase.h" 70#include "kconfigbase.h"
71 71
72#include <qpopupmenu.h> 72#include <qpopupmenu.h>
73#include <qmainwindow.h> 73#include <qmainwindow.h>
74 74
75enum { 75enum {
76 CONTEXT_TOP = 0, 76 CONTEXT_TOP = 0,
77 CONTEXT_LEFT = 1, 77 CONTEXT_LEFT = 1,
78 CONTEXT_RIGHT = 2, 78 CONTEXT_RIGHT = 2,
79 CONTEXT_BOTTOM = 3, 79 CONTEXT_BOTTOM = 3,
80 CONTEXT_FLOAT = 4, 80 CONTEXT_FLOAT = 4,
81 CONTEXT_FLAT = 5, 81 CONTEXT_FLAT = 5,
82 CONTEXT_ICONS = 6, 82 CONTEXT_ICONS = 6,
83 CONTEXT_TEXT = 7, 83 CONTEXT_TEXT = 7,
84 CONTEXT_TEXTRIGHT = 8, 84 CONTEXT_TEXTRIGHT = 8,
85 CONTEXT_TEXTUNDER = 9, 85 CONTEXT_TEXTUNDER = 9,
86 CONTEXT_ICONSIZES = 50 // starting point for the icon size list, put everything else before 86 CONTEXT_ICONSIZES = 50 // starting point for the icon size list, put everything else before
87}; 87};
88 88
89class KToolBarPrivate 89class KToolBarPrivate
90{ 90{
91public: 91public:
92 KToolBarPrivate() { 92 KToolBarPrivate() {
93 m_iconSize = 0; 93 m_iconSize = 0;
94 m_iconText = KToolBar::IconOnly; 94 m_iconText = KToolBar::IconOnly;
95 m_highlight = true; 95 m_highlight = true;
96 m_transparent = true; 96 m_transparent = true;
97 m_honorStyle = false; 97 m_honorStyle = false;
98 98
99 m_enableContext = true; 99 m_enableContext = true;
100 100
101 m_xmlguiClient = 0; 101 m_xmlguiClient = 0;
102 m_configurePlugged = false; 102 m_configurePlugged = false;
103 103
104//US oldPos = Qt::DockUnmanaged; 104//US oldPos = Qt::DockUnmanaged;
105 oldPos = QMainWindow::Unmanaged; 105 oldPos = QMainWindow::Unmanaged;
106 106
107 modified = m_isHorizontal = positioned = FALSE; 107 modified = m_isHorizontal = positioned = FALSE;
108 108
109 HiddenDefault = false; 109 HiddenDefault = false;
110 IconSizeDefault = 0; 110 IconSizeDefault = 0;
111 IconTextDefault = "IconOnly"; 111 IconTextDefault = "IconOnly";
112 IndexDefault = -1; 112 IndexDefault = -1;
113 NewLineDefault = false; 113 NewLineDefault = false;
114 OffsetDefault = -1; 114 OffsetDefault = -1;
115 PositionDefault = "Top"; 115 PositionDefault = "Top";
116 idleButtons.setAutoDelete(true); 116 idleButtons.setAutoDelete(true);
117 } 117 }
118 118
119 int m_iconSize; 119 int m_iconSize;
120 KToolBar::IconText m_iconText; 120 KToolBar::IconText m_iconText;
121 bool m_highlight : 1; 121 bool m_highlight : 1;
122 bool m_transparent : 1; 122 bool m_transparent : 1;
123 bool m_honorStyle : 1; 123 bool m_honorStyle : 1;
124 bool m_isHorizontal : 1; 124 bool m_isHorizontal : 1;
125 bool m_enableContext : 1; 125 bool m_enableContext : 1;
126 bool m_configurePlugged : 1; 126 bool m_configurePlugged : 1;
127 bool modified : 1; 127 bool modified : 1;
128 bool positioned : 1; 128 bool positioned : 1;
129 129
130 QWidget *m_parent; 130 QWidget *m_parent;
131 131
132 QMainWindow::ToolBarDock oldPos; 132 QMainWindow::ToolBarDock oldPos;
133 133
134 KXMLGUIClient *m_xmlguiClient; 134 KXMLGUIClient *m_xmlguiClient;
135 135
136 struct ToolBarInfo 136 struct ToolBarInfo
137 { 137 {
138//US ToolBarInfo() : index( 0 ), offset( -1 ), newline( FALSE ), dock( Qt::DockTop ) {} 138//US ToolBarInfo() : index( 0 ), offset( -1 ), newline( FALSE ), dock( Qt::DockTop ) {}
139 ToolBarInfo() : index( 0 ), offset( -1 ), newline( FALSE ), dock( QMainWindow::Top ) {} 139 ToolBarInfo() : index( 0 ), offset( -1 ), newline( FALSE ), dock( QMainWindow::Top ) {}
140//US ToolBarInfo( Qt::Dock d, int i, bool n, int o ) : index( i ), offset( o ), newline( n ), dock( d ) {} 140//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 ) {} 141 ToolBarInfo( QMainWindow::ToolBarDock d, int i, bool n, int o ) : index( i ), offset( o ), newline( n ), dock( d ) {}
142 int index, offset; 142 int index, offset;
143 bool newline; 143 bool newline;
144//US Qt::Dock dock; 144//US Qt::Dock dock;
145 QMainWindow::ToolBarDock dock; 145 QMainWindow::ToolBarDock dock;
146 }; 146 };
147 147
148 ToolBarInfo toolBarInfo; 148 ToolBarInfo toolBarInfo;
149 QValueList<int> iconSizes; 149 QValueList<int> iconSizes;
150 QTimer repaintTimer; 150 QTimer repaintTimer;
151 151
152 // Default Values. 152 // Default Values.
153 bool HiddenDefault; 153 bool HiddenDefault;
154 int IconSizeDefault; 154 int IconSizeDefault;
155 QString IconTextDefault; 155 QString IconTextDefault;
156 int IndexDefault; 156 int IndexDefault;
157 bool NewLineDefault; 157 bool NewLineDefault;
158 int OffsetDefault; 158 int OffsetDefault;
159 QString PositionDefault; 159 QString PositionDefault;
160 160
161 QPtrList<QWidget> idleButtons; 161 QPtrList<QWidget> idleButtons;
162}; 162};
163 163
164KToolBarSeparator::KToolBarSeparator(Orientation o , bool l, QToolBar *parent, 164KToolBarSeparator::KToolBarSeparator(Orientation o , bool l, QToolBar *parent,
165 const char* name ) 165 const char* name )
166 :QFrame( parent, name ), line( l ) 166 :QFrame( parent, name ), line( l )
167{ 167{
168 connect( parent, SIGNAL(orientationChanged(Orientation)), 168 connect( parent, SIGNAL(orientationChanged(Orientation)),
169 this, SLOT(setOrientation(Orientation)) ); 169 this, SLOT(setOrientation(Orientation)) );
170 setOrientation( o ); 170 setOrientation( o );
171 setBackgroundMode( parent->backgroundMode() ); 171 setBackgroundMode( parent->backgroundMode() );
172 setBackgroundOrigin( ParentOrigin ); 172 setBackgroundOrigin( ParentOrigin );
173} 173}
174 174
175void KToolBarSeparator::setOrientation( Orientation o ) 175void KToolBarSeparator::setOrientation( Orientation o )
176{ 176{
177 orient = o; 177 orient = o;
178 if ( line ) { 178 if ( line ) {
179 if ( orientation() == Vertical ) 179 if ( orientation() == Vertical )
180 setFrameStyle( HLine + Sunken ); 180 setFrameStyle( HLine + Sunken );
181 else 181 else
182 setFrameStyle( VLine + Sunken ); 182 setFrameStyle( VLine + Sunken );
183 } else { 183 } else {
184 setFrameStyle( NoFrame ); 184 setFrameStyle( NoFrame );
185 } 185 }
186} 186}
187 187
188void KToolBarSeparator::styleChange( QStyle& ) 188void KToolBarSeparator::styleChange( QStyle& )
189{ 189{
190 setOrientation( orient ); 190 setOrientation( orient );
191} 191}
192 192
193QSize KToolBarSeparator::sizeHint() const 193QSize KToolBarSeparator::sizeHint() const
194{ 194{
195 return orientation() == Vertical ? QSize( 0, 6 ) : QSize( 6, 0 ); 195 return orientation() == Vertical ? QSize( 0, 6 ) : QSize( 6, 0 );
196} 196}
197 197
198QSizePolicy KToolBarSeparator::sizePolicy() const 198QSizePolicy KToolBarSeparator::sizePolicy() const
199{ 199{
200 return QSizePolicy( QSizePolicy::Minimum, QSizePolicy::Minimum ); 200 return QSizePolicy( QSizePolicy::Minimum, QSizePolicy::Minimum );
201} 201}
202 202
203KToolBar::KToolBar( QWidget *parent, const char *name, bool honorStyle, bool readConfig ) 203KToolBar::KToolBar( QWidget *parent, const char *name, bool honorStyle, bool readConfig )
204#ifdef DESKTOP_VERSION 204#ifdef DESKTOP_VERSION
205 : QToolBar( QString::fromLatin1( name ), 205 : QToolBar( QString::fromLatin1( name ),
206 parent && parent->inherits( "QMainWindow" ) ? static_cast<QMainWindow*>(parent) : 0, 206 parent && parent->inherits( "QMainWindow" ) ? static_cast<QMainWindow*>(parent) : 0,
207 parent, FALSE, 207 parent, FALSE,
208 name ? name : "mainToolBar") 208 name ? name : "mainToolBar")
209#else 209#else
210 : QPEToolBar( parent && parent->inherits( "QMainWindow" ) ? static_cast<QMainWindow*>(parent) : 0, 210 : QPEToolBar( parent && parent->inherits( "QMainWindow" ) ? static_cast<QMainWindow*>(parent) : 0,
211 QString::fromLatin1( name )) 211 QString::fromLatin1( name ))
212 212
213 213
214#endif 214#endif
215{ 215{
216 init( readConfig, honorStyle ); 216 init( readConfig, honorStyle );
217} 217}
218 218
219KToolBar::KToolBar( QMainWindow *parentWindow, QMainWindow::ToolBarDock dock, bool newLine, const char *name, bool honorStyle, bool readConfig ) 219KToolBar::KToolBar( QMainWindow *parentWindow, QMainWindow::ToolBarDock dock, bool newLine, const char *name, bool honorStyle, bool readConfig )
220#ifdef DESKTOP_VERSION 220#ifdef DESKTOP_VERSION
221 : QToolBar( QString::fromLatin1( name ), 221 : QToolBar( QString::fromLatin1( name ),
222 parentWindow, dock, newLine, 222 parentWindow, dock, newLine,
223 name ? name : "mainToolBar") 223 name ? name : "mainToolBar")
224#else 224#else
225 : QPEToolBar( parentWindow,QString::fromLatin1( name )) 225 : QPEToolBar( parentWindow,QString::fromLatin1( name ))
226 226
227 227
228#endif 228#endif
229 229
230{ 230{
231 init( readConfig, honorStyle ); 231 init( readConfig, honorStyle );
232} 232}
233 233
234KToolBar::KToolBar( QMainWindow *parentWindow, QWidget *dock, bool newLine, const char *name, bool honorStyle, bool readConfig ) 234KToolBar::KToolBar( QMainWindow *parentWindow, QWidget *dock, bool newLine, const char *name, bool honorStyle, bool readConfig )
235#ifdef DESKTOP_VERSION 235#ifdef DESKTOP_VERSION
236 : QToolBar( QString::fromLatin1( name ), 236 : QToolBar( QString::fromLatin1( name ),
237 parentWindow, dock, newLine, 237 parentWindow, dock, newLine,
238 name ? name : "mainToolBar") 238 name ? name : "mainToolBar")
239#else 239#else
240 : QPEToolBar( parentWindow,QString::fromLatin1( name )) 240 : QPEToolBar( parentWindow,QString::fromLatin1( name ))
241 241
242 242
243#endif 243#endif
244 244
245{ 245{
246 init( readConfig, honorStyle ); 246 init( readConfig, honorStyle );
247} 247}
248 248
249KToolBar::~KToolBar() 249KToolBar::~KToolBar()
250{ 250{
251 inshutdownprocess = true; 251 inshutdownprocess = true;
252 emit toolbarDestroyed(); 252 emit toolbarDestroyed();
253 delete d; 253 delete d;
254} 254}
255 255
256void KToolBar::init( bool readConfig, bool honorStyle ) 256void KToolBar::init( bool readConfig, bool honorStyle )
257{ 257{
258 sizeHintW = 240;
259 sizeHintH = 22;
258 inshutdownprocess = false; 260 inshutdownprocess = false;
259 d = new KToolBarPrivate; 261 d = new KToolBarPrivate;
260 setFullSize( TRUE ); 262 setFullSize( TRUE );
261 d->m_honorStyle = honorStyle; 263 d->m_honorStyle = honorStyle;
262 context = 0; 264 context = 0;
263 layoutTimer = new QTimer( this ); 265 layoutTimer = new QTimer( this );
264 connect( layoutTimer, SIGNAL( timeout() ), 266 connect( layoutTimer, SIGNAL( timeout() ),
265 this, SLOT( rebuildLayout() ) ); 267 this, SLOT( rebuildLayout() ) );
266 connect( &(d->repaintTimer), SIGNAL( timeout() ), 268 connect( &(d->repaintTimer), SIGNAL( timeout() ),
267 this, SLOT( slotRepaint() ) ); 269 this, SLOT( slotRepaint() ) );
268/*US 270/*US
269 if ( kapp ) { // may be null when started inside designer 271 if ( kapp ) { // may be null when started inside designer
270 connect(kapp, SIGNAL(toolbarAppearanceChanged(int)), this, SLOT(slotAppearanceChanged())); 272 connect(kapp, SIGNAL(toolbarAppearanceChanged(int)), this, SLOT(slotAppearanceChanged()));
271 // request notification of changes in icon style 273 // request notification of changes in icon style
272 kapp->addKipcEventMask(KIPC::IconChanged); 274 kapp->addKipcEventMask(KIPC::IconChanged);
273 connect(kapp, SIGNAL(iconChanged(int)), this, SLOT(slotIconChanged(int))); 275 connect(kapp, SIGNAL(iconChanged(int)), this, SLOT(slotIconChanged(int)));
274 } 276 }
275*/ 277*/
276 // finally, read in our configurable settings 278 // finally, read in our configurable settings
277 if ( readConfig ) 279 if ( readConfig )
278 slotReadConfig(); 280 slotReadConfig();
279 281
280 if ( mainWindow() ) 282 if ( mainWindow() )
281 connect( mainWindow(), SIGNAL( toolBarPositionChanged( QToolBar * ) ), 283 connect( mainWindow(), SIGNAL( toolBarPositionChanged( QToolBar * ) ),
282 this, SLOT( toolBarPosChanged( QToolBar * ) ) ); 284 this, SLOT( toolBarPosChanged( QToolBar * ) ) );
283 285
284 // Hack to make sure we recalculate our size when we dock. 286 // Hack to make sure we recalculate our size when we dock.
285//US connect( this, SIGNAL(placeChanged(QDockWindow::Place)), SLOT(rebuildLayout()) ); 287//US connect( this, SIGNAL(placeChanged(QDockWindow::Place)), SLOT(rebuildLayout()) );
286} 288}
287 289
288int KToolBar::insertButton(const QString& icon, int id, bool enabled, 290int KToolBar::insertButton(const QString& icon, int id, bool enabled,
289 const QString& text, int index/*US, KInstance *_instance*/ ) 291 const QString& text, int index/*US, KInstance *_instance*/ )
290{ 292{
291 KToolBarButton *button = new KToolBarButton( icon, id, this, 0, text/*US, _instance*/ ); 293 KToolBarButton *button = new KToolBarButton( icon, id, this, 0, text/*US, _instance*/ );
292 294
293 insertWidgetInternal( button, index, id ); 295 insertWidgetInternal( button, index, id );
294 button->setEnabled( enabled ); 296 button->setEnabled( enabled );
295 doConnections( button ); 297 doConnections( button );
296 return index; 298 return index;
297} 299}
298 300
299 301
300int KToolBar::insertButton(const QString& icon, int id, const char *signal, 302int KToolBar::insertButton(const QString& icon, int id, const char *signal,
301 const QObject *receiver, const char *slot, 303 const QObject *receiver, const char *slot,
302 bool enabled, const QString& text, int index/*US, KInstance *_instance*/ ) 304 bool enabled, const QString& text, int index/*US, KInstance *_instance*/ )
303{ 305{
304 KToolBarButton *button = new KToolBarButton( icon, id, this, 0, text/*US, _instance*/); 306 KToolBarButton *button = new KToolBarButton( icon, id, this, 0, text/*US, _instance*/);
305 insertWidgetInternal( button, index, id ); 307 insertWidgetInternal( button, index, id );
306 button->setEnabled( enabled ); 308 button->setEnabled( enabled );
307 connect( button, signal, receiver, slot ); 309 connect( button, signal, receiver, slot );
308 doConnections( button ); 310 doConnections( button );
309 return index; 311 return index;
310} 312}
311 313
312 314
313int KToolBar::insertButton(const QPixmap& pixmap, int id, bool enabled, 315int KToolBar::insertButton(const QPixmap& pixmap, int id, bool enabled,
314 const QString& text, int index ) 316 const QString& text, int index )
315{ 317{
316 KToolBarButton *button = new KToolBarButton( pixmap, id, this, 0, text); 318 KToolBarButton *button = new KToolBarButton( pixmap, id, this, 0, text);
317 insertWidgetInternal( button, index, id ); 319 insertWidgetInternal( button, index, id );
318 button->setEnabled( enabled ); 320 button->setEnabled( enabled );
319 doConnections( button ); 321 doConnections( button );
320 return index; 322 return index;
321} 323}
322#if 0 324#if 0
323 bar->insertButton( icon, id_, SIGNAL( clicked() ), this, 325 bar->insertButton( icon, id_, SIGNAL( clicked() ), this,
324 SLOT( slotActivated() ), 326 SLOT( slotActivated() ),
325 d->isEnabled(), d->plainText(), index/*US, instance*/ ); 327 d->isEnabled(), d->plainText(), index/*US, instance*/ );
326#endif 328#endif
327 329
328int KToolBar::insertButton(const QPixmap& pixmap, int id, const char *signal, 330int KToolBar::insertButton(const QPixmap& pixmap, int id, const char *signal,
329 const QObject *receiver, const char *slot, 331 const QObject *receiver, const char *slot,
330 bool enabled, const QString& text, 332 bool enabled, const QString& text,
331 int index ) 333 int index )
332{ 334{
333 KToolBarButton *button = new KToolBarButton( pixmap, id, this, 0, text); 335 KToolBarButton *button = new KToolBarButton( pixmap, id, this, 0, text);
334 insertWidgetInternal( button, index, id ); 336 insertWidgetInternal( button, index, id );
335 button->setEnabled( enabled ); 337 button->setEnabled( enabled );
336 connect( button, signal, receiver, slot ); 338 connect( button, signal, receiver, slot );
337 doConnections( button ); 339 doConnections( button );
338 return index; 340 return index;
339} 341}
340 342
341 343
342int KToolBar::insertButton(const QString& icon, int id, QPopupMenu *popup, 344int KToolBar::insertButton(const QString& icon, int id, QPopupMenu *popup,
343 bool enabled, const QString &text, int index ) 345 bool enabled, const QString &text, int index )
344{ 346{
345 KToolBarButton *button = new KToolBarButton( icon, id, this, 0, text ); 347 KToolBarButton *button = new KToolBarButton( icon, id, this, 0, text );
346 insertWidgetInternal( button, index, id ); 348 insertWidgetInternal( button, index, id );
347 button->setEnabled( enabled ); 349 button->setEnabled( enabled );
348 button->setPopup( popup ); 350 button->setPopup( popup );
349 doConnections( button ); 351 doConnections( button );
350 return index; 352 return index;
351} 353}
352 354
353 355
354int KToolBar::insertButton(const QPixmap& pixmap, int id, QPopupMenu *popup, 356int KToolBar::insertButton(const QPixmap& pixmap, int id, QPopupMenu *popup,
355 bool enabled, const QString &text, int index ) 357 bool enabled, const QString &text, int index )
356{ 358{
357 KToolBarButton *button = new KToolBarButton( pixmap, id, this, 0, text ); 359 KToolBarButton *button = new KToolBarButton( pixmap, id, this, 0, text );
358 insertWidgetInternal( button, index, id ); 360 insertWidgetInternal( button, index, id );
359 button->setEnabled( enabled ); 361 button->setEnabled( enabled );
360 button->setPopup( popup ); 362 button->setPopup( popup );
361 doConnections( button ); 363 doConnections( button );
362 return index; 364 return index;
363} 365}
364 366
365 367
366int KToolBar::insertLined (const QString& text, int id, 368int KToolBar::insertLined (const QString& text, int id,
367 const char *signal, 369 const char *signal,
368 const QObject *receiver, const char *slot, 370 const QObject *receiver, const char *slot,
369 bool enabled , 371 bool enabled ,
370 const QString& toolTipText, 372 const QString& toolTipText,
371 int size, int index ) 373 int size, int index )
372{ 374{
373 KLineEdit *lined = new KLineEdit ( this, 0 ); 375 KLineEdit *lined = new KLineEdit ( this, 0 );
374 if ( !toolTipText.isEmpty() ) 376 if ( !toolTipText.isEmpty() )
375 QToolTip::add( lined, toolTipText ); 377 QToolTip::add( lined, toolTipText );
376 if ( size > 0 ) 378 if ( size > 0 )
377 lined->setMinimumWidth( size ); 379 lined->setMinimumWidth( size );
378 insertWidgetInternal( lined, index, id ); 380 insertWidgetInternal( lined, index, id );
379 connect( lined, signal, receiver, slot ); 381 connect( lined, signal, receiver, slot );
380 lined->setText(text); 382 lined->setText(text);
381 lined->setEnabled( enabled ); 383 lined->setEnabled( enabled );
382 return index; 384 return index;
383} 385}
384 386
385int KToolBar::insertCombo (const QStringList &list, int id, bool writable, 387int KToolBar::insertCombo (const QStringList &list, int id, bool writable,
386 const char *signal, const QObject *receiver, 388 const char *signal, const QObject *receiver,
387 const char *slot, bool enabled, 389 const char *slot, bool enabled,
388 const QString& tooltiptext, 390 const QString& tooltiptext,
389 int size, int index, 391 int size, int index,
390 QComboBox::Policy policy ) 392 QComboBox::Policy policy )
391{ 393{
392//US KComboBox *combo = new KComboBox ( writable, this ); 394//US KComboBox *combo = new KComboBox ( writable, this );
393 KComboBox *combo = new KComboBox ( this ); 395 KComboBox *combo = new KComboBox ( this );
394 combo->setEditable(writable); 396 combo->setEditable(writable);
395 397
396 insertWidgetInternal( combo, index, id ); 398 insertWidgetInternal( combo, index, id );
397 combo->insertStringList (list); 399 combo->insertStringList (list);
398 combo->setInsertionPolicy(policy); 400 combo->setInsertionPolicy(policy);
399 combo->setEnabled( enabled ); 401 combo->setEnabled( enabled );
400 if ( !tooltiptext.isEmpty() ) 402 if ( !tooltiptext.isEmpty() )
401 QToolTip::add( combo, tooltiptext ); 403 QToolTip::add( combo, tooltiptext );
402 if ( size > 0 ) 404 if ( size > 0 )
403 combo->setMinimumWidth( size ); 405 combo->setMinimumWidth( size );
404 if (!tooltiptext.isNull()) 406 if (!tooltiptext.isNull())
405 QToolTip::add( combo, tooltiptext ); 407 QToolTip::add( combo, tooltiptext );
406 408
407 if ( signal && receiver && slot ) 409 if ( signal && receiver && slot )
408 connect ( combo, signal, receiver, slot ); 410 connect ( combo, signal, receiver, slot );
409 return index; 411 return index;
410} 412}
411 413
412 414
413int KToolBar::insertCombo (const QString& text, int id, bool writable, 415int KToolBar::insertCombo (const QString& text, int id, bool writable,
414 const char *signal, QObject *receiver, 416 const char *signal, QObject *receiver,
415 const char *slot, bool enabled, 417 const char *slot, bool enabled,
416 const QString& tooltiptext, 418 const QString& tooltiptext,
417 int size, int index, 419 int size, int index,
418 QComboBox::Policy policy ) 420 QComboBox::Policy policy )
419{ 421{
420//US KComboBox *combo = new KComboBox ( writable, this ); 422//US KComboBox *combo = new KComboBox ( writable, this );
421 KComboBox *combo = new KComboBox ( this ); 423 KComboBox *combo = new KComboBox ( this );
422 combo->setEditable(writable); 424 combo->setEditable(writable);
423 425
424 insertWidgetInternal( combo, index, id ); 426 insertWidgetInternal( combo, index, id );
425 combo->insertItem (text); 427 combo->insertItem (text);
426 combo->setInsertionPolicy(policy); 428 combo->setInsertionPolicy(policy);
427 combo->setEnabled( enabled ); 429 combo->setEnabled( enabled );
428 if ( !tooltiptext.isEmpty() ) 430 if ( !tooltiptext.isEmpty() )
429 QToolTip::add( combo, tooltiptext ); 431 QToolTip::add( combo, tooltiptext );
430 if ( size > 0 ) 432 if ( size > 0 )
431 combo->setMinimumWidth( size ); 433 combo->setMinimumWidth( size );
432 if (!tooltiptext.isNull()) 434 if (!tooltiptext.isNull())
433 QToolTip::add( combo, tooltiptext ); 435 QToolTip::add( combo, tooltiptext );
434 connect (combo, signal, receiver, slot); 436 connect (combo, signal, receiver, slot);
435 return index; 437 return index;
436} 438}
437 439
438int KToolBar::insertSeparator(int index, int id) 440int KToolBar::insertSeparator(int index, int id)
439{ 441{
440 QWidget *w = new KToolBarSeparator( orientation(), FALSE, this, "tool bar separator" ); 442 QWidget *w = new KToolBarSeparator( orientation(), FALSE, this, "tool bar separator" );
441 insertWidgetInternal( w, index, id ); 443 insertWidgetInternal( w, index, id );
442 return index; 444 return index;
443} 445}
444 446
445int KToolBar::insertLineSeparator(int index, int id) 447int KToolBar::insertLineSeparator(int index, int id)
446{ 448{
447 QWidget *w = new KToolBarSeparator( orientation(), TRUE, this, "tool bar separator" ); 449 QWidget *w = new KToolBarSeparator( orientation(), TRUE, this, "tool bar separator" );
448 insertWidgetInternal( w, index, id ); 450 insertWidgetInternal( w, index, id );
449 return index; 451 return index;
@@ -1250,386 +1252,394 @@ void KToolBar::mousePressEvent ( QMouseEvent *m )
1250 QMainWindow *mw = mainWindow(); 1252 QMainWindow *mw = mainWindow();
1251 if ( mw->toolBarsMovable() && d->m_enableContext ) { 1253 if ( mw->toolBarsMovable() && d->m_enableContext ) {
1252 if ( m->button() == RightButton ) { 1254 if ( m->button() == RightButton ) {
1253 int i = contextMenu()->exec( m->globalPos(), 0 ); 1255 int i = contextMenu()->exec( m->globalPos(), 0 );
1254 switch ( i ) { 1256 switch ( i ) {
1255 case -1: 1257 case -1:
1256 return; // popup cancelled 1258 return; // popup cancelled
1257 case CONTEXT_LEFT: 1259 case CONTEXT_LEFT:
1258//US mw->moveDockWindow( this, DockLeft ); 1260//US mw->moveDockWindow( this, DockLeft );
1259 mw->moveToolBar( this, QMainWindow::Left ); 1261 mw->moveToolBar( this, QMainWindow::Left );
1260 break; 1262 break;
1261 case CONTEXT_RIGHT: 1263 case CONTEXT_RIGHT:
1262//US mw->moveDockWindow( this, DockRight ); 1264//US mw->moveDockWindow( this, DockRight );
1263 mw->moveToolBar( this, QMainWindow::Right ); 1265 mw->moveToolBar( this, QMainWindow::Right );
1264 break; 1266 break;
1265 case CONTEXT_TOP: 1267 case CONTEXT_TOP:
1266//US mw->moveDockWindow( this, DockTop ); 1268//US mw->moveDockWindow( this, DockTop );
1267 mw->moveToolBar( this, QMainWindow::Top ); 1269 mw->moveToolBar( this, QMainWindow::Top );
1268 break; 1270 break;
1269 case CONTEXT_BOTTOM: 1271 case CONTEXT_BOTTOM:
1270//US mw->moveDockWindow( this, DockBottom ); 1272//US mw->moveDockWindow( this, DockBottom );
1271 mw->moveToolBar( this, QMainWindow::Bottom ); 1273 mw->moveToolBar( this, QMainWindow::Bottom );
1272 break; 1274 break;
1273 case CONTEXT_FLOAT: 1275 case CONTEXT_FLOAT:
1274 break; 1276 break;
1275 case CONTEXT_FLAT: 1277 case CONTEXT_FLAT:
1276//US mw->moveDockWindow( this, DockMinimized ); 1278//US mw->moveDockWindow( this, DockMinimized );
1277 mw->moveToolBar( this, QMainWindow::Minimized ); 1279 mw->moveToolBar( this, QMainWindow::Minimized );
1278 break; 1280 break;
1279 case CONTEXT_ICONS: 1281 case CONTEXT_ICONS:
1280 setIconText( IconOnly ); 1282 setIconText( IconOnly );
1281 break; 1283 break;
1282 case CONTEXT_TEXTRIGHT: 1284 case CONTEXT_TEXTRIGHT:
1283 setIconText( IconTextRight ); 1285 setIconText( IconTextRight );
1284 break; 1286 break;
1285 case CONTEXT_TEXT: 1287 case CONTEXT_TEXT:
1286 setIconText( TextOnly ); 1288 setIconText( TextOnly );
1287 break; 1289 break;
1288 case CONTEXT_TEXTUNDER: 1290 case CONTEXT_TEXTUNDER:
1289 setIconText( IconTextBottom ); 1291 setIconText( IconTextBottom );
1290 break; 1292 break;
1291 default: 1293 default:
1292 if ( i >= CONTEXT_ICONSIZES ) 1294 if ( i >= CONTEXT_ICONSIZES )
1293 setIconSize( i - CONTEXT_ICONSIZES ); 1295 setIconSize( i - CONTEXT_ICONSIZES );
1294 else 1296 else
1295 return; // assume this was an action handled elsewhere, no need for setSettingsDirty() 1297 return; // assume this was an action handled elsewhere, no need for setSettingsDirty()
1296 } 1298 }
1297/*US 1299/*US
1298 if ( mw->inherits("KMainWindow") ) 1300 if ( mw->inherits("KMainWindow") )
1299 static_cast<KMainWindow *>(mw)->setSettingsDirty(); 1301 static_cast<KMainWindow *>(mw)->setSettingsDirty();
1300*/ 1302*/
1301 } 1303 }
1302 } 1304 }
1303} 1305}
1304 1306
1305 1307
1306void KToolBar::rebuildLayout() 1308void KToolBar::rebuildLayout()
1307{ 1309{
1308 1310
1309 for(QWidget *w=d->idleButtons.first(); w; w=d->idleButtons.next()) 1311 for(QWidget *w=d->idleButtons.first(); w; w=d->idleButtons.next())
1310 w->blockSignals(false); 1312 w->blockSignals(false);
1311 d->idleButtons.clear(); 1313 d->idleButtons.clear();
1312 1314
1313 layoutTimer->stop(); 1315 layoutTimer->stop();
1314 QApplication::sendPostedEvents( this, QEvent::ChildInserted ); 1316 QApplication::sendPostedEvents( this, QEvent::ChildInserted );
1315 QBoxLayout *l = boxLayout(); 1317 QBoxLayout *l = boxLayout();
1316 l->setMargin( 1 ); 1318 l->setMargin( 1 );
1317 // clear the old layout 1319 // clear the old layout
1318 QLayoutIterator it = l->iterator(); 1320 QLayoutIterator it = l->iterator();
1319 1321
1320 while ( it.current() ) { 1322 while ( it.current() ) {
1321 it.deleteCurrent(); 1323 it.deleteCurrent();
1322 } 1324 }
1323 for ( QWidget *w = widgets.first(); w; w = widgets.next() ) { 1325 for ( QWidget *w = widgets.first(); w; w = widgets.next() ) {
1324 if ( w == rightAligned ) { 1326 if ( w == rightAligned ) {
1325 continue; 1327 continue;
1326 } 1328 }
1327 if ( w->inherits( "KToolBarSeparator" ) && 1329 if ( w->inherits( "KToolBarSeparator" ) &&
1328 !( (KToolBarSeparator*)w )->showLine() ) { 1330 !( (KToolBarSeparator*)w )->showLine() ) {
1329 l->addSpacing( 6 ); 1331 l->addSpacing( 6 );
1330 w->hide(); 1332 w->hide();
1331 continue; 1333 continue;
1332 } 1334 }
1333 if ( w->inherits( "QPopupMenu" ) ) 1335 if ( w->inherits( "QPopupMenu" ) )
1334 continue; 1336 continue;
1335 l->addWidget( w ); 1337 l->addWidget( w );
1336 w->show(); 1338 w->show();
1337 } 1339 }
1338 if ( rightAligned ) { 1340 if ( rightAligned ) {
1339 l->addStretch(); 1341 l->addStretch();
1340 l->addWidget( rightAligned ); 1342 l->addWidget( rightAligned );
1341 rightAligned->show(); 1343 rightAligned->show();
1342 } 1344 }
1343 1345
1344 if ( fullSize() ) { 1346 if ( fullSize() ) {
1345 // This code sucks. It makes the last combo in a toolbar VERY big (e.g. zoom combo in kword). 1347 // This code sucks. It makes the last combo in a toolbar VERY big (e.g. zoom combo in kword).
1346 //if ( !stretchableWidget && widgets.last() && 1348 //if ( !stretchableWidget && widgets.last() &&
1347 // !widgets.last()->inherits( "QButton" ) && !widgets.last()->inherits( "KAnimWidget" ) ) 1349 // !widgets.last()->inherits( "QButton" ) && !widgets.last()->inherits( "KAnimWidget" ) )
1348 // setStretchableWidget( widgets.last() ); 1350 // setStretchableWidget( widgets.last() );
1349 if ( !rightAligned ) 1351 if ( !rightAligned )
1350 l->addStretch(); 1352 l->addStretch();
1351 if ( stretchableWidget ) 1353 if ( stretchableWidget )
1352 l->setStretchFactor( stretchableWidget, 10 ); 1354 l->setStretchFactor( stretchableWidget, 10 );
1353 } 1355 }
1354 l->invalidate(); 1356 l->invalidate();
1355 QApplication::postEvent( this, new QEvent( QEvent::LayoutHint ) ); 1357 QApplication::postEvent( this, new QEvent( QEvent::LayoutHint ) );
1356 //#endif //DESKTOP_VERSION 1358 //#endif //DESKTOP_VERSION
1357} 1359}
1358 1360
1359void KToolBar::childEvent( QChildEvent *e ) 1361void KToolBar::childEvent( QChildEvent *e )
1360{ 1362{
1361 1363
1362 if ( e->child()->isWidgetType() ) { 1364 if ( e->child()->isWidgetType() ) {
1363 QWidget * w = (QWidget*)e->child(); 1365 QWidget * w = (QWidget*)e->child();
1364 if ( e->type() == QEvent::ChildInserted ) { 1366 if ( e->type() == QEvent::ChildInserted ) {
1365 if ( !e->child()->inherits( "QPopupMenu" ) && 1367 if ( !e->child()->inherits( "QPopupMenu" ) &&
1366 ::qstrcmp( "qt_dockwidget_internal", e->child()->name() ) != 0 ) { 1368 ::qstrcmp( "qt_dockwidget_internal", e->child()->name() ) != 0 ) {
1367 1369
1368 // prevent items that have been explicitly inserted by insert*() from 1370 // prevent items that have been explicitly inserted by insert*() from
1369 // being inserted again 1371 // being inserted again
1370 if ( !widget2id.contains( w ) ) 1372 if ( !widget2id.contains( w ) )
1371 { 1373 {
1372 int dummy = -1; 1374 int dummy = -1;
1373 insertWidgetInternal( w, dummy, -1 ); 1375 insertWidgetInternal( w, dummy, -1 );
1374 } 1376 }
1375 } 1377 }
1376 } else { 1378 } else {
1377 removeWidgetInternal( w ); 1379 removeWidgetInternal( w );
1378 } 1380 }
1379 if ( isVisibleTo( 0 ) ) 1381 if ( isVisibleTo( 0 ) )
1380 { 1382 {
1381 QBoxLayout *l = boxLayout(); 1383 QBoxLayout *l = boxLayout();
1382 // QLayout *l = layout(); 1384 // QLayout *l = layout();
1383 1385
1384 // clear the old layout so that we don't get unnecassery layout 1386 // clear the old layout so that we don't get unnecassery layout
1385 // changes till we have rebuild the thing 1387 // changes till we have rebuild the thing
1386 QLayoutIterator it = l->iterator(); 1388 QLayoutIterator it = l->iterator();
1387 while ( it.current() ) { 1389 while ( it.current() ) {
1388 it.deleteCurrent(); 1390 it.deleteCurrent();
1389 } 1391 }
1390 layoutTimer->start( 50, TRUE ); 1392 layoutTimer->start( 50, TRUE );
1391 } 1393 }
1392 } 1394 }
1393 QToolBar::childEvent( e ); 1395 QToolBar::childEvent( e );
1394} 1396}
1395 1397
1396void KToolBar::insertWidgetInternal( QWidget *w, int &index, int id ) 1398void KToolBar::insertWidgetInternal( QWidget *w, int &index, int id )
1397{ 1399{
1398 // we can't have it in widgets, or something is really wrong 1400 // we can't have it in widgets, or something is really wrong
1399 //widgets.removeRef( w ); 1401 //widgets.removeRef( w );
1400 1402
1401 connect( w, SIGNAL( destroyed() ), 1403 connect( w, SIGNAL( destroyed() ),
1402 this, SLOT( widgetDestroyed() ) ); 1404 this, SLOT( widgetDestroyed() ) );
1403 if ( index == -1 || index > (int)widgets.count() ) { 1405 if ( index == -1 || index > (int)widgets.count() ) {
1404 widgets.append( w ); 1406 widgets.append( w );
1405 index = (int)widgets.count(); 1407 index = (int)widgets.count();
1406 } 1408 }
1407 else 1409 else
1408 widgets.insert( index, w ); 1410 widgets.insert( index, w );
1409 if ( id == -1 ) 1411 if ( id == -1 )
1410 id = id2widget.count(); 1412 id = id2widget.count();
1411 id2widget.insert( id, w ); 1413 id2widget.insert( id, w );
1412 widget2id.insert( w, id ); 1414 widget2id.insert( w, id );
1413} 1415}
1414void KToolBar::repaintMe() 1416void KToolBar::repaintMe()
1415{ 1417{
1416 setUpdatesEnabled( true ); 1418 setUpdatesEnabled( true );
1417 QToolBar::repaint( true ); 1419 QToolBar::repaint( true );
1418 qDebug(" KToolBar::repaintMe() "); 1420 qDebug(" KToolBar::repaintMe() ");
1419} 1421}
1420 1422
1421void KToolBar::showEvent( QShowEvent *e ) 1423void KToolBar::showEvent( QShowEvent *e )
1422{ 1424{
1423 rebuildLayout(); 1425 rebuildLayout();
1424 QToolBar::showEvent( e ); 1426 QToolBar::showEvent( e );
1425} 1427}
1426 1428
1427void KToolBar::setStretchableWidget( QWidget *w ) 1429void KToolBar::setStretchableWidget( QWidget *w )
1428{ 1430{
1429 QToolBar::setStretchableWidget( w ); 1431 QToolBar::setStretchableWidget( w );
1430 stretchableWidget = w; 1432 stretchableWidget = w;
1431} 1433}
1432 1434
1433QSizePolicy KToolBar::sizePolicy() const 1435QSizePolicy KToolBar::sizePolicy() const
1434{ 1436{
1435 if ( orientation() == Horizontal ) 1437 if ( orientation() == Horizontal )
1436 return QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ); 1438 return QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed );
1437 else 1439 else
1438 return QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Expanding ); 1440 return QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Expanding );
1439} 1441}
1440 1442
1441QSize KToolBar::sizeHint() const 1443QSize KToolBar::sizeHint() const
1442{ 1444{
1443 return QToolBar::sizeHint(); 1445 QSize sh = QToolBar::sizeHint();
1446 //qDebug("%x KToolBar::sizeHint() %d %d ",this, QToolBar::sizeHint().width(),QToolBar::sizeHint().height() );
1447 if ( sh.height() <= 20 || sh.width() < 60 )
1448 return QSize( sizeHintW, sizeHintH );
1449 KToolBar* ttt = (KToolBar*) this;
1450 ttt->sizeHintW = sh.width();
1451 ttt->sizeHintH = sh.height();
1452 return sh;
1453 //return QToolBar::sizeHint();
1444#if 0 1454#if 0
1445 QWidget::polish(); 1455 QWidget::polish();
1446 static int iii = 0; 1456 static int iii = 0;
1447 ++iii; 1457 ++iii;
1448 qDebug("++++++++ KToolBar::sizeHint() %d ", iii ); 1458 qDebug("++++++++ KToolBar::sizeHint() %d ", iii );
1449 int margin = static_cast<QWidget*>(ncThis)->layout()->margin(); 1459 int margin = static_cast<QWidget*>(ncThis)->layout()->margin();
1450 switch( barPos() ) 1460 switch( barPos() )
1451 { 1461 {
1452 case KToolBar::Top: 1462 case KToolBar::Top:
1453 case KToolBar::Bottom: 1463 case KToolBar::Bottom:
1454 for ( QWidget *w = widgets.first(); w; w =widgets.next() ) 1464 for ( QWidget *w = widgets.first(); w; w =widgets.next() )
1455 { 1465 {
1456 if ( w->inherits( "KToolBarSeparator" ) && 1466 if ( w->inherits( "KToolBarSeparator" ) &&
1457 !( static_cast<KToolBarSeparator*>(w)->showLine() ) ) 1467 !( static_cast<KToolBarSeparator*>(w)->showLine() ) )
1458 { 1468 {
1459 minSize += QSize(6, 0); 1469 minSize += QSize(6, 0);
1460 } 1470 }
1461 else 1471 else
1462 { 1472 {
1463 QSize sh = w->sizeHint(); 1473 QSize sh = w->sizeHint();
1464 if (!sh.isValid()) 1474 if (!sh.isValid())
1465 sh = w->minimumSize(); 1475 sh = w->minimumSize();
1466 minSize = minSize.expandedTo(QSize(0, sh.height())); 1476 minSize = minSize.expandedTo(QSize(0, sh.height()));
1467 minSize += QSize(sh.width()+1, 0); 1477 minSize += QSize(sh.width()+1, 0);
1468 } 1478 }
1469 } 1479 }
1470/*US 1480/*US
1471 minSize += QSize(QApplication::style().pixelMetric( QStyle::PM_DockWindowHandleExtent ), 0); 1481 minSize += QSize(QApplication::style().pixelMetric( QStyle::PM_DockWindowHandleExtent ), 0);
1472*/ 1482*/
1473 minSize += QSize(margin*2, margin*2); 1483 minSize += QSize(margin*2, margin*2);
1474 break; 1484 break;
1475 1485
1476 case KToolBar::Left: 1486 case KToolBar::Left:
1477 case KToolBar::Right: 1487 case KToolBar::Right:
1478 for ( QWidget *w = widgets.first(); w; w = widgets.next() ) 1488 for ( QWidget *w = widgets.first(); w; w = widgets.next() )
1479 { 1489 {
1480 if ( w->inherits( "KToolBarSeparator" ) && 1490 if ( w->inherits( "KToolBarSeparator" ) &&
1481 !( static_cast<KToolBarSeparator*>(w)->showLine() ) ) 1491 !( static_cast<KToolBarSeparator*>(w)->showLine() ) )
1482 { 1492 {
1483 minSize += QSize(0, 6); 1493 minSize += QSize(0, 6);
1484 } 1494 }
1485 else 1495 else
1486 { 1496 {
1487 QSize sh = w->sizeHint(); 1497 QSize sh = w->sizeHint();
1488 if (!sh.isValid()) 1498 if (!sh.isValid())
1489 sh = w->minimumSize(); 1499 sh = w->minimumSize();
1490 minSize = minSize.expandedTo(QSize(sh.width(), 0)); 1500 minSize = minSize.expandedTo(QSize(sh.width(), 0));
1491 minSize += QSize(0, sh.height()+1); 1501 minSize += QSize(0, sh.height()+1);
1492 } 1502 }
1493 } 1503 }
1494/*US 1504/*US
1495 minSize += QSize(0, QApplication::style().pixelMetric( QStyle::PM_DockWindowHandleExtent )); 1505 minSize += QSize(0, QApplication::style().pixelMetric( QStyle::PM_DockWindowHandleExtent ));
1496*/ 1506*/
1497 minSize += QSize(margin*2, margin*2); 1507 minSize += QSize(margin*2, margin*2);
1498 break; 1508 break;
1499 1509
1500 default: 1510 default:
1501 minSize = QToolBar::sizeHint(); 1511 minSize = QToolBar::sizeHint();
1502 break; 1512 break;
1503 } 1513 }
1504 return minSize; 1514 return minSize;
1505#endif 1515#endif
1506} 1516}
1507 1517
1508QSize KToolBar::minimumSize() const 1518QSize KToolBar::minimumSize() const
1509{ 1519{
1510 return minimumSizeHint(); 1520 return minimumSizeHint();
1511} 1521}
1512 1522
1513QSize KToolBar::minimumSizeHint() const 1523QSize KToolBar::minimumSizeHint() const
1514{ 1524{
1515 return sizeHint(); 1525 return sizeHint();
1516} 1526}
1517 1527
1518bool KToolBar::highlight() const 1528bool KToolBar::highlight() const
1519{ 1529{
1520 return d->m_highlight; 1530 return d->m_highlight;
1521} 1531}
1522 1532
1523void KToolBar::hide() 1533void KToolBar::hide()
1524{ 1534{
1525 QToolBar::hide(); 1535 QToolBar::hide();
1526} 1536}
1527 1537
1528void KToolBar::show() 1538void KToolBar::show()
1529{ 1539{
1530 QToolBar::show(); 1540 QToolBar::show();
1531} 1541}
1532 1542
1533void KToolBar::resizeEvent( QResizeEvent *e ) 1543void KToolBar::resizeEvent( QResizeEvent *e )
1534{ 1544{
1535 bool b = isUpdatesEnabled(); 1545 bool b = isUpdatesEnabled();
1536 setUpdatesEnabled( FALSE ); 1546 setUpdatesEnabled( FALSE );
1537 QToolBar::resizeEvent( e ); 1547 QToolBar::resizeEvent( e );
1538 if (b) 1548 if (b)
1539 d->repaintTimer.start( 100, true ); 1549 d->repaintTimer.start( 100, true );
1540} 1550}
1541 1551
1542void KToolBar::slotIconChanged(int group) 1552void KToolBar::slotIconChanged(int group)
1543{ 1553{
1544 if ((group != KIcon::Toolbar) && (group != KIcon::MainToolbar)) 1554 if ((group != KIcon::Toolbar) && (group != KIcon::MainToolbar))
1545 return; 1555 return;
1546 if ((group == KIcon::MainToolbar) != !::qstrcmp(name(), "mainToolBar")) 1556 if ((group == KIcon::MainToolbar) != !::qstrcmp(name(), "mainToolBar"))
1547 return; 1557 return;
1548 1558
1549 emit modechange(); 1559 emit modechange();
1550 if (isVisible()) 1560 if (isVisible())
1551 updateGeometry(); 1561 updateGeometry();
1552} 1562}
1553 1563
1554void KToolBar::slotReadConfig() 1564void KToolBar::slotReadConfig()
1555{ 1565{
1556 //kdDebug(220) << "KToolBar::slotReadConfig" << endl; 1566 //kdDebug(220) << "KToolBar::slotReadConfig" << endl;
1557 // Read appearance settings (hmm, we used to do both here, 1567 // Read appearance settings (hmm, we used to do both here,
1558 // but a well behaved application will call applyMainWindowSettings 1568 // but a well behaved application will call applyMainWindowSettings
1559 // anyway, right ?) 1569 // anyway, right ?)
1560 applyAppearanceSettings(KGlobal::config(), QString::null ); 1570 applyAppearanceSettings(KGlobal::config(), QString::null );
1561} 1571}
1562 1572
1563void KToolBar::slotAppearanceChanged() 1573void KToolBar::slotAppearanceChanged()
1564{ 1574{
1565 // Read appearance settings from global file. 1575 // Read appearance settings from global file.
1566 applyAppearanceSettings(KGlobal::config(), QString::null, true /* lose local settings */ ); 1576 applyAppearanceSettings(KGlobal::config(), QString::null, true /* lose local settings */ );
1567 // And remember to save the new look later 1577 // And remember to save the new look later
1568/*US 1578/*US
1569 if ( mainWindow() && mainWindow()->inherits( "KMainWindow" ) ) 1579 if ( mainWindow() && mainWindow()->inherits( "KMainWindow" ) )
1570 static_cast<KMainWindow *>(mainWindow())->setSettingsDirty(); 1580 static_cast<KMainWindow *>(mainWindow())->setSettingsDirty();
1571*/ 1581*/
1572} 1582}
1573 1583
1574//static 1584//static
1575bool KToolBar::highlightSetting() 1585bool KToolBar::highlightSetting()
1576{ 1586{
1577 QString grpToolbar(QString::fromLatin1("Toolbar style")); 1587 QString grpToolbar(QString::fromLatin1("Toolbar style"));
1578 KConfigGroupSaver saver(KGlobal::config(), grpToolbar); 1588 KConfigGroupSaver saver(KGlobal::config(), grpToolbar);
1579 return KGlobal::config()->readBoolEntry(QString::fromLatin1("Highlighting"),true); 1589 return KGlobal::config()->readBoolEntry(QString::fromLatin1("Highlighting"),true);
1580} 1590}
1581 1591
1582//static 1592//static
1583bool KToolBar::transparentSetting() 1593bool KToolBar::transparentSetting()
1584{ 1594{
1585 QString grpToolbar(QString::fromLatin1("Toolbar style")); 1595 QString grpToolbar(QString::fromLatin1("Toolbar style"));
1586 KConfigGroupSaver saver(KGlobal::config(), grpToolbar); 1596 KConfigGroupSaver saver(KGlobal::config(), grpToolbar);
1587 return KGlobal::config()->readBoolEntry(QString::fromLatin1("TransparentMoving"),true); 1597 return KGlobal::config()->readBoolEntry(QString::fromLatin1("TransparentMoving"),true);
1588} 1598}
1589 1599
1590//static 1600//static
1591KToolBar::IconText KToolBar::iconTextSetting() 1601KToolBar::IconText KToolBar::iconTextSetting()
1592{ 1602{
1593 QString grpToolbar(QString::fromLatin1("Toolbar style")); 1603 QString grpToolbar(QString::fromLatin1("Toolbar style"));
1594 KConfigGroupSaver saver(KGlobal::config(), grpToolbar); 1604 KConfigGroupSaver saver(KGlobal::config(), grpToolbar);
1595 QString icontext = KGlobal::config()->readEntry(QString::fromLatin1("IconText"),QString::fromLatin1("IconOnly")); 1605 QString icontext = KGlobal::config()->readEntry(QString::fromLatin1("IconText"),QString::fromLatin1("IconOnly"));
1596 if ( icontext == "IconTextRight" ) 1606 if ( icontext == "IconTextRight" )
1597 return IconTextRight; 1607 return IconTextRight;
1598 else if ( icontext == "IconTextBottom" ) 1608 else if ( icontext == "IconTextBottom" )
1599 return IconTextBottom; 1609 return IconTextBottom;
1600 else if ( icontext == "TextOnly" ) 1610 else if ( icontext == "TextOnly" )
1601 return TextOnly; 1611 return TextOnly;
1602 else 1612 else
1603 return IconOnly; 1613 return IconOnly;
1604} 1614}
1605 1615
1606void KToolBar::applyAppearanceSettings(KConfig *config, const QString &_configGroup, bool forceGlobal) 1616void KToolBar::applyAppearanceSettings(KConfig *config, const QString &_configGroup, bool forceGlobal)
1607{ 1617{
1608 return; 1618 return;
1609 QString configGroup = _configGroup.isEmpty() ? settingsGroup() : _configGroup; 1619 QString configGroup = _configGroup.isEmpty() ? settingsGroup() : _configGroup;
1610 //kdDebug(220) << "KToolBar::applyAppearanceSettings: configGroup=" << configGroup << endl; 1620 //kdDebug(220) << "KToolBar::applyAppearanceSettings: configGroup=" << configGroup << endl;
1611 // We have application-specific settings in the XML file, 1621 // We have application-specific settings in the XML file,
1612 // and nothing in the application's config file 1622 // and nothing in the application's config file
1613 // -> don't apply the global defaults, the XML ones are preferred 1623 // -> don't apply the global defaults, the XML ones are preferred
1614 // See applySettings for a full explanation 1624 // See applySettings for a full explanation
1615/*US :we do not support xml files 1625/*US :we do not support xml files
1616 if ( d->m_xmlguiClient && !d->m_xmlguiClient->xmlFile().isEmpty() && 1626 if ( d->m_xmlguiClient && !d->m_xmlguiClient->xmlFile().isEmpty() &&
1617 !config->hasGroup(configGroup) ) 1627 !config->hasGroup(configGroup) )
1618 { 1628 {
1619 //kdDebug(220) << "skipping global defaults, using XML ones instead" << endl; 1629 //kdDebug(220) << "skipping global defaults, using XML ones instead" << endl;
1620 return; 1630 return;
1621 } 1631 }
1622*/ 1632*/
1623 if ( !config->hasGroup(configGroup) ) 1633 if ( !config->hasGroup(configGroup) )
1624 { 1634 {
1625 //kdDebug(220) << "skipping global defaults, using XML ones instead" << endl; 1635 //kdDebug(220) << "skipping global defaults, using XML ones instead" << endl;
1626 return; 1636 return;
1627 } 1637 }
1628 1638
1629 1639
1630 KConfig *gconfig = KGlobal::config(); 1640 KConfig *gconfig = KGlobal::config();
1631/*US 1641/*US
1632 static const QString &attrIconText = KGlobal::staticQString("IconText"); 1642 static const QString &attrIconText = KGlobal::staticQString("IconText");
1633 static const QString &attrHighlight = KGlobal::staticQString("Highlighting"); 1643 static const QString &attrHighlight = KGlobal::staticQString("Highlighting");
1634 static const QString &attrTrans = KGlobal::staticQString("TransparentMoving"); 1644 static const QString &attrTrans = KGlobal::staticQString("TransparentMoving");
1635 static const QString &attrSize = KGlobal::staticQString("IconSize"); 1645 static const QString &attrSize = KGlobal::staticQString("IconSize");
diff --git a/microkde/kdeui/ktoolbar.h b/microkde/kdeui/ktoolbar.h
index 7a5c114..3319fa8 100644
--- a/microkde/kdeui/ktoolbar.h
+++ b/microkde/kdeui/ktoolbar.h
@@ -892,217 +892,219 @@ public:
892 */ 892 */
893 void saveState(); 893 void saveState();
894 894
895 /** 895 /**
896 * Save the toolbar settings to group @p configGroup in @p config. 896 * Save the toolbar settings to group @p configGroup in @p config.
897 */ 897 */
898 void saveSettings(KConfig *config, const QString &configGroup); 898 void saveSettings(KConfig *config, const QString &configGroup);
899 899
900 /** 900 /**
901 * Read the toolbar settings from group @p configGroup in @p config 901 * Read the toolbar settings from group @p configGroup in @p config
902 * and apply them. 902 * and apply them.
903 */ 903 */
904 void applySettings(KConfig *config, const QString &configGroup); 904 void applySettings(KConfig *config, const QString &configGroup);
905 905
906 /** 906 /**
907 * Tell the toolbar what XML-GUI resource file it should use to save 907 * Tell the toolbar what XML-GUI resource file it should use to save
908 * it's state. The state of the toolbar (position, size, etc) is 908 * it's state. The state of the toolbar (position, size, etc) is
909 * saved in KConfig files if the application does not use XML-GUI.. 909 * saved in KConfig files if the application does not use XML-GUI..
910 * but if the app does, then it's saved the XML file. This function 910 * but if the app does, then it's saved the XML file. This function
911 * allows this to happen. 911 * allows this to happen.
912 * 912 *
913 * @param xmlfile The XML-GUI resource file to write to 913 * @param xmlfile The XML-GUI resource file to write to
914 * @param xml The DOM document for the XML-GUI building 914 * @param xml The DOM document for the XML-GUI building
915 */ 915 */
916 // void setXML(const QString& xmlfile, const QDomDocument& xml); 916 // void setXML(const QString& xmlfile, const QDomDocument& xml);
917 /* @internal */ 917 /* @internal */
918 void setXMLGUIClient( KXMLGUIClient *client ); 918 void setXMLGUIClient( KXMLGUIClient *client );
919 919
920 /** 920 /**
921 * Assign a (translated) text to this toolbar. This is used 921 * Assign a (translated) text to this toolbar. This is used
922 * for the tooltip on the handle, and when listing the toolbars. 922 * for the tooltip on the handle, and when listing the toolbars.
923 */ 923 */
924 void setText( const QString & txt ); 924 void setText( const QString & txt );
925 925
926 /** 926 /**
927 * @return the toolbar's text. 927 * @return the toolbar's text.
928 */ 928 */
929 QString text() const; 929 QString text() const;
930 930
931 void setStretchableWidget( QWidget *w ); 931 void setStretchableWidget( QWidget *w );
932 QSizePolicy sizePolicy() const; 932 QSizePolicy sizePolicy() const;
933 bool highlight() const; 933 bool highlight() const;
934 QSize sizeHint() const; 934 QSize sizeHint() const;
935 QSize minimumSizeHint() const; 935 QSize minimumSizeHint() const;
936 QSize minimumSize() const; 936 QSize minimumSize() const;
937 937
938 void hide(); 938 void hide();
939 void show(); 939 void show();
940 940
941 void updateRects( bool = FALSE ) {} 941 void updateRects( bool = FALSE ) {}
942 942
943//US void loadState( const QDomElement &e ); 943//US void loadState( const QDomElement &e );
944//US void saveState( QDomElement &e ); 944//US void saveState( QDomElement &e );
945 945
946 /** 946 /**
947 * @internal 947 * @internal
948 */ 948 */
949 void positionYourself( bool force = false); 949 void positionYourself( bool force = false);
950 950
951signals: 951signals:
952 /** 952 /**
953 * Emitted when button @p id is clicked. 953 * Emitted when button @p id is clicked.
954 */ 954 */
955 void clicked(int id); 955 void clicked(int id);
956 956
957 /** 957 /**
958 * Emitted when button @p id is double-clicked. 958 * Emitted when button @p id is double-clicked.
959 * 959 *
960 * Note: you will always 960 * Note: you will always
961 * recive two @ref clicked() , @ref pressed() and @ref released() signals. 961 * recive two @ref clicked() , @ref pressed() and @ref released() signals.
962 * There is no way to avoid it - at least no easy way. 962 * There is no way to avoid it - at least no easy way.
963 * If you need to resolve this all you can do is set up timers 963 * If you need to resolve this all you can do is set up timers
964 * which wait for @ref QApplication::doubleClickInterval() to expire. 964 * which wait for @ref QApplication::doubleClickInterval() to expire.
965 * If in that time you don't get this signal, you may belive that 965 * If in that time you don't get this signal, you may belive that
966 * button was only clicked and not double-clicked. 966 * button was only clicked and not double-clicked.
967 * And please note that butons with popup menus do not emit this signal, 967 * And please note that butons with popup menus do not emit this signal,
968 * but those with delayed popup do. 968 * but those with delayed popup do.
969 */ 969 */
970 void doubleClicked (int id); 970 void doubleClicked (int id);
971 971
972 /** 972 /**
973 * Emitted when button @p id is pressed. 973 * Emitted when button @p id is pressed.
974 */ 974 */
975 void pressed(int); 975 void pressed(int);
976 976
977 /** 977 /**
978 * Emits when button @p id is released. 978 * Emits when button @p id is released.
979 */ 979 */
980 void released(int); 980 void released(int);
981 981
982 /** 982 /**
983 * Emitted when a toggle button changes state. 983 * Emitted when a toggle button changes state.
984 * 984 *
985 * Emitted also if you change state 985 * Emitted also if you change state
986 * with @ref setButton() or @ref toggleButton() 986 * with @ref setButton() or @ref toggleButton()
987 * If you make a button normal again, with 987 * If you make a button normal again, with
988 * setToggle(false), this signal won't 988 * setToggle(false), this signal won't
989 * be emitted. 989 * be emitted.
990 */ 990 */
991 void toggled(int); 991 void toggled(int);
992 992
993 /** 993 /**
994 * This signal is emitted when item id gets highlighted/unhighlighted 994 * This signal is emitted when item id gets highlighted/unhighlighted
995 * (i.e when mouse enters/exits). 995 * (i.e when mouse enters/exits).
996 * 996 *
997 * Note that this signal is emitted from 997 * Note that this signal is emitted from
998 * all buttons (normal, disabled and toggle) even when there is no visible 998 * all buttons (normal, disabled and toggle) even when there is no visible
999 * change in buttons (i.e., buttons do not raise when mouse enters). 999 * change in buttons (i.e., buttons do not raise when mouse enters).
1000 * The parameter @p isHighlighted is @p true when mouse enters and @p false when 1000 * The parameter @p isHighlighted is @p true when mouse enters and @p false when
1001 * mouse exits. 1001 * mouse exits.
1002 */ 1002 */
1003 void highlighted(int id, bool isHighlighted); 1003 void highlighted(int id, bool isHighlighted);
1004 1004
1005 /** 1005 /**
1006 * This signal is emitted when item id gets highlighted/unhighlighted 1006 * This signal is emitted when item id gets highlighted/unhighlighted
1007 * (i.e when mouse enters/exits). 1007 * (i.e when mouse enters/exits).
1008 * 1008 *
1009 * Note that this signal is emitted from 1009 * Note that this signal is emitted from
1010 * all buttons (normal, disabled and toggle) even when there is no visible 1010 * all buttons (normal, disabled and toggle) even when there is no visible
1011 * change in buttons (i.e., buttons do not raise when mouse enters). 1011 * change in buttons (i.e., buttons do not raise when mouse enters).
1012 */ 1012 */
1013 void highlighted(int id ); 1013 void highlighted(int id );
1014 1014
1015 /** 1015 /**
1016 * Emitted when toolbar changes position, or when 1016 * Emitted when toolbar changes position, or when
1017 * an item is removed from toolbar. 1017 * an item is removed from toolbar.
1018 * 1018 *
1019 * If you subclass @ref KMainWindow and reimplement 1019 * If you subclass @ref KMainWindow and reimplement
1020 * @ref KMainWindow::resizeEvent() be sure to connect to 1020 * @ref KMainWindow::resizeEvent() be sure to connect to
1021 * this signal. Note: You can connect this signal to a slot that 1021 * this signal. Note: You can connect this signal to a slot that
1022 * doesn't take parameter. 1022 * doesn't take parameter.
1023 */ 1023 */
1024 void moved( BarPosition ); 1024 void moved( BarPosition );
1025 1025
1026 /** 1026 /**
1027 * @internal 1027 * @internal
1028 * This signal is emitted when toolbar detects changing of 1028 * This signal is emitted when toolbar detects changing of
1029 * following parameters: 1029 * following parameters:
1030 * highlighting, button-size, button-mode. This signal is 1030 * highlighting, button-size, button-mode. This signal is
1031 * internal, aimed to buttons. 1031 * internal, aimed to buttons.
1032 */ 1032 */
1033 void modechange (); 1033 void modechange ();
1034 1034
1035 /** 1035 /**
1036 * This signal is emitted when the toolbar is getting deleted, 1036 * This signal is emitted when the toolbar is getting deleted,
1037 * and before ~KToolbar finishes (so it's still time to remove 1037 * and before ~KToolbar finishes (so it's still time to remove
1038 * widgets from the toolbar). 1038 * widgets from the toolbar).
1039 * Used by KWidgetAction. 1039 * Used by KWidgetAction.
1040 * @since 3.2 1040 * @since 3.2
1041 */ 1041 */
1042 void toolbarDestroyed(); 1042 void toolbarDestroyed();
1043 1043
1044public: 1044public:
1045 /** 1045 /**
1046 * @return global setting for "Highlight buttons under mouse" 1046 * @return global setting for "Highlight buttons under mouse"
1047 */ 1047 */
1048 void repaintMe(); 1048 void repaintMe();
1049 static bool highlightSetting(); 1049 static bool highlightSetting();
1050 1050
1051 /** 1051 /**
1052 * @return global setting for "Toolbars transparent when moving" 1052 * @return global setting for "Toolbars transparent when moving"
1053 */ 1053 */
1054 static bool transparentSetting(); 1054 static bool transparentSetting();
1055 1055
1056 /** 1056 /**
1057 * @return global setting for "Icon Text" 1057 * @return global setting for "Icon Text"
1058 */ 1058 */
1059 static IconText iconTextSetting(); 1059 static IconText iconTextSetting();
1060 1060
1061public slots: 1061public slots:
1062 virtual void setIconText( const QString &txt ) 1062 virtual void setIconText( const QString &txt )
1063 { QToolBar::setIconText( txt ); } 1063 { QToolBar::setIconText( txt ); }
1064 void slotRepaint(); 1064 void slotRepaint();
1065 1065
1066protected: 1066protected:
1067 void mousePressEvent( QMouseEvent * ); 1067 void mousePressEvent( QMouseEvent * );
1068 void childEvent( QChildEvent *e ); 1068 void childEvent( QChildEvent *e );
1069 void showEvent( QShowEvent *e ); 1069 void showEvent( QShowEvent *e );
1070 void resizeEvent( QResizeEvent *e ); 1070 void resizeEvent( QResizeEvent *e );
1071 bool event( QEvent *e ); 1071 bool event( QEvent *e );
1072 void applyAppearanceSettings(KConfig *config, const QString &_configGroup, bool forceGlobal = false); 1072 void applyAppearanceSettings(KConfig *config, const QString &_configGroup, bool forceGlobal = false);
1073 QString settingsGroup(); 1073 QString settingsGroup();
1074 1074
1075private slots: 1075private slots:
1076 void rebuildLayout(); 1076 void rebuildLayout();
1077 void slotReadConfig (); 1077 void slotReadConfig ();
1078 void slotAppearanceChanged(); 1078 void slotAppearanceChanged();
1079 void slotIconChanged(int); 1079 void slotIconChanged(int);
1080 void toolBarPosChanged( QToolBar *tb ); 1080 void toolBarPosChanged( QToolBar *tb );
1081 void slotContextAboutToShow(); 1081 void slotContextAboutToShow();
1082 void widgetDestroyed(); 1082 void widgetDestroyed();
1083 1083
1084private: 1084private:
1085 int sizeHintW;
1086 int sizeHintH;
1085 void init( bool readConfig = true, bool honorStyle = false ); 1087 void init( bool readConfig = true, bool honorStyle = false );
1086 void doConnections( KToolBarButton *button ); 1088 void doConnections( KToolBarButton *button );
1087 void insertWidgetInternal( QWidget *w, int &index, int id ); 1089 void insertWidgetInternal( QWidget *w, int &index, int id );
1088 void removeWidgetInternal( QWidget *w ); 1090 void removeWidgetInternal( QWidget *w );
1089 void getAttributes( QString &position, QString &icontext, int &index ); 1091 void getAttributes( QString &position, QString &icontext, int &index );
1090//US KPopupMenu *contextMenu(); 1092//US KPopupMenu *contextMenu();
1091 QPopupMenu *contextMenu(); 1093 QPopupMenu *contextMenu();
1092 1094
1093 QMap<QWidget*, int > widget2id; 1095 QMap<QWidget*, int > widget2id;
1094 typedef QMap<int, QWidget* > Id2WidgetMap; 1096 typedef QMap<int, QWidget* > Id2WidgetMap;
1095 Id2WidgetMap id2widget; 1097 Id2WidgetMap id2widget;
1096//US KPopupMenu *context; 1098//US KPopupMenu *context;
1097 QPopupMenu *context; 1099 QPopupMenu *context;
1098 QPtrList<QWidget> widgets; 1100 QPtrList<QWidget> widgets;
1099 QTimer *layoutTimer; 1101 QTimer *layoutTimer;
1100 QGuardedPtr<QWidget> stretchableWidget, rightAligned; 1102 QGuardedPtr<QWidget> stretchableWidget, rightAligned;
1101protected: 1103protected:
1102 virtual void virtual_hook( int id, void* data ); 1104 virtual void virtual_hook( int id, void* data );
1103private: 1105private:
1104 KToolBarPrivate *d; 1106 KToolBarPrivate *d;
1105 bool inshutdownprocess; 1107 bool inshutdownprocess;
1106}; 1108};
1107 1109
1108#endif 1110#endif