From 8955afae66acc367c4771fd4d9a98fda4bc1a01d Mon Sep 17 00:00:00 2001 From: Le Tan Date: Fri, 7 May 2021 07:36:29 +0800 Subject: [PATCH] small fixes about panel 1. Focus to the input when activating the Search panel; 2. Expand content area won't activate all the panels. --- src/widgets/mainwindow.cpp | 25 ++++++++++++++++++++++--- src/widgets/searchpanel.cpp | 1 + 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/widgets/mainwindow.cpp b/src/widgets/mainwindow.cpp index 30da98fc..44075a2f 100644 --- a/src/widgets/mainwindow.cpp +++ b/src/widgets/mainwindow.cpp @@ -18,6 +18,7 @@ #include #include #include +#include #include "toolbox.h" #include "notebookexplorer.h" @@ -478,9 +479,27 @@ void MainWindow::resetStateAndGeometry() void MainWindow::setContentAreaExpanded(bool p_expanded) { - for (auto dock : m_docks) { - if (!dock->isFloating()) { - dock->setVisible(!p_expanded); + static QBitArray dockStateCache(m_docks.size(), false); + + if (p_expanded) { + // Store the state and hide. + for (int i = 0; i < m_docks.size(); ++i) { + if (m_docks[i]->isFloating()) { + dockStateCache[i] = true; + continue; + } + + dockStateCache[i] = m_docks[i]->isVisible(); + m_docks[i]->setVisible(false); + } + } else { + // Restore the state. + for (int i = 0; i < m_docks.size(); ++i) { + if (m_docks[i]->isFloating()) { + continue; + } + + m_docks[i]->setVisible(dockStateCache[i]); } } } diff --git a/src/widgets/searchpanel.cpp b/src/widgets/searchpanel.cpp index b36bb992..d8d3e3b2 100644 --- a/src/widgets/searchpanel.cpp +++ b/src/widgets/searchpanel.cpp @@ -79,6 +79,7 @@ void SearchPanel::setupUI() m_keywordComboBox->setLineEdit(WidgetsFactory::createLineEdit(mainWidget)); m_keywordComboBox->lineEdit()->setProperty(PropertyDefs::c_embeddedLineEdit, true); m_keywordComboBox->completer()->setCaseSensitivity(Qt::CaseSensitive); + setFocusProxy(m_keywordComboBox); connect(m_keywordComboBox->lineEdit(), &QLineEdit::returnPressed, this, [this]() { m_searchBtn->animateClick();