Mercurial > octave
diff libgui/src/documentation.h @ 25042:ba5af45bbfc4 stable
documentation widget based on qt help engine (bug #53006)
author | Torsten <mttl@mailbox.org> |
---|---|
date | Wed, 28 Mar 2018 21:46:11 +0200 |
parents | |
children | 1cd3aeda7598 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libgui/src/documentation.h Wed Mar 28 21:46:11 2018 +0200 @@ -0,0 +1,98 @@ +/* + +Copyright (C) 2018 Torsten <mttl@maibox.org> + +This file is part of Octave. + +Octave is free software: you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Octave is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Octave; see the file COPYING. If not, see +<https://www.gnu.org/licenses/>. + +*/ + +#if ! defined (octave_documentation_h) +#define octave_documentation_h 1 + +#include <QComboBox> +#include <QWidget> +#include <QSettings> +#include <QSplitter> +#include <QTextBrowser> +#include <QtHelp/QHelpEngine> + +namespace octave +{ + // The documentation browser + class documentation_browser : public QTextBrowser + { + Q_OBJECT + + public: + + documentation_browser (QHelpEngine *help_engine, QWidget *parent = nullptr); + ~documentation_browser (void); + + virtual QVariant loadResource (int type, const QUrl &url); + + public slots: + + void handle_index_clicked (const QUrl& url, + const QString& keyword = QString ()); + void notice_settings (const QSettings *settings); + + private: + + QHelpEngine *m_help_engine; + + }; + + + // The documentaiton main class (splitter) + class documentation : public QSplitter + { + Q_OBJECT + + public: + + documentation (QWidget *parent = nullptr); + ~documentation (void); + + public slots: + + void notice_settings (const QSettings *settings); + + void copyClipboard (void); + void pasteClipboard (void); + void selectAll (void); + + void load_ref (const QString & name); + + private slots: + + void global_search (void); + void global_search_started (void); + void global_search_finished (int hits); + void filter_update (const QString& expression); + void filter_update_history (void); + + private: + + QHelpEngine *m_help_engine; + documentation_browser *m_doc_browser; + QComboBox *m_filter; + + }; + +} + +#endif