Date: Tuesday, August 11, 2020 @ 09:09:22
  Author: felixonmars
Revision: 674435

upgpkg: deepin-session-shell 5.3.0.3-2

Added:
  deepin-session-shell/trunk/logo-size.patch
Modified:
  deepin-session-shell/trunk/PKGBUILD

-----------------+
 PKGBUILD        |    9 +++--
 logo-size.patch |   88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 94 insertions(+), 3 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD    2020-08-11 08:58:40 UTC (rev 674434)
+++ PKGBUILD    2020-08-11 09:09:22 UTC (rev 674435)
@@ -4,7 +4,7 @@
 
 pkgname=deepin-session-shell
 pkgver=5.3.0.3
-pkgrel=1
+pkgrel=2
 pkgdesc='Deepin desktop-environment - session-shell module'
 arch=('x86_64')
 url="https://github.com/linuxdeepin/dde-session-shell";
@@ -15,11 +15,14 @@
 conflicts=('deepin-session-ui<5')
 provides=('lightdm-deepin-greeter')
 groups=('deepin')
-source=("$pkgname-$pkgver.tar.gz::https://github.com/linuxdeepin/dde-session-shell/archive/$pkgver.tar.gz";)
-sha512sums=('d9a9a20a82a5fe62adff843e151ffb54198f8f900993398b71fda85d25d0d16dceb8f0964177b587fe285ef24f7b8a3528bf71342b4a576c0df6f68f368d4ad1')
+source=("$pkgname-$pkgver.tar.gz::https://github.com/linuxdeepin/dde-session-shell/archive/$pkgver.tar.gz";
+        logo-size.patch)
+sha512sums=('d9a9a20a82a5fe62adff843e151ffb54198f8f900993398b71fda85d25d0d16dceb8f0964177b587fe285ef24f7b8a3528bf71342b4a576c0df6f68f368d4ad1'
+            
'1997730152b00f45e897062a5cd073f362f4ae5cc970c555db159d7f951d6bd9ad2ed2125f26da8b846c4a8b67eeac41dcf619e7552396ad5b2c7e6cb8ee6266')
 
 prepare() {
   cd dde-session-shell-$pkgver
+  patch -p1 -i ../logo-size.patch
   sed -i '/darrowrectangle/d' CMakeLists.txt src/widgets/widgets.pri
   sed -i '1i#include <QPainterPath>' src/widgets/useravatar.cpp
 

Added: logo-size.patch
===================================================================
--- logo-size.patch                             (rev 0)
+++ logo-size.patch     2020-08-11 09:09:22 UTC (rev 674435)
@@ -0,0 +1,88 @@
+diff --git a/src/global_util/public_func.cpp b/src/global_util/public_func.cpp
+index d293f27..629036f 100644
+--- a/src/global_util/public_func.cpp
++++ b/src/global_util/public_func.cpp
+@@ -42,7 +42,7 @@
+ 
+ using namespace std;
+ 
+-QPixmap loadPixmap(const QString &file)
++QPixmap loadPixmap(const QString &file, const QSize& size)
+ {
+ 
+     if(!QFile::exists(file)){
+@@ -54,11 +54,11 @@ QPixmap loadPixmap(const QString &file)
+ 
+     QPixmap pixmap;
+ 
+-    if (!qFuzzyCompare(ratio, devicePixel)) {
++    if (!qFuzzyCompare(ratio, devicePixel) || size.isValid()) {
+         QImageReader reader;
+         reader.setFileName(qt_findAtNxFile(file, devicePixel, &ratio));
+         if (reader.canRead()) {
+-            reader.setScaledSize(reader.size() * (devicePixel / ratio));
++            reader.setScaledSize((size.isNull() ? reader.size() : 
reader.size().scaled(size, Qt::KeepAspectRatio)) * (devicePixel / ratio));
+             pixmap = QPixmap::fromImage(reader.read());
+             pixmap.setDevicePixelRatio(devicePixel);
+         }
+diff --git a/src/global_util/public_func.h b/src/global_util/public_func.h
+index 4066a52..200cc9d 100644
+--- a/src/global_util/public_func.h
++++ b/src/global_util/public_func.h
+@@ -33,7 +33,7 @@
+ #include <QSettings>
+ #include <QString>
+ 
+-QPixmap loadPixmap(const QString &file);
++QPixmap loadPixmap(const QString &file, const QSize& size = QSize());
+ 
+ /**
+  * @brief 获取图像共享内存
+diff --git a/src/widgets/logowidget.cpp b/src/widgets/logowidget.cpp
+index 33bd6c6..5bc3108 100644
+--- a/src/widgets/logowidget.cpp
++++ b/src/widgets/logowidget.cpp
+@@ -37,9 +37,12 @@
+ 
+ DCORE_USE_NAMESPACE
+ 
+-const QPixmap systemLogo()
++#define PIXMAP_WIDTH 128
++#define PIXMAP_HEIGHT 132 /* SessionBaseWindow */
++
++const QPixmap systemLogo(const QSize& size)
+ {
+-    return loadPixmap(DSysInfo::distributionOrgLogo(DSysInfo::Distribution, 
DSysInfo::Transparent, ":img/logo.svg"));
++    return loadPixmap(DSysInfo::distributionOrgLogo(DSysInfo::Distribution, 
DSysInfo::Transparent, ":img/logo.svg"), size);
+ }
+ 
+ LogoWidget::LogoWidget(QWidget* parent)
+@@ -53,10 +56,17 @@ void LogoWidget::initUI() {
+ //    setFixedSize(240, 40);
+ 
+     m_logoLabel = new QLabel();
+-    QPixmap logo = systemLogo();
+-    m_logoLabel->setPixmap(logo);
++
++    m_logoLabel->setPixmap(
++                []() -> QPixmap {
++                    const QPixmap& p = systemLogo(QSize());
++                    const bool result = p.width() < PIXMAP_WIDTH && 
p.height() < PIXMAP_HEIGHT;
++                    return result
++                    ? p
++                    : systemLogo(QSize(PIXMAP_WIDTH, PIXMAP_HEIGHT));
++                }());
++
+     m_logoLabel->setObjectName("Logo");
+-    m_logoLabel->setFixedSize(logo.size().rwidth(), logo.size().rheight());
+     //修复社区版deepin的显示不全的问题 2020/04/11
+     m_logoLabel->setScaledContents(true);
+ 
+@@ -75,6 +85,7 @@ void LogoWidget::initUI() {
+     m_logoLayout->addSpacing(48);
+     m_logoLayout->addWidget(m_logoLabel);
+     m_logoLayout->addWidget(m_logoVersionLabel, 0, Qt::AlignTop);
++    m_logoLayout->addStretch();
+ 
+     setLayout(m_logoLayout);
+ 

Reply via email to