diff --git a/src/widgets/daboutdialog.cpp b/src/widgets/daboutdialog.cpp index a2d0411fd..e593cd23d 100644 --- a/src/widgets/daboutdialog.cpp +++ b/src/widgets/daboutdialog.cpp @@ -32,7 +32,7 @@ DCORE_USE_NAMESPACE DWIDGET_BEGIN_NAMESPACE -const QString DAboutDialogPrivate::websiteLinkTemplate = "%2"; +const QString DAboutDialogPrivate::websiteLinkTemplate = "%2"; DRedPointLabel::DRedPointLabel(QWidget *parent) : QLabel(parent) @@ -62,25 +62,31 @@ void DAboutDialogPrivate::init() { D_Q(DAboutDialog); - q->setMaximumWidth(540); + q->setFixedSize(540, 290); // overwrite default info if distribution config file existed. loadDistributionInfo(); logoLabel = new QLabel(); logoLabel->setContentsMargins(0, 0, 0, 0); + logoLabel->setAlignment(Qt::AlignCenter); productNameLabel = new QLabel(); + productNameLabel->setForegroundRole(QPalette::BrightText); productNameLabel->setObjectName("ProductNameLabel"); + productNameLabel->setWordWrap(true); + productNameLabel->setAlignment(Qt::AlignCenter); DFontSizeManager *fontManager = DFontSizeManager::instance(); - fontManager->bind(productNameLabel, DFontSizeManager::T5, QFont::DemiBold); + fontManager->bind(productNameLabel, DFontSizeManager::T5, QFont::Medium); versionLabel = new QLabel(); versionLabel->setObjectName("VersionLabel"); - fontManager->bind(versionLabel, DFontSizeManager::T8, QFont::DemiBold); + versionLabel->setForegroundRole(QPalette::BrightText); + fontManager->bind(versionLabel, DFontSizeManager::T8, QFont::Medium); companyLogoLabel = new QLabel(); companyLogoLabel->setPixmap(loadPixmap(logoPath)); + companyLogoLabel->hide(); websiteLabel = new QLabel(); websiteLabel->setObjectName("WebsiteLabel"); @@ -89,24 +95,26 @@ void DAboutDialogPrivate::init() updateWebsiteLabel(); descriptionLabel = new QLabel(); + descriptionLabel->setForegroundRole(QPalette::BrightText); descriptionLabel->setFixedWidth(280); descriptionLabel->setObjectName("DescriptionLabel"); descriptionLabel->setAlignment(Qt::AlignLeft); descriptionLabel->setWordWrap(true); descriptionLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); - fontManager->bind(descriptionLabel, DFontSizeManager::T8, QFont::DemiBold); + fontManager->bind(descriptionLabel, DFontSizeManager::T8, QFont::Medium); licenseLabel = new QLabel(); - licenseLabel->setFixedWidth(180); licenseLabel->setObjectName("LicenseLabel"); - licenseLabel->setAlignment(Qt::AlignHCenter); licenseLabel->setWordWrap(true); + licenseLabel->setForegroundRole(QPalette::BrightText); + licenseLabel->setFixedWidth(280); + licenseLabel->setAlignment(Qt::AlignLeft); licenseLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); + fontManager->bind(licenseLabel, DFontSizeManager::T8, QFont::Medium); licenseLabel->hide(); - fontManager->bind(licenseLabel, DFontSizeManager::T10, QFont::Medium); QLabel *versionTipLabel = new QLabel(QObject::tr("Version")); - fontManager->bind(versionTipLabel, DFontSizeManager::T10, QFont::Normal); + fontManager->bind(versionTipLabel, DFontSizeManager::T10, QFont::Thin); featureLabel = new QLabel(websiteLinkTemplate.arg(websiteLink).arg(QObject::tr("Features"))); featureLabel->setContextMenuPolicy(Qt::NoContextMenu); featureLabel->setOpenExternalLinks(false); @@ -123,17 +131,22 @@ void DAboutDialogPrivate::init() vFeatureLayout->addWidget(redPointLabel, 0, Qt::AlignLeft); vFeatureLayout->addStretch(0); QLabel *homePageTipLabel = new QLabel(QObject::tr("Homepage")); - fontManager->bind(homePageTipLabel, DFontSizeManager::T10, QFont::Normal); + fontManager->bind(homePageTipLabel, DFontSizeManager::T10, QFont::Thin); QLabel *descriptionTipLabel = new QLabel(QObject::tr("Description")); - fontManager->bind(descriptionTipLabel, DFontSizeManager::T10, QFont::Normal); + fontManager->bind(descriptionTipLabel, DFontSizeManager::T10, QFont::Thin); acknowledgementTipLabel = new QLabel(QObject::tr("Acknowledgements")); - fontManager->bind(acknowledgementTipLabel, DFontSizeManager::T10, QFont::Normal); + fontManager->bind(acknowledgementTipLabel, DFontSizeManager::T10, QFont::Thin); + licenseTipLabel = new QLabel(QObject::tr("License")); + fontManager->bind(licenseTipLabel, DFontSizeManager::T10, QFont::Thin); + licenseTipLabel->hide(); + acknowledgementLabel = new QLabel(QObject::tr("Sincerely appreciate the open-source software used.")); + acknowledgementLabel->setForegroundRole(QPalette::BrightText); acknowledgementLabel->setFixedWidth(280); acknowledgementLabel->setWordWrap(true); acknowledgementLabel->setContextMenuPolicy(Qt::NoContextMenu); acknowledgementLabel->setOpenExternalLinks(false); - fontManager->bind(acknowledgementLabel, DFontSizeManager::T8, QFont::DemiBold); + fontManager->bind(acknowledgementLabel, DFontSizeManager::T8, QFont::Medium); q->connect(websiteLabel, SIGNAL(linkActivated(QString)), q, SLOT(_q_onLinkActivated(QString))); q->connect(featureLabel, SIGNAL(linkActivated(QString)), q, SLOT(_q_onFeatureActivated(QString))); @@ -141,19 +154,30 @@ void DAboutDialogPrivate::init() q->connect(licenseLabel, SIGNAL(linkActivated(QString)), q, SLOT(_q_onLinkActivated(QString))); q->connect(acknowledgementLabel, SIGNAL(linkActivated(QString)), q, SLOT(_q_onLicenseActivated(QString))); + QScrollArea *productNameScrollArea = new QScrollArea; + productNameScrollArea->setMaximumHeight(50); + productNameScrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarPolicy::ScrollBarAlwaysOff); + productNameScrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarPolicy::ScrollBarAlwaysOff); + QPalette scrollPalette; + + scrollPalette.setBrush(QPalette::Window, Qt::transparent); + productNameScrollArea->setFrameShape(QFrame::NoFrame); + productNameScrollArea->setWidget(productNameLabel); + productNameScrollArea->setWidgetResizable(true); + productNameScrollArea->setPalette(scrollPalette); + QVBoxLayout *leftVLayout = new QVBoxLayout; - leftVLayout->setContentsMargins(10, 3, 0, 10); - leftVLayout->setSpacing(0); - leftVLayout->addWidget(logoLabel, 0, Qt::AlignCenter); + leftVLayout->setContentsMargins(0, 10, 0, 0); + leftVLayout->addWidget(logoLabel); leftVLayout->addSpacing(8); - leftVLayout->addWidget(productNameLabel, 0, Qt::AlignCenter); - leftVLayout->addStretch(0); - leftVLayout->addWidget(companyLogoLabel, 0, Qt::AlignCenter); + leftVLayout->addWidget(productNameScrollArea); + leftVLayout->addSpacing(16); + leftVLayout->addWidget(companyLogoLabel); leftVLayout->addSpacing(3); - leftVLayout->addWidget(licenseLabel, 0, Qt::AlignHCenter); + leftVLayout->addStretch(0); QVBoxLayout *rightVLayout = new QVBoxLayout; - rightVLayout->setContentsMargins(0, 3, 20, 10); + rightVLayout->setContentsMargins(0, 0, 10, 0); rightVLayout->setSpacing(0); rightVLayout->addWidget(versionTipLabel, 0, Qt::AlignLeft); rightVLayout->addWidget(versionLabel, 0, Qt::AlignLeft); @@ -167,27 +191,35 @@ void DAboutDialogPrivate::init() rightVLayout->addSpacing(10); rightVLayout->addWidget(acknowledgementTipLabel, 0, Qt::AlignLeft); rightVLayout->addWidget(acknowledgementLabel, 0, Qt::AlignLeft); + rightVLayout->addSpacing(10); + rightVLayout->addWidget(licenseTipLabel, 0, Qt::AlignLeft); + rightVLayout->addWidget(licenseLabel, 0, Qt::AlignLeft); rightVLayout->addStretch(0); + QScrollArea *rightScrollArea = new QScrollArea; + rightScrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarPolicy::ScrollBarAlwaysOff); + rightScrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarPolicy::ScrollBarAlwaysOff); + QWidget *rightContent = new QWidget; + rightContent->setLayout(rightVLayout); + + rightScrollArea->setFrameShape(QFrame::NoFrame); + rightScrollArea->setWidget(rightContent); + rightScrollArea->setWidgetResizable(true); + rightScrollArea->setPalette(scrollPalette); + QHBoxLayout *mainLayout = new QHBoxLayout; - mainLayout->setSpacing(0); mainLayout->setContentsMargins(0, 0, 0, 0); - mainLayout->addLayout(leftVLayout); - mainLayout->addSpacing(29); - mainLayout->addLayout(rightVLayout); + mainLayout->setSpacing(0); + mainLayout->setMargin(0); + mainLayout->addLayout(leftVLayout, 2); + mainLayout->addSpacing(20); + mainLayout->addWidget(rightScrollArea, 3); - QScrollArea *mainScrollArea = new QScrollArea; QWidget *mainContent = new QWidget; - QPalette scrollPalette; - - scrollPalette.setBrush(QPalette::Window, Qt::transparent); - mainScrollArea->setFrameShape(QFrame::NoFrame); - mainScrollArea->setWidget(mainContent); - mainScrollArea->setWidgetResizable(true); - mainScrollArea->setPalette(scrollPalette); mainContent->setLayout(mainLayout); - q->addContent(mainScrollArea); + q->addContent(mainContent); + q->setContentsMargins(0, 0, 0, 10); DConfig config("org.deepin.dtk.preference"); bool isUpdated = config.value("featureUpdated", false).toBool(); @@ -540,6 +572,7 @@ void DAboutDialog::setLicense(const QString &license) d->licenseLabel->setText(license); d->licenseLabel->setVisible(!license.isEmpty()); + d->licenseTipLabel->setVisible(!license.isEmpty()); } void DAboutDialog::keyPressEvent(QKeyEvent *event) diff --git a/src/widgets/private/daboutdialog_p.h b/src/widgets/private/daboutdialog_p.h index ff660d4b2..b0006c65a 100644 --- a/src/widgets/private/daboutdialog_p.h +++ b/src/widgets/private/daboutdialog_p.h @@ -41,6 +41,7 @@ class DAboutDialogPrivate : public DDialogPrivate QLabel *productNameLabel = nullptr; QLabel *versionLabel = nullptr; QLabel *descriptionLabel = nullptr; + QLabel *licenseTipLabel = nullptr; QLabel *licenseLabel = nullptr; QLabel *companyLogoLabel = nullptr; QLabel *websiteLabel = nullptr;