aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2021-03-04 11:57:32 +0100
committerEike Ziller <eike.ziller@qt.io>2021-03-05 07:34:32 +0000
commit28f53a9040a286b5892c619d3b3adbf9165d1358 (patch)
tree7122353a218aee4291092a613c5a41c6fdab7f99
parentc43956ea453b033f58eca82d10c4377d51220f74 (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.cpp6
-rw-r--r--src/plugins/coreplugin/iwelcomepage.h2
-rw-r--r--src/plugins/coreplugin/welcomepagehelper.cpp6
-rw-r--r--src/plugins/qtsupport/gettingstartedwelcomepage.cpp4
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();