diff --git a/.gitignore b/.gitignore index 1b36b286..da34baaa 100644 --- a/.gitignore +++ b/.gitignore @@ -42,3 +42,4 @@ global_util/dbus/*.cpp global_util/dbus/*.h .cache +obj-x86_64-linux-gnu/* diff --git a/dde-license-dialog/src/content.cpp b/dde-license-dialog/src/content.cpp index a1e3c64d..e07c1009 100644 --- a/dde-license-dialog/src/content.cpp +++ b/dde-license-dialog/src/content.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2022 - 2026 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later @@ -8,6 +8,7 @@ #include #include #include +#include #include #include @@ -67,13 +68,15 @@ Content::Content(QWidget *parent) layout->addWidget(m_languageBtn, 0, Qt::AlignHCenter); - m_scrollArea->setMinimumSize(468, 300); + m_scrollArea->setMinimumSize(390, 300); m_scrollArea->setWidgetResizable(true); m_scrollArea->setFrameStyle(QFrame::NoFrame); m_scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); m_scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); m_scrollArea->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Expanding); m_scrollArea->setContentsMargins(0, 0, 0, 0); + m_scrollArea->setStyleSheet("QScrollArea { background: transparent; }" + "QScrollArea > QWidget > QWidget { background: transparent; }"); QScroller::grabGesture(m_scrollArea->viewport(), QScroller::LeftMouseButtonGesture); QWidget *sourceWidget = new QWidget(this); @@ -85,9 +88,8 @@ Content::Content(QWidget *parent) m_cancelBtn->setFixedHeight(36); m_acceptBtn->setFixedHeight(36); - DPalette pa = m_acceptBtn->palette(); - pa.setColor(QPalette::ButtonText, pa.highlight().color()); - m_acceptBtn->setPalette(pa); + updateAcceptBtnPalette(); + connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, &Content::updateAcceptBtnPalette); m_source->setTextFormat(Qt::MarkdownText); m_source->setWordWrap(true); @@ -287,3 +289,23 @@ void Content::updateWindowHeight() int minHeight = qBound(100, contentHeight, 491); m_scrollArea->setMinimumHeight(minHeight); } + +void Content::updateAcceptBtnPalette() +{ + const QString btnStyle = "QPushButton { background-color: rgba(0, 0, 0, 0.15); border: none; border-radius: 6px; }" + "QPushButton:hover { background-color: rgba(0, 0, 0, 0.2); }" + "QPushButton:pressed { background-color: rgba(0, 0, 0, 0.25); }"; + m_cancelBtn->setStyleSheet(btnStyle); + m_acceptBtn->setStyleSheet(btnStyle); + + DPalette pa = m_acceptBtn->palette(); + QColor highlightColor = pa.highlight().color(); + if (DGuiApplicationHelper::instance()->themeType() == DGuiApplicationHelper::DarkType) { + highlightColor.setAlphaF(0.7); + } else { + highlightColor.setAlphaF(0.6); + } + pa.setColor(QPalette::Disabled, QPalette::ButtonText, highlightColor); + pa.setColor(QPalette::Normal, QPalette::ButtonText, pa.highlight().color()); + m_acceptBtn->setPalette(pa); +} diff --git a/dde-license-dialog/src/content.h b/dde-license-dialog/src/content.h index 592c30ce..8e9e53a5 100644 --- a/dde-license-dialog/src/content.h +++ b/dde-license-dialog/src/content.h @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2022 - 2026 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later @@ -44,6 +44,7 @@ public slots: void updateLanguageBtn(); void updateContent(); void updateWindowHeight(); + void updateAcceptBtnPalette(); private: QScrollArea* m_scrollArea; diff --git a/dde-license-dialog/src/main.cpp b/dde-license-dialog/src/main.cpp index b5344df5..faa35b2f 100644 --- a/dde-license-dialog/src/main.cpp +++ b/dde-license-dialog/src/main.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2022 - 2026 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later @@ -9,6 +9,7 @@ #include #include +#include #include #include @@ -117,7 +118,7 @@ int main(int argc, char *argv[]) checker.setOutputFormat(DAccessibilityChecker::FullFormat); checker.start(); #endif - w.moveToCenter(); + Dtk::Widget::moveToCenter(&w); w.show(); diff --git a/dde-license-dialog/src/mainwindow.cpp b/dde-license-dialog/src/mainwindow.cpp index 48ae8cc5..6df4f67d 100644 --- a/dde-license-dialog/src/mainwindow.cpp +++ b/dde-license-dialog/src/mainwindow.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2022 - 2026 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later @@ -13,10 +13,13 @@ #include DTK_USE_NAMESPACE +const int DefaultRadius = 8; + MainWindow::MainWindow(QWidget *parent) - : DAbstractDialog(false, parent) + : DBlurEffectWidget(parent) , m_title(new QLabel) , m_content(new Content) + , m_handle(new DPlatformWindowHandle(this)) { auto envType = qEnvironmentVariable("XDG_SESSION_TYPE"); bool bWayland = envType.contains("wayland"); @@ -27,11 +30,23 @@ MainWindow::MainWindow(QWidget *parent) } setAccessibleName("MainWindow"); + + setAttribute(Qt::WA_TranslucentBackground); + + setBlendMode(DBlurEffectWidget::BehindWindowBlend); + setMaskColor(DBlurEffectWidget::AutoColor); + + m_handle->setEnableBlurWindow(true); + m_handle->setTranslucentBackground(true); + m_handle->setShadowOffset(QPoint(0, 0)); + m_handle->setBorderWidth(0); + m_handle->setWindowRadius(DefaultRadius); + m_title->setObjectName("TitleLabel"); m_title->setAccessibleName("TitleLabel"); QWidget *widget = new QWidget(this); widget->setAccessibleName("MainWidget"); - widget->setFixedSize(500, 40); + widget->setFixedSize(430, 40); btnclose = new DIconButton(QStyle::SP_TitleBarCloseButton, this); btnclose->setAccessibleName("CloseBtn"); @@ -91,7 +106,7 @@ MainWindow::MainWindow(QWidget *parent) void MainWindow::resizeEvent(QResizeEvent *event) { - DAbstractDialog::resizeEvent(event); + DBlurEffectWidget::resizeEvent(event); if (btnclose) { const QSize sz = btnclose->sizeHint(); btnclose->move(width() - sz.width(), 0); diff --git a/dde-license-dialog/src/mainwindow.h b/dde-license-dialog/src/mainwindow.h index 7bdfac8a..bf7caedd 100644 --- a/dde-license-dialog/src/mainwindow.h +++ b/dde-license-dialog/src/mainwindow.h @@ -1,18 +1,19 @@ -// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2022 - 2026 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later #ifndef MAINWINDOW_H #define MAINWINDOW_H -#include +#include #include +#include DWIDGET_USE_NAMESPACE class Content; class QLabel; -class MainWindow : public DAbstractDialog +class MainWindow : public DBlurEffectWidget { Q_OBJECT @@ -43,7 +44,8 @@ class MainWindow : public DAbstractDialog DIconButton *btnclose; DIconButton *m_leftIconBtn; - const int windowFixedWidth = 520; + DPlatformWindowHandle *m_handle; + const int windowFixedWidth = 430; }; #endif // MAINWINDOW_H