diff options
author | Eike Ziller <eike.ziller@qt.io> | 2021-03-04 11:57:32 +0100 |
---|---|---|
committer | Eike Ziller <eike.ziller@qt.io> | 2021-03-05 07:34:32 +0000 |
commit | 28f53a9040a286b5892c619d3b3adbf9165d1358 (patch) | |
tree | 7122353a218aee4291092a613c5a41c6fdab7f99 | |
parent | c43956ea453b033f58eca82d10c4377d51220f74 (diff) |
macOS: Fix vanishing controls in Welcome mode with macOS dark mode
The example set selector and the search input field were missing some
palette tweaks that were done by other classes deriving from
WelcomePageFrame.
Fixes: QTCREATORBUG-25405
Change-Id: I43a022aa5464a1167f94d26e945de225a436b768
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
-rw-r--r-- | src/plugins/coreplugin/iwelcomepage.cpp | 6 | ||||
-rw-r--r-- | src/plugins/coreplugin/iwelcomepage.h | 2 | ||||
-rw-r--r-- | src/plugins/coreplugin/welcomepagehelper.cpp | 6 | ||||
-rw-r--r-- | src/plugins/qtsupport/gettingstartedwelcomepage.cpp | 4 |
4 files changed, 13 insertions, 5 deletions
diff --git a/src/plugins/coreplugin/iwelcomepage.cpp b/src/plugins/coreplugin/iwelcomepage.cpp index e305bbe7d5..acb59fe9ea 100644 --- a/src/plugins/coreplugin/iwelcomepage.cpp +++ b/src/plugins/coreplugin/iwelcomepage.cpp @@ -58,7 +58,7 @@ IWelcomePage::~IWelcomePage() g_welcomePages.removeOne(this); } -static QPalette buttonPalette(bool isActive, bool isCursorInside, bool forText) +QPalette WelcomePageFrame::buttonPalette(bool isActive, bool isCursorInside, bool forText) { QPalette pal; Theme *theme = Utils::creatorTheme(); @@ -175,8 +175,8 @@ bool WelcomePageButtonPrivate::isActive() const void WelcomePageButtonPrivate::doUpdate(bool cursorInside) { const bool active = isActive(); - q->setPalette(buttonPalette(active, cursorInside, false)); - const QPalette lpal = buttonPalette(active, cursorInside, true); + q->setPalette(WelcomePageFrame::buttonPalette(active, cursorInside, false)); + const QPalette lpal = WelcomePageFrame::buttonPalette(active, cursorInside, true); m_label->setPalette(lpal); if (m_icon) m_icon->setPalette(lpal); diff --git a/src/plugins/coreplugin/iwelcomepage.h b/src/plugins/coreplugin/iwelcomepage.h index bc4ea7878d..1a89b5df8c 100644 --- a/src/plugins/coreplugin/iwelcomepage.h +++ b/src/plugins/coreplugin/iwelcomepage.h @@ -68,6 +68,8 @@ public: WelcomePageFrame(QWidget *parent); void paintEvent(QPaintEvent *event) override; + + static QPalette buttonPalette(bool isActive, bool isCursorInside, bool forText); }; class CORE_EXPORT WelcomePageButton : public WelcomePageFrame diff --git a/src/plugins/coreplugin/welcomepagehelper.cpp b/src/plugins/coreplugin/welcomepagehelper.cpp index 8e2b3c61a9..d971712e2f 100644 --- a/src/plugins/coreplugin/welcomepagehelper.cpp +++ b/src/plugins/coreplugin/welcomepagehelper.cpp @@ -57,15 +57,17 @@ static QFont sizedFont(int size, const QWidget *widget) SearchBox::SearchBox(QWidget *parent) : WelcomePageFrame(parent) { - QPalette pal; + QPalette pal = buttonPalette(false, false, true); pal.setColor(QPalette::Base, themeColor(Theme::Welcome_BackgroundColor)); + // for macOS dark mode + pal.setColor(QPalette::Text, themeColor(Theme::Welcome_TextColor)); + setPalette(pal); m_lineEdit = new FancyLineEdit; m_lineEdit->setFiltering(true); m_lineEdit->setFrame(false); m_lineEdit->setFont(sizedFont(14, this)); m_lineEdit->setAttribute(Qt::WA_MacShowFocusRect, false); - m_lineEdit->setPalette(pal); auto box = new QHBoxLayout(this); box->setContentsMargins(10, 3, 3, 3); diff --git a/src/plugins/qtsupport/gettingstartedwelcomepage.cpp b/src/plugins/qtsupport/gettingstartedwelcomepage.cpp index 7a048dfa3e..6092e8d0cb 100644 --- a/src/plugins/qtsupport/gettingstartedwelcomepage.cpp +++ b/src/plugins/qtsupport/gettingstartedwelcomepage.cpp @@ -287,6 +287,10 @@ public: m_searcher->setPlaceholderText(ExamplesWelcomePage::tr("Search in Examples...")); auto exampleSetSelector = new QComboBox(this); + QPalette pal = exampleSetSelector->palette(); + // for macOS dark mode + pal.setColor(QPalette::Text, Utils::creatorTheme()->color(Theme::Welcome_TextColor)); + exampleSetSelector->setPalette(pal); exampleSetSelector->setMinimumWidth(GridProxyModel::GridItemWidth); exampleSetSelector->setMaximumWidth(GridProxyModel::GridItemWidth); ExampleSetModel *exampleSetModel = m_examplesModel->exampleSetModel(); |