aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/coreplugin/fancyactionbar.cpp
diff options
context:
space:
mode:
authormae <qt-info@nokia.com>2010-03-12 17:24:20 +0100
committermae <qt-info@nokia.com>2010-03-12 17:25:02 +0100
commitd13dfe44f0b9d04ce58fdc2a992b7c6d85cd6b26 (patch)
tree44aed5137f641251a94a78243d54250868a6c252 /src/plugins/coreplugin/fancyactionbar.cpp
parenta2fe486b3051fb76dceee7af80a3e80863cbf035 (diff)
Some tuning of the fancy action bar
Done-with: jbache
Diffstat (limited to 'src/plugins/coreplugin/fancyactionbar.cpp')
-rw-r--r--src/plugins/coreplugin/fancyactionbar.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/plugins/coreplugin/fancyactionbar.cpp b/src/plugins/coreplugin/fancyactionbar.cpp
index 8dc6a520aa..e680d45fa3 100644
--- a/src/plugins/coreplugin/fancyactionbar.cpp
+++ b/src/plugins/coreplugin/fancyactionbar.cpp
@@ -57,10 +57,17 @@ using namespace Internal;
FancyToolButton::FancyToolButton(QWidget *parent)
: QToolButton(parent), m_fader(0)
{
+ m_hasForceVisible = false;
setAttribute(Qt::WA_Hover, true);
setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
}
+void FancyToolButton::forceVisible(bool visible)
+{
+ m_hasForceVisible = true;
+ setVisible(visible);
+}
+
bool FancyToolButton::event(QEvent *e)
{
switch(e->type()) {
@@ -220,8 +227,10 @@ 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());
+ if (!m_hasForceVisible) {
+ if (QAction* action = defaultAction())
+ setVisible(action->isVisible());
+ }
}
FancyActionBar::FancyActionBar(QWidget *parent)
@@ -270,8 +279,8 @@ void FancyActionBar::modeChanged(Core::IMode *mode)
if (m_runButton && m_debugButton) {
bool inDebugMode = (mode->id() == QLatin1String("Debugger.Mode.Debug"));
layout()->setEnabled(false);
- m_runButton->setVisible(!inDebugMode);
- m_debugButton->setVisible(inDebugMode);
+ m_runButton->forceVisible(!inDebugMode);
+ m_debugButton->forceVisible(inDebugMode);
layout()->setEnabled(true);
}
}