#include "ParagraphParameters.h"
#include "insets/insetcommand.h"
-#include "insets/inseterror.h"
-#include "insets/insetert.h"
#include "insets/insettabular.h"
#include "mathed/formulamacro.h"
if (tli->lyxCode() == Inset::TABULAR_CODE) {
ret = static_cast<InsetTabular *>(tli)
->getStatus(ev.argument);
+ flag |= ret;
+ disable = false;
} else if (tli->getFirstLockingInsetOfType(Inset::TABULAR_CODE)) {
ret = static_cast<InsetTabular *>
(tli->getFirstLockingInsetOfType(Inset::TABULAR_CODE))
->getStatus(ev.argument);
+ flag |= ret;
+ disable = false;
+ } else {
+ disable = true;
}
- flag |= ret;
- disable = false;
} else {
static InsetTabular inset(*owner->buffer(), 1, 1);
FuncStatus ret;
&& lt->inset_owner->owner()->isOpen()));
break;
}
+
+ case LFUN_INSET_SETTINGS: {
+ disable = true;
+ UpdatableInset * inset = view()->theLockingInset();
+
+ if (!inset)
+ break;
+
+ // get the innermost inset
+ inset = inset->getLockingInset();
+
+ // jump back to owner if an InsetText, so
+ // we get back to the InsetTabular or whatever
+ if (inset->lyxCode() == Inset::TEXT_CODE)
+ inset = static_cast<UpdatableInset*>(inset->owner());
+
+ Inset::Code code = inset->lyxCode();
+ switch (code) {
+ case Inset::TABULAR_CODE:
+ disable = ev.argument != "tabular";
+ break;
+ case Inset::ERT_CODE:
+ disable = ev.argument != "ert";
+ break;
+ case Inset::FLOAT_CODE:
+ disable = ev.argument != "float";
+ break;
+ case Inset::MINIPAGE_CODE:
+ disable = ev.argument != "minipage";
+ break;
+ case Inset::WRAP_CODE:
+ disable = ev.argument != "wrap";
+ break;
+ default:
+ break;
+ }
+ break;
+ }
+
case LFUN_LATEX_LOG:
disable = !IsFileReadable(buf->getLogName().second);
break;
goto exit_with_message;
// If UNDISPATCHED, just soldier on
else if (result == FINISHED) {
+ owner->clearMessage();
goto exit_with_message;
// We do not need special RTL handling here:
// FINISHED means that the cursor should be
} else if (result == FINISHED_RIGHT) {
TEXT()->cursorRight(view());
moveCursorUpdate(true, false);
- owner->view_state_changed();
+ owner->clearMessage();
goto exit_with_message;
} else if (result == FINISHED_UP) {
if (TEXT()->cursor.irow() != TEXT()->rows().begin()) {
TEXT()->cursorUp(view());
#endif
moveCursorUpdate(true, false);
- owner->view_state_changed();
} else {
view()->update(TEXT(), BufferView::SELECT);
}
+ owner->clearMessage();
goto exit_with_message;
} else if (result == FINISHED_DOWN) {
if (boost::next(TEXT()->cursor.irow()) != TEXT()->rows().end()) {
TEXT()->cursorRight(view());
}
moveCursorUpdate(true, false);
- owner->view_state_changed();
+ owner->clearMessage();
goto exit_with_message;
}
#warning I am not sure this is still right, please have a look! (Jug 20020417)
text += file + _("?");
#endif
int const ret = Alert::prompt(_("Revert to saved document?"),
- text, 1, _("&Revert"), _("&Cancel"));
+ text, 0, 1, _("&Revert"), _("&Cancel"));
if (ret == 0)
view()->reload();
case LFUN_DEPTH_MIN:
changeDepth(view(), TEXT(false), DEC_DEPTH, false);
+ owner->view_state_changed();
break;
case LFUN_DEPTH_PLUS:
changeDepth(view(), TEXT(false), INC_DEPTH, false);
+ owner->view_state_changed();
break;
case LFUN_FREEFONT_APPLY:
int id;
istr >> id;
- Paragraph * par = owner->buffer()->getParFromID(id);
+ Paragraph * par = &*owner->buffer()->getParFromID(id);
if (par == 0) {
lyxerr[Debug::INFO] << "No matching paragraph found! ["
<< id << ']' << endl;
}
break;
- case LFUN_APROPOS:
- case LFUN_GETTIP:
- {
- int const qa = lyxaction.LookupFunc(argument);
- setMessage(lyxaction.helpText(static_cast<kb_action>(qa)));
- }
- break;
-
// --- insert characters ----------------------------------------
// --- Mathed stuff. If we are here, there is no locked inset yet.
// Check if the document already is open
if (lyx_gui::use_gui && bufferlist.exists(lyxfile)) {
- string const file = MakeDisplayPath(lyxfile, 30);
-
- // FIXME: sucky UI !
-
-#if USE_BOOST_FORMAT
- boost::format fmt(_("The document %1$s is already open.\n\nDo you want to close that document?"));
- fmt % file;
- string text = fmt.str();
-#else
- string text = _("The document ");
- text += file + _(" is already open.\n\nDo you want to close that document?");
-#endif
- int const ret = Alert::prompt(_("Close open document?"),
- text, 1, _("&Close"), _("&Cancel"));
-
- if (ret == 0 || !bufferlist.close(bufferlist.getBuffer(lyxfile), true)) {
+ if (!bufferlist.close(bufferlist.getBuffer(lyxfile), true)) {
owner->message(_("Canceled."));
return;
}
text += file + _(" already exists.\n\nDo you want to over-write that document?");
#endif
int const ret = Alert::prompt(_("Over-write document?"),
- text, 1, _("&Over-write"), _("&Cancel"));
+ text, 0, 1, _("&Over-write"), _("&Cancel"));
if (ret == 1) {
owner->message(_("Canceled."));