Initialize toolbar pop menu button on start

In 0aead96461 it was introduced that the toolbar popup menu buttons are not
initialized until they are being used (i.e. pressed at for the first
time). As a consequence, these buttons are always enabled on start. Now
that we have the sticky button for view and update, I'm now annoyed by
this every time I start LyX.
This commit is contained in:
Vincent van Ravesteijn 2012-09-22 20:51:49 +02:00
parent 64576f5421
commit 6b8ed2fa1d
2 changed files with 6 additions and 15 deletions

View File

@ -166,7 +166,7 @@ public:
MenuButton::MenuButton(GuiToolbar * bar, ToolbarItem const & item, bool const sticky)
: QToolButton(bar), bar_(bar), tbitem_(item), initialized_(false)
: QToolButton(bar), bar_(bar), tbitem_(item)
{
setPopupMode(QToolButton::InstantPopup);
QString const label = qt_(to_ascii(tbitem_.label_));
@ -189,17 +189,12 @@ MenuButton::MenuButton(GuiToolbar * bar, ToolbarItem const & item, bool const st
this, SLOT(actionTriggered(QAction *)));
connect(bar, SIGNAL(iconSizeChanged(QSize)),
this, SLOT(setIconSize(QSize)));
initialize();
}
void MenuButton::mousePressEvent(QMouseEvent * e)
void MenuButton::initialize()
{
if (initialized_) {
QToolButton::mousePressEvent(e);
return;
}
initialized_ = true;
QString const label = qt_(to_ascii(tbitem_.label_));
ButtonMenu * m = new ButtonMenu(label, this);
m->setWindowTitle(label);
@ -217,8 +212,6 @@ void MenuButton::mousePressEvent(QMouseEvent * e)
if (!getStatus(it->func_).unknown())
m->add(bar_->addItem(*it));
setMenu(m);
QToolButton::mousePressEvent(e);
}

View File

@ -45,16 +45,14 @@ public:
///
MenuButton(GuiToolbar * bar, ToolbarItem const & item,
bool const sticky = false);
///
void mousePressEvent(QMouseEvent * e);
private:
///
void initialize();
///
GuiToolbar * bar_;
///
ToolbarItem const & tbitem_;
///
bool initialized_;
private Q_SLOTS:
///