mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-23 10:18:50 +00:00
Properly set up paste and textstyle-apply MenuButtons when no buffer is open.
This commit is contained in:
parent
4d010d97fa
commit
a65f1e54dc
@ -336,17 +336,17 @@ void DynamicMenuButton::updateTriggered()
|
|||||||
LASSERT(m, return);
|
LASSERT(m, return);
|
||||||
GuiView const & owner = bar_->owner();
|
GuiView const & owner = bar_->owner();
|
||||||
BufferView const * bv = owner.currentBufferView();
|
BufferView const * bv = owner.currentBufferView();
|
||||||
if (!bv) {
|
|
||||||
m->clear();
|
|
||||||
setEnabled(false);
|
|
||||||
setMinimumWidth(sizeHint().width());
|
|
||||||
d->text_class_.reset();
|
|
||||||
d->inset_ = nullptr;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
string const & menutype = tbitem_.name_;
|
string const & menutype = tbitem_.name_;
|
||||||
if (menutype == "dynamic-custom-insets" || menutype == "dynamic-char-styles") {
|
if (menutype == "dynamic-custom-insets" || menutype == "dynamic-char-styles") {
|
||||||
|
if (!bv) {
|
||||||
|
m->clear();
|
||||||
|
setEnabled(false);
|
||||||
|
setMinimumWidth(sizeHint().width());
|
||||||
|
d->text_class_.reset();
|
||||||
|
d->inset_ = nullptr;
|
||||||
|
return;
|
||||||
|
}
|
||||||
DocumentClassConstPtr text_class =
|
DocumentClassConstPtr text_class =
|
||||||
bv->buffer().params().documentClassPtr();
|
bv->buffer().params().documentClassPtr();
|
||||||
InsetText const * inset = &(bv->cursor().innerText()->inset());
|
InsetText const * inset = &(bv->cursor().innerText()->inset());
|
||||||
@ -367,6 +367,12 @@ void DynamicMenuButton::updateTriggered()
|
|||||||
&& inset->insetAllowed(FLEX_CODE));
|
&& inset->insetAllowed(FLEX_CODE));
|
||||||
} else if (menutype == "textstyle-apply") {
|
} else if (menutype == "textstyle-apply") {
|
||||||
m->clear();
|
m->clear();
|
||||||
|
setPopupMode(QToolButton::MenuButtonPopup);
|
||||||
|
QToolButton::setIcon(getIcon(FuncRequest(LFUN_TEXTSTYLE_APPLY), false));
|
||||||
|
if (!bv) {
|
||||||
|
setEnabled(false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
vector<docstring> ffList = bv->cursor().innerText()->getFreeFonts();
|
vector<docstring> ffList = bv->cursor().innerText()->getFreeFonts();
|
||||||
unsigned int i = 0;
|
unsigned int i = 0;
|
||||||
Action * default_act = nullptr;
|
Action * default_act = nullptr;
|
||||||
@ -390,14 +396,19 @@ void DynamicMenuButton::updateTriggered()
|
|||||||
m->addAction(reset_act);
|
m->addAction(reset_act);
|
||||||
if (default_act)
|
if (default_act)
|
||||||
QToolButton::setDefaultAction(default_act);
|
QToolButton::setDefaultAction(default_act);
|
||||||
|
|
||||||
QToolButton::setIcon(getIcon(FuncRequest(LFUN_TEXTSTYLE_APPLY), false));
|
|
||||||
|
|
||||||
setPopupMode(QToolButton::MenuButtonPopup);
|
|
||||||
setEnabled(lyx::getStatus(FuncRequest(LFUN_TEXTSTYLE_APPLY)).enabled()
|
setEnabled(lyx::getStatus(FuncRequest(LFUN_TEXTSTYLE_APPLY)).enabled()
|
||||||
|| lyx::getStatus(FuncRequest(LFUN_FONT_DEFAULT)).enabled());
|
|| lyx::getStatus(FuncRequest(LFUN_FONT_DEFAULT)).enabled());
|
||||||
} else if (menutype == "paste") {
|
} else if (menutype == "paste") {
|
||||||
m->clear();
|
m->clear();
|
||||||
|
setPopupMode(QToolButton::MenuButtonPopup);
|
||||||
|
Action * default_action = new Action(FuncRequest(LFUN_PASTE),
|
||||||
|
getIcon(FuncRequest(LFUN_PASTE), false),
|
||||||
|
qt_("Paste"), qt_("Paste"), this);
|
||||||
|
if (!bv) {
|
||||||
|
setEnabled(false);
|
||||||
|
QToolButton::setDefaultAction(default_action);
|
||||||
|
return;
|
||||||
|
}
|
||||||
docstring_list const sel = cap::availableSelections(&bv->buffer());
|
docstring_list const sel = cap::availableSelections(&bv->buffer());
|
||||||
|
|
||||||
docstring_list::const_iterator cit = sel.begin();
|
docstring_list::const_iterator cit = sel.begin();
|
||||||
@ -412,11 +423,7 @@ void DynamicMenuButton::updateTriggered()
|
|||||||
Action * act = new Action(func, QIcon(), toqstr(lb), toqstr(s), this);
|
Action * act = new Action(func, QIcon(), toqstr(lb), toqstr(s), this);
|
||||||
m->addAction(act);
|
m->addAction(act);
|
||||||
}
|
}
|
||||||
Action * default_action = new Action(FuncRequest(LFUN_PASTE),
|
|
||||||
getIcon(FuncRequest(LFUN_PASTE), false),
|
|
||||||
qt_("Paste"), qt_("Paste"), this);
|
|
||||||
QToolButton::setDefaultAction(default_action);
|
QToolButton::setDefaultAction(default_action);
|
||||||
setPopupMode(QToolButton::MenuButtonPopup);
|
|
||||||
setEnabled(lyx::getStatus(FuncRequest(LFUN_PASTE)).enabled());
|
setEnabled(lyx::getStatus(FuncRequest(LFUN_PASTE)).enabled());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user