X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FGuiViewSource.h;h=d5553ac2ea49a606234bdb7f470f9a7f0fc48e95;hb=425d092204118ea6c24c28e85fdf03fcf2bb51a4;hp=a1fe2ff8264b13f569bd1cab76a9490737887ba3;hpb=9a95d2a936748c057db94a3083c4b9e6587eea0b;p=lyx.git diff --git a/src/frontends/qt4/GuiViewSource.h b/src/frontends/qt4/GuiViewSource.h index a1fe2ff826..d5553ac2ea 100644 --- a/src/frontends/qt4/GuiViewSource.h +++ b/src/frontends/qt4/GuiViewSource.h @@ -14,13 +14,14 @@ #ifndef GUIVIEWSOURCE_H #define GUIVIEWSOURCE_H -#include "ControlViewSource.h" -#include "GuiDialog.h" -#include "Application.h" #include "ui_ViewSourceUi.h" -#include -#include +#include "DockView.h" +#include "GuiView.h" +#include "qt_helpers.h" + +#include +#include #include class QTextDocument; @@ -28,49 +29,25 @@ class QTextDocument; namespace lyx { namespace frontend { -// used already twice... -class LaTeXHighlighter : public QSyntaxHighlighter -{ -public: - LaTeXHighlighter(QTextDocument * parent); - -protected: - void highlightBlock(QString const & text); - -private: - QTextCharFormat commentFormat; - QTextCharFormat keywordFormat; - QTextCharFormat mathFormat; -}; - - class GuiViewSource; +class LaTeXHighlighter; -class GuiViewSourceDialog : public QWidget, public Ui::ViewSourceUi { +class ViewSourceWidget : public QWidget, public Ui::ViewSourceUi +{ Q_OBJECT + public: - GuiViewSourceDialog(GuiViewSource * form); + ViewSourceWidget(); + /// + void setBufferView(BufferView const * bv); public Q_SLOTS: // update content void updateView(); private: - GuiViewSource * form_; -}; - - -/// -class GuiViewSource : public QObject, public ControlViewSource { -public: - /// - GuiViewSource(GuiDialog &); /// - QTextDocument * document() { return document_; } - /// - void update(bool full_source); - -private: + BufferView const * bv_; /// QTextDocument * document_; /// LaTeX syntax highlighter @@ -78,6 +55,41 @@ private: }; +class GuiViewSource : public DockView +{ + Q_OBJECT + +public: + GuiViewSource( + GuiView & parent, ///< the main window where to dock. + Qt::DockWidgetArea area = Qt::BottomDockWidgetArea, ///< Position of the dock (and also drawer) + Qt::WindowFlags flags = 0); + + ~GuiViewSource(); + + /// Controller inherited method. + ///@{ + bool initialiseParams(std::string const & source); + void clearParams() {} + void dispatchParams() {} + bool isBufferDependent() const { return true; } + bool canApply() const { return true; } + bool canApplyToReadOnly() const { return true; } + void updateView(); + void enableView(bool enable); + void saveSession() const; + void restoreSession(); + bool wantInitialFocus() const { return false; } + ///@} + + /// The title displayed by the dialog reflects source type. + QString title() const; + +private: + /// The encapsulated widget. + ViewSourceWidget * widget_; +}; + } // namespace frontend } // namespace lyx