#include "BufferList.h"
#include "BufferParams.h"
#include "BufferView.h"
+#include "Compare.h"
#include "Converter.h"
#include "Cursor.h"
#include "CutAndPaste.h"
#define EXPORT_in_THREAD 1
-
// QtConcurrent was introduced in Qt 4.4
#if (QT_VERSION >= 0x040400)
#include <QFuture>
GuiWorkArea const * GuiView::currentMainWorkArea() const
{
- if (d.currentTabWorkArea() == NULL)
- return NULL;
+ if (!d.currentTabWorkArea())
+ return 0;
return d.currentTabWorkArea()->currentWorkArea();
}
GuiWorkArea * GuiView::currentMainWorkArea()
{
- if (d.currentTabWorkArea() == NULL)
- return NULL;
+ if (!d.currentTabWorkArea())
+ return 0;
return d.currentTabWorkArea()->currentWorkArea();
}
void GuiView::setCurrentWorkArea(GuiWorkArea * wa)
{
LYXERR(Debug::DEBUG, "Setting current wa: " << wa << endl);
- if (wa == NULL) {
- d.current_work_area_ = NULL;
+ if (!wa) {
+ d.current_work_area_ = 0;
d.setBackground();
return;
}
- GuiWorkArea * old_gwa = theGuiApp()->currentView()->currentWorkArea();
- if (old_gwa == wa)
+
+ // FIXME: I've no clue why this is here and why it accesses
+ // theGuiApp()->currentView, which might be 0 (bug 6464).
+ // See also 27525 (vfr).
+ if (theGuiApp()->currentView() == this
+ && theGuiApp()->currentView()->currentWorkArea() == wa)
return;
if (currentBufferView())
GuiWorkArea * wa = workArea(*newBuffer);
if (wa == 0) {
- newBuffer->masterBuffer()->updateLabels();
+ newBuffer->masterBuffer()->updateBuffer();
wa = addWorkArea(*newBuffer);
} else {
//Disconnect the old buffer...there's no new one.
docstring str2;
Buffer * buf = loadDocument(fullname);
if (buf) {
- buf->updateLabels();
+ buf->updateBuffer();
setBuffer(buf);
buf->errors("Parse");
str2 = bformat(_("Document %1$s opened."), disp_fn);
Buffer * buf = lv->loadDocument(lyxfile);
if (!buf)
return false;
- buf->updateLabels();
+ buf->updateBuffer();
lv->setBuffer(buf);
buf->errors("Parse");
} else {
f2 = buffer->absFileName();
} else {
string rev2 = cmd.getArg(1);
- if (rev2.empty() || !isStrInt(rev2))
+ 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);
+ // FIXME We need to call comparison feature here.
+ // This is quick and dirty code for testing VC.
+ // We need that comparison feature has some LFUN_COMPARE <FLAG> file1 file1
+ // where <FLAG> specifies whether we want GUI dialog or just launch
+ // running with defaults.
+ /*
+ FileName initpath(lyxrc.document_path);
+ Buffer * dest = newUnnamedFile(initpath, to_utf8(_("differences")));
+ CompareOptions options;
+ Compare * compare = new Compare(loadIfNeeded(FileName(f1)), loadIfNeeded(FileName(f2)), dest, options);
+ compare->start(QThread::LowPriority);
+ Sleep::millisec(200);
+ lyx::dispatch(FuncRequest(LFUN_BUFFER_SWITCH, dest->absFileName()));
+ */
+ break;
}
default:
// This makes insertion of citations and references in the child work,
// when the target is in the parent or another child document.
child->setParent(&buffer);
- child->masterBuffer()->updateLabels();
+ child->masterBuffer()->updateBuffer();
setBuffer(child);
if (parsed)
child->errors("Parse");
buf = theBufferList().getBuffer(s);
else if (s.exists()) {
buf = loadDocument(s);
- buf->updateLabels();
+ buf->updateBuffer();
buf->errors("Parse");
} else {
message(bformat(
dr);
break;
}
- if (doc_buffer->doExport(argument, false)) {
+ if (!doc_buffer->doExport(argument, false)) {
dr.setError(true);
dr.setMessage(bformat(_("Error exporting to format: %1$s."),
cmd.argument()));
case LFUN_VC_REVERT:
case LFUN_VC_UNDO_LAST:
case LFUN_VC_COMMAND:
+ case LFUN_VC_COMPARE:
dispatchVC(cmd);
break;
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 * createGuiCitation(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 * createGuiMathHSpace(GuiView & lv);
Dialog * createGuiMathMatrix(GuiView & lv);
Dialog * createGuiNomenclature(GuiView & lv);
Dialog * createGuiNote(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 createGuiChanges(*this);
if (name == "character")
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 createGuiLog(*this);
if (name == "mathdelimiter")
return createGuiDelimiter(*this);
- if (name == "mathspace")
- return createGuiMathHSpace(*this);
if (name == "mathmatrix")
return createGuiMathMatrix(*this);
if (name == "nomenclature")
return createGuiRef(*this);
if (name == "sendto")
return createGuiSendTo(*this);
- if (name == "space")
- return createGuiTextHSpace(*this);
if (name == "spellchecker")
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")