case LFUN_VC_LOCKING_TOGGLE:
enable = doc_buffer && !doc_buffer->isReadonly()
&& doc_buffer->lyxvc().lockingToggleEnabled();
- flag.setOnOff(enable && !doc_buffer->lyxvc().locker().empty());
+ flag.setOnOff(enable && doc_buffer->lyxvc().locking());
break;
case LFUN_VC_REVERT:
enable = doc_buffer && doc_buffer->lyxvc().inUse();
enable = false;
break;
}
+ case LFUN_VC_COMPARE:
+ enable = doc_buffer && !cmd.argument().empty()
+ && doc_buffer->lyxvc().prepareFileRevisionEnabled();
+ break;
case LFUN_SERVER_GOTO_FILE_ROW:
break;
break;
}
+
+ case LFUN_VC_COMPARE: {
+
+ string rev1 = cmd.getArg(0);
+ string f1, f2;
+
+ // f1
+ if (!buffer->lyxvc().prepareFileRevision(rev1, f1))
+ break;
+
+ if (isStrInt(rev1) && convert<int>(rev1) <= 0) {
+ f2 = buffer->absFileName();
+ } else {
+ string rev2 = cmd.getArg(1);
+ if (rev2.empty())
+ break;
+ // f2
+ if (!buffer->lyxvc().prepareFileRevision(rev2, f2))
+ break;
+ }
+ // FIXME We need to call comparison feature here
+ // I'm not sure whether with or without dialog.
+ // (Gui)Compare::compare(f1, f2);
+ break;
+ }
+
default:
break;
}
case LFUN_VC_REVERT:
case LFUN_VC_UNDO_LAST:
case LFUN_VC_COMMAND:
+ case LFUN_VC_COMPARE:
dispatchVC(cmd);
break;
void GuiView::resetDialogs()
{
- // Make sure that no LFUN uses any LyXView.
+ // Make sure that no LFUN uses any GuiView.
guiApp->setCurrentView(0);
saveLayout();
menuBar()->clear();
updateLayoutList();
}
+Dialog * createDialog(GuiView & lv, string const & name);
// will be replaced by a proper factory...
Dialog * createGuiAbout(GuiView & lv);
Dialog * createGuiBibitem(GuiView & lv);
Dialog * createGuiBibtex(GuiView & lv);
-Dialog * createGuiBox(GuiView & lv);
Dialog * createGuiBranch(GuiView & lv);
Dialog * createGuiChanges(GuiView & lv);
Dialog * createGuiCharacter(GuiView & lv);
Dialog * createGuiDelimiter(GuiView & lv);
Dialog * createGuiDocument(GuiView & lv);
Dialog * createGuiErrorList(GuiView & lv);
-Dialog * createGuiERT(GuiView & lv);
Dialog * createGuiExternal(GuiView & lv);
-Dialog * createGuiFloat(GuiView & lv);
Dialog * createGuiGraphics(GuiView & lv);
Dialog * createGuiInclude(GuiView & lv);
Dialog * createGuiIndex(GuiView & lv);
-Dialog * createGuiInfo(GuiView & lv);
Dialog * createGuiLabel(GuiView & lv);
Dialog * createGuiListings(GuiView & lv);
Dialog * createGuiLog(GuiView & lv);
Dialog * createGuiSpellchecker(GuiView & lv);
Dialog * createGuiSymbols(GuiView & lv);
Dialog * createGuiTabularCreate(GuiView & lv);
-Dialog * createGuiTabular(GuiView & lv);
Dialog * createGuiTexInfo(GuiView & lv);
Dialog * createGuiTextHSpace(GuiView & lv);
Dialog * createGuiToc(GuiView & lv);
Dialog * createGuiThesaurus(GuiView & lv);
Dialog * createGuiHyperlink(GuiView & lv);
-Dialog * createGuiVSpace(GuiView & lv);
Dialog * createGuiViewSource(GuiView & lv);
Dialog * createGuiWrap(GuiView & lv);
Dialog * createGuiProgressView(GuiView & lv);
{
LASSERT(isValidName(name), return 0);
+ Dialog * dialog = createDialog(*this, name);
+ if (dialog)
+ return dialog;
+
if (name == "aboutlyx")
return createGuiAbout(*this);
if (name == "bibitem")
return createGuiBibitem(*this);
if (name == "bibtex")
return createGuiBibtex(*this);
- if (name == "box")
- return createGuiBox(*this);
if (name == "branch")
return createGuiBranch(*this);
if (name == "changes")
return createGuiDocument(*this);
if (name == "errorlist")
return createGuiErrorList(*this);
- if (name == "ert")
- return createGuiERT(*this);
if (name == "external")
return createGuiExternal(*this);
if (name == "file")
return createGuiSearch(*this);
if (name == "findreplaceadv")
return createGuiSearchAdv(*this);
- if (name == "float")
- return createGuiFloat(*this);
if (name == "graphics")
return createGuiGraphics(*this);
if (name == "href")
return createGuiIndex(*this);
if (name == "index_print")
return createGuiPrintindex(*this);
- if (name == "info")
- return createGuiInfo(*this);
if (name == "label")
return createGuiLabel(*this);
if (name == "listings")
return createGuiSpellchecker(*this);
if (name == "symbols")
return createGuiSymbols(*this);
- if (name == "tabular")
- return createGuiTabular(*this);
if (name == "tabularcreate")
return createGuiTabularCreate(*this);
if (name == "texinfo")
return createGuiToc(*this);
if (name == "view-source")
return createGuiViewSource(*this);
- if (name == "vspace")
- return createGuiVSpace(*this);
if (name == "wrap")
return createGuiWrap(*this);
if (name == "progress")