summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2019-09-26 15:23:51 +0200
committerEike Ziller <eike.ziller@qt.io>2019-09-26 15:23:51 +0200
commit505e9e10a1d9edb96f07af66446f976af2b95738 (patch)
tree4b39eeaed6d4268f307382e36b9c61a187086dc4 /src
parent2152d4750c29d0e3aa96bfdb0622bbd1cf83e80d (diff)
parent8263f73a4af074b488081e68b96a27d92f5aabf5 (diff)
downloadqt-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.cpp18
-rw-r--r--src/plugins/help/helpwidget.cpp94
-rw-r--r--src/plugins/help/helpwidget.h1
m---------src/shared/qbs0
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