aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/help/CMakeLists.txt1
-rw-r--r--src/plugins/help/help.pro2
-rw-r--r--src/plugins/help/help.qbs1
-rw-r--r--src/plugins/help/helpplugin.cpp2
-rw-r--r--src/plugins/help/helpwidget.cpp95
-rw-r--r--src/plugins/help/helpwidget.h31
-rw-r--r--src/plugins/help/openpagesmanager.cpp117
-rw-r--r--src/plugins/help/openpagesmanager.h25
-rw-r--r--src/plugins/help/openpagesmodel.cpp104
-rw-r--r--src/plugins/help/openpagesmodel.h60
10 files changed, 175 insertions, 263 deletions
diff --git a/src/plugins/help/CMakeLists.txt b/src/plugins/help/CMakeLists.txt
index bbac6a91565..8e25a3a31c0 100644
--- a/src/plugins/help/CMakeLists.txt
+++ b/src/plugins/help/CMakeLists.txt
@@ -19,7 +19,6 @@ add_qtc_plugin(Help
helpwidget.cpp helpwidget.h
localhelpmanager.cpp localhelpmanager.h
openpagesmanager.cpp openpagesmanager.h
- openpagesmodel.cpp openpagesmodel.h
openpagesswitcher.cpp openpagesswitcher.h
openpageswidget.cpp openpageswidget.h
remotehelpfilter.cpp remotehelpfilter.h remotehelpfilter.ui
diff --git a/src/plugins/help/help.pro b/src/plugins/help/help.pro
index 5d9cf340781..c4dd38b1160 100644
--- a/src/plugins/help/help.pro
+++ b/src/plugins/help/help.pro
@@ -22,7 +22,6 @@ HEADERS += \
helpplugin.h \
helpviewer.h \
openpagesmanager.h \
- openpagesmodel.h \
openpagesswitcher.h \
openpageswidget.h \
remotehelpfilter.h \
@@ -45,7 +44,6 @@ SOURCES += \
helpplugin.cpp \
helpviewer.cpp \
openpagesmanager.cpp \
- openpagesmodel.cpp \
openpagesswitcher.cpp \
openpageswidget.cpp \
remotehelpfilter.cpp \
diff --git a/src/plugins/help/help.qbs b/src/plugins/help/help.qbs
index 38eda44aa6f..7503b442b45 100644
--- a/src/plugins/help/help.qbs
+++ b/src/plugins/help/help.qbs
@@ -43,7 +43,6 @@ QtcPlugin {
"helpwidget.cpp", "helpwidget.h",
"localhelpmanager.cpp", "localhelpmanager.h",
"openpagesmanager.cpp", "openpagesmanager.h",
- "openpagesmodel.cpp", "openpagesmodel.h",
"openpagesswitcher.cpp", "openpagesswitcher.h",
"openpageswidget.cpp", "openpageswidget.h",
"remotehelpfilter.cpp", "remotehelpfilter.h", "remotehelpfilter.ui",
diff --git a/src/plugins/help/helpplugin.cpp b/src/plugins/help/helpplugin.cpp
index a4592468908..37e9eba60f6 100644
--- a/src/plugins/help/helpplugin.cpp
+++ b/src/plugins/help/helpplugin.cpp
@@ -39,7 +39,6 @@
#include "helpviewer.h"
#include "localhelpmanager.h"
#include "openpagesmanager.h"
-#include "openpagesmodel.h"
#include "remotehelpfilter.h"
#include "searchwidget.h"
#include "searchtaskhandler.h"
@@ -166,7 +165,6 @@ public:
bool m_setupNeeded = true;
LocalHelpManager m_localHelpManager;
- OpenPagesManager m_openPagesManager;
QPointer<HelpWidget> m_externalWindow;
QRect m_externalWindowState;
diff --git a/src/plugins/help/helpwidget.cpp b/src/plugins/help/helpwidget.cpp
index 90363debec8..a90ff5accc7 100644
--- a/src/plugins/help/helpwidget.cpp
+++ b/src/plugins/help/helpwidget.cpp
@@ -55,8 +55,8 @@
#include <QCoreApplication>
#include <QHBoxLayout>
#include <QMenu>
-#include <QPrinter>
#include <QPrintDialog>
+#include <QPrinter>
#include <QStackedWidget>
#include <QStatusBar>
#include <QToolButton>
@@ -67,6 +67,39 @@ static const char kModeSideBarSettingsKey[] = "Help/ModeSideBar";
namespace Help {
namespace Internal {
+OpenPagesModel::OpenPagesModel(HelpWidget *parent)
+ : m_parent(parent)
+{}
+
+int OpenPagesModel::rowCount(const QModelIndex &parent) const
+{
+ return parent.isValid() ? 0 : m_parent->viewerCount();
+}
+
+int OpenPagesModel::columnCount(const QModelIndex &parent) const
+{
+ // page title + funky close button
+ return parent.isValid() ? 0 : 2;
+}
+
+QVariant OpenPagesModel::data(const QModelIndex &index, int role) const
+{
+ if (!index.isValid() || index.row() >= rowCount() || index.column() >= columnCount() - 1)
+ return QVariant();
+
+ switch (role) {
+ case Qt::ToolTipRole:
+ return m_parent->viewerAt(index.row())->source().toString();
+ case Qt::DisplayRole: {
+ const QString title = m_parent->viewerAt(index.row())->title();
+ return title.isEmpty() ? HelpWidget::tr("(Untitled)") : title;
+ }
+ default:
+ break;
+ }
+ return QVariant();
+}
+
static void openUrlInWindow(const QUrl &url)
{
HelpPlugin::showHelpUrl(url, Core::HelpManager::ExternalHelpAlways);
@@ -77,12 +110,16 @@ static bool isBookmarkable(const QUrl &url)
return !url.isEmpty() && url != QUrl(Help::Constants::AboutBlank);
}
-HelpWidget::HelpWidget(const Core::Context &context, WidgetStyle style, QWidget *parent) :
- QWidget(parent),
- m_style(style)
+HelpWidget::HelpWidget(const Core::Context &context, WidgetStyle style, QWidget *parent)
+ : QWidget(parent)
+ , m_model(this)
+ , m_style(style)
{
m_viewerStack = new QStackedWidget;
+ if (style == ModeWidget)
+ m_openPagesManager = new OpenPagesManager(this);
+
auto topLayout = new QVBoxLayout;
topLayout->setContentsMargins(0, 0, 0, 0);
topLayout->setSpacing(0);
@@ -299,9 +336,8 @@ HelpWidget::HelpWidget(const Core::Context &context, WidgetStyle style, QWidget
}
if (style != ModeWidget) {
- HelpViewer *viewer = HelpPlugin::createHelpViewer(qreal(0.0));
- addViewer(viewer);
- setCurrentViewer(viewer);
+ addViewer({});
+ setCurrentIndex(0);
}
}
@@ -333,6 +369,12 @@ HelpWidget::~HelpWidget()
Core::ActionManager::unregisterAction(m_scaleDown, TextEditor::Constants::DECREASE_FONT_SIZE);
if (m_resetScale)
Core::ActionManager::unregisterAction(m_resetScale, TextEditor::Constants::RESET_FONT_SIZE);
+ delete m_openPagesManager;
+}
+
+QAbstractItemModel *HelpWidget::model()
+{
+ return &m_model;
}
void HelpWidget::addSideBar()
@@ -469,8 +511,15 @@ int HelpWidget::currentIndex() const
return m_viewerStack->currentIndex();
}
-void HelpWidget::addViewer(HelpViewer *viewer)
+void HelpWidget::setCurrentIndex(int index)
+{
+ setCurrentViewer(viewerAt(index));
+}
+
+HelpViewer *HelpWidget::addViewer(const QUrl &url, qreal zoom)
{
+ m_model.beginInsertRows(QModelIndex(), viewerCount(), viewerCount());
+ HelpViewer *viewer = HelpPlugin::createHelpViewer(zoom);
m_viewerStack->addWidget(viewer);
viewer->setFocus(Qt::OtherFocusReason);
viewer->setActionVisible(HelpViewer::Action::NewPage, m_style == ModeWidget);
@@ -490,28 +539,36 @@ void HelpWidget::addViewer(HelpViewer *viewer)
if (currentViewer() == viewer)
m_backAction->setEnabled(available);
});
- connect(viewer, &HelpViewer::printRequested, this, [viewer, this]() {
- print(viewer);
- });
+ connect(viewer, &HelpViewer::printRequested, this, [viewer, this]() { print(viewer); });
if (m_style == ExternalWindow)
connect(viewer, &HelpViewer::titleChanged, this, &HelpWidget::updateWindowTitle);
+ connect(viewer, &HelpViewer::titleChanged, &m_model, [this, viewer] {
+ const int i = indexOf(viewer);
+ QTC_ASSERT(i >= 0, return );
+ m_model.dataChanged(m_model.index(i, 0), m_model.index(i, 0));
+ });
connect(viewer, &HelpViewer::loadFinished, this, &HelpWidget::highlightSearchTerms);
connect(viewer, &HelpViewer::newPageRequested, [](const QUrl &url) {
OpenPagesManager::instance().createPage(url);
});
connect(viewer, &HelpViewer::externalPageRequested, this, &openUrlInWindow);
-
updateCloseButton();
+ m_model.endInsertRows();
+ if (url.isValid())
+ viewer->setSource(url);
+ return viewer;
}
void HelpWidget::removeViewerAt(int index)
{
- QWidget *viewerWidget = m_viewerStack->widget(index);
+ HelpViewer *viewerWidget = viewerAt(index);
QTC_ASSERT(viewerWidget, return);
+ m_model.beginRemoveRows(QModelIndex(), index, index);
+ viewerWidget->stop();
m_viewerStack->removeWidget(viewerWidget);
- // do not delete, that is done in the model
- // delete viewerWidget;
+ m_model.endRemoveRows();
+ delete viewerWidget;
if (m_viewerStack->currentWidget())
setCurrentViewer(qobject_cast<HelpViewer *>(m_viewerStack->currentWidget()));
updateCloseButton();
@@ -581,6 +638,14 @@ void HelpWidget::closeEvent(QCloseEvent *)
emit aboutToClose();
}
+int HelpWidget::indexOf(HelpViewer *viewer) const
+{
+ for (int i = 0; i < viewerCount(); ++i)
+ if (viewerAt(i) == viewer)
+ return i;
+ return -1;
+}
+
void HelpWidget::updateBackMenu()
{
m_backMenu->clear();
diff --git a/src/plugins/help/helpwidget.h b/src/plugins/help/helpwidget.h
index bc38dcaa070..74fdb0a8ab2 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;
diff --git a/src/plugins/help/openpagesmanager.cpp b/src/plugins/help/openpagesmanager.cpp
index 9a3c50e51a0..d11ce6728bb 100644
--- a/src/plugins/help/openpagesmanager.cpp
+++ b/src/plugins/help/openpagesmanager.cpp
@@ -25,11 +25,10 @@
#include "openpagesmanager.h"
-#include "centralwidget.h"
#include "helpconstants.h"
#include "helpviewer.h"
+#include "helpwidget.h"
#include "localhelpmanager.h"
-#include "openpagesmodel.h"
#include "openpagesswitcher.h"
#include "openpageswidget.h"
@@ -42,6 +41,7 @@
#include <coreplugin/coreconstants.h>
#include <coreplugin/modemanager.h>
+#include <utils/qtcassert.h>
using namespace Core;
using namespace Help::Internal;
@@ -50,23 +50,22 @@ OpenPagesManager *OpenPagesManager::m_instance = nullptr;
// -- OpenPagesManager
-OpenPagesManager::OpenPagesManager(QObject *parent)
- : QObject(parent)
+OpenPagesManager::OpenPagesManager(HelpWidget *helpWidget)
+ : m_helpWidget(helpWidget)
{
Q_ASSERT(!m_instance);
m_instance = this;
- m_model = new OpenPagesModel(this);
m_comboBox = new QComboBox;
- m_comboBox->setModel(m_model);
+ m_comboBox->setModel(m_helpWidget->model());
m_comboBox->setContextMenuPolicy(Qt::CustomContextMenu);
connect(m_comboBox, QOverload<int>::of(&QComboBox::activated),
this, &OpenPagesManager::setCurrentPageByRow);
connect(m_comboBox, &QWidget::customContextMenuRequested, this,
&OpenPagesManager::openPagesContextMenu);
- m_openPagesSwitcher = new OpenPagesSwitcher(m_model);
+ m_openPagesSwitcher = new OpenPagesSwitcher(m_helpWidget->model());
connect(m_openPagesSwitcher, &OpenPagesSwitcher::closePage, this,
&OpenPagesManager::closePage);
connect(m_openPagesSwitcher, &OpenPagesSwitcher::setCurrentPage,
@@ -88,7 +87,7 @@ OpenPagesManager &OpenPagesManager::instance()
QWidget *OpenPagesManager::openPagesWidget() const
{
if (!m_openPagesWidget) {
- m_openPagesWidget = new OpenPagesWidget(m_model);
+ m_openPagesWidget = new OpenPagesWidget(m_helpWidget->model());
connect(m_openPagesWidget, &OpenPagesWidget::setCurrentPage,
this, &OpenPagesManager::setCurrentPage);
connect(m_openPagesWidget, &OpenPagesWidget::closePage,
@@ -118,47 +117,43 @@ void OpenPagesManager::setupInitialPages()
int initialPage = 0;
switch (option) {
- case LocalHelpManager::ShowHomePage: {
- m_model->addPage(homePage);
- } break;
-
- case LocalHelpManager::ShowBlankPage: {
- m_model->addPage(QUrl(Help::Constants::AboutBlank));
- } break;
-
- case LocalHelpManager::ShowLastPages: {
- const QStringList &lastShownPageList = LocalHelpManager::lastShownPages();
- const int pageCount = lastShownPageList.count();
-
- if (pageCount > 0) {
- QList<float> zoomFactors = LocalHelpManager::lastShownPagesZoom();
- while (zoomFactors.count() < pageCount)
- zoomFactors.append(0.);
-
- initialPage = LocalHelpManager::lastSelectedTab();
- for (int curPage = 0; curPage < pageCount; ++curPage) {
- const QString &curFile = lastShownPageList.at(curPage);
- if (engine.findFile(curFile).isValid()
- || curFile == Help::Constants::AboutBlank) {
- m_model->addPage(curFile, zoomFactors.at(curPage));
- } else if (curPage <= initialPage && initialPage > 0) {
- --initialPage;
- }
+ case LocalHelpManager::ShowHomePage:
+ m_helpWidget->addViewer(homePage);
+ break;
+
+ case LocalHelpManager::ShowBlankPage:
+ m_helpWidget->addViewer(QUrl(Help::Constants::AboutBlank));
+ break;
+
+ case LocalHelpManager::ShowLastPages: {
+ const QStringList &lastShownPageList = LocalHelpManager::lastShownPages();
+ const int pageCount = lastShownPageList.count();
+
+ if (pageCount > 0) {
+ QList<float> zoomFactors = LocalHelpManager::lastShownPagesZoom();
+ while (zoomFactors.count() < pageCount)
+ zoomFactors.append(0.);
+
+ initialPage = LocalHelpManager::lastSelectedTab();
+ for (int curPage = 0; curPage < pageCount; ++curPage) {
+ const QString &curFile = lastShownPageList.at(curPage);
+ if (engine.findFile(curFile).isValid() || curFile == Help::Constants::AboutBlank) {
+ m_helpWidget->addViewer(curFile, zoomFactors.at(curPage));
+ } else if (curPage <= initialPage && initialPage > 0) {
+ --initialPage;
}
}
- } break;
+ }
+ } break;
- default: break;
+ default:
+ break;
}
- if (m_model->rowCount() == 0)
- m_model->addPage(homePage);
-
- for (int i = 0; i < m_model->rowCount(); ++i)
- CentralWidget::instance()->addViewer(m_model->pageAt(i));
+ if (m_helpWidget->viewerCount() == 0)
+ m_helpWidget->addViewer(homePage);
- setCurrentPageByRow((initialPage >= m_model->rowCount())
- ? m_model->rowCount() - 1 : initialPage);
+ setCurrentPageByRow(std::max(initialPage, m_helpWidget->viewerCount() - 1));
m_openPagesSwitcher->selectCurrentPage();
}
@@ -172,20 +167,15 @@ HelpViewer *OpenPagesManager::createPage(const QUrl &url)
if (url.isValid() && HelpViewer::launchWithExternalApp(url))
return nullptr;
- m_model->addPage(url);
-
- const int index = m_model->rowCount() - 1;
- HelpViewer * const page = m_model->pageAt(index);
- CentralWidget::instance()->addViewer(page);
-
- setCurrentPageByRow(index);
+ HelpViewer *page = m_helpWidget->addViewer(url);
+ setCurrentPageByRow(m_helpWidget->viewerCount() - 1);
return page;
}
void OpenPagesManager::setCurrentPageByRow(int index)
{
- CentralWidget::instance()->setCurrentViewer(m_model->pageAt(index));
+ m_helpWidget->setCurrentIndex(index);
m_comboBox->setCurrentIndex(index);
if (m_openPagesWidget)
@@ -209,10 +199,10 @@ void OpenPagesManager::closeCurrentPage()
const bool returnOnClose = LocalHelpManager::returnOnClose();
- if (m_model->rowCount() == 1 && returnOnClose) {
+ if (m_helpWidget->viewerCount() == 1 && returnOnClose) {
ModeManager::activateMode(Core::Constants::MODE_EDIT);
} else {
- Q_ASSERT(indexes.count() == 1);
+ QTC_ASSERT(indexes.count() == 1, return );
removePage(indexes.first().row());
}
}
@@ -227,9 +217,9 @@ void OpenPagesManager::closePagesExcept(const QModelIndex &index)
{
if (index.isValid()) {
int i = 0;
- HelpViewer *viewer = m_model->pageAt(index.row());
- while (m_model->rowCount() > 1) {
- if (m_model->pageAt(i) != viewer)
+ HelpViewer *viewer = m_helpWidget->viewerAt(index.row());
+ while (m_helpWidget->viewerCount() > 1) {
+ if (m_helpWidget->viewerAt(i) != viewer)
removePage(i);
else
i++;
@@ -263,10 +253,9 @@ void OpenPagesManager::gotoPreviousPage()
void OpenPagesManager::removePage(int index)
{
- Q_ASSERT(m_model->rowCount() > 1);
+ QTC_ASSERT(index < m_helpWidget->viewerCount(), return );
- m_model->removePage(index);
- CentralWidget::instance()->removeViewerAt(index);
+ m_helpWidget->removeViewerAt(index);
if (m_openPagesWidget)
m_openPagesWidget->selectCurrentPage();
@@ -275,9 +264,9 @@ void OpenPagesManager::removePage(int index)
void OpenPagesManager::showTwicherOrSelectPage() const
{
if (QApplication::keyboardModifiers() != Qt::NoModifier) {
- const int width = CentralWidget::instance()->width();
- const int height = CentralWidget::instance()->height();
- const QPoint p(CentralWidget::instance()->mapToGlobal(QPoint(0, 0)));
+ const int width = m_helpWidget->width();
+ const int height = m_helpWidget->height();
+ const QPoint p(m_helpWidget->mapToGlobal(QPoint(0, 0)));
m_openPagesSwitcher->move((width - m_openPagesSwitcher->width()) / 2 + p.x(),
(height - m_openPagesSwitcher->height()) / 2 + p.y());
m_openPagesSwitcher->setVisible(true);
@@ -288,8 +277,8 @@ void OpenPagesManager::showTwicherOrSelectPage() const
void OpenPagesManager::openPagesContextMenu(const QPoint &point)
{
- const QModelIndex &index = m_model->index(m_comboBox->currentIndex(), 0);
- const QString &fileName = m_model->data(index, Qt::ToolTipRole).toString();
+ const QModelIndex &index = m_helpWidget->model()->index(m_comboBox->currentIndex(), 0);
+ const QString &fileName = m_helpWidget->model()->data(index, Qt::ToolTipRole).toString();
if (fileName.isEmpty())
return;
diff --git a/src/plugins/help/openpagesmanager.h b/src/plugins/help/openpagesmanager.h
index dd4f3b88c4d..83357bb60f3 100644
--- a/src/plugins/help/openpagesmanager.h
+++ b/src/plugins/help/openpagesmanager.h
@@ -27,18 +27,21 @@
#include <QObject>
-QT_FORWARD_DECLARE_CLASS(QComboBox)
-QT_FORWARD_DECLARE_CLASS(QListView)
-QT_FORWARD_DECLARE_CLASS(QModelIndex)
-QT_FORWARD_DECLARE_CLASS(QPoint)
-QT_FORWARD_DECLARE_CLASS(QUrl)
-QT_FORWARD_DECLARE_CLASS(QWidget)
+QT_BEGIN_NAMESPACE
+class QAbstractItemModel;
+class QComboBox;
+class QListView;
+class QModelIndex;
+class QPoint;
+class QUrl;
+class QWidget;
+QT_END_NAMESPACE
namespace Help {
- namespace Internal {
+namespace Internal {
+class HelpWidget;
class HelpViewer;
-class OpenPagesModel;
class OpenPagesSwitcher;
class OpenPagesWidget;
@@ -47,7 +50,7 @@ class OpenPagesManager : public QObject
Q_OBJECT
public:
- OpenPagesManager(QObject *parent = nullptr);
+ OpenPagesManager(HelpWidget *helpWidget);
~OpenPagesManager() override;
static OpenPagesManager &instance();
@@ -76,12 +79,12 @@ private:
void openPagesContextMenu(const QPoint &point);
QComboBox *m_comboBox = nullptr;
- OpenPagesModel *m_model = nullptr;
+ HelpWidget *m_helpWidget = nullptr;
mutable OpenPagesWidget *m_openPagesWidget = nullptr;
OpenPagesSwitcher *m_openPagesSwitcher = nullptr;
static OpenPagesManager *m_instance;
};
- } // namespace Internal
+} // namespace Internal
} // namespace Help
diff --git a/src/plugins/help/openpagesmodel.cpp b/src/plugins/help/openpagesmodel.cpp
deleted file mode 100644
index 3587acfc096..00000000000
--- a/src/plugins/help/openpagesmodel.cpp
+++ /dev/null
@@ -1,104 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt Creator.
-**
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-****************************************************************************/
-
-#include "openpagesmodel.h"
-#include "helpplugin.h"
-#include "helpviewer.h"
-
-#include <QUrl>
-
-using namespace Help::Internal;
-
-OpenPagesModel::OpenPagesModel(QObject *parent)
- : QAbstractTableModel(parent)
-{
-}
-
-int OpenPagesModel::rowCount(const QModelIndex &parent) const
-{
- return parent.isValid() ? 0 : m_pages.count();
-}
-
-int OpenPagesModel::columnCount(const QModelIndex &/*parent*/) const
-{
- return 2;
-}
-
-QVariant OpenPagesModel::data(const QModelIndex &index, int role) const
-{
- if (!index.isValid() || index.row() >= rowCount()
- || index.column() >= columnCount() - 1)
- return QVariant();
-
- switch (role) {
- case Qt::ToolTipRole:
- return m_pages.at(index.row())->source().toString();
- case Qt::DisplayRole: {
- const QString title = m_pages.at(index.row())->title();
- return title.isEmpty() ? tr("(Untitled)") : title;
- }
- default:
- break;
- }
- return QVariant();
-}
-
-void OpenPagesModel::addPage(const QUrl &url, qreal zoom)
-{
- beginInsertRows(QModelIndex(), rowCount(), rowCount());
- HelpViewer *page = HelpPlugin::createHelpViewer(zoom);
- connect(page, &HelpViewer::titleChanged,
- this, &OpenPagesModel::handleTitleChanged);
- m_pages << page;
- endInsertRows();
- if (url.isValid())
- page->setSource(url);
-}
-
-void OpenPagesModel::removePage(int index)
-{
- Q_ASSERT(index >= 0 && index < rowCount());
- beginRemoveRows(QModelIndex(), index, index);
- HelpViewer *page = m_pages.at(index);
- page->stop();
- m_pages.removeAt(index);
- endRemoveRows();
- page->deleteLater();
-}
-
-HelpViewer *OpenPagesModel::pageAt(int index) const
-{
- Q_ASSERT(index >= 0 && index < rowCount());
- return m_pages.at(index);
-}
-
-void OpenPagesModel::handleTitleChanged()
-{
- auto page = static_cast<HelpViewer *>(sender());
- const int row = m_pages.indexOf(page);
- Q_ASSERT(row != -1 );
- const QModelIndex &item = index(row, 0);
- emit dataChanged(item, item);
-}
diff --git a/src/plugins/help/openpagesmodel.h b/src/plugins/help/openpagesmodel.h
deleted file mode 100644
index 4d990ef791b..00000000000
--- a/src/plugins/help/openpagesmodel.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt Creator.
-**
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-****************************************************************************/
-
-#pragma once
-
-#include <QList>
-#include <QAbstractTableModel>
-
-QT_FORWARD_DECLARE_CLASS(QUrl)
-
-namespace Help {
- namespace Internal {
-
-class HelpViewer;
-
-class OpenPagesModel : public QAbstractTableModel
-{
- Q_OBJECT
-
-public:
- OpenPagesModel(QObject *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;
-
- void addPage(const QUrl &url, qreal zoom = 0);
- void removePage(int index);
- HelpViewer *pageAt(int index) const;
-
-private:
- void handleTitleChanged();
-
- QList<HelpViewer *> m_pages;
-};
-
- } // namespace Internal
-} // namespace Help