]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiErrorList.cpp
* fix spelling in comments to please John.
[lyx.git] / src / frontends / qt4 / GuiErrorList.cpp
index 54eb83ebc6b0cb413f8a13426cbb674eb0a23caa..f104cd2ffba1461ff9213a1ff6d639fe4b6aafc4 100644 (file)
@@ -16,6 +16,7 @@
 
 #include "Buffer.h"
 #include "BufferView.h"
+#include "FuncRequest.h"
 #include "ParIterator.h"
 #include "Text.h"
 
@@ -41,6 +42,8 @@ GuiErrorList::GuiErrorList(GuiView & lv)
 
        connect(closePB, SIGNAL(clicked()),
                this, SLOT(slotClose()));
+       connect(viewLogPB, SIGNAL(clicked()),
+               this, SLOT(viewLog()));
        connect(errorsLW, SIGNAL(currentRowChanged(int)),
                this, SLOT(select()));
 
@@ -52,6 +55,7 @@ GuiErrorList::GuiErrorList(GuiView & lv)
 void GuiErrorList::showEvent(QShowEvent * e)
 {
        select();
+       paramsToDialog();
        e->accept();
 }
 
@@ -67,7 +71,13 @@ void GuiErrorList::select()
 }
 
 
-void GuiErrorList::updateContents()
+void GuiErrorList::viewLog()
+{
+       dispatch(FuncRequest(LFUN_DIALOG_SHOW, "latexlog"));
+}
+
+
+void GuiErrorList::paramsToDialog()
 {
        setTitle(toqstr(name_));
        errorsLW->clear();
@@ -83,16 +93,25 @@ void GuiErrorList::updateContents()
 
 ErrorList const & GuiErrorList::errorList() const
 {
-       return bufferview()->buffer().errorList(error_type_);
+       return from_master_ ? 
+               bufferview()->buffer().masterBuffer()->errorList(error_type_)
+               : bufferview()->buffer().errorList(error_type_);
 }
 
 
-bool GuiErrorList::initialiseParams(string const & error_type)
+bool GuiErrorList::initialiseParams(string const & data)
 {
+       from_master_ = prefixIs(data, "from_master|");
+       string error_type = data;
+       if (from_master_)
+               error_type = split(data, '|');
        error_type_ = error_type;
-       Buffer const & buf = bufferview()->buffer();
+       Buffer const * buf = from_master_ ?
+               bufferview()->buffer().masterBuffer()
+               : &bufferview()->buffer();
        name_ = bformat(_("%1$s Errors (%2$s)"), _(error_type),
-                                    from_utf8(buf.absFileName()));
+                                    from_utf8(buf->absFileName()));
+       paramsToDialog();
        return true;
 }
 
@@ -104,10 +123,14 @@ bool GuiErrorList::goTo(int item)
        if (err.par_id == -1)
                return false;
 
+       if (from_master_)
+               // FIXME: implement
+               return false;
+
        Buffer const & buf = buffer();
        DocIterator dit = buf.getParFromID(err.par_id);
 
-       if (dit == doc_iterator_end(buf.inset())) {
+       if (dit == doc_iterator_end(&buf)) {
         // FIXME: Happens when loading a read-only doc with 
         // unknown layout. Should this be the case?
                LYXERR0("par id " << err.par_id << " not found");
@@ -135,4 +158,4 @@ Dialog * createGuiErrorList(GuiView & lv) { return new GuiErrorList(lv); }
 } // namespace lyx
 
 
-#include "GuiErrorList_moc.cpp"
+#include "moc_GuiErrorList.cpp"