]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiLog.h
Complete the removal of the embedding stuff. Maybe. It's hard to be sure we got every...
[lyx.git] / src / frontends / qt4 / GuiLog.h
index efdddde7e6a9027b6c28f1e37f538e4a6cf1ee8b..f7829c73f9d93572a5dd45a5b65ca2ae4c4a3f75 100644 (file)
@@ -5,6 +5,7 @@
  * Licence details can be found in the file COPYING.
  *
  * \author John Levon
+ * \author Angus Leeming
  *
  * Full author contact details are available in file CREDITS.
  */
 #ifndef GUILOG_H
 #define GUILOG_H
 
-#include "GuiDialogView.h"
-#include "ControlLog.h"
+#include "GuiDialog.h"
 #include "ui_LogUi.h"
 
-#include <QDialog>
-#include <QSyntaxHighlighter>
+#include "support/FileName.h"
+
 
 namespace lyx {
 namespace frontend {
 
-class GuiLog;
+class LogHighlighter;
 
-class GuiLogDialog : public QDialog, public Ui::LogUi {
+class GuiLog : public GuiDialog, public Ui::LogUi
+{
        Q_OBJECT
-public:
-       GuiLogDialog(GuiLog * form);
-protected Q_SLOTS:
-       virtual void updateClicked();
-protected:
-       virtual void closeEvent(QCloseEvent * e);
-private:
-       GuiLog * form_;
-};
 
+public:
+       GuiLog(GuiView & lv);
 
-class ControlLog;
-class LogHighlighter;
+private Q_SLOTS:
+       void updateContents();
+       // copy log to clipboard
+       void on_copyPB_clicked();
 
-///
-class GuiLog : public GuiView<GuiLogDialog>
-{
-public:
-       ///
-       friend class GuiLogDialog;
-       ///
-       GuiLog(GuiDialog &);
-       /// parent controller
-       ControlLog & controller()
-       { return static_cast<ControlLog &>(this->getController()); }
-       /// parent controller
-       ControlLog const & controller() const
-       { return static_cast<ControlLog const &>(this->getController()); }
 private:
        /// Apply changes
-       virtual void applyView() {}
-       /// update
-       virtual void update_contents();
-       /// build the dialog
-       virtual void build_dialog();
+       void applyView() {}
+
        /// log syntax highlighter
        LogHighlighter * highlighter;
-};
-
 
-///
-class LogHighlighter : public QSyntaxHighlighter
-{
-public:
-       LogHighlighter(QTextDocument * parent);
+       /** \param data should contain "<logtype> <logfile>"
+        *  where <logtype> is one of "latex", "literate", "lyx2lyx", "vc".
+        */
+       bool initialiseParams(std::string const & data);
+       ///
+       void clearParams();
+       ///
+       void dispatchParams() {}
+       ///
+       bool isBufferDependent() const { return true; }
 
-protected:
-       void highlightBlock(QString const & text);
+       /// The title displayed by the dialog reflects the \c LogType
+       docstring title() const;
+       /// put the log file into the ostream
+       void getContents(std::ostream & ss) const;
 
 private:
-       QTextCharFormat infoFormat;
-       QTextCharFormat warningFormat;
-       QTextCharFormat errorFormat;
+       /// Recognized log file-types
+       enum LogType {
+               LatexLog,
+               LiterateLog,
+               Lyx2lyxLog,
+               VCLog
+       };
+
+       LogType type_;
+       support::FileName logfile_;
 };
 
 
 } // namespace frontend
 } // namespace lyx
 
-#endif // QLOG_H
+#endif // GUILOG_H