aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/coreplugin/fancyactionbar.cpp
diff options
context:
space:
mode:
authorck <qt-info@nokia.com>2009-10-16 15:50:52 +0200
committerck <qt-info@nokia.com>2009-10-16 18:01:07 +0200
commit5f33e08e2a02eb4311b7453dea88614267823220 (patch)
treef0340a665c6c6e04b149c4b71e85fe1b53ac7f2b /src/plugins/coreplugin/fancyactionbar.cpp
parent0d3709c35086f0f0aa4158348feb04492e6d7665 (diff)
When we hide the action, also hide its toolbutton.
Originally-By: kh1
Diffstat (limited to 'src/plugins/coreplugin/fancyactionbar.cpp')
-rw-r--r--src/plugins/coreplugin/fancyactionbar.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/plugins/coreplugin/fancyactionbar.cpp b/src/plugins/coreplugin/fancyactionbar.cpp
index be053c171f..bcb75b6dc7 100644
--- a/src/plugins/coreplugin/fancyactionbar.cpp
+++ b/src/plugins/coreplugin/fancyactionbar.cpp
@@ -136,6 +136,14 @@ QSize FancyToolButton::minimumSizeHint() const
return QSize(8, 8);
}
+void FancyToolButton::actionChanged()
+{
+ // the default action changed in some way, e.g. it might got hidden
+ // since we inherit a tool button we won't get invisible, so do this here
+ if (QAction* action = defaultAction())
+ setVisible(action->isVisible());
+}
+
FancyActionBar::FancyActionBar(QWidget *parent)
: QWidget(parent)
{
@@ -152,6 +160,8 @@ void FancyActionBar::insertAction(int index, QAction *action, QMenu *menu)
{
FancyToolButton *toolButton = new FancyToolButton(this);
toolButton->setDefaultAction(action);
+ connect(action, SIGNAL(changed()), toolButton, SLOT(actionChanged()));
+
if (menu) {
toolButton->setMenu(menu);
toolButton->setPopupMode(QToolButton::DelayedPopup);