forked from qt-creator/qt-creator
Help: Get rid of special CentralWidget class for help mode viewer
Change-Id: Id733eb0449cdaed5901e4144089c8adaaf07d7a9 Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -332,6 +332,10 @@ HelpWidget::HelpWidget(const Core::Context &context, WidgetStyle style, QWidget
|
||||
: Utils::Icons::CLOSE_SPLIT_RIGHT;
|
||||
m_closeAction = new QAction(icon.icon(), QString(), toolBar);
|
||||
connect(m_closeAction, &QAction::triggered, this, &HelpWidget::closeButtonClicked);
|
||||
connect(m_closeAction, &QAction::triggered, this, [this] {
|
||||
if (viewerCount() > 1)
|
||||
closeCurrentPage();
|
||||
});
|
||||
button = new QToolButton;
|
||||
button->setDefaultAction(m_closeAction);
|
||||
layout->addWidget(button);
|
||||
@@ -354,6 +358,7 @@ HelpWidget::HelpWidget(const Core::Context &context, WidgetStyle style, QWidget
|
||||
|
||||
HelpWidget::~HelpWidget()
|
||||
{
|
||||
saveState();
|
||||
if (m_sideBar) {
|
||||
m_sideBar->saveSettings(Core::ICore::settings(), sideBarSettingsKey());
|
||||
Core::ActionManager::unregisterAction(m_contentsAction, Constants::HELP_CONTENTS);
|
||||
@@ -388,6 +393,11 @@ QAbstractItemModel *HelpWidget::model()
|
||||
return &m_model;
|
||||
}
|
||||
|
||||
HelpWidget::WidgetStyle HelpWidget::widgetStyle() const
|
||||
{
|
||||
return m_style;
|
||||
}
|
||||
|
||||
void HelpWidget::addSideBar()
|
||||
{
|
||||
QMap<QString, Core::Command *> shortcutMap;
|
||||
@@ -705,6 +715,32 @@ void HelpWidget::helpModeButtonClicked()
|
||||
close();
|
||||
}
|
||||
|
||||
void HelpWidget::closeCurrentPage()
|
||||
{
|
||||
removeViewerAt(currentIndex());
|
||||
}
|
||||
|
||||
void HelpWidget::saveState() const
|
||||
{
|
||||
// TODO generalize
|
||||
if (m_style == ModeWidget) {
|
||||
QList<qreal> zoomFactors;
|
||||
QStringList currentPages;
|
||||
for (int i = 0; i < viewerCount(); ++i) {
|
||||
const HelpViewer *const viewer = viewerAt(i);
|
||||
const QUrl &source = viewer->source();
|
||||
if (source.isValid()) {
|
||||
currentPages.append(source.toString());
|
||||
zoomFactors.append(viewer->scale());
|
||||
}
|
||||
}
|
||||
|
||||
LocalHelpManager::setLastShownPages(currentPages);
|
||||
LocalHelpManager::setLastShownPagesZoom(zoomFactors);
|
||||
LocalHelpManager::setLastSelectedTab(currentIndex());
|
||||
}
|
||||
}
|
||||
|
||||
void HelpWidget::updateCloseButton()
|
||||
{
|
||||
if (m_style == ModeWidget) {
|
||||
|
||||
Reference in New Issue
Block a user