summaryrefslogtreecommitdiff
path: root/src/plugins/help/helpwidget.h
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2019-09-02 15:52:01 +0200
committerEike Ziller <eike.ziller@qt.io>2019-09-09 11:32:24 +0000
commite0e5621b807d987a329a9f5058f660eca5c9be6b (patch)
tree27e1caee60c77a1b23e84a6ceb80d5739f886f8f /src/plugins/help/helpwidget.h
parent49942bc06a9976892b5a2f34a320e3c439ce0014 (diff)
downloadqt-creator-e0e5621b807d987a329a9f5058f660eca5c9be6b.tar.gz
Help: De-duplicate management of help viewer pages
For the help mode, the help viewer pages were managed both by the OpenPagesModel and the HelpWidget, and needed manual keeping in sync. Instead make the model just an aspect of the HelpWidget, manage creation/deletion of pages via the HelpWidget, and use the model only for the pure MVC API purposes. Task-number: QTCREATORBUG-20558 Change-Id: Ib7d6f2561239b0d5f3328dfd30c84718f81af0a1 Reviewed-by: David Schulz <david.schulz@qt.io>
Diffstat (limited to 'src/plugins/help/helpwidget.h')
-rw-r--r--src/plugins/help/helpwidget.h31
1 files changed, 28 insertions, 3 deletions
diff --git a/src/plugins/help/helpwidget.h b/src/plugins/help/helpwidget.h
index bc38dcaa07..74fdb0a8ab 100644
--- a/src/plugins/help/helpwidget.h
+++ b/src/plugins/help/helpwidget.h
@@ -27,8 +27,9 @@
#include <coreplugin/icontext.h>
-#include <qglobal.h>
+#include <QAbstractTableModel>
#include <QWidget>
+#include <qglobal.h>
QT_BEGIN_NAMESPACE
class QAction;
@@ -47,6 +48,24 @@ namespace Help {
namespace Internal {
class HelpViewer;
+class HelpWidget;
+class OpenPagesManager;
+
+class OpenPagesModel : public QAbstractTableModel
+{
+public:
+ OpenPagesModel(HelpWidget *parent);
+
+ int rowCount(const QModelIndex &parent = QModelIndex()) const override;
+ int columnCount(const QModelIndex &parent = QModelIndex()) const override;
+
+ QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
+
+private:
+ HelpWidget *m_parent;
+
+ friend class HelpWidget;
+};
class HelpWidget : public QWidget
{
@@ -61,13 +80,15 @@ public:
HelpWidget(const Core::Context &context, WidgetStyle style, QWidget *parent = nullptr);
~HelpWidget() override;
+ QAbstractItemModel *model();
+
HelpViewer *currentViewer() const;
void setCurrentViewer(HelpViewer *viewer);
int currentIndex() const;
- void addViewer(HelpViewer *viewer);
+ void setCurrentIndex(int index);
+ HelpViewer *addViewer(const QUrl &url, qreal zoom = 0);
void removeViewerAt(int index);
- // so central widget can save the state
int viewerCount() const;
HelpViewer *viewerAt(int index) const;
@@ -92,6 +113,8 @@ signals:
void filterActivated(const QString &name);
private:
+ int indexOf(HelpViewer *viewer) const;
+
void updateBackMenu();
void updateForwardMenu();
void updateWindowTitle();
@@ -111,6 +134,8 @@ private:
void addSideBar();
QString sideBarSettingsKey() const;
+ OpenPagesModel m_model;
+ OpenPagesManager *m_openPagesManager = nullptr;
Core::IContext *m_context = nullptr;
WidgetStyle m_style;
QAction *m_toggleSideBarAction = nullptr;