if (cmd.action == LFUN_NOACTION) {
flag.message(from_utf8(N_("Nothing to do")));
- flag.enabled(false);
+ flag.setEnabled(false);
return flag;
}
case LFUN_THESAURUS_ENTRY:
#endif
flag.unknown(true);
- flag.enabled(false);
+ flag.setEnabled(false);
break;
default:
// no, exit directly
flag.message(from_utf8(N_("Command not allowed with"
"out any document open")));
- flag.enabled(false);
+ flag.setEnabled(false);
return flag;
}
bool enable = true;
switch (cmd.action) {
- // FIXME: these cases should be hidden in GuiApplication::getStatus().
- case LFUN_WINDOW_CLOSE:
- if (theApp())
- return theApp()->getStatus(cmd);
- enable = false;
- break;
-
- // FIXME: these cases should be hidden in GuiView::getStatus().
- case LFUN_DIALOG_TOGGLE:
- case LFUN_DIALOG_SHOW:
- case LFUN_UI_TOGGLE:
- case LFUN_DIALOG_UPDATE:
- // FIXME: add special handling for about and prefs dialogs here
- // which do not depend on GuiView.
- if (lyx_view_)
- return lyx_view_->getStatus(cmd);
- else
- enable = false;
- break;
-
- case LFUN_TOOLBAR_TOGGLE:
- case LFUN_INSET_APPLY:
- case LFUN_BUFFER_WRITE:
- case LFUN_BUFFER_WRITE_AS:
- case LFUN_SPLIT_VIEW:
- case LFUN_CLOSE_TAB_GROUP:
- case LFUN_COMPLETION_POPUP:
- case LFUN_COMPLETION_INLINE:
- case LFUN_COMPLETION_COMPLETE:
- if (lyx_view_)
- return lyx_view_->getStatus(cmd);
- enable = false;
- break;
-
case LFUN_BUFFER_TOGGLE_READ_ONLY:
flag.setOnOff(buf->isReadonly());
break;
break;
}
- case LFUN_BUFFER_NEW:
- case LFUN_BUFFER_NEW_TEMPLATE:
case LFUN_WORD_FIND_FORWARD:
case LFUN_WORD_FIND_BACKWARD:
case LFUN_COMMAND_PREFIX:
case LFUN_BUFFER_AUTO_SAVE:
case LFUN_RECONFIGURE:
case LFUN_HELP_OPEN:
- case LFUN_FILE_OPEN:
case LFUN_DROP_LAYOUTS_CHOICE:
case LFUN_MENU_OPEN:
case LFUN_SERVER_GET_NAME:
case LFUN_BUFFER_EXPORT_CUSTOM:
case LFUN_BUFFER_PRINT:
case LFUN_PREFERENCES_SAVE:
- case LFUN_SCREEN_FONT_UPDATE:
- case LFUN_SET_COLOR:
case LFUN_MESSAGE:
case LFUN_INSET_EDIT:
case LFUN_ALL_INSETS_TOGGLE:
+ case LFUN_GRAPHICS_GROUPS_UNIFY:
case LFUN_BUFFER_LANGUAGE:
case LFUN_TEXTCLASS_APPLY:
case LFUN_TEXTCLASS_LOAD:
case LFUN_LYXRC_APPLY:
case LFUN_BUFFER_NEXT:
case LFUN_BUFFER_PREVIOUS:
- case LFUN_WINDOW_NEW:
- case LFUN_LYX_QUIT:
// these are handled in our dispatch()
break;
default:
+ if (!theApp()) {
+ enable = false;
+ break;
+ }
+ if (theApp()->getStatus(cmd, flag))
+ break;
+
+ // Does the view know something?
+ if (!lyx_view_) {
+ enable = false;
+ break;
+ }
+ if (lyx_view_->getStatus(cmd, flag))
+ break;
+
+ // If we have a BufferView, try cursor position and
+ // then the BufferView.
if (!view()) {
enable = false;
break;
}
if (!enable)
- flag.enabled(false);
+ flag.setEnabled(false);
// Can we use a readonly buffer?
if (buf && buf->isReadonly()
&& !lyxaction.funcHasFlag(cmd.action, LyXAction::ReadOnly)
&& !lyxaction.funcHasFlag(cmd.action, LyXAction::NoBuffer)) {
flag.message(from_utf8(N_("Document is read-only")));
- flag.enabled(false);
+ flag.setEnabled(false);
}
// Are we in a DELETED change-tracking region?
&& !lyxaction.funcHasFlag(cmd.action, LyXAction::ReadOnly)
&& !lyxaction.funcHasFlag(cmd.action, LyXAction::NoBuffer)) {
flag.message(from_utf8(N_("This portion of the document is deleted.")));
- flag.enabled(false);
+ flag.setEnabled(false);
}
// the default error message if we disable the command
break;
}
- case LFUN_SET_COLOR: {
- string lyx_name;
- string const x11_name = split(argument, lyx_name, ' ');
- if (lyx_name.empty() || x11_name.empty()) {
- setErrorMessage(from_ascii(N_(
- "Syntax: set-color <lyx_name>"
- " <x11_name>")));
- break;
- }
-
- bool const graphicsbg_changed =
- (lyx_name == lcolor.getLyXName(Color_graphicsbg) &&
- x11_name != lcolor.getX11Name(Color_graphicsbg));
-
- if (!lcolor.setColor(lyx_name, x11_name)) {
- setErrorMessage(
- bformat(_("Set-color \"%1$s\" failed "
- "- color is undefined or "
- "may not be redefined"),
- from_utf8(lyx_name)));
- break;
- }
-
- theApp()->updateColor(lcolor.getFromLyXName(lyx_name));
-
- if (graphicsbg_changed) {
- // FIXME: The graphics cache no longer has a changeDisplay method.
-#if 0
- graphics::GCache::get().changeDisplay(true);
-#endif
- }
- break;
- }
-
case LFUN_MESSAGE:
LASSERT(lyx_view_, /**/);
lyx_view_->message(from_utf8(argument));
break;
}
+ case LFUN_GRAPHICS_GROUPS_UNIFY: {
+ LASSERT(lyx_view_, /**/);
+ if (argument.empty() || !lyx_view_->buffer())
+ break;
+ //view()->cursor().recordUndoFullDocument(); let inset-apply do that job
+ graphics::unifyGraphicsGroups(*lyx_view_->buffer(), argument);
+ lyx_view_->buffer()->markDirty();
+ updateFlags = Update::Force | Update::FitCursor;
+ break;
+ }
+
case LFUN_BUFFER_LANGUAGE: {
LASSERT(lyx_view_, /**/);
Buffer & buffer = *lyx_view_->buffer();
LASSERT(lyx_view_, /**/);
Buffer * buffer = lyx_view_->buffer();
- DocumentClass * oldClass = buffer->params().documentClassPtr();
+ DocumentClass const * const oldClass = buffer->params().documentClassPtr();
Cursor & cur = view()->cursor();
cur.recordUndoFullDocument();
case LFUN_LAYOUT_MODULES_CLEAR: {
LASSERT(lyx_view_, /**/);
Buffer * buffer = lyx_view_->buffer();
- DocumentClass * oldClass = buffer->params().documentClassPtr();
+ DocumentClass const * const oldClass = buffer->params().documentClassPtr();
view()->cursor().recordUndoFullDocument();
buffer->params().clearLayoutModules();
buffer->params().makeDocumentClass();
case LFUN_LAYOUT_MODULE_ADD: {
LASSERT(lyx_view_, /**/);
Buffer * buffer = lyx_view_->buffer();
- DocumentClass * oldClass = buffer->params().documentClassPtr();
+ DocumentClass const * const oldClass = buffer->params().documentClassPtr();
view()->cursor().recordUndoFullDocument();
buffer->params().addLayoutModule(argument);
buffer->params().makeDocumentClass();
break;
//Save the old, possibly modular, layout for use in conversion.
- DocumentClass * oldDocClass = buffer->params().documentClassPtr();
+ DocumentClass const * const oldDocClass = buffer->params().documentClassPtr();
view()->cursor().recordUndoFullDocument();
buffer->params().setBaseClass(argument);
buffer->params().makeDocumentClass();
case LFUN_LAYOUT_RELOAD: {
LASSERT(lyx_view_, /**/);
Buffer * buffer = lyx_view_->buffer();
- DocumentClass * oldClass = buffer->params().documentClassPtr();
+ DocumentClass const * const oldClass = buffer->params().documentClassPtr();
LayoutFileIndex bc = buffer->params().baseClassID();
LayoutFileList::get().reset(bc);
buffer->params().setBaseClass(bc);
}
-void LyXFunc::updateLayout(DocumentClass * oldlayout,Buffer * buffer)
+void LyXFunc::updateLayout(DocumentClass const * const oldlayout, Buffer * buffer)
{
lyx_view_->message(_("Converting document to new document class..."));