X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FGuiViewSource.h;h=d5553ac2ea49a606234bdb7f470f9a7f0fc48e95;hb=425d092204118ea6c24c28e85fdf03fcf2bb51a4;hp=2704375a68b07cbf71606a145bd6fc21a89f13d2;hpb=133041073b91a8eedad38673860fa5cee567f386;p=lyx.git diff --git a/src/frontends/qt4/GuiViewSource.h b/src/frontends/qt4/GuiViewSource.h index 2704375a68..d5553ac2ea 100644 --- a/src/frontends/qt4/GuiViewSource.h +++ b/src/frontends/qt4/GuiViewSource.h @@ -16,10 +16,12 @@ #include "ui_ViewSourceUi.h" -#include "ControlViewSource.h" +#include "DockView.h" +#include "GuiView.h" +#include "qt_helpers.h" -#include -#include +#include +#include #include class QTextDocument; @@ -27,40 +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(ControlViewSource &); + ViewSourceWidget(); + /// + void setBufferView(BufferView const * bv); public Q_SLOTS: // update content void updateView(); - /// - QTextDocument * document() { return document_; } - /// - void update(bool full_source); private: /// - ControlViewSource & controller_; + BufferView const * bv_; /// QTextDocument * document_; /// LaTeX syntax highlighter @@ -68,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