Fabian Vogt 2016-10-05 19:50:19 +00:00 committed by Git OBS Bridge
parent 1e69f67773
commit 1ca7357ea9
8 changed files with 120 additions and 103 deletions

View File

@ -0,0 +1,32 @@
From 846222c0dac6747256fd3d474db174643e84fee0 Mon Sep 17 00:00:00 2001
From: Fabian Vogt <fabian@ritter-vogt.de>
Date: Sat, 1 Oct 2016 19:22:36 +0200
Subject: [PATCH] Ignore default sddm face icons
They are not compatible with the theme
---
lookandfeel/contents/components/UserList.qml | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/lookandfeel/contents/components/UserList.qml b/lookandfeel/contents/components/UserList.qml
index 62c95c7..c8f88de 100644
--- a/lookandfeel/contents/components/UserList.qml
+++ b/lookandfeel/contents/components/UserList.qml
@@ -42,7 +42,13 @@ ListView {
preferredHighlightEnd: preferredHighlightBegin
delegate: UserDelegate {
- avatarPath: model.icon || ""
+ avatarPath: {
+ var incompatible = /\/usr\/share\/sddm\/faces\/((root)?)\.face\.icon$/
+ if (!model.icon || incompatible.test(model.icon))
+ return ""
+
+ return model.icon
+ }
iconSource: model.iconName || "user-identity"
name: {
--
2.10.0

View File

@ -1,36 +0,0 @@
From 6449c8f939d5cf84dbf0199180e9a536d922b0e2 Mon Sep 17 00:00:00 2001
From: Marco Martin <notmart@gmail.com>
Date: Wed, 21 Sep 2016 16:34:04 +0200
Subject: [PATCH] wait before creating the panel
not creating the panel view yet in order to have the same code path
between the first and subsequent plasma starts.
we want to have the panel appearing only when its layout is completed, to not have
many visible relayouts. otherwise we had even panel resizes at startup that
made al lthe full representations be loaded.
reviewed-by: David Edmundson
---
shell/shellcorona.cpp | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/shell/shellcorona.cpp b/shell/shellcorona.cpp
index 65ef01f..94ad07d 100644
--- a/shell/shellcorona.cpp
+++ b/shell/shellcorona.cpp
@@ -1732,7 +1732,11 @@ Plasma::Containment *ShellCorona::addPanel(const QString &plugin)
Q_ASSERT(panel);
m_waitingPanels << panel;
- createWaitingPanels();
+ //not creating the panel view yet in order to have the same code path
+ //between the first and subsequent plasma starts. we want to have the panel appearing only when its layout is completed, to not have
+ //many visible relayouts. otherwise we had even panel resizes at startup that
+ //made al lthe full representations be loaded.
+ m_waitingPanelsTimer.start();
const QPoint cursorPos(QCursor::pos());
foreach (QScreen *screen, QGuiApplication::screens()) {
--
2.10.0

36
add-tray-icon-cache.patch Normal file
View File

@ -0,0 +1,36 @@
From: Fabian Vogt <fabian@ritter-vogt.de>
Subject: Workaround for high load due to animated tray icons
References: kde#356479
When a tray icon name changes, it always does a full lookup, which is expensive.
Add a small QHash as cache to work around this.
diff --git a/applets/systemtray/systemtray.cpp b/applets/systemtray/systemtray.cpp
index 66bb5b4..f440ff0 100644
--- a/applets/systemtray/systemtray.cpp
+++ b/applets/systemtray/systemtray.cpp
@@ -127,8 +127,13 @@ void SystemTray::cleanupTask(const QString &task)
QVariant SystemTray::resolveIcon(const QVariant &variant, const QString &iconThemePath)
{
+ static QHash<QString, QVariant> cache;
if (variant.canConvert<QString>()) {
if (!iconThemePath.isEmpty()) {
+ auto i = cache.find(variant.toString() + iconThemePath);
+ if(i != cache.end())
+ return i.value();
+ qCWarning(SYSTEM_TRAY) << "Cache not hit" << iconThemePath;
const QString path = iconThemePath;
if (!path.isEmpty()) {
// FIXME: If last part of path is not "icons", this won't work!
@@ -136,7 +141,9 @@ QVariant SystemTray::resolveIcon(const QVariant &variant, const QString &iconThe
if (tokens.length() >= 3 && tokens.takeLast() == QLatin1String("icons")) {
const QString appName = tokens.takeLast().toString();
- return QVariant(QIcon(new AppIconEngine(variant.toString(), path, appName)));
+ auto v = QVariant(QIcon(new AppIconEngine(variant.toString(), path, appName)));
+ cache.insert(variant.toString() + iconThemePath, v);
+ return v;
} else {
qCWarning(SYSTEM_TRAY) << "Wrong IconThemePath" << path << ": too short or does not end with 'icons'";
}

View File

@ -1,55 +0,0 @@
Index: plasma-workspace-5.7.95/wallpapers/image/image.cpp
===================================================================
--- plasma-workspace-5.7.95.orig/wallpapers/image/image.cpp
+++ plasma-workspace-5.7.95/wallpapers/image/image.cpp
@@ -182,30 +182,43 @@ void Image::findPreferedImageInPackage(K
return;
}
- //qDebug() << "wanted" << size;
+ //qDebug() << "wanted" << m_targetSize;
+ //qDebug() << "options" << images;
- // choose the nearest resolution
+ // choose the nearest resolution, always preferring images with the same aspect ratio
float best = FLT_MAX;
+ float bestWithSameAspectRatio = FLT_MAX;
+ float targetAspectRatio = m_targetSize.width()/(float)m_targetSize.height();
QString bestImage;
+ QString bestImageWithSameAspectRatio;
foreach (const QString &entry, images) {
QSize candidate = resSize(QFileInfo(entry).baseName());
if (candidate == QSize()) {
continue;
}
+ float candidateAspectRatio = candidate.width()/(float)candidate.height();
double dist = distance(candidate, m_targetSize);
- //qDebug() << "candidate" << candidate << "distance" << dist;
- if (bestImage.isEmpty() || dist < best) {
- bestImage = entry;
- best = dist;
- //qDebug() << "best" << bestImage;
+ //qDebug() << "candidate" << candidate << "distance" << dist << "aspect ratio" << candidateAspectRatio;
+
+ if ( candidateAspectRatio == targetAspectRatio && (bestImageWithSameAspectRatio.isEmpty() || dist < bestWithSameAspectRatio) ) {
+ bestImageWithSameAspectRatio = entry;
+ bestWithSameAspectRatio = dist;
+ //qDebug() << "bestWithSameAspectRatio" << bestImageWithSameAspectRatio;
if (dist == 0) {
break;
}
+ } else if (bestImage.isEmpty() || dist < best) {
+ bestImage = entry;
+ best = dist;
+ //qDebug() << "best" << bestImage;
}
}
+ if (!bestImageWithSameAspectRatio.isEmpty()) // Always prefer an image with the same aspect ratio as the target (if available)
+ bestImage=bestImageWithSameAspectRatio;
+
//qDebug() << "best image" << bestImage;
package.removeDefinition("preferred");
package.addFileDefinition("preferred", "images/" + bestImage, i18n("Recommended wallpaper file"));

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c4ed7be1ae8495aab2330f60a8181bb3ad16941f6afb41af269470935c6599c6
size 7373804

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:365b152c69ee7863bd1abe0e339707e412384beeb10294aacbc07e3d9da2b319
size 7411612

View File

@ -1,3 +1,43 @@
-------------------------------------------------------------------
Mon Oct 3 19:51:33 UTC 2016 - fabian@ritter-vogt.de
- Update 0001-Ignore-default-sddm-face-icons.patch to not break
all .face.icon (boo#1001364)
-------------------------------------------------------------------
Sun Oct 2 09:30:48 UTC 2016 - fabian@ritter-vogt.de
- Add add-tray-icon-cache.patch (kde#356479):
* High load due to animated tray icons
-------------------------------------------------------------------
Sat Oct 1 17:25:04 UTC 2016 - fabian@ritter-vogt.de
- Add 0001-Ignore-default-sddm-face-icons.patch (boo#1001364):
* The default SDDM face icons are too dark to be used with
the default backgrounds
-------------------------------------------------------------------
Thu Sep 29 16:36:28 UTC 2016 - fabian@ritter-vogt.de
- Update to 5.8.0
* New LTS feature release
* For more details please see:
https://www.kde.org/announcements/plasma-5.8.0.php
- Remove patches (now upstream):
* 0001-wait-before-creating-the-panel.patch
* fix-breeze-sddm-theme-with-many-users-2.patch
* fix-wallpaper-not-having-correct-aspect-ratio.diff
-------------------------------------------------------------------
Tue Sep 27 12:29:41 UTC 2016 - alarrosa@suse.com
- Add fix-breeze-sddm-theme-with-many-users-2.patch: Makes the
breeze theme in sddm show username/password directly instead of
a user list when there's more than N users in the system where
N is defined in sddm.conf, under the Theme section, in the
UsersThresholdToDisableAvatars variable.
-------------------------------------------------------------------
Sat Sep 24 20:53:58 UTC 2016 - fabian@ritter-vogt.de

View File

@ -20,24 +20,24 @@
%bcond_without lang
Name: plasma5-workspace
Version: 5.7.95
Version: 5.8.0
Release: 0
%{!?_plasma5_version: %global _plasma5_version %{version}}
Summary: The KDE Plasma Workspace Components
License: GPL-2.0+
Group: System/GUI/KDE
Url: http://www.kde.org/
Source: http://download.kde.org/unstable/plasma/%{version}/plasma-workspace-%{version}.tar.xz
Source: plasma-workspace-%{version}.tar.xz
Source1: baselibs.conf
# PATCH-FIX-OPENSUSE 0001-Rename-qdbus-in-startkde.patch cgiboudeaux@gmx.com -- Rename the qdbus executable in startkde
Patch0: 0001-Rename-qdbus-in-startkde.patch
# PATCH-FIX-OPENSUSE change-kioremote-severity.patch boo#997173 fabian@ritter-vogt.de -- Change default log severity for log_kioremote
Patch1: change-kioremote-severity.patch
# PATCH-FIX-UPSTREAM fix-wallpaper-not-having-correct-aspect-ratio.diff bnc#990257 alarrosa@suse.com -- Make plasma prefer wallpapers with the same aspect ratio as the screen instead of a wallpaper with the most similar area
Patch5: fix-wallpaper-not-having-correct-aspect-ratio.diff
# PATCH-FIX-OPENSUSE 0001-Ignore-default-sddm-face-icons.patch boo#1001364 fabian@ritter-vogt.de -- Ignore default sddm face icons
Patch2: 0001-Ignore-default-sddm-face-icons.patch
# PATCH-FIX-OPENSUSE add-tray-icon-cache.patch kde#356479 fabian@ritter-vogt.de -- Workaround for high load due to animated tray icons
Patch3: add-tray-icon-cache.patch
# PATCHES 100-200 and above are from upstream 5.8 branch
# PATCH-FIX-UPSTREAM 0001-wait-before-creating-the-panel.patch boo#1000109 -- Wait before creating the panel
Patch100: 0001-wait-before-creating-the-panel.patch
# PATCHES 201-300 and above are from upstream master/5.9 branch
BuildRequires: breeze5-icons
BuildRequires: fdupes
@ -206,8 +206,8 @@ workspace. Development files.
%setup -q -n plasma-workspace-%{version}
%patch0 -p1
%patch1 -p1
%patch5 -p1
%patch100 -p1
%patch2 -p1
%patch3 -p1
%build
%cmake_kf5 -d build -- -DKDE4_COMMON_PAM_SERVICE=xdm -DKDE_DEFAULT_HOME=.kde4 -DCMAKE_INSTALL_LOCALEDIR=%{_kf5_localedir}
@ -335,7 +335,7 @@ workspace. Development files.
%if %{with lang}
%files lang -f %{name}.lang
%doc %lang(de) %{_kf5_htmldir}/de/
%doc %lang(ca) %{_kf5_htmldir}/ca/
%endif
%changelog