* 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 GuiLogDialog : public QDialog, public Ui::LogUi {
- Q_OBJECT
-public:
- GuiLogDialog(GuiLog * form);
-protected Q_SLOTS:
- virtual void updateClicked();
-protected:
- virtual void closeEvent(QCloseEvent * e);
-private:
- GuiLog * form_;
-};
-
-
-class ControlLog;
class LogHighlighter;
-///
-class GuiLog : public GuiView<GuiLogDialog>
+class GuiLog : public GuiDialog, public Ui::LogUi
{
+ Q_OBJECT
+
public:
- ///
- friend class GuiLogDialog;
- ///
- GuiLog(Dialog &);
- /// parent controller
- ControlLog & controller()
- { return static_cast<ControlLog &>(this->getController()); }
- /// parent controller
- ControlLog const & controller() const
- { return static_cast<ControlLog const &>(this->getController()); }
+ GuiLog(GuiView & lv);
+
+private Q_SLOTS:
+ void updateContents();
+ /// copy log to clipboard
+ void on_copyPB_clicked();
+ /// find content
+ void find();
+ /// jump to next error message
+ void on_nextErrorPB_clicked();
+ /// jump to next warning
+ void on_nextWarningPB_clicked();
+ /// Log type changed
+ void typeChanged(int);
+
private:
/// Apply changes
- virtual void apply() {}
- /// 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;
+ /// go to the next occurence of the RegExp
+ void goTo(QRegExp const & exp) const;
+ /// does the document after cursor position contain the RegExp?
+ bool contains(QRegExp const & exp) 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