- 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
// 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.
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;
}
}
case LFUN_MOUSE_RELEASE: {
- if (!mailer_name_.empty() && !cur.selection())
- InsetCommandMailer(mailer_name_, *this).showDialog(&cur.bv());
+ if (!cur.selection())
+ edit(cur, true);
break;
}
}
+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)
{
return p_[name];
}
+ ///
+ void edit(Cursor & cur, bool left);
/// FIXME remove
virtual void replaceContents(std::string const & from, std::string const & to);
///