QToolBarPrivate Class Reference

#include <qtoolbar_p.h>

Inheritance diagram for QToolBarPrivate:

Inheritance graph
[legend]
Collaboration diagram for QToolBarPrivate:

Collaboration graph
[legend]
List of all members.

Detailed Description

Definition at line 54 of file qtoolbar_p.h.

Public Member Functions

 QToolBarPrivate ()
void init ()
void actionTriggered ()
void _q_toggleView (bool b)
void _q_updateIconSize (const QSize &sz)
void _q_updateToolButtonStyle (Qt::ToolButtonStyle style)
QToolBarItem createItem (QAction *action)
int indexOf (QAction *action) const

Public Attributes

bool explicitIconSize
bool explicitToolButtonStyle
bool movable
Qt::ToolBarAreas allowedAreas
Qt::Orientation orientation
Qt::ToolButtonStyle toolButtonStyle
QSize iconSize
QToolBarHandlehandle
QToolBarExtensionextension
QList< QToolBarItemitems
QActiontoggleViewAction
bool inResizeEvent


Constructor & Destructor Documentation

QToolBarPrivate::QToolBarPrivate (  )  [inline]

Definition at line 59 of file qtoolbar_p.h.


Member Function Documentation

void QToolBarPrivate::init (  ) 

Definition at line 181 of file qtoolbar.cpp.

References _q_toggleView(), QLayout::addWidget(), Qt::AlignLeft, QPalette::Button, QObject::connect(), QSizePolicy::Expanding, extension, getStyleOption(), handle, QWidget::hide(), iconSize, QWidgetPrivate::layout, QBoxLayout::LeftToRight, QSizePolicy::Minimum, movable, Qt::NoFocus, QStyle::pixelMetric(), QStyle::PM_ToolBarFrameWidth, QStyle::PM_ToolBarIconSize, QStyle::PM_ToolBarItemMargin, QStyle::PM_ToolBarItemSpacing, QLayout::setAlignment(), QAction::setCheckable(), QWidget::setFocusPolicy(), QLayout::setMargin(), QLayout::setSpacing(), QWidget::setVisible(), SIGNAL, SLOT, and toggleViewAction.

00182 {
00183     Q_Q(QToolBar);
00184     movable = true;
00185     q->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Expanding));
00186     q->setBackgroundRole(QPalette::Button);
00187 
00188 
00189     QStyleOptionToolBar opt = getStyleOption(q);
00190 
00191     QBoxLayout *layout = new QBoxLayout(QBoxLayout::LeftToRight, q);
00192     QStyle *style = q->style();
00193 
00194     int e = style->pixelMetric(QStyle::PM_ToolBarIconSize);
00195     iconSize = QSize(e, e);
00196 
00197     layout->setAlignment(Qt::AlignLeft);
00198     layout->setMargin(style->pixelMetric(QStyle::PM_ToolBarFrameWidth, &opt, q)
00199                       + style->pixelMetric(QStyle::PM_ToolBarItemMargin, &opt, q));
00200     layout->setSpacing(style->pixelMetric(QStyle::PM_ToolBarItemSpacing, &opt, q));
00201 
00202     handle = new QToolBarHandle(q);
00203     QObject::connect(q, SIGNAL(orientationChanged(Qt::Orientation)),
00204                      handle, SLOT(setOrientation(Qt::Orientation)));
00205     layout->addWidget(handle);
00206     handle->setVisible(movable && (qobject_cast<QMainWindow *>(q->parentWidget()) != 0));
00207 
00208     extension = new QToolBarExtension(q);
00209     QObject::connect(q, SIGNAL(orientationChanged(Qt::Orientation)),
00210                      extension, SLOT(setOrientation(Qt::Orientation)));
00211     extension->setFocusPolicy(Qt::NoFocus);
00212     extension->hide();
00213 
00214 #ifdef Q_WS_MAC
00215     if (q->parentWidget() && q->parentWidget()->isWindow()) {
00216         // Make sure that the window has the "toolbar" button.
00217         reinterpret_cast<QToolBar *>(q->parentWidget())->d_func()->createWinId(); // Please let me create your winId...
00218         extern WindowPtr qt_mac_window_for(const QWidget *); // qwidget_mac.cpp
00219         ChangeWindowAttributes(qt_mac_window_for(q->parentWidget()), kWindowToolbarButtonAttribute,
00220                                kWindowNoAttributes);
00221     }
00222 #endif
00223 
00224     toggleViewAction = new QAction(q);
00225     toggleViewAction->setCheckable(true);
00226     QObject::connect(toggleViewAction, SIGNAL(triggered(bool)), q, SLOT(_q_toggleView(bool)));
00227 }

Here is the call graph for this function:

void QToolBarPrivate::actionTriggered (  ) 

Referenced by createItem().

void QToolBarPrivate::_q_toggleView ( bool  b  ) 

Definition at line 229 of file qtoolbar.cpp.

Referenced by init().

00230 {
00231     Q_Q(QToolBar);
00232     if (b == q->isHidden()) {
00233         if (b)
00234             q->show();
00235         else
00236             q->close();
00237     }
00238 }

void QToolBarPrivate::_q_updateIconSize ( const QSize sz  ) 

Definition at line 240 of file qtoolbar.cpp.

References explicitIconSize.

00241 {
00242     Q_Q(QToolBar);
00243     if (!explicitIconSize) {
00244         // iconSize not explicitly set
00245         q->setIconSize(sz);
00246         explicitIconSize = false;
00247     }
00248 }

void QToolBarPrivate::_q_updateToolButtonStyle ( Qt::ToolButtonStyle  style  ) 

Definition at line 250 of file qtoolbar.cpp.

References explicitToolButtonStyle.

00251 {
00252     Q_Q(QToolBar);
00253     if (!explicitToolButtonStyle) {
00254         q->setToolButtonStyle(style);
00255         explicitToolButtonStyle = false;
00256     }
00257 }

QToolBarItem QToolBarPrivate::createItem ( QAction action  ) 

Definition at line 259 of file qtoolbar.cpp.

References QToolBarItem::action, actionTriggered(), QObject::connect(), QToolBarItem::hasCustomWidget, QToolBarItem::hidden, iconSize, QAction::isSeparator(), Qt::NoFocus, QWidgetAction::requestWidget(), QToolButton::setAutoRaise(), QToolButton::setDefaultAction(), QWidget::setFocusPolicy(), QAbstractButton::setIconSize(), QToolButton::setToolButtonStyle(), SIGNAL, SLOT, toolButtonStyle, and QToolBarItem::widget.

00260 {
00261     Q_Q(QToolBar);
00262     QToolBarItem item;
00263     item.action = action;
00264     item.hidden = false;
00265     item.hasCustomWidget = false;
00266 
00267     QWidgetAction *widgetAction = qobject_cast<QWidgetAction *>(action);
00268     if (widgetAction) {
00269         item.widget = widgetAction->requestWidget(q);
00270         if (item.widget) {
00271             item.hasCustomWidget = true;
00272             return item;
00273         }
00274     }
00275     if (action->isSeparator()) {
00276         item.widget = new QToolBarSeparator(q);
00277         QObject::connect(q, SIGNAL(orientationChanged(Qt::Orientation)),
00278                          item.widget, SLOT(setOrientation(Qt::Orientation)));
00279     } else {
00280         QToolButton *button = new QToolButton(q);
00281         button->setAutoRaise(true);
00282         button->setFocusPolicy(Qt::NoFocus);
00283         button->setIconSize(iconSize);
00284         button->setToolButtonStyle(toolButtonStyle);
00285         QObject::connect(q, SIGNAL(iconSizeChanged(QSize)),
00286                          button, SLOT(setIconSize(QSize)));
00287         QObject::connect(q, SIGNAL(toolButtonStyleChanged(Qt::ToolButtonStyle)),
00288                          button, SLOT(setToolButtonStyle(Qt::ToolButtonStyle)));
00289         button->setDefaultAction(action);
00290         QObject::connect(button, SIGNAL(triggered(QAction*)), q, SIGNAL(actionTriggered(QAction*)));
00291         item.widget = button;
00292     }
00293 
00294     return item;
00295 }

Here is the call graph for this function:

int QToolBarPrivate::indexOf ( QAction action  )  const

Definition at line 301 of file qtoolbar.cpp.

References QList< T >::at(), i, items, and QList< T >::size().

00302 {
00303     for (int i = 0; i < items.size(); ++i) {
00304         const QToolBarItem &item = items.at(i);
00305         if (item.action == action)
00306             return i;
00307     }
00308     return -1;
00309 }

Here is the call graph for this function:


Member Data Documentation

bool QToolBarPrivate::explicitIconSize

Definition at line 75 of file qtoolbar_p.h.

Referenced by _q_updateIconSize().

bool QToolBarPrivate::explicitToolButtonStyle

Definition at line 76 of file qtoolbar_p.h.

Referenced by _q_updateToolButtonStyle().

bool QToolBarPrivate::movable

Definition at line 77 of file qtoolbar_p.h.

Referenced by init().

Qt::ToolBarAreas QToolBarPrivate::allowedAreas

Definition at line 78 of file qtoolbar_p.h.

Qt::Orientation QToolBarPrivate::orientation

Definition at line 79 of file qtoolbar_p.h.

Qt::ToolButtonStyle QToolBarPrivate::toolButtonStyle

Definition at line 80 of file qtoolbar_p.h.

Referenced by createItem().

QSize QToolBarPrivate::iconSize

Definition at line 81 of file qtoolbar_p.h.

Referenced by createItem(), and init().

QToolBarHandle* QToolBarPrivate::handle

Definition at line 83 of file qtoolbar_p.h.

Referenced by init().

QToolBarExtension* QToolBarPrivate::extension

Definition at line 84 of file qtoolbar_p.h.

Referenced by init().

QList<QToolBarItem> QToolBarPrivate::items

Definition at line 86 of file qtoolbar_p.h.

Referenced by indexOf().

QAction* QToolBarPrivate::toggleViewAction

Definition at line 88 of file qtoolbar_p.h.

Referenced by init().

bool QToolBarPrivate::inResizeEvent

Definition at line 90 of file qtoolbar_p.h.


The documentation for this class was generated from the following files:
Generated on Thu Mar 15 19:35:02 2007 for Qt 4.2 User's Guide by  doxygen 1.5.1