diff options
author | Eike Ziller <eike.ziller@qt.io> | 2019-09-26 15:23:51 +0200 |
---|---|---|
committer | Eike Ziller <eike.ziller@qt.io> | 2019-09-26 15:23:51 +0200 |
commit | 505e9e10a1d9edb96f07af66446f976af2b95738 (patch) | |
tree | 4b39eeaed6d4268f307382e36b9c61a187086dc4 /src | |
parent | 2152d4750c29d0e3aa96bfdb0622bbd1cf83e80d (diff) | |
parent | 8263f73a4af074b488081e68b96a27d92f5aabf5 (diff) | |
download | qt-creator-505e9e10a1d9edb96f07af66446f976af2b95738.tar.gz |
Merge remote-tracking branch 'origin/4.11'
Change-Id: Ie9859185470ae46e49a25e732336c4a95eaad4ed
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/debugger/debuggermainwindow.cpp | 18 | ||||
-rw-r--r-- | src/plugins/help/helpwidget.cpp | 94 | ||||
-rw-r--r-- | src/plugins/help/helpwidget.h | 1 | ||||
m--------- | src/shared/qbs | 0 |
4 files changed, 61 insertions, 52 deletions
diff --git a/src/plugins/debugger/debuggermainwindow.cpp b/src/plugins/debugger/debuggermainwindow.cpp index caa145b0f7..b77a2536a6 100644 --- a/src/plugins/debugger/debuggermainwindow.cpp +++ b/src/plugins/debugger/debuggermainwindow.cpp @@ -553,6 +553,7 @@ void PerspectivePrivate::resetPerspective() } else { op.setupLayout(); op.dock->setVisible(op.visibleByDefault); + theMainWindow->d->m_persistentChangedDocks.remove(op.name()); qCDebug(perspectivesLog) << "SETTING " << op.name() << " TO ACTIVE: " << op.visibleByDefault; } @@ -937,12 +938,10 @@ void PerspectivePrivate::restoreLayout() qCDebug(perspectivesLog) << "PERSPECTIVE STATE AVAILABLE BY FULL ID."; } - if (state.isEmpty()) { - qCDebug(perspectivesLog) << "PERSPECTIVE " << m_id << "RESTORE NOT POSSIBLE, NO STORED STATE"; - } else { - bool result = theMainWindow->restoreState(state); - qCDebug(perspectivesLog) << "PERSPECTIVE " << m_id << "RESTORED. SUCCESS: " << result; - } + // The order is important here: While QMainWindow can restore layouts with + // not-existing docks (some placeholders are used internally), later + // replacements with restoreDockWidget(dock) trigger a re-layout, resulting + // in different sizes. So make sure all docks exist first before restoring state. qCDebug(perspectivesLog) << "PERSPECTIVE" << m_id << "RESTORING LAYOUT FROM " << settingsId(); for (DockOperation &op : m_dockOperations) { @@ -955,6 +954,13 @@ void PerspectivePrivate::restoreLayout() << (active == op.visibleByDefault ? "DEFAULT USER" : "*** NON-DEFAULT USER"); } } + + if (state.isEmpty()) { + qCDebug(perspectivesLog) << "PERSPECTIVE " << m_id << "RESTORE NOT POSSIBLE, NO STORED STATE"; + } else { + bool result = theMainWindow->restoreState(state); + qCDebug(perspectivesLog) << "PERSPECTIVE " << m_id << "RESTORED, SUCCESS: " << result; + } } void PerspectivePrivate::saveLayout() diff --git a/src/plugins/help/helpwidget.cpp b/src/plugins/help/helpwidget.cpp index 9766b2f3b4..9a66c0a6f5 100644 --- a/src/plugins/help/helpwidget.cpp +++ b/src/plugins/help/helpwidget.cpp @@ -117,7 +117,7 @@ HelpWidget::HelpWidget(const Core::Context &context, WidgetStyle style, QWidget { m_viewerStack = new QStackedWidget; - if (style == ModeWidget) + if (supportsPages()) m_openPagesManager = new OpenPagesManager(this); auto topLayout = new QVBoxLayout; @@ -250,13 +250,10 @@ HelpWidget::HelpWidget(const Core::Context &context, WidgetStyle style, QWidget connect(m_openOnlineDocumentationAction, &QAction::triggered, this, &HelpWidget::openOnlineDocumentation); layout->addWidget(Core::Command::toolButtonWithAppendedShortcut(m_openOnlineDocumentationAction, cmd)); - if (style == ModeWidget) { + if (supportsPages()) { layout->addWidget(new Utils::StyledSeparator(toolBar)); layout->addWidget(m_openPagesManager->openPagesComboBox(), 10); - } else { - layout->addWidget(new QLabel(), 10); - } - if (style != SideBarWidget) { + m_filterComboBox = new QComboBox; m_filterComboBox->setMinimumContentsLength(15); m_filterComboBox->setModel(LocalHelpManager::filterModel()); @@ -266,6 +263,8 @@ HelpWidget::HelpWidget(const Core::Context &context, WidgetStyle style, QWidget LocalHelpManager::instance(), &LocalHelpManager::setFilterIndex); connect(LocalHelpManager::instance(), &LocalHelpManager::filterIndexChanged, m_filterComboBox, &QComboBox::setCurrentIndex); + } else { + layout->addWidget(new QLabel(), 10); } layout->addStretch(); @@ -308,16 +307,16 @@ HelpWidget::HelpWidget(const Core::Context &context, WidgetStyle style, QWidget auto openMenu = new QMenu(openButton); openButton->setMenu(openMenu); + if (m_switchToHelp) + openMenu->addAction(m_switchToHelp); + if (supportsPages()) { + QAction *openPage = openMenu->addAction(tr("Open in New Page")); + connect(openPage, &QAction::triggered, this, [this]() { + if (HelpViewer *viewer = currentViewer()) + openNewPage(viewer->source()); + }); + } if (style != ExternalWindow) { - if (m_switchToHelp) - openMenu->addAction(m_switchToHelp); - if (style == ModeWidget) { - QAction *openPage = openMenu->addAction(tr("Open in New Page")); - connect(openPage, &QAction::triggered, this, [this]() { - if (HelpViewer *viewer = currentViewer()) - openNewPage(viewer->source()); - }); - } QAction *openExternal = openMenu->addAction(tr("Open in Window")); connect(openExternal, &QAction::triggered, this, [this]() { if (HelpViewer *viewer = currentViewer()) { @@ -326,20 +325,20 @@ HelpWidget::HelpWidget(const Core::Context &context, WidgetStyle style, QWidget emit closeButtonClicked(); } }); - openMenu->addSeparator(); - - const Utils::Icon &icon = style == ModeWidget ? Utils::Icons::CLOSE_TOOLBAR - : 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); } + openMenu->addSeparator(); + + const Utils::Icon &icon = style == SideBarWidget ? Utils::Icons::CLOSE_SPLIT_RIGHT + : Utils::Icons::CLOSE_TOOLBAR; + 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); QAction *reload = openMenu->addAction(tr("Reload")); connect(reload, &QAction::triggered, this, [this]() { @@ -402,11 +401,10 @@ void HelpWidget::addSideBar() { QMap<QString, Core::Command *> shortcutMap; Core::Command *cmd; - bool supportsNewPages = (m_style == ModeWidget); auto contentWindow = new ContentWindow; auto contentItem = new Core::SideBarItem(contentWindow, Constants::HELP_CONTENTS); - contentWindow->setOpenInNewPageActionVisible(supportsNewPages); + contentWindow->setOpenInNewPageActionVisible(supportsPages()); contentWindow->setWindowTitle(HelpPlugin::tr(Constants::SB_CONTENTS)); connect(contentWindow, &ContentWindow::linkActivated, this, &HelpWidget::open); @@ -418,7 +416,7 @@ void HelpWidget::addSideBar() auto indexWindow = new IndexWindow(); auto indexItem = new Core::SideBarItem(indexWindow, Constants::HELP_INDEX); - indexWindow->setOpenInNewPageActionVisible(supportsNewPages); + indexWindow->setOpenInNewPageActionVisible(supportsPages()); indexWindow->setWindowTitle(HelpPlugin::tr(Constants::SB_INDEX)); connect(indexWindow, &IndexWindow::linksActivated, this, &HelpWidget::showLinks); @@ -430,7 +428,7 @@ void HelpWidget::addSideBar() auto bookmarkWidget = new BookmarkWidget(&LocalHelpManager::bookmarkManager()); bookmarkWidget->setWindowTitle(HelpPlugin::tr(Constants::SB_BOOKMARKS)); - bookmarkWidget->setOpenInNewPageActionVisible(supportsNewPages); + bookmarkWidget->setOpenInNewPageActionVisible(supportsPages()); auto bookmarkItem = new Core::SideBarItem(bookmarkWidget, Constants::HELP_BOOKMARKS); connect(bookmarkWidget, &BookmarkWidget::linkActivated, this, &HelpWidget::setSource); m_bookmarkAction = new QAction(tr("Activate Help Bookmarks View"), this); @@ -450,17 +448,16 @@ void HelpWidget::addSideBar() shortcutMap.insert(Constants::HELP_SEARCH, cmd); Core::SideBarItem *openPagesItem = nullptr; - if (m_style == ModeWidget) { - QWidget *openPagesWidget = m_openPagesManager->openPagesWidget(); - openPagesWidget->setWindowTitle(HelpPlugin::tr(Constants::SB_OPENPAGES)); - openPagesItem = new Core::SideBarItem(openPagesWidget, Constants::HELP_OPENPAGES); - m_openPagesAction = new QAction(tr("Activate Open Help Pages View"), this); - cmd = Core::ActionManager::registerAction(m_openPagesAction, Constants::HELP_OPENPAGES, - m_context->context()); - cmd->setDefaultKeySequence(QKeySequence(Core::useMacShortcuts ? tr("Meta+O") - : tr("Ctrl+Shift+O"))); - shortcutMap.insert(Constants::HELP_OPENPAGES, cmd); - } + QWidget *openPagesWidget = m_openPagesManager->openPagesWidget(); + openPagesWidget->setWindowTitle(HelpPlugin::tr(Constants::SB_OPENPAGES)); + openPagesItem = new Core::SideBarItem(openPagesWidget, Constants::HELP_OPENPAGES); + m_openPagesAction = new QAction(tr("Activate Open Help Pages View"), this); + cmd = Core::ActionManager::registerAction(m_openPagesAction, + Constants::HELP_OPENPAGES, + m_context->context()); + cmd->setDefaultKeySequence( + QKeySequence(Core::useMacShortcuts ? tr("Meta+O") : tr("Ctrl+Shift+O"))); + shortcutMap.insert(Constants::HELP_OPENPAGES, cmd); QList<Core::SideBarItem *> itemList = {contentItem, indexItem, bookmarkItem, searchItem}; if (openPagesItem) @@ -546,7 +543,7 @@ HelpViewer *HelpWidget::insertViewer(int index, const QUrl &url, qreal zoom) HelpViewer *viewer = HelpPlugin::createHelpViewer(zoom); m_viewerStack->insertWidget(index, viewer); viewer->setFocus(Qt::OtherFocusReason); - viewer->setActionVisible(HelpViewer::Action::NewPage, m_style == ModeWidget); + viewer->setActionVisible(HelpViewer::Action::NewPage, supportsPages()); viewer->setActionVisible(HelpViewer::Action::ExternalWindow, m_style != ExternalWindow); connect(viewer, &HelpViewer::sourceChanged, this, [viewer, this](const QUrl &url) { if (currentViewer() == viewer) { @@ -741,10 +738,15 @@ void HelpWidget::saveState() const } } +bool HelpWidget::supportsPages() const +{ + return m_style != SideBarWidget; +} + void HelpWidget::updateCloseButton() { - if (m_style == ModeWidget) { - const bool closeOnReturn = LocalHelpManager::returnOnClose(); + if (supportsPages()) { + const bool closeOnReturn = LocalHelpManager::returnOnClose() && m_style == ModeWidget; m_closeAction->setEnabled(closeOnReturn || m_viewerStack->count() > 1); } } diff --git a/src/plugins/help/helpwidget.h b/src/plugins/help/helpwidget.h index 603e333876..53df93153e 100644 --- a/src/plugins/help/helpwidget.h +++ b/src/plugins/help/helpwidget.h @@ -125,6 +125,7 @@ private: void helpModeButtonClicked(); void closeCurrentPage(); void saveState() const; + bool supportsPages() const; void goHome(); void addBookmark(); diff --git a/src/shared/qbs b/src/shared/qbs -Subproject 8c290c624d343406442b87121ccb2e4eab0e6e5 +Subproject 94fe404a5a6d7cf91926bcfbd026953994b2581 |