mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-10 20:04:46 +00:00
* Remove LFUN_REF_INSERT.
* Add LFUN_DIALOG_SHOW_NEW_INSET to LyXFunc::getStatus' switch. * Add a new LFUN_INSET_DIALOG_UPDATE to replace those nasty dynamic casts in LyXFunc::dispatch. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@6377 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
a5fe7ae80e
commit
be16393a7b
@ -1,3 +1,17 @@
|
||||
2003-03-05 Angus Leeming <leeming@lyx.org>
|
||||
|
||||
* commandtags.h:
|
||||
* LyXAction.C (init):
|
||||
* lyxfunc.C (getStatus): remove LFUN_REF_INSERT.
|
||||
|
||||
* lyxfunc.C (getStatus): add LFUN_DIALOG_SHOW_NEW_INSET to switch.
|
||||
|
||||
* commandtags.h:
|
||||
* LyXAction.C: add LFUN_INSET_DIALOG_UPDATE.
|
||||
|
||||
* lyxfunc (dispatch): on LFUN_DIALOG_UPDATE, pass the 'open' inset's
|
||||
localDispatch method LFUN_INSET_DIALOG_UPDATE.
|
||||
|
||||
2003-03-07 Angus Leeming <leeming@lyx.org>
|
||||
|
||||
* lyxfunc.C (dispatch): add "include" to LFUN_SHOW_NEW_INSET and
|
||||
|
@ -320,8 +320,6 @@ void LyXAction::init()
|
||||
N_("Reconfigure"), NoBuffer },
|
||||
{ LFUN_REDO, "redo", N_("Redo"), Noop },
|
||||
{ LFUN_REF_GOTO, "reference-goto", "", ReadOnly },
|
||||
{ LFUN_REF_INSERT, "reference-insert",
|
||||
N_("Insert cross reference"), ReadOnly },
|
||||
{ LFUN_REFERENCE_GOTO, "reference-next", "", ReadOnly },
|
||||
{ LFUN_NEXT, "screen-down", "", ReadOnly },
|
||||
{ LFUN_NEXTSEL, "screen-down-select", "", ReadOnly },
|
||||
@ -418,6 +416,7 @@ void LyXAction::init()
|
||||
N_("Disconnect the dialog from the current inset"), Noop },
|
||||
{ LFUN_INSET_APPLY, "inset-apply", "", Noop },
|
||||
{ LFUN_INSET_MODIFY, "", "internal only", Noop },
|
||||
{ LFUN_INSET_DIALOG_UPDATE, "", "internal only", Noop },
|
||||
{ LFUN_NOACTION, "", "", Noop }
|
||||
};
|
||||
|
||||
|
@ -167,7 +167,6 @@ enum kb_action {
|
||||
LFUN_LOWCASE_WORD,
|
||||
LFUN_CAPITALIZE_WORD,
|
||||
LFUN_INSERT_LABEL,
|
||||
LFUN_REF_INSERT,
|
||||
LFUN_DEPTH_MIN, // 150 // RVDK_PATCH_5
|
||||
LFUN_DEPTH_PLUS, // RVDK_PATCH_5
|
||||
LFUN_MENU_OPEN_BY_NAME, // RVDK_PATCH_5
|
||||
@ -295,6 +294,7 @@ enum kb_action {
|
||||
LFUN_DIALOG_DISCONNECT_INSET,
|
||||
LFUN_INSET_APPLY,
|
||||
LFUN_INSET_MODIFY,
|
||||
LFUN_INSET_DIALOG_UPDATE,
|
||||
LFUN_LASTACTION /* this marks the end of the table */
|
||||
};
|
||||
|
||||
|
@ -1,3 +1,13 @@
|
||||
2003-03-07 Angus Leeming <leeming@lyx.org>
|
||||
|
||||
* insetcommand.C (localDispatch):
|
||||
* insetexternal.C (localDispatch):
|
||||
* insetfloat.C (localDispatch):
|
||||
* insetinclude.C (localDispatch):
|
||||
* insetminipage.C (localDispatch):
|
||||
* insetwrap.C (localDispatch):
|
||||
add LFUN_INSET_DIALOG_UPDATE to the switch.
|
||||
|
||||
2003-03-07 Angus Leeming <leeming@lyx.org>
|
||||
|
||||
* insetcommand.C (string2params):
|
||||
|
@ -67,19 +67,32 @@ int InsetCommand::docbook(Buffer const *, ostream &, bool) const
|
||||
|
||||
dispatch_result InsetCommand::localDispatch(FuncRequest const & cmd)
|
||||
{
|
||||
if (cmd.action != LFUN_INSET_MODIFY)
|
||||
return UNDISPATCHED;
|
||||
dispatch_result result = UNDISPATCHED;
|
||||
|
||||
InsetCommandParams p;
|
||||
InsetCommandMailer::string2params(cmd.argument, p);
|
||||
if (p.getCmdName().empty())
|
||||
return UNDISPATCHED;
|
||||
switch (cmd.action) {
|
||||
case LFUN_INSET_MODIFY: {
|
||||
InsetCommandParams p;
|
||||
InsetCommandMailer::string2params(cmd.argument, p);
|
||||
if (p.getCmdName().empty())
|
||||
break;
|
||||
|
||||
setParams(p);
|
||||
if (view())
|
||||
view()->updateInset(this, true);
|
||||
setParams(p);
|
||||
cmd.view()->updateInset(this, true);
|
||||
result = DISPATCHED;
|
||||
}
|
||||
break;
|
||||
|
||||
return DISPATCHED;
|
||||
case LFUN_INSET_DIALOG_UPDATE: {
|
||||
InsetCommandMailer mailer(cmd.argument, *this);
|
||||
mailer.updateDialog();
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
InsetCommandMailer::InsetCommandMailer(string const & name,
|
||||
|
@ -64,17 +64,32 @@ InsetExternal::Params const & InsetExternal::params() const
|
||||
|
||||
dispatch_result InsetExternal::localDispatch(FuncRequest const & cmd)
|
||||
{
|
||||
if (cmd.action != LFUN_INSET_MODIFY)
|
||||
return UNDISPATCHED;
|
||||
dispatch_result result = UNDISPATCHED;
|
||||
|
||||
InsetExternal::Params p;
|
||||
InsetExternalMailer::string2params(cmd.argument, p);
|
||||
if (p.filename.empty())
|
||||
return UNDISPATCHED;
|
||||
switch (cmd.action) {
|
||||
case LFUN_INSET_MODIFY: {
|
||||
InsetExternal::Params p;
|
||||
InsetExternalMailer::string2params(cmd.argument, p);
|
||||
if (p.filename.empty())
|
||||
break;
|
||||
|
||||
setFromParams(p);
|
||||
cmd.view()->updateInset(this, true);
|
||||
return DISPATCHED;
|
||||
setFromParams(p);
|
||||
cmd.view()->updateInset(this, true);
|
||||
result = DISPATCHED;
|
||||
}
|
||||
break;
|
||||
|
||||
case LFUN_INSET_DIALOG_UPDATE: {
|
||||
InsetExternalMailer mailer(*this);
|
||||
mailer.updateDialog();
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
@ -169,6 +169,13 @@ dispatch_result InsetFloat::localDispatch(FuncRequest const & cmd)
|
||||
result = DISPATCHED;
|
||||
}
|
||||
break;
|
||||
|
||||
case LFUN_INSET_DIALOG_UPDATE: {
|
||||
InsetFloatMailer mailer(*this);
|
||||
mailer.updateDialog();
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
result = InsetCollapsable::localDispatch(cmd);
|
||||
}
|
||||
|
@ -115,19 +115,34 @@ InsetInclude::~InsetInclude()
|
||||
|
||||
dispatch_result InsetInclude::localDispatch(FuncRequest const & cmd)
|
||||
{
|
||||
if (cmd.action != LFUN_INSET_MODIFY)
|
||||
return UNDISPATCHED;
|
||||
dispatch_result result = UNDISPATCHED;
|
||||
|
||||
InsetInclude::Params p;
|
||||
InsetIncludeMailer::string2params(cmd.argument, p);
|
||||
if (p.cparams.getCmdName().empty())
|
||||
return UNDISPATCHED;
|
||||
switch (cmd.action) {
|
||||
case LFUN_INSET_MODIFY: {
|
||||
InsetInclude::Params p;
|
||||
InsetIncludeMailer::string2params(cmd.argument, p);
|
||||
if (p.cparams.getCmdName().empty())
|
||||
break;
|
||||
|
||||
set(p);
|
||||
params_.masterFilename_ = cmd.view()->buffer()->fileName();
|
||||
set(p);
|
||||
params_.masterFilename_ = cmd.view()->buffer()->fileName();
|
||||
|
||||
cmd.view()->updateInset(this, true);
|
||||
return DISPATCHED;
|
||||
cmd.view()->updateInset(this, true);
|
||||
result = DISPATCHED;
|
||||
}
|
||||
break;
|
||||
|
||||
case LFUN_INSET_DIALOG_UPDATE: {
|
||||
InsetIncludeMailer mailer(*this);
|
||||
mailer.updateDialog();
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
@ -121,6 +121,13 @@ dispatch_result InsetMinipage::localDispatch(FuncRequest const & cmd)
|
||||
result = DISPATCHED;
|
||||
}
|
||||
break;
|
||||
|
||||
case LFUN_INSET_DIALOG_UPDATE: {
|
||||
InsetMinipageMailer mailer(*this);
|
||||
mailer.updateDialog();
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
result = InsetCollapsable::localDispatch(cmd);
|
||||
}
|
||||
|
@ -99,6 +99,13 @@ dispatch_result InsetWrap::localDispatch(FuncRequest const & cmd)
|
||||
result = DISPATCHED;
|
||||
}
|
||||
break;
|
||||
|
||||
case LFUN_INSET_DIALOG_UPDATE: {
|
||||
InsetWrapMailer mailer(*this);
|
||||
mailer.updateDialog();
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
result = InsetCollapsable::localDispatch(cmd);
|
||||
}
|
||||
|
@ -507,6 +507,39 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & ev) const
|
||||
// the functions which insert insets
|
||||
Inset::Code code = Inset::NO_CODE;
|
||||
switch (ev.action) {
|
||||
case LFUN_DIALOG_SHOW_NEW_INSET:
|
||||
if (ev.argument == "bibitem")
|
||||
code = Inset::BIBITEM_CODE;
|
||||
else if (ev.argument == "bibtex")
|
||||
code = Inset::BIBTEX_CODE;
|
||||
else if (ev.argument == "citation")
|
||||
code = Inset::CITE_CODE;
|
||||
else if (ev.argument == "ert")
|
||||
code = Inset::ERT_CODE;
|
||||
else if (ev.argument == "external")
|
||||
code = Inset::EXTERNAL_CODE;
|
||||
else if (ev.argument == "float")
|
||||
code = Inset::FLOAT_CODE;
|
||||
else if (ev.argument == "graphics")
|
||||
code = Inset::GRAPHICS_CODE;
|
||||
else if (ev.argument == "include")
|
||||
code = Inset::INCLUDE_CODE;
|
||||
else if (ev.argument == "index")
|
||||
code = Inset::INDEX_CODE;
|
||||
else if (ev.argument == "label")
|
||||
code = Inset::LABEL_CODE;
|
||||
else if (ev.argument == "minipage")
|
||||
code = Inset::MINIPAGE_CODE;
|
||||
else if (ev.argument == "ref")
|
||||
code = Inset::REF_CODE;
|
||||
else if (ev.argument == "toc")
|
||||
code = Inset::TOC_CODE;
|
||||
else if (ev.argument == "url")
|
||||
code = Inset::URL_CODE;
|
||||
else if (ev.argument == "wrap")
|
||||
code = Inset::WRAP_CODE;
|
||||
break;
|
||||
|
||||
case LFUN_INSET_ERT:
|
||||
code = Inset::ERT_CODE;
|
||||
break;
|
||||
@ -555,9 +588,6 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & ev) const
|
||||
case LFUN_INSET_OPTARG:
|
||||
code = Inset::OPTARG_CODE;
|
||||
break;
|
||||
case LFUN_REF_INSERT:
|
||||
code = Inset::REF_CODE;
|
||||
break;
|
||||
case LFUN_INDEX_INSERT:
|
||||
code = Inset::INDEX_CODE;
|
||||
break;
|
||||
@ -1372,39 +1402,11 @@ void LyXFunc::dispatch(FuncRequest const & ev, bool verbose)
|
||||
case LFUN_DIALOG_UPDATE: {
|
||||
string const & name = argument;
|
||||
// Can only update a dialog connected to an existing inset
|
||||
InsetBase * i = owner->getDialogs().getOpenInset(name);
|
||||
if (!i)
|
||||
break;
|
||||
|
||||
if (name == "bibitem" ||
|
||||
name == "bibtex" ||
|
||||
name == "citation" ||
|
||||
name == "index" ||
|
||||
name == "ref" ||
|
||||
name == "toc" ||
|
||||
name == "url") {
|
||||
InsetCommand * inset = dynamic_cast<InsetCommand *>(i);
|
||||
if (!inset)
|
||||
break;
|
||||
|
||||
InsetCommandMailer mailer(name, *inset);
|
||||
mailer.updateDialog();
|
||||
|
||||
} else if (name == "error") {
|
||||
InsetError * inset = dynamic_cast<InsetError *>(i);
|
||||
if (!inset)
|
||||
break;
|
||||
|
||||
owner->getDialogs().update("error",
|
||||
inset->getContents());
|
||||
|
||||
} else if (name == "ert") {
|
||||
InsetERT * inset = dynamic_cast<InsetERT *>(i);
|
||||
if (!inset)
|
||||
break;
|
||||
|
||||
InsetERTMailer mailer(*inset);
|
||||
mailer.updateDialog();
|
||||
InsetBase * inset = owner->getDialogs().getOpenInset(name);
|
||||
if (inset) {
|
||||
FuncRequest fr(view(), LFUN_INSET_DIALOG_UPDATE,
|
||||
ev.argument);
|
||||
inset->localDispatch(fr);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user