summaryrefslogtreecommitdiffabout
path: root/microkde/kdeui/ktoolbar.cpp
Unidiff
Diffstat (limited to 'microkde/kdeui/ktoolbar.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--microkde/kdeui/ktoolbar.cpp14
1 files changed, 12 insertions, 2 deletions
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
@@ -210,96 +210,98 @@ KToolBar::KToolBar( QWidget *parent, const char *name, bool honorStyle, bool rea
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 );
@@ -1394,98 +1396,106 @@ void KToolBar::childEvent( QChildEvent *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);