mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-22 13:18:28 +00:00
* src/insets/InsetCommand.{cpp,h}:
- implement edit function that opens the inset's dialog. * src/BufferView.cpp (doDispatch): - call inset->edit (i.e. open dialog) for EDITABLE insets on next-inset-toggle (bug 2907) * src/Text3.cpp (doDispatch: INDEX_INSERT): - move inset->edit to where it belongs. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20193 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
e055ef0a33
commit
59c2e75e41
@ -913,12 +913,16 @@ Update::flags BufferView::dispatch(FuncRequest const & cmd)
|
||||
// if there is an inset at cursor, see whether it
|
||||
// wants to toggle.
|
||||
Inset * inset = cur.nextInset();
|
||||
if (inset && inset->isActive()) {
|
||||
Cursor tmpcur = cur;
|
||||
tmpcur.pushLeft(*inset);
|
||||
inset->dispatch(tmpcur, tmpcmd);
|
||||
if (tmpcur.result().dispatched()) {
|
||||
cur.dispatched();
|
||||
if (inset) {
|
||||
if (inset->isActive()) {
|
||||
Cursor tmpcur = cur;
|
||||
tmpcur.pushLeft(*inset);
|
||||
inset->dispatch(tmpcur, tmpcmd);
|
||||
if (tmpcur.result().dispatched()) {
|
||||
cur.dispatched();
|
||||
}
|
||||
} else if (inset->editable() == Inset::IS_EDITABLE) {
|
||||
inset->edit(cur, true);
|
||||
}
|
||||
}
|
||||
// if it did not work, try the underlying inset.
|
||||
|
@ -1202,12 +1202,10 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
|
||||
recordUndo(cur);
|
||||
cur.clearSelection();
|
||||
insertInset(cur, inset);
|
||||
inset->edit(cur, true);
|
||||
// Show the dialog for the nomenclature entry, since the
|
||||
// description entry still needs to be filled in.
|
||||
if (cmd.action == LFUN_NOMENCL_INSERT)
|
||||
InsetCommandMailer("nomenclature",
|
||||
*reinterpret_cast<InsetCommand *>(inset)).showDialog(&cur.bv());
|
||||
inset->edit(cur, true);
|
||||
cur.posRight();
|
||||
break;
|
||||
}
|
||||
|
@ -132,8 +132,8 @@ void InsetCommand::doDispatch(Cursor & cur, FuncRequest & cmd)
|
||||
}
|
||||
|
||||
case LFUN_MOUSE_RELEASE: {
|
||||
if (!mailer_name_.empty() && !cur.selection())
|
||||
InsetCommandMailer(mailer_name_, *this).showDialog(&cur.bv());
|
||||
if (!cur.selection())
|
||||
edit(cur, true);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -165,6 +165,13 @@ bool InsetCommand::getStatus(Cursor & cur, FuncRequest const & cmd,
|
||||
}
|
||||
|
||||
|
||||
void InsetCommand::edit(Cursor & cur, bool)
|
||||
{
|
||||
if (!mailer_name_.empty())
|
||||
InsetCommandMailer(mailer_name_, *this).showDialog(&cur.bv());
|
||||
}
|
||||
|
||||
|
||||
void InsetCommand::replaceContents(std::string const & from, string const & to)
|
||||
{
|
||||
if (getContents() == from)
|
||||
|
@ -81,6 +81,8 @@ public:
|
||||
{
|
||||
return p_[name];
|
||||
}
|
||||
///
|
||||
void edit(Cursor & cur, bool left);
|
||||
/// FIXME remove
|
||||
virtual void replaceContents(std::string const & from, std::string const & to);
|
||||
///
|
||||
|
Loading…
Reference in New Issue
Block a user