From 28f53a9040a286b5892c619d3b3adbf9165d1358 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Thu, 4 Mar 2021 11:57:32 +0100 Subject: 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 --- src/plugins/coreplugin/iwelcomepage.cpp | 6 +++--- src/plugins/coreplugin/iwelcomepage.h | 2 ++ src/plugins/coreplugin/welcomepagehelper.cpp | 6 ++++-- 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(); -- cgit v1.2.3