Do not make all menu entries checkable

* src/frontends/qt4/Action.C (Action): do not set entry to
	checkable by default; invoke update() to set it up.
	(update): only set checkable property if needed.

	* src/frontends/qt4/QLPopupMenu.C (populate): in the case of
          a Command menu item, let Action set itself up.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14811 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Jean-Marc Lasgouttes 2006-08-22 09:38:03 +00:00
parent 61443d8641
commit 9ee8395133
2 changed files with 15 additions and 9 deletions

View File

@ -48,7 +48,7 @@ Action::Action(LyXView & lyxView, string const & text,
setToolTip(toqstr(tooltip));
setStatusTip(toqstr(tooltip));
connect(this, SIGNAL(triggered()), this, SLOT(action()));
this->setCheckable(true);
update();
}
Action::Action(LyXView & lyxView, string const & icon, string const & text,
@ -60,7 +60,7 @@ Action::Action(LyXView & lyxView, string const & icon, string const & text,
setToolTip(toqstr(tooltip));
setStatusTip(toqstr(tooltip));
connect(this, SIGNAL(triggered()), this, SLOT(action()));
this->setCheckable(true);
update();
}
/*
@ -74,8 +74,17 @@ void Action::update()
{
FuncStatus const status = lyxView_.getLyXFunc().getStatus(func_);
this->setChecked(status.onoff(true));
this->setEnabled(status.enabled());
if (status.onoff(true)) {
setCheckable(true);
setChecked(true);
} else if (status.onoff(false)) {
setCheckable(true);
setChecked(false);
} else {
setCheckable(false);
}
setEnabled(status.enabled());
}

View File

@ -114,16 +114,13 @@ void QLPopupMenu::populate(QMenu* qMenu, Menu * menu)
} else { // we have a MenuItem::Command
FuncStatus status = m->status();
lyxerr[Debug::GUI] << "creating Menu Item " << m->label() << endl;
string label = getLabel(*m);
addBinding(label, *m);
Action * action = new Action(*(owner_->view()), label, m->func());
action->setEnabled(m->status().enabled());
action->setChecked(m->status().onoff(true));
// Actually insert the menu item
Action * action = new Action(*(owner_->view()),
label, m->func());
qMenu->addAction(action);
}
}