summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnu Aliyas <anu.aliyas@qt.io>2024-01-02 16:44:21 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2024-01-07 01:42:59 +0000
commit49b27ea6cacca36ded754f0340af8a74c6630d39 (patch)
tree07abbe910d87bb9ff286f37fc3557ad117a49a74
parentd41ca8eedee20409bd38b2668ead2d420ba38fdb (diff)
Fix the background color issue in cookiebrowser
In cookiebrowser example, all new cookie widgets are added at position 0. Background color of the newly added widget is set based on the color of last inserted cookie widget. Fixes: QTBUG-120446 Pick-to: 6.5 Change-Id: I76fe3ae83b31489365396a2ebcd31d840b2fa857 Reviewed-by: Michal Klocek <michal.klocek@qt.io> (cherry picked from commit 285dfce3c0f8e61228784ef557844c66d44feb1f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 9eb97b4b3bfefb9c475e3aa5056a8641aa4b102d)
-rw-r--r--examples/webenginewidgets/cookiebrowser/mainwindow.cpp14
-rw-r--r--examples/webenginewidgets/cookiebrowser/mainwindow.h4
2 files changed, 16 insertions, 2 deletions
diff --git a/examples/webenginewidgets/cookiebrowser/mainwindow.cpp b/examples/webenginewidgets/cookiebrowser/mainwindow.cpp
index bf65870f8..67454a9f1 100644
--- a/examples/webenginewidgets/cookiebrowser/mainwindow.cpp
+++ b/examples/webenginewidgets/cookiebrowser/mainwindow.cpp
@@ -59,6 +59,7 @@ CookieWidget::CookieWidget(const QNetworkCookie &cookie, QWidget *parent): QWidg
void CookieWidget::setHighlighted(bool enabled)
{
+ m_isHighlighted = enabled;
QPalette p = palette();
p.setColor(backgroundRole(), enabled ? p.alternateBase().color() : p.base().color());
setPalette(p);
@@ -112,9 +113,18 @@ void MainWindow::handleCookieAdded(const QNetworkCookie &cookie)
return;
CookieWidget *widget = new CookieWidget(cookie);
- widget->setHighlighted(m_cookies.count() % 2);
m_cookies.append(cookie);
- m_layout->insertWidget(0,widget);
+ // Check whether the first widget in the layout is highlighted.
+ // if it is highlighted, then do not highlight the new item.
+ CookieWidget *firstWidget = m_layout->count()
+ ? qobject_cast<CookieWidget *>(m_layout->itemAt(0)->widget())
+ : nullptr;
+ if (firstWidget) {
+ widget->setHighlighted(!firstWidget->isHighlighted());
+ } else {
+ widget->setHighlighted(false);
+ }
+ m_layout->insertWidget(0, widget);
connect(widget, &CookieWidget::deleteClicked, [this, cookie, widget]() {
m_store->deleteCookie(cookie);
diff --git a/examples/webenginewidgets/cookiebrowser/mainwindow.h b/examples/webenginewidgets/cookiebrowser/mainwindow.h
index 76fd7de3e..da0d438ca 100644
--- a/examples/webenginewidgets/cookiebrowser/mainwindow.h
+++ b/examples/webenginewidgets/cookiebrowser/mainwindow.h
@@ -29,9 +29,13 @@ class CookieWidget : public QWidget, public Ui_CookieWidget
public:
CookieWidget(const QNetworkCookie &cookie, QWidget *parent = nullptr);
void setHighlighted(bool enabled);
+ bool isHighlighted() { return m_isHighlighted; }
signals:
void deleteClicked();
void viewClicked();
+
+private:
+ bool m_isHighlighted = false;
};
class MainWindow : public QMainWindow, public Ui_MainWindow