167
167
bool IconAction::addTo(QWidget *w)
169
172
QStringList supportedContainers;
170
173
supportedContainers << "QWidget";
171
if ( w->inherits("QToolBar") || w->inherits("Q3ToolBar") ||
172
supportedContainers.contains(w->metaObject()->className()) ) {
174
if (w->inherits("QToolBar") ||
175
supportedContainers.contains(w->metaObject()->className()))
173
177
QString bname = objectName() + "_action_button";
174
IconToolButton *btn = new IconToolButton ( w );
175
btn->setObjectName( bname );
176
d->buttons.append ( btn );
178
IconToolButton *btn = new IconToolButton(w);
179
btn->setObjectName(bname);
180
d->buttons.append(btn);
178
182
btn->setDefaultAction(this);
180
btn->setText( text() );
181
btn->setPsiIcon( d->icon, false );
184
btn->setText(text());
185
btn->setPsiIcon(d->icon, false);
183
187
btn->setDefaultAction(this);
185
189
// need to explicitly update popupMode,
186
190
// because setDefaultAction resets it
187
btn->setPopupMode( QToolButton::InstantPopup );
191
btn->setPopupMode(QToolButton::InstantPopup);
189
193
btn->setToolTip(toolTipFromMenuText());
191
195
btn->setAutoRaise(true);
192
196
btn->setFocusPolicy(Qt::NoFocus);
194
if ( supportedContainers.contains(w->metaObject()->className()) )
196
w->layout()->addWidget( btn );
198
if (supportedContainers.contains(w->metaObject()->className()))
200
w->layout()->addWidget(btn);
198
202
connect(btn, SIGNAL(toggled(bool)), this, SLOT(setChecked(bool)));
199
203
connect(btn, SIGNAL(destroyed()), SLOT(objectDestroyed()));
268
272
void IconAction::setMenu( QMenu *p )
270
QAction::setMenu( p );
273
foreach ( btn, d->buttons ) {
277
btn->setMenu ( menu() );
277
void IconAction::doSetMenu(QMenu* p)
282
foreach(btn, d->buttons) {
286
btn->setMenu(menu());
353
362
void IconActionGroup::Private::updatePopup()
359
368
qWarning("IconActionGroup does not support !usesDropDown yet");
363
372
QList<QAction *> list = group->findChildren<QAction *>();
364
foreach ( QAction *action, list ) {
365
if ( !group->psiIcon() && action->inherits( "IconAction" ) )
366
group->setIcon( ((IconAction * )action)->icon() );
373
foreach(QAction *action, list) {
374
if (!group->psiIcon() && action->inherits("IconAction"))
375
group->setIcon(((IconAction *)action)->icon());
368
377
popup->addAction(action);
371
group->setMenu( popup );
380
group->setMenu(popup);