Plasma 5.13 Beta
OBS-URL: https://build.opensuse.org/package/show/KDE:Frameworks5/plasma5-workspace?expand=0&rev=401
This commit is contained in:
parent
94a796569e
commit
fb3187ec7a
@ -1,82 +0,0 @@
|
||||
From 08864d59109a869a906fb98059f4346a52ee0a6d Mon Sep 17 00:00:00 2001
|
||||
From: "Christian (Fuchs) Loosli" <kde@fuchsnet.ch>
|
||||
Date: Tue, 17 Apr 2018 10:18:31 +0200
|
||||
Subject: [PATCH] Add a button to clear the notification history
|
||||
|
||||
Summary:
|
||||
Adds a button in the plasmoid header to clear the history, same as the context menu.
|
||||
The icon used is the same as clear history in the klipper plasmoid.
|
||||
|
||||
BUG: 386068
|
||||
FIXED-IN: 5.13.0
|
||||
|
||||
Test Plan: Please test the alignment on your screen, whilst I made sure to use provided units, due to the indentation of heading I had to use fractions, which might lead to odd results on different resolutions / dpi
|
||||
|
||||
Reviewers: broulik
|
||||
|
||||
Reviewed By: broulik
|
||||
|
||||
Subscribers: abetts, plasma-devel
|
||||
|
||||
Tags: #plasma
|
||||
|
||||
Differential Revision: https://phabricator.kde.org/D11261
|
||||
---
|
||||
.../package/contents/ui/Notifications.qml | 33 ++++++++++++++++++----
|
||||
1 file changed, 28 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/applets/notifications/package/contents/ui/Notifications.qml b/applets/notifications/package/contents/ui/Notifications.qml
|
||||
index b87e13da..1781185c 100644
|
||||
--- a/applets/notifications/package/contents/ui/Notifications.qml
|
||||
+++ b/applets/notifications/package/contents/ui/Notifications.qml
|
||||
@@ -18,6 +18,7 @@
|
||||
*/
|
||||
|
||||
import QtQuick 2.0
|
||||
+import QtQuick.Layouts 1.2
|
||||
import org.kde.plasma.core 2.0 as PlasmaCore
|
||||
import org.kde.plasma.components 2.0 as PlasmaComponents
|
||||
import org.kde.plasma.extras 2.0 as PlasmaExtras
|
||||
@@ -265,12 +266,34 @@ Column {
|
||||
delegate: NotificationDelegate { listModel: notificationsModel }
|
||||
}
|
||||
|
||||
- PlasmaExtras.Heading {
|
||||
- width: parent.width
|
||||
- level: 3
|
||||
- opacity: 0.6
|
||||
+ RowLayout {
|
||||
+ Layout.fillWidth: true
|
||||
+ spacing: units.smallSpacing
|
||||
visible: historyCount > 0
|
||||
- text: i18n("History")
|
||||
+ width: parent.width
|
||||
+
|
||||
+ PlasmaExtras.Heading {
|
||||
+ Layout.fillWidth: true
|
||||
+ level: 3
|
||||
+ opacity: 0.6
|
||||
+ text: i18n("History")
|
||||
+ }
|
||||
+
|
||||
+ PlasmaComponents.ToolButton {
|
||||
+ Layout.rightMargin: spacerSvgFrame.margins.right
|
||||
+ iconSource: "edit-delete"
|
||||
+ tooltip: i18n("Clear History")
|
||||
+ onClicked: clearHistory()
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ // This hack is unfortunately needed to have the buttons align,
|
||||
+ // the ones in the list contain have a margin due to a frame for being a list item.
|
||||
+ PlasmaCore.FrameSvgItem {
|
||||
+ id : spacerSvgFrame
|
||||
+ imagePath: "widgets/listitem"
|
||||
+ prefix: "normal"
|
||||
+ visible: false
|
||||
}
|
||||
|
||||
// History stuff
|
||||
--
|
||||
2.16.2
|
||||
|
@ -1,93 +0,0 @@
|
||||
From 6eb5d00b48a67b415c0770434dbb6bc8a0e6d9d9 Mon Sep 17 00:00:00 2001
|
||||
From: "Friedrich W. H. Kossebau" <kossebau@kde.org>
|
||||
Date: Sat, 10 Feb 2018 00:34:10 +0100
|
||||
Subject: [PATCH 1/3] Call KLocalizedString::setApplicationDomain after Q*App
|
||||
creation
|
||||
|
||||
As now recommended, to ensure all locale settings are done from Qt side
|
||||
---
|
||||
klipper/main.cpp | 2 +-
|
||||
krunner/main.cpp | 3 +--
|
||||
shell/main.cpp | 3 +--
|
||||
startkde/kcminit/main.cpp | 2 +-
|
||||
systemmonitor/main.cpp | 3 +--
|
||||
5 files changed, 5 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/klipper/main.cpp b/klipper/main.cpp
|
||||
index 58a07783..36539b63 100644
|
||||
--- a/klipper/main.cpp
|
||||
+++ b/klipper/main.cpp
|
||||
@@ -34,8 +34,8 @@
|
||||
|
||||
extern "C" int Q_DECL_EXPORT kdemain(int argc, char *argv[])
|
||||
{
|
||||
- KLocalizedString::setApplicationDomain("klipper");
|
||||
QApplication app(argc, argv);
|
||||
+ KLocalizedString::setApplicationDomain("klipper");
|
||||
|
||||
KAboutData aboutData(QStringLiteral("klipper"),
|
||||
i18n("Klipper"),
|
||||
diff --git a/krunner/main.cpp b/krunner/main.cpp
|
||||
index b63156d2..24fe5a9f 100644
|
||||
--- a/krunner/main.cpp
|
||||
+++ b/krunner/main.cpp
|
||||
@@ -43,10 +43,9 @@ int main(int argc, char **argv)
|
||||
qunsetenv("QT_DEVICE_PIXEL_RATIO");
|
||||
QCoreApplication::setAttribute(Qt::AA_DisableHighDpiScaling);
|
||||
|
||||
- KLocalizedString::setApplicationDomain("krunner");
|
||||
-
|
||||
QQuickWindow::setDefaultAlphaBuffer(true);
|
||||
QApplication app(argc, argv);
|
||||
+ KLocalizedString::setApplicationDomain("krunner");
|
||||
|
||||
KQuickAddons::QtQuickSettings::init();
|
||||
|
||||
diff --git a/shell/main.cpp b/shell/main.cpp
|
||||
index ed42ed40..22ef0388 100644
|
||||
--- a/shell/main.cpp
|
||||
+++ b/shell/main.cpp
|
||||
@@ -56,9 +56,8 @@ int main(int argc, char *argv[])
|
||||
|
||||
QQuickWindow::setDefaultAlphaBuffer(true);
|
||||
|
||||
- KLocalizedString::setApplicationDomain("plasmashell");
|
||||
-
|
||||
QApplication app(argc, argv);
|
||||
+ KLocalizedString::setApplicationDomain("plasmashell");
|
||||
|
||||
// The executable's path is added to the library/plugin paths.
|
||||
// This does not make much sense for plasmashell.
|
||||
diff --git a/startkde/kcminit/main.cpp b/startkde/kcminit/main.cpp
|
||||
index 6d6692b9..7181281c 100644
|
||||
--- a/startkde/kcminit/main.cpp
|
||||
+++ b/startkde/kcminit/main.cpp
|
||||
@@ -221,9 +221,9 @@ extern "C" Q_DECL_EXPORT int kdemain(int argc, char *argv[])
|
||||
|
||||
startup = ( strcmp( argv[ 0 ], "kcminit_startup" ) == 0 ); // started from startkde?
|
||||
|
||||
- KLocalizedString::setApplicationDomain("kcminit");
|
||||
QGuiApplication::setDesktopSettingsAware(false);
|
||||
QGuiApplication app(argc, argv); //gui is needed for several modules
|
||||
+ KLocalizedString::setApplicationDomain("kcminit");
|
||||
KAboutData about(QStringLiteral("kcminit"), i18n("KCMInit"), QString(),
|
||||
i18n("KCMInit - runs startup initialization for Control Modules."), KAboutLicense::GPL);
|
||||
KAboutData::setApplicationData(about);
|
||||
diff --git a/systemmonitor/main.cpp b/systemmonitor/main.cpp
|
||||
index 5e6be4f8..ccf6cae7 100644
|
||||
--- a/systemmonitor/main.cpp
|
||||
+++ b/systemmonitor/main.cpp
|
||||
@@ -25,9 +25,8 @@
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
- KLocalizedString::setApplicationDomain("systemmonitor");
|
||||
-
|
||||
QApplication app(argc, argv);
|
||||
+ KLocalizedString::setApplicationDomain("systemmonitor");
|
||||
|
||||
app.setOrganizationDomain(QStringLiteral("kde.org"));
|
||||
app.setDesktopFileName(QStringLiteral("org.kde.systemmonitor"));
|
||||
--
|
||||
2.16.2
|
||||
|
@ -1,8 +1,8 @@
|
||||
Index: plasma-workspace-5.12.2/startkde/startkde.cmake
|
||||
===================================================================
|
||||
--- plasma-workspace-5.12.2.orig/startkde/startkde.cmake
|
||||
+++ plasma-workspace-5.12.2/startkde/startkde.cmake
|
||||
@@ -294,7 +294,7 @@ if test $? -ne 0; then
|
||||
diff --git a/startkde/startkde.cmake b/startkde/startkde.cmake
|
||||
index 54e28501..0eadd042 100644
|
||||
--- a/startkde/startkde.cmake
|
||||
+++ b/startkde/startkde.cmake
|
||||
@@ -297,7 +297,7 @@ if test $? -ne 0; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@ -11,7 +11,7 @@ Index: plasma-workspace-5.12.2/startkde/startkde.cmake
|
||||
|
||||
# finally, give the session control to the session manager
|
||||
# see kdebase/ksmserver for the description of the rest of the startup sequence
|
||||
@@ -327,13 +327,13 @@ if test x"$wait_drkonqi"x = x"true"x ; t
|
||||
@@ -330,13 +330,13 @@ if test x"$wait_drkonqi"x = x"true"x ; then
|
||||
# wait for remaining drkonqi instances with timeout (in seconds)
|
||||
wait_drkonqi_timeout=`kreadconfig5 --file startkderc --group WaitForDrKonqi --key Timeout --default 900`
|
||||
wait_drkonqi_counter=0
|
||||
@ -28,10 +28,10 @@ Index: plasma-workspace-5.12.2/startkde/startkde.cmake
|
||||
done
|
||||
break
|
||||
fi
|
||||
Index: plasma-workspace-5.12.2/startkde/startplasma.cmake
|
||||
===================================================================
|
||||
--- plasma-workspace-5.12.2.orig/startkde/startplasma.cmake
|
||||
+++ plasma-workspace-5.12.2/startkde/startplasma.cmake
|
||||
diff --git a/startkde/startplasma.cmake b/startkde/startplasma.cmake
|
||||
index a5d09fa7..b67c41e4 100644
|
||||
--- a/startkde/startplasma.cmake
|
||||
+++ b/startkde/startplasma.cmake
|
||||
@@ -140,7 +140,7 @@ if test $? -ne 0; then
|
||||
exit 1
|
||||
fi
|
||||
@ -41,7 +41,7 @@ Index: plasma-workspace-5.12.2/startkde/startplasma.cmake
|
||||
|
||||
# finally, give the session control to the session manager
|
||||
# see kdebase/ksmserver for the description of the rest of the startup sequence
|
||||
@@ -169,13 +169,13 @@ if test x"$wait_drkonqi"x = x"true"x ; t
|
||||
@@ -169,13 +169,13 @@ if test x"$wait_drkonqi"x = x"true"x ; then
|
||||
# wait for remaining drkonqi instances with timeout (in seconds)
|
||||
wait_drkonqi_timeout=`kreadconfig5 --file startkderc --group WaitForDrKonqi --key Timeout --default 900`
|
||||
wait_drkonqi_counter=0
|
||||
@ -58,10 +58,10 @@ Index: plasma-workspace-5.12.2/startkde/startplasma.cmake
|
||||
done
|
||||
break
|
||||
fi
|
||||
Index: plasma-workspace-5.12.2/startkde/startplasmacompositor.cmake
|
||||
===================================================================
|
||||
--- plasma-workspace-5.12.2.orig/startkde/startplasmacompositor.cmake
|
||||
+++ plasma-workspace-5.12.2/startkde/startplasmacompositor.cmake
|
||||
diff --git a/startkde/startplasmacompositor.cmake b/startkde/startplasmacompositor.cmake
|
||||
index 8ac47aa7..377a46f3 100644
|
||||
--- a/startkde/startplasmacompositor.cmake
|
||||
+++ b/startkde/startplasmacompositor.cmake
|
||||
@@ -120,12 +120,12 @@ fi
|
||||
|
||||
# Get a property value from org.freedesktop.locale1
|
||||
@ -90,11 +90,11 @@ Index: plasma-workspace-5.12.2/startkde/startplasmacompositor.cmake
|
||||
test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null
|
||||
exit 1
|
||||
fi
|
||||
Index: plasma-workspace-5.12.2/wallpapers/image/wallpaper.knsrc
|
||||
===================================================================
|
||||
--- plasma-workspace-5.12.2.orig/wallpapers/image/wallpaper.knsrc
|
||||
+++ plasma-workspace-5.12.2/wallpapers/image/wallpaper.knsrc
|
||||
@@ -42,4 +42,4 @@ Categories=KDE Wallpaper 800x600,KDE Wal
|
||||
diff --git a/wallpapers/image/wallpaper.knsrc b/wallpapers/image/wallpaper.knsrc
|
||||
index 13f52321..96c6e359 100644
|
||||
--- a/wallpapers/image/wallpaper.knsrc
|
||||
+++ b/wallpapers/image/wallpaper.knsrc
|
||||
@@ -42,4 +42,4 @@ Categories=KDE Wallpaper 800x600,KDE Wallpaper 1024x768,KDE Wallpaper 1280x1024,
|
||||
StandardResource=wallpaper
|
||||
Uncompress=archive
|
||||
|
||||
|
137
0001-Revert-No-icons-on-the-desktop-by-default.patch
Normal file
137
0001-Revert-No-icons-on-the-desktop-by-default.patch
Normal file
@ -0,0 +1,137 @@
|
||||
From a437cb34a3cacc0daae012a26cb5a28407a6f873 Mon Sep 17 00:00:00 2001
|
||||
From: Fabian Vogt <fabian@ritter-vogt.de>
|
||||
Date: Wed, 28 Feb 2018 17:10:14 +0100
|
||||
Subject: [PATCH] Revert "No icons on the desktop by default"
|
||||
|
||||
This reverts commit 240d0d6fe1e5db88e304199339396bd48c23e130.
|
||||
|
||||
We want those icons in openSUSE. They've always been there and there is no
|
||||
reason not to have them.
|
||||
---
|
||||
kioslave/desktop/CMakeLists.txt | 1 +
|
||||
kioslave/desktop/Home.desktop | 88 ++++++++++++++++++++++++++++++++++++++++
|
||||
kioslave/desktop/kio_desktop.cpp | 4 ++
|
||||
3 files changed, 93 insertions(+)
|
||||
create mode 100644 kioslave/desktop/Home.desktop
|
||||
|
||||
diff --git a/kioslave/desktop/CMakeLists.txt b/kioslave/desktop/CMakeLists.txt
|
||||
index e21744c3..8616a7e5 100644
|
||||
--- a/kioslave/desktop/CMakeLists.txt
|
||||
+++ b/kioslave/desktop/CMakeLists.txt
|
||||
@@ -25,3 +25,4 @@ install(TARGETS desktopnotifier DESTINATION ${KDE_INSTALL_PLUGINDIR}/kf5/kded)
|
||||
install( FILES desktop.protocol DESTINATION ${KDE_INSTALL_KSERVICES5DIR} )
|
||||
|
||||
install(FILES directory.desktop directory.trash DESTINATION ${KDE_INSTALL_DATADIR}/kio_desktop)
|
||||
+install(FILES Home.desktop DESTINATION ${KDE_INSTALL_DATADIR}/kio_desktop/DesktopLinks)
|
||||
diff --git a/kioslave/desktop/Home.desktop b/kioslave/desktop/Home.desktop
|
||||
new file mode 100644
|
||||
index 00000000..9ad53f0b
|
||||
--- /dev/null
|
||||
+++ b/kioslave/desktop/Home.desktop
|
||||
@@ -0,0 +1,88 @@
|
||||
+[Desktop Entry]
|
||||
+Encoding=UTF-8
|
||||
+Name=Home
|
||||
+Name[ca]=Inici
|
||||
+Name[ca@valencia]=Inici
|
||||
+Name[cs]=Můj adresář
|
||||
+Name[da]=Hjem
|
||||
+Name[de]=Persönlicher Ordner
|
||||
+Name[el]=Προσωπικός φάκελος
|
||||
+Name[en_GB]=Home
|
||||
+Name[es]=Inicio
|
||||
+Name[et]=Kodu
|
||||
+Name[eu]=Etxea
|
||||
+Name[fi]=Koti
|
||||
+Name[fr]=Dossier personnel
|
||||
+Name[gl]=Persoal
|
||||
+Name[he]=בית
|
||||
+Name[hu]=Saját mappa
|
||||
+Name[is]=Heimamappa
|
||||
+Name[it]=Home
|
||||
+Name[ja]=ホーム
|
||||
+Name[ko]=홈
|
||||
+Name[lt]=Pradžia
|
||||
+Name[nl]=Home
|
||||
+Name[nn]=Heim
|
||||
+Name[pa]=ਘਰ
|
||||
+Name[pl]=Katalog domowy
|
||||
+Name[pt]=Pasta Pessoal
|
||||
+Name[pt_BR]=Pasta Pessoal
|
||||
+Name[ru]=Домашняя папка
|
||||
+Name[se]=Ruoktu
|
||||
+Name[sk]=Domov
|
||||
+Name[sl]=Dom
|
||||
+Name[sr]=Домаће
|
||||
+Name[sr@ijekavian]=Домаће
|
||||
+Name[sr@ijekavianlatin]=Domaće
|
||||
+Name[sr@latin]=Domaće
|
||||
+Name[sv]=Hem
|
||||
+Name[tr]=Başlangıç
|
||||
+Name[uk]=Домівка
|
||||
+Name[x-test]=xxHomexx
|
||||
+Name[zh_CN]=主文件夹
|
||||
+Name[zh_TW]=家目錄
|
||||
+GenericName=Personal Files
|
||||
+GenericName[ca]=Fitxers personals
|
||||
+GenericName[ca@valencia]=Fitxers personals
|
||||
+GenericName[cs]=Osobní soubory
|
||||
+GenericName[da]=Personlige filer
|
||||
+GenericName[de]=Persönliche Dateien
|
||||
+GenericName[el]=Προσωπικά αρχεία
|
||||
+GenericName[en_GB]=Personal Files
|
||||
+GenericName[es]=Archivos personales
|
||||
+GenericName[et]=Isiklikud failid
|
||||
+GenericName[eu]=Fitxategi pertsonalak
|
||||
+GenericName[fi]=Omat tiedostot
|
||||
+GenericName[fr]=Fichiers personnels
|
||||
+GenericName[gl]=Ficheiros persoais
|
||||
+GenericName[he]=קבצים אישיים
|
||||
+GenericName[hu]=Személyes fájlok
|
||||
+GenericName[is]=Einkaskrár
|
||||
+GenericName[it]=File personali
|
||||
+GenericName[ja]=個人のファイル
|
||||
+GenericName[ko]=개인적인 파일
|
||||
+GenericName[lt]=Asmeniniai failai
|
||||
+GenericName[nl]=Persoonlijke bestanden
|
||||
+GenericName[nn]=Personlege filer
|
||||
+GenericName[pa]=ਨਿੱਜੀ ਫਾਇਲਾਂ
|
||||
+GenericName[pl]=Pliki osobiste
|
||||
+GenericName[pt]=Ficheiros Pessoais
|
||||
+GenericName[pt_BR]=Arquivos pessoais
|
||||
+GenericName[ru]=Личные файлы
|
||||
+GenericName[se]=Iežat fiillat
|
||||
+GenericName[sk]=Osobné súbory
|
||||
+GenericName[sl]=Osebne datoteke
|
||||
+GenericName[sr]=Лични фајлови
|
||||
+GenericName[sr@ijekavian]=Лични фајлови
|
||||
+GenericName[sr@ijekavianlatin]=Lični fajlovi
|
||||
+GenericName[sr@latin]=Lični fajlovi
|
||||
+GenericName[sv]=Personliga filer
|
||||
+GenericName[tr]=Kişisel Dosyalar
|
||||
+GenericName[uk]=Особисті файли
|
||||
+GenericName[x-test]=xxPersonal Filesxx
|
||||
+GenericName[zh_CN]=个人文件
|
||||
+GenericName[zh_TW]=個人檔案
|
||||
+URL[$e]=$HOME
|
||||
+Icon=user-home
|
||||
+Type=Link
|
||||
+
|
||||
diff --git a/kioslave/desktop/kio_desktop.cpp b/kioslave/desktop/kio_desktop.cpp
|
||||
index e05a1364..c57fed29 100644
|
||||
--- a/kioslave/desktop/kio_desktop.cpp
|
||||
+++ b/kioslave/desktop/kio_desktop.cpp
|
||||
@@ -82,6 +82,10 @@ void DesktopProtocol::checkLocalInstall()
|
||||
QFile::copy(QStandardPaths::locate(QStandardPaths::GenericDataLocation, QStringLiteral("kio_desktop/directory.desktop")),
|
||||
desktopPath + "/.directory");
|
||||
|
||||
+ // Copy the trash link
|
||||
+ QFile::copy(QStandardPaths::locate(QStandardPaths::GenericDataLocation, QStringLiteral("kio_desktop/directory.trash")),
|
||||
+ desktopPath + "/trash.desktop");
|
||||
+
|
||||
// Copy the desktop links
|
||||
QSet<QString> links;
|
||||
const auto dirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, QStringLiteral("kio_desktop/DesktopLinks"), QStandardPaths::LocateDirectory);
|
||||
--
|
||||
2.16.1
|
||||
|
@ -1,523 +0,0 @@
|
||||
From 909eff21cca3cdb08ed683b126d83e20aa266608 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Martin=20Fl=C3=B6ser?= <mgraesslin@kde.org>
|
||||
Date: Sun, 25 Feb 2018 09:15:07 +0100
|
||||
Subject: [PATCH 2/3] Add platform detection to KWorkspace library to adjust
|
||||
QT_QPA_PLATFORM
|
||||
|
||||
Summary:
|
||||
This is a preparation step to unset QT_QPA_PLATFORM from the wayland
|
||||
startup session script. Setting QT_QPA_PLATFORM breaks 3rd-party Qt
|
||||
software which does not bundle QtWayland. Most prominent example is
|
||||
the Qt installer itself (see
|
||||
https://bugreports.qt.io/browse/QTBUG-60222).
|
||||
|
||||
On the other hand our Plasma workspace applications need to be forced to
|
||||
Wayland on a Wayland system. So we have a conflict between we want to
|
||||
set QT_QPA_PLATFORM and we don't want to set QT_QPA_PLATFORM.
|
||||
|
||||
This change adds new API to KWorkspace to address this problem. The new
|
||||
method adjusts the QT_QPA_PLATFORM based on the XDG_SESSION_TYPE
|
||||
enviornment variable. It is completely opt-in. Meaning applications need
|
||||
to explicitly add the call prior to creating the QGuiApplication and if
|
||||
the user specifies either QT_QPA_PLATFORM env variable or any of the
|
||||
-platform command line argument variants, the platform detection is
|
||||
skipped.
|
||||
|
||||
The change also adjusts all plasma-workspace applications which should
|
||||
use Wayland on Wayland to use the new API. The startup script on the
|
||||
other hand still sets QT_QPA_PLATFORM. We also have applications outside
|
||||
of plasma-workspace which needs this detection. Examples are:
|
||||
* powerdevil
|
||||
* systemsettings
|
||||
* kinfocenter
|
||||
|
||||
Once this change is merged those applications can be adjusted by linking
|
||||
against PW::KWorkspace and afterwards QT_QPA_PLATFORM can be unset from
|
||||
startplasmacompositor.
|
||||
|
||||
Test Plan: See added autotest
|
||||
|
||||
Reviewers: #plasma
|
||||
|
||||
Subscribers: plasma-devel
|
||||
|
||||
Tags: #plasma
|
||||
|
||||
Differential Revision: https://phabricator.kde.org/D10816
|
||||
---
|
||||
krunner/CMakeLists.txt | 3 +-
|
||||
krunner/main.cpp | 2 +
|
||||
ksmserver/logout-greeter/main.cpp | 1 +
|
||||
ksmserver/switchuser-greeter/main.cpp | 1 +
|
||||
ksplash/ksplashqml/CMakeLists.txt | 1 +
|
||||
ksplash/ksplashqml/main.cpp | 3 +
|
||||
kuiserver/CMakeLists.txt | 1 +
|
||||
kuiserver/main.cpp | 3 +
|
||||
libkworkspace/CMakeLists.txt | 4 +
|
||||
libkworkspace/autotests/CMakeLists.txt | 5 +
|
||||
libkworkspace/autotests/testPlatformDetection.cpp | 128 ++++++++++++++++++++++
|
||||
libkworkspace/kworkspace.cpp | 24 ++++
|
||||
libkworkspace/kworkspace.h | 15 +++
|
||||
shell/CMakeLists.txt | 1 +
|
||||
shell/main.cpp | 2 +
|
||||
startkde/kcminit/CMakeLists.txt | 4 +-
|
||||
startkde/kcminit/main.cpp | 2 +
|
||||
systemmonitor/CMakeLists.txt | 1 +
|
||||
systemmonitor/main.cpp | 3 +
|
||||
19 files changed, 201 insertions(+), 3 deletions(-)
|
||||
create mode 100644 libkworkspace/autotests/CMakeLists.txt
|
||||
create mode 100644 libkworkspace/autotests/testPlatformDetection.cpp
|
||||
|
||||
diff --git a/krunner/CMakeLists.txt b/krunner/CMakeLists.txt
|
||||
index c73216e4..46aa92f8 100644
|
||||
--- a/krunner/CMakeLists.txt
|
||||
+++ b/krunner/CMakeLists.txt
|
||||
@@ -23,6 +23,7 @@ target_link_libraries(krunner
|
||||
KF5::Crash
|
||||
KF5::WaylandClient
|
||||
KF5::QuickAddons
|
||||
+ PW::KWorkspace
|
||||
)
|
||||
target_compile_definitions(krunner PRIVATE -DPROJECT_VERSION="${PROJECT_VERSION}")
|
||||
|
||||
@@ -38,4 +39,4 @@ ecm_configure_package_config_file(KRunnerAppDBusInterfaceConfig.cmake.in
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/KRunnerAppDBusInterfaceConfig.cmake
|
||||
DESTINATION ${CMAKECONFIG_INSTALL_DIR})
|
||||
|
||||
-add_subdirectory(update)
|
||||
\ No newline at end of file
|
||||
+add_subdirectory(update)
|
||||
diff --git a/krunner/main.cpp b/krunner/main.cpp
|
||||
index 24fe5a9f..06bf47c0 100644
|
||||
--- a/krunner/main.cpp
|
||||
+++ b/krunner/main.cpp
|
||||
@@ -33,6 +33,7 @@
|
||||
#include <kdeclarative/qmlobject.h>
|
||||
#include <KQuickAddons/QtQuickSettings>
|
||||
|
||||
+#include <kworkspace.h>
|
||||
|
||||
#include "view.h"
|
||||
|
||||
@@ -43,6 +44,7 @@ int main(int argc, char **argv)
|
||||
qunsetenv("QT_DEVICE_PIXEL_RATIO");
|
||||
QCoreApplication::setAttribute(Qt::AA_DisableHighDpiScaling);
|
||||
|
||||
+ KWorkSpace::detectPlatform(argc, argv);
|
||||
QQuickWindow::setDefaultAlphaBuffer(true);
|
||||
QApplication app(argc, argv);
|
||||
KLocalizedString::setApplicationDomain("krunner");
|
||||
diff --git a/ksmserver/logout-greeter/main.cpp b/ksmserver/logout-greeter/main.cpp
|
||||
index a94442be..369bc08f 100644
|
||||
--- a/ksmserver/logout-greeter/main.cpp
|
||||
+++ b/ksmserver/logout-greeter/main.cpp
|
||||
@@ -166,6 +166,7 @@ int main(int argc, char *argv[])
|
||||
// Qt does not currently (5.9.4) support fullscreen on xdg_shell v6.
|
||||
qputenv("QT_WAYLAND_SHELL_INTEGRATION", "wl-shell");
|
||||
|
||||
+ KWorkSpace::detectPlatform(argc, argv);
|
||||
QQuickWindow::setDefaultAlphaBuffer(true);
|
||||
QApplication app(argc, argv);
|
||||
|
||||
diff --git a/ksmserver/switchuser-greeter/main.cpp b/ksmserver/switchuser-greeter/main.cpp
|
||||
index cbacb9fc..22200a43 100644
|
||||
--- a/ksmserver/switchuser-greeter/main.cpp
|
||||
+++ b/ksmserver/switchuser-greeter/main.cpp
|
||||
@@ -138,6 +138,7 @@ int main(int argc, char *argv[])
|
||||
// Qt does not currently (5.9.4) support fullscreen on xdg_shell v6.
|
||||
qputenv("QT_WAYLAND_SHELL_INTEGRATION", "wl-shell");
|
||||
|
||||
+ KWorkSpace::detectPlatform(argc, argv);
|
||||
QQuickWindow::setDefaultAlphaBuffer(true);
|
||||
QGuiApplication app(argc, argv);
|
||||
|
||||
diff --git a/ksplash/ksplashqml/CMakeLists.txt b/ksplash/ksplashqml/CMakeLists.txt
|
||||
index 105cd022..b4ad34ef 100644
|
||||
--- a/ksplash/ksplashqml/CMakeLists.txt
|
||||
+++ b/ksplash/ksplashqml/CMakeLists.txt
|
||||
@@ -16,6 +16,7 @@ target_link_libraries(ksplashqml
|
||||
KF5::QuickAddons
|
||||
KF5::WaylandClient
|
||||
KF5::WindowSystem
|
||||
+ PW::KWorkspace
|
||||
)
|
||||
|
||||
install(TARGETS ksplashqml ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
|
||||
diff --git a/ksplash/ksplashqml/main.cpp b/ksplash/ksplashqml/main.cpp
|
||||
index 25faacde..a97c3d60 100644
|
||||
--- a/ksplash/ksplashqml/main.cpp
|
||||
+++ b/ksplash/ksplashqml/main.cpp
|
||||
@@ -23,6 +23,8 @@
|
||||
|
||||
#include <QTextStream>
|
||||
|
||||
+#include <kworkspace.h>
|
||||
+
|
||||
#include <iostream>
|
||||
#include <unistd.h>
|
||||
|
||||
@@ -88,6 +90,7 @@ int main(int argc, char **argv)
|
||||
//enable to send log output to /tmp/ksplash
|
||||
//which is useful for debugging
|
||||
// qInstallMsgHandler(myMessageHandler);
|
||||
+ KWorkSpace::detectPlatform(argc, argv);
|
||||
QQuickWindow::setDefaultAlphaBuffer(true);
|
||||
SplashApp app(argc, argv);
|
||||
|
||||
diff --git a/kuiserver/CMakeLists.txt b/kuiserver/CMakeLists.txt
|
||||
index 7e79076e..4787b828 100644
|
||||
--- a/kuiserver/CMakeLists.txt
|
||||
+++ b/kuiserver/CMakeLists.txt
|
||||
@@ -60,6 +60,7 @@ endif ()
|
||||
|
||||
|
||||
target_link_libraries(kdeinit_kuiserver5
|
||||
+ PW::KWorkspace
|
||||
Qt5::DBus
|
||||
KF5::ConfigWidgets
|
||||
KF5::DBusAddons
|
||||
diff --git a/kuiserver/main.cpp b/kuiserver/main.cpp
|
||||
index 2d8a5b6f..07df24a6 100644
|
||||
--- a/kuiserver/main.cpp
|
||||
+++ b/kuiserver/main.cpp
|
||||
@@ -27,12 +27,15 @@
|
||||
|
||||
#include <kdbusservice.h>
|
||||
|
||||
+#include <kworkspace.h>
|
||||
+
|
||||
#include <QCommandLineParser>
|
||||
|
||||
Q_LOGGING_CATEGORY(KUISERVER, "kuiserver", QtInfoMsg)
|
||||
|
||||
extern "C" Q_DECL_EXPORT int kdemain(int argc, char **argv)
|
||||
{
|
||||
+ KWorkSpace::detectPlatform(argc, argv);
|
||||
QApplication app(argc, argv);
|
||||
app.setApplicationName(QStringLiteral("kuiserver"));
|
||||
app.setApplicationVersion(QStringLiteral("2.0"));
|
||||
diff --git a/libkworkspace/CMakeLists.txt b/libkworkspace/CMakeLists.txt
|
||||
index b31ffc69..0f779040 100644
|
||||
--- a/libkworkspace/CMakeLists.txt
|
||||
+++ b/libkworkspace/CMakeLists.txt
|
||||
@@ -73,3 +73,7 @@ install(EXPORT libkworkspaceLibraryTargets
|
||||
NAMESPACE PW::
|
||||
DESTINATION ${CMAKECONFIG_INSTALL_DIR}
|
||||
FILE LibKWorkspaceLibraryTargets.cmake )
|
||||
+
|
||||
+if(BUILD_TESTING)
|
||||
+ add_subdirectory(autotests)
|
||||
+endif()
|
||||
diff --git a/libkworkspace/autotests/CMakeLists.txt b/libkworkspace/autotests/CMakeLists.txt
|
||||
new file mode 100644
|
||||
index 00000000..4409dc6d
|
||||
--- /dev/null
|
||||
+++ b/libkworkspace/autotests/CMakeLists.txt
|
||||
@@ -0,0 +1,5 @@
|
||||
+include(ECMMarkAsTest)
|
||||
+add_executable(testPlatformDetection testPlatformDetection.cpp)
|
||||
+target_link_libraries(testPlatformDetection Qt5::Test PW::KWorkspace)
|
||||
+add_test(NAME kworkspace-testPlatformDetection COMMAND testPlatformDetection)
|
||||
+ecm_mark_as_test(testPlatformDetection)
|
||||
diff --git a/libkworkspace/autotests/testPlatformDetection.cpp b/libkworkspace/autotests/testPlatformDetection.cpp
|
||||
new file mode 100644
|
||||
index 00000000..8e06afb1
|
||||
--- /dev/null
|
||||
+++ b/libkworkspace/autotests/testPlatformDetection.cpp
|
||||
@@ -0,0 +1,128 @@
|
||||
+/*
|
||||
+ * Copyright 2018 Martin Flöser <mgraesslin@kde.org>
|
||||
+ *
|
||||
+ * This library is free software; you can redistribute it and/or
|
||||
+ * modify it under the terms of the GNU Lesser General Public
|
||||
+ * License as published by the Free Software Foundation; either
|
||||
+ * version 2.1 of the License, or (at your option) version 3, or any
|
||||
+ * later version accepted by the membership of KDE e.V. (or its
|
||||
+ * successor approved by the membership of KDE e.V.), which shall
|
||||
+ * act as a proxy defined in Section 6 of version 3 of the license.
|
||||
+ *
|
||||
+ * This library is distributed in the hope that it will be useful,
|
||||
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
+ * Lesser General Public License for more details.
|
||||
+ *
|
||||
+ * You should have received a copy of the GNU Lesser General Public
|
||||
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
+*/
|
||||
+
|
||||
+#include <QtTest/QtTest>
|
||||
+
|
||||
+#include "../kworkspace.h"
|
||||
+
|
||||
+#include <vector>
|
||||
+
|
||||
+class TestPlatformDetection : public QObject
|
||||
+{
|
||||
+ Q_OBJECT
|
||||
+private Q_SLOTS:
|
||||
+ void init();
|
||||
+ void testPlatformSelection_data();
|
||||
+ void testPlatformSelection();
|
||||
+ void testArguments_data();
|
||||
+ void testArguments();
|
||||
+ void testQtQpaPlatformIsSet_data();
|
||||
+ void testQtQpaPlatformIsSet();
|
||||
+};
|
||||
+
|
||||
+void TestPlatformDetection::init()
|
||||
+{
|
||||
+ qunsetenv("QT_QPA_PLATFORM");
|
||||
+ qunsetenv("XDG_SESSION_TYPE");
|
||||
+}
|
||||
+
|
||||
+void TestPlatformDetection::testPlatformSelection_data()
|
||||
+{
|
||||
+ QTest::addColumn<QByteArray>("xdgSessionType");
|
||||
+ QTest::addColumn<QByteArray>("expectedQtQpaPlatform");
|
||||
+
|
||||
+ QTest::newRow("wayland") << QByteArrayLiteral("wayland") << QByteArrayLiteral("wayland");
|
||||
+ QTest::newRow("x11") << QByteArrayLiteral("x11") << QByteArrayLiteral("xcb");
|
||||
+ QTest::newRow("unknown") << QByteArrayLiteral("mir") << QByteArray();
|
||||
+}
|
||||
+
|
||||
+void TestPlatformDetection::testPlatformSelection()
|
||||
+{
|
||||
+ QVERIFY(!qEnvironmentVariableIsSet("QT_QPA_PLATFORM"));
|
||||
+ QFETCH(QByteArray, xdgSessionType);
|
||||
+ qputenv("XDG_SESSION_TYPE", xdgSessionType);
|
||||
+
|
||||
+ std::vector<QByteArray> cppArgv{
|
||||
+ QByteArrayLiteral("testPlatformDetction")
|
||||
+ };
|
||||
+ std::vector<char*> argv;
|
||||
+ for (QByteArray &arg : cppArgv) {
|
||||
+ argv.push_back(arg.data());
|
||||
+ }
|
||||
+ KWorkSpace::detectPlatform(1, argv.data());
|
||||
+ QTEST(qgetenv("QT_QPA_PLATFORM"), "expectedQtQpaPlatform");
|
||||
+}
|
||||
+
|
||||
+void TestPlatformDetection::testArguments_data()
|
||||
+{
|
||||
+ QTest::addColumn<QByteArray>("arg");
|
||||
+
|
||||
+ QTest::newRow("-platform") << QByteArrayLiteral("-platform");
|
||||
+ QTest::newRow("--platform") << QByteArrayLiteral("--platform");
|
||||
+ QTest::newRow("-platform=wayland") << QByteArrayLiteral("-platform=wayland");
|
||||
+ QTest::newRow("--platform=wayland") << QByteArrayLiteral("--platform=wayland");
|
||||
+}
|
||||
+
|
||||
+void TestPlatformDetection::testArguments()
|
||||
+{
|
||||
+ QVERIFY(!qEnvironmentVariableIsSet("QT_QPA_PLATFORM"));
|
||||
+ qputenv("XDG_SESSION_TYPE", "wayland");
|
||||
+
|
||||
+ QFETCH(QByteArray, arg);
|
||||
+ std::vector<QByteArray> cppArgv{
|
||||
+ QByteArrayLiteral("testPlatformDetction"),
|
||||
+ arg,
|
||||
+ QByteArrayLiteral("wayland")
|
||||
+ };
|
||||
+ std::vector<char*> argv;
|
||||
+ for (QByteArray &arg : cppArgv) {
|
||||
+ argv.push_back(arg.data());
|
||||
+ }
|
||||
+ KWorkSpace::detectPlatform(3, argv.data());
|
||||
+ QVERIFY(!qEnvironmentVariableIsSet("QT_QPA_PLATFORM"));
|
||||
+}
|
||||
+
|
||||
+void TestPlatformDetection::testQtQpaPlatformIsSet_data()
|
||||
+{
|
||||
+ QTest::addColumn<QByteArray>("qtQpaPlatform");
|
||||
+ QTest::addColumn<QByteArray>("xdgSessionType");
|
||||
+
|
||||
+ QTest::newRow("xcb - x11") << QByteArrayLiteral("xcb") << QByteArrayLiteral("x11");
|
||||
+ QTest::newRow("xcb - wayland") << QByteArrayLiteral("xcb") << QByteArrayLiteral("wayland");
|
||||
+ QTest::newRow("wayland - x11") << QByteArrayLiteral("wayland") << QByteArrayLiteral("x11");
|
||||
+ QTest::newRow("wayland - wayland") << QByteArrayLiteral("wayland") << QByteArrayLiteral("wayland");
|
||||
+ QTest::newRow("windows - x11") << QByteArrayLiteral("windows") << QByteArrayLiteral("x11");
|
||||
+}
|
||||
+
|
||||
+void TestPlatformDetection::testQtQpaPlatformIsSet()
|
||||
+{
|
||||
+ // test verifies that if QT_QPA_PLATFORM is set the env variable does not get adjusted
|
||||
+ QFETCH(QByteArray, qtQpaPlatform);
|
||||
+ QFETCH(QByteArray, xdgSessionType);
|
||||
+ qputenv("QT_QPA_PLATFORM", qtQpaPlatform);
|
||||
+ qputenv("XDG_SESSION_TYPE", xdgSessionType);
|
||||
+
|
||||
+ KWorkSpace::detectPlatform(0, nullptr);
|
||||
+ QCOMPARE(qgetenv("QT_QPA_PLATFORM"), qtQpaPlatform);
|
||||
+}
|
||||
+
|
||||
+QTEST_GUILESS_MAIN(TestPlatformDetection)
|
||||
+
|
||||
+#include "testPlatformDetection.moc"
|
||||
diff --git a/libkworkspace/kworkspace.cpp b/libkworkspace/kworkspace.cpp
|
||||
index 444270d8..5b0b2505 100644
|
||||
--- a/libkworkspace/kworkspace.cpp
|
||||
+++ b/libkworkspace/kworkspace.cpp
|
||||
@@ -260,6 +260,30 @@ void propagateSessionManager()
|
||||
#endif
|
||||
}
|
||||
|
||||
+void detectPlatform(int argc, char **argv)
|
||||
+{
|
||||
+ if (qEnvironmentVariableIsSet("QT_QPA_PLATFORM")) {
|
||||
+ return;
|
||||
+ }
|
||||
+ for (int i = 0; i < argc; i++) {
|
||||
+ if (qstrcmp(argv[i], "-platform") == 0 ||
|
||||
+ qstrcmp(argv[i], "--platform") == 0 ||
|
||||
+ QByteArray(argv[i]).startsWith("-platform=") ||
|
||||
+ QByteArray(argv[i]).startsWith("--platform=")) {
|
||||
+ return;
|
||||
+ }
|
||||
+ }
|
||||
+ const QByteArray sessionType = qgetenv("XDG_SESSION_TYPE");
|
||||
+ if (sessionType.isEmpty()) {
|
||||
+ return;
|
||||
+ }
|
||||
+ if (qstrcmp(sessionType, "wayland") == 0) {
|
||||
+ qputenv("QT_QPA_PLATFORM", "wayland");
|
||||
+ } else if (qstrcmp(sessionType, "x11") == 0) {
|
||||
+ qputenv("QT_QPA_PLATFORM", "xcb");
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
} // end namespace
|
||||
|
||||
|
||||
diff --git a/libkworkspace/kworkspace.h b/libkworkspace/kworkspace.h
|
||||
index 6cfc94fe..44025674 100644
|
||||
--- a/libkworkspace/kworkspace.h
|
||||
+++ b/libkworkspace/kworkspace.h
|
||||
@@ -150,6 +150,21 @@ namespace KWorkSpace
|
||||
*/
|
||||
KWORKSPACE_EXPORT void propagateSessionManager();
|
||||
|
||||
+ /**
|
||||
+ * Performs platform detection and adjusts QT_QPA_PLATFORM environment
|
||||
+ * variable to either xcb or wayland depending on the detected platform.
|
||||
+ *
|
||||
+ * The detection is based on the XDG_SESSION_TYPE environment variable.
|
||||
+ * The detection is skipped in case QT_QPA_PLATFORM is already set or
|
||||
+ * if one of the command line arguments contains the "-platform" variable.
|
||||
+ *
|
||||
+ * In order to make use of this function, it has to be invoked before the
|
||||
+ * QGuiApplication instance is constructed. Invoking after constructing the
|
||||
+ * QGuiApplication has no effect.
|
||||
+ * @since 5.13
|
||||
+ **/
|
||||
+ KWORKSPACE_EXPORT void detectPlatform(int argc, char **argv);
|
||||
+
|
||||
}
|
||||
|
||||
#endif
|
||||
diff --git a/shell/CMakeLists.txt b/shell/CMakeLists.txt
|
||||
index 04ad01ae..b5f53f84 100644
|
||||
--- a/shell/CMakeLists.txt
|
||||
+++ b/shell/CMakeLists.txt
|
||||
@@ -93,6 +93,7 @@ target_link_libraries(plasmashell
|
||||
KF5::XmlGui
|
||||
KF5::Package
|
||||
KF5::WaylandClient
|
||||
+ PW::KWorkspace
|
||||
)
|
||||
target_include_directories(plasmashell PRIVATE "${CMAKE_BINARY_DIR}")
|
||||
target_compile_definitions(plasmashell PRIVATE -DPROJECT_VERSION="${PROJECT_VERSION}")
|
||||
diff --git a/shell/main.cpp b/shell/main.cpp
|
||||
index 22ef0388..09cca77a 100644
|
||||
--- a/shell/main.cpp
|
||||
+++ b/shell/main.cpp
|
||||
@@ -31,6 +31,7 @@
|
||||
#include <kdbusservice.h>
|
||||
#include <klocalizedstring.h>
|
||||
#include <kcrash.h>
|
||||
+#include <kworkspace.h>
|
||||
|
||||
#include "shellcorona.h"
|
||||
#include "standaloneappcorona.h"
|
||||
@@ -56,6 +57,7 @@ int main(int argc, char *argv[])
|
||||
|
||||
QQuickWindow::setDefaultAlphaBuffer(true);
|
||||
|
||||
+ KWorkSpace::detectPlatform(argc, argv);
|
||||
QApplication app(argc, argv);
|
||||
KLocalizedString::setApplicationDomain("plasmashell");
|
||||
|
||||
diff --git a/startkde/kcminit/CMakeLists.txt b/startkde/kcminit/CMakeLists.txt
|
||||
index 783c1966..00f024e9 100644
|
||||
--- a/startkde/kcminit/CMakeLists.txt
|
||||
+++ b/startkde/kcminit/CMakeLists.txt
|
||||
@@ -14,7 +14,7 @@ qt5_add_dbus_interface(kcminit_KDEINIT_SRCS ${klauncher_xml} klauncher_iface)
|
||||
|
||||
kf5_add_kdeinit_executable( kcminit ${kcminit_KDEINIT_SRCS})
|
||||
|
||||
-target_link_libraries(kdeinit_kcminit Qt5::Core Qt5::Gui Qt5::DBus KF5::CoreAddons KF5::Service KF5::I18n)
|
||||
+target_link_libraries(kdeinit_kcminit Qt5::Core Qt5::Gui Qt5::DBus KF5::CoreAddons KF5::Service KF5::I18n PW::KWorkspace)
|
||||
if (XCB_XCB_FOUND)
|
||||
target_link_libraries(kdeinit_kcminit XCB::XCB)
|
||||
endif()
|
||||
@@ -32,7 +32,7 @@ set(kcminit_startup_KDEINIT_SRCS main.cpp)
|
||||
qt5_add_dbus_interface(kcminit_startup_KDEINIT_SRCS ${klauncher_xml} klauncher_iface)
|
||||
kf5_add_kdeinit_executable( kcminit_startup ${kcminit_startup_KDEINIT_SRCS})
|
||||
|
||||
-target_link_libraries(kdeinit_kcminit_startup Qt5::Core Qt5::Gui Qt5::DBus KF5::CoreAddons KF5::Service KF5::I18n)
|
||||
+target_link_libraries(kdeinit_kcminit_startup Qt5::Core Qt5::Gui Qt5::DBus KF5::CoreAddons KF5::Service KF5::I18n PW::KWorkspace)
|
||||
if (XCB_XCB_FOUND)
|
||||
target_link_libraries(kdeinit_kcminit_startup XCB::XCB)
|
||||
endif()
|
||||
diff --git a/startkde/kcminit/main.cpp b/startkde/kcminit/main.cpp
|
||||
index 7181281c..6ac26bda 100644
|
||||
--- a/startkde/kcminit/main.cpp
|
||||
+++ b/startkde/kcminit/main.cpp
|
||||
@@ -42,6 +42,7 @@
|
||||
#include <kconfiggroup.h>
|
||||
#include <klocalizedstring.h>
|
||||
#include <kservicetypetrader.h>
|
||||
+#include <kworkspace.h>
|
||||
|
||||
static int ready[ 2 ];
|
||||
static bool startup = false;
|
||||
@@ -221,6 +222,7 @@ extern "C" Q_DECL_EXPORT int kdemain(int argc, char *argv[])
|
||||
|
||||
startup = ( strcmp( argv[ 0 ], "kcminit_startup" ) == 0 ); // started from startkde?
|
||||
|
||||
+ KWorkSpace::detectPlatform(argc, argv);
|
||||
QGuiApplication::setDesktopSettingsAware(false);
|
||||
QGuiApplication app(argc, argv); //gui is needed for several modules
|
||||
KLocalizedString::setApplicationDomain("kcminit");
|
||||
diff --git a/systemmonitor/CMakeLists.txt b/systemmonitor/CMakeLists.txt
|
||||
index e952d9ed..f925cb63 100644
|
||||
--- a/systemmonitor/CMakeLists.txt
|
||||
+++ b/systemmonitor/CMakeLists.txt
|
||||
@@ -25,6 +25,7 @@ target_link_libraries(systemmonitor
|
||||
KF5::XmlGui
|
||||
KF5::GlobalAccel
|
||||
KF5::WindowSystem
|
||||
+ PW::KWorkspace
|
||||
)
|
||||
|
||||
install(TARGETS systemmonitor DESTINATION ${KDE_INSTALL_BINDIR})
|
||||
diff --git a/systemmonitor/main.cpp b/systemmonitor/main.cpp
|
||||
index ccf6cae7..7311580b 100644
|
||||
--- a/systemmonitor/main.cpp
|
||||
+++ b/systemmonitor/main.cpp
|
||||
@@ -21,10 +21,13 @@
|
||||
#include <QDBusConnection>
|
||||
#include <KLocalizedString>
|
||||
|
||||
+#include <kworkspace.h>
|
||||
+
|
||||
#include "ksystemactivitydialog.h"
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
+ KWorkSpace::detectPlatform(argc, argv);
|
||||
QApplication app(argc, argv);
|
||||
KLocalizedString::setApplicationDomain("systemmonitor");
|
||||
|
||||
--
|
||||
2.16.2
|
||||
|
@ -1,89 +0,0 @@
|
||||
From 9dd3d4711ac74fd9d93344db7e6c2691026f21c5 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Martin=20Fl=C3=B6ser?= <mgraesslin@kde.org>
|
||||
Date: Sun, 18 Mar 2018 11:08:02 +0100
|
||||
Subject: [PATCH 3/3] No longer export QT_QPA_PLATFORM env variable to the
|
||||
session
|
||||
|
||||
Summary:
|
||||
As discussed the env variables are no longer exported. Thus Qt
|
||||
applications follow the default qpa platform they are compiled with and
|
||||
thus still function if they are packaged with a Qt without QtWayland.
|
||||
Plasma's internal processes pick the qpa platform depending on the
|
||||
session type as well as our flatpak apps.
|
||||
|
||||
KRunner and Plasmashell are adjusted to not leak the env variable they
|
||||
set for themselves.
|
||||
|
||||
Test Plan:
|
||||
Started a wayland session, verified with KWin's debug console
|
||||
that plasmashell and krunner are wayland. Launched kwrite from both plasma
|
||||
and krunner and verified that it's xcb
|
||||
|
||||
Reviewers: #plasma
|
||||
|
||||
Subscribers: plasma-devel
|
||||
|
||||
Tags: #plasma
|
||||
|
||||
Differential Revision: https://phabricator.kde.org/D11447
|
||||
---
|
||||
krunner/main.cpp | 5 +++++
|
||||
shell/main.cpp | 5 +++++
|
||||
startkde/startplasmacompositor.cmake | 4 ----
|
||||
3 files changed, 10 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/krunner/main.cpp b/krunner/main.cpp
|
||||
index 06bf47c0..329eca7e 100644
|
||||
--- a/krunner/main.cpp
|
||||
+++ b/krunner/main.cpp
|
||||
@@ -44,9 +44,14 @@ int main(int argc, char **argv)
|
||||
qunsetenv("QT_DEVICE_PIXEL_RATIO");
|
||||
QCoreApplication::setAttribute(Qt::AA_DisableHighDpiScaling);
|
||||
|
||||
+ const bool qpaVariable = qEnvironmentVariableIsSet("QT_QPA_PLATFORM");
|
||||
KWorkSpace::detectPlatform(argc, argv);
|
||||
QQuickWindow::setDefaultAlphaBuffer(true);
|
||||
QApplication app(argc, argv);
|
||||
+ if (!qpaVariable) {
|
||||
+ // don't leak the env variable to processes we start
|
||||
+ qunsetenv("QT_QPA_PLATFORM");
|
||||
+ }
|
||||
KLocalizedString::setApplicationDomain("krunner");
|
||||
|
||||
KQuickAddons::QtQuickSettings::init();
|
||||
diff --git a/shell/main.cpp b/shell/main.cpp
|
||||
index 09cca77a..037eb8f3 100644
|
||||
--- a/shell/main.cpp
|
||||
+++ b/shell/main.cpp
|
||||
@@ -57,8 +57,13 @@ int main(int argc, char *argv[])
|
||||
|
||||
QQuickWindow::setDefaultAlphaBuffer(true);
|
||||
|
||||
+ const bool qpaVariable = qEnvironmentVariableIsSet("QT_QPA_PLATFORM");
|
||||
KWorkSpace::detectPlatform(argc, argv);
|
||||
QApplication app(argc, argv);
|
||||
+ if (!qpaVariable) {
|
||||
+ // don't leak the env variable to processes we start
|
||||
+ qunsetenv("QT_QPA_PLATFORM");
|
||||
+ }
|
||||
KLocalizedString::setApplicationDomain("plasmashell");
|
||||
|
||||
// The executable's path is added to the library/plugin paths.
|
||||
diff --git a/startkde/startplasmacompositor.cmake b/startkde/startplasmacompositor.cmake
|
||||
index 8ac47aa7..dd9e304d 100644
|
||||
--- a/startkde/startplasmacompositor.cmake
|
||||
+++ b/startkde/startplasmacompositor.cmake
|
||||
@@ -218,10 +218,6 @@ export KDE_SESSION_UID
|
||||
XDG_CURRENT_DESKTOP=KDE
|
||||
export XDG_CURRENT_DESKTOP
|
||||
|
||||
-#enforce wayland QPA
|
||||
-QT_QPA_PLATFORM=wayland
|
||||
-export QT_QPA_PLATFORM
|
||||
-
|
||||
# kwin_wayland can possibly also start dbus-activated services which need env variables.
|
||||
# In that case, the update in startplasma might be too late.
|
||||
if which dbus-update-activation-environment >/dev/null 2>/dev/null ; then
|
||||
--
|
||||
2.16.2
|
||||
|
@ -1,28 +1,37 @@
|
||||
From b704fa4d735222166cd2d43c9f8da60df5b4fd0d Mon Sep 17 00:00:00 2001
|
||||
From: Fabian Vogt <fabian@ritter-vogt.de>
|
||||
Subject: sddm-theme: Set needsFullUserModel=false
|
||||
Date: Fri, 4 May 2018 09:10:10 +0200
|
||||
Subject: [PATCH] sddm-theme: Set needsFullUserModel=false
|
||||
|
||||
Otherwise SDDM has to load all users even if they're not shown.
|
||||
See https://github.com/sddm/sddm/pull/1017
|
||||
---
|
||||
sddm-theme/Main.qml | 2 ++
|
||||
sddm-theme/theme.conf.cmake | 1 +
|
||||
2 files changed, 3 insertions(+)
|
||||
|
||||
diff --git a/sddm-theme/Main.qml b/sddm-theme/Main.qml
|
||||
index 71fcd44d..e951aa2f 100644
|
||||
index 3ef30117..775b650b 100644
|
||||
--- a/sddm-theme/Main.qml
|
||||
+++ b/sddm-theme/Main.qml
|
||||
@@ -97,6 +97,8 @@ PlasmaCore.ColorScope {
|
||||
@@ -170,6 +170,8 @@ PlasmaCore.ColorScope {
|
||||
|
||||
if ( userListModel.count == 0 ) return false
|
||||
if ( userListModel.count == 0 ) return false
|
||||
|
||||
+ if ( userListModel.hasOwnProperty("containsAllUsers") && !userListModel.containsAllUsers) return false
|
||||
+ if ( userListModel.hasOwnProperty("containsAllUsers") && !userListModel.containsAllUsers) return false
|
||||
+
|
||||
return userListModel.count <= userListModel.disableAvatarsThreshold && (userList.y + mainStack.y) > 0
|
||||
}
|
||||
return userListModel.count <= userListModel.disableAvatarsThreshold && (userList.y + mainStack.y) > 0
|
||||
}
|
||||
|
||||
diff --git a/sddm-theme/theme.conf b/sddm-theme/theme.conf
|
||||
index c293b25b..54d7f1b2 100644
|
||||
--- a/sddm-theme/theme.conf
|
||||
+++ b/sddm-theme/theme.conf
|
||||
diff --git a/sddm-theme/theme.conf.cmake b/sddm-theme/theme.conf.cmake
|
||||
index 69d30705..6bdbc00c 100644
|
||||
--- a/sddm-theme/theme.conf.cmake
|
||||
+++ b/sddm-theme/theme.conf.cmake
|
||||
@@ -2,3 +2,4 @@
|
||||
type=color
|
||||
type=image
|
||||
color=#1d99f3
|
||||
background=
|
||||
background=${CMAKE_INSTALL_PREFIX}/${WALLPAPER_INSTALL_DIR}/Next/contents/images/3200x2000.png
|
||||
+needsFullUserModel=false
|
||||
--
|
||||
2.16.2
|
||||
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:93b70f559818d685dedf3c3f33d53eb4d9dc9892379c9040859349e385b8c5ef
|
||||
size 4564204
|
3
plasma-workspace-5.12.90.tar.xz
Normal file
3
plasma-workspace-5.12.90.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b58f8eca82de3da6dbafbc7b1e7807c8f44096b68ae2f0c017dd9a3b9010feb3
|
||||
size 4553448
|
@ -1,3 +1,19 @@
|
||||
-------------------------------------------------------------------
|
||||
Sat May 19 14:16:38 CEST 2018 - fabian@ritter-vogt.de
|
||||
|
||||
- Update to 5.12.90
|
||||
* New feature release
|
||||
* For more details please see:
|
||||
* https://www.kde.org/announcements/plasma-5.12.90.php
|
||||
- Too many changes to list here
|
||||
- Add patch to add default desktop icons:
|
||||
* 0001-Revert-No-icons-on-the-desktop-by-default.patch
|
||||
- Remove patches, now upstream:
|
||||
* 0001-Add-a-button-to-clear-the-notification-history.patch
|
||||
* 0001-Call-KLocalizedString-setApplicationDomain-after-Q-A.patch
|
||||
* 0002-Add-platform-detection-to-KWorkspace-library-to-adju.patch
|
||||
* 0003-No-longer-export-QT_QPA_PLATFORM-env-variable-to-the.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon May 7 11:49:35 UTC 2018 - fabian@ritter-vogt.de
|
||||
|
||||
|
@ -19,7 +19,7 @@
|
||||
#Compat macro for new _fillupdir macro introduced in Nov 2017
|
||||
%{!?_fillupdir: %global _fillupdir %{_localstatedir}/adm/fillup-templates}
|
||||
|
||||
%define kf5_version 5.34.0
|
||||
%define kf5_version 5.45.0
|
||||
|
||||
%bcond_without lang
|
||||
Name: plasma5-workspace
|
||||
@ -27,20 +27,16 @@ Name: plasma5-workspace
|
||||
%{!?_plasma5_bugfix: %global _plasma5_bugfix %{version}}
|
||||
# Lasted ABI-stable Plasma (e.g. 5.8 in KF5, but 5.9.1 in KUF)
|
||||
%{!?_plasma5_version: %global _plasma5_version %(echo %{_plasma5_bugfix} | awk -F. '{print $1"."$2}')}
|
||||
Version: 5.12.5
|
||||
Version: 5.12.90
|
||||
Release: 0
|
||||
Summary: The KDE Plasma Workspace Components
|
||||
License: GPL-2.0+
|
||||
Group: System/GUI/KDE
|
||||
Url: http://www.kde.org/
|
||||
Source: http://download.kde.org/stable/plasma/%{version}/plasma-workspace-%{version}.tar.xz
|
||||
Source: http://download.kde.org/unstable/plasma/%{version}/plasma-workspace-%{version}.tar.xz
|
||||
Source1: baselibs.conf
|
||||
# PATCHES 000-100 and above are from upstream 5.12 branch
|
||||
# PATCHES 101-500 are from upstream master/5.13 branch
|
||||
Patch201: 0001-Call-KLocalizedString-setApplicationDomain-after-Q-A.patch
|
||||
Patch202: 0002-Add-platform-detection-to-KWorkspace-library-to-adju.patch
|
||||
Patch203: 0003-No-longer-export-QT_QPA_PLATFORM-env-variable-to-the.patch
|
||||
Patch204: 0001-Add-a-button-to-clear-the-notification-history.patch
|
||||
# PATCHES 501-??? are PATCH-FIX-OPENSUSE
|
||||
# PATCH-FIX-OPENSUSE 0001-Rename-qdbus-in-startkde.patch cgiboudeaux@gmx.com -- Rename the qdbus executable in startkde
|
||||
Patch501: 0001-Rename-qdbus-in-startkde.patch
|
||||
@ -51,8 +47,10 @@ Patch503: 0001-Set-GTK_BACKEND-x11-in-a-wayland-session.patch
|
||||
Patch504: 0001-Add-suffix-to-the-wayland-session-s-name.patch
|
||||
# PATCH-FIX-UPSTREAM (or alternative solution)
|
||||
Patch505: 0001-Set-XDG_SESSION_TYPE-wayland-in-startplasmacomposito.patch
|
||||
# PATCH-FEATURE-OPENSUSE
|
||||
Patch506: 0001-Revert-No-icons-on-the-desktop-by-default.patch
|
||||
# PATCH-FIX-OPENSUSE
|
||||
Patch506: lazy-sddm-theme.patch
|
||||
Patch507: lazy-sddm-theme.patch
|
||||
BuildRequires: breeze5-icons
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: kf5-filesystem
|
||||
@ -338,7 +336,7 @@ fi
|
||||
--remove default-xsession.desktop %{_datadir}/xsessions/plasma5.desktop
|
||||
|
||||
%files libs
|
||||
%doc COPYING*
|
||||
%license COPYING*
|
||||
%{_kf5_libdir}/libkworkspace5.so.*
|
||||
%{_kf5_libdir}/libplasma-geolocation-interface.so.*
|
||||
%{_kf5_libdir}/libtaskmanager.so.*
|
||||
@ -346,7 +344,7 @@ fi
|
||||
%{_kf5_libdir}/libcolorcorrect.so.*
|
||||
|
||||
%files
|
||||
%doc COPYING*
|
||||
%license COPYING*
|
||||
%{_kf5_bindir}/xembedsniproxy
|
||||
%{_kf5_bindir}/kcheckrunning
|
||||
%{_kf5_bindir}/kcminit
|
||||
@ -364,6 +362,7 @@ fi
|
||||
%{_kf5_bindir}/startplasmacompositor
|
||||
%{_kf5_bindir}/systemmonitor
|
||||
%{_kf5_bindir}/plasma_waitforname
|
||||
%{_kf5_bindir}/gmenudbusmenuproxy
|
||||
%{_kf5_configdir}/autostart/org.kde.plasmashell.desktop
|
||||
%{_kf5_configdir}/autostart/klipper.desktop
|
||||
%{_kf5_configdir}/autostart/krunner.desktop
|
||||
@ -415,9 +414,11 @@ fi
|
||||
%dir %{_kf5_sharedir}/sddm
|
||||
%dir %{_kf5_sharedir}/sddm/themes
|
||||
%{_kf5_sharedir}/sddm/themes/breeze/
|
||||
%{_kf5_debugdir}/*.categories
|
||||
%{_kf5_configdir}/autostart/gmenudbusmenuproxy.desktop
|
||||
|
||||
%files devel
|
||||
%doc COPYING*
|
||||
%license COPYING*
|
||||
%{_kf5_prefix}/include/kworkspace5/
|
||||
%{_kf5_prefix}/include/plasma/
|
||||
%{_kf5_prefix}/include/taskmanager/
|
||||
|
Loading…
x
Reference in New Issue
Block a user