]> git.lyx.org Git - features.git/blobdiff - src/frontends/qt4/GuiView.cpp
* InsetTabular cleanup:
[features.git] / src / frontends / qt4 / GuiView.cpp
index d6c2e51bddafb213149185a809a894cc086bf4c6..d440b6c114d52b88cb8669ba888c6e5209edddd5 100644 (file)
@@ -1601,6 +1601,10 @@ bool GuiView::getStatus(FuncRequest const & cmd, FuncStatus & flag)
                        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;
@@ -2573,6 +2577,32 @@ void GuiView::dispatchVC(FuncRequest const & cmd)
 
                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;
        }
@@ -3098,6 +3128,7 @@ void GuiView::dispatch(FuncRequest const & cmd, DispatchResult & dr)
                case LFUN_VC_REVERT:
                case LFUN_VC_UNDO_LAST:
                case LFUN_VC_COMMAND:
+               case LFUN_VC_COMPARE:
                        dispatchVC(cmd);
                        break;
 
@@ -3406,12 +3437,12 @@ void GuiView::updateDialogs()
        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);
@@ -3420,13 +3451,10 @@ Dialog * createGuiCompare(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);
@@ -3448,13 +3476,11 @@ Dialog * createGuiShowFile(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);
@@ -3465,14 +3491,16 @@ Dialog * GuiView::build(string const & name)
 {
        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")
@@ -3487,8 +3515,6 @@ Dialog * GuiView::build(string const & name)
                return createGuiDocument(*this);
        if (name == "errorlist")
                return createGuiErrorList(*this);
-       if (name == "ert")
-               return createGuiERT(*this);
        if (name == "external")
                return createGuiExternal(*this);
        if (name == "file")
@@ -3497,8 +3523,6 @@ Dialog * GuiView::build(string const & name)
                return createGuiSearch(*this);
        if (name == "findreplaceadv")
                return createGuiSearchAdv(*this);
-       if (name == "float")
-               return createGuiFloat(*this);
        if (name == "graphics")
                return createGuiGraphics(*this);
        if (name == "href")
@@ -3509,8 +3533,6 @@ Dialog * GuiView::build(string const & name)
                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")
@@ -3547,8 +3569,6 @@ Dialog * GuiView::build(string const & name)
                return createGuiSpellchecker(*this);
        if (name == "symbols")
                return createGuiSymbols(*this);
-       if (name == "tabular")
-               return createGuiTabular(*this);
        if (name == "tabularcreate")
                return createGuiTabularCreate(*this);
        if (name == "texinfo")
@@ -3559,8 +3579,6 @@ Dialog * GuiView::build(string const & name)
                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")