mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-11-09 06:37:10 -08:00
kde-plasma/plasma-workspace: 5.21.5 version bump
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
This commit is contained in:
@@ -1,2 +1,3 @@
|
||||
DIST plasma-workspace-5.20.5.tar.xz 9041964 BLAKE2B b0bef6f74999d503064d55fdc670bd320a141c4619c0cfb7491158485096dfd636ad31dfbb4e9d7be3d86eca7b52bce97acb7aefe57377cce9e6a5ce1ad3cb9b SHA512 bd63502fdaa79deb380d254a3649a2810e4b2c6e748e9a38606f561cc46573a6e75631584a340a220742135f4682f9deea28c78b7fe4ad88ee6491f190b3212f
|
||||
DIST plasma-workspace-5.21.4.tar.xz 9714792 BLAKE2B 8ada47faf866c9ef2fd16a7925e393dbfcb15fa54e693b290ee61443846b1e11e110969408821b98edba570ced1168d786ec54e4e33d99221077dd24744aefb1 SHA512 80f4b55ce982c3e2d0761cba1d4f14659b2ef9ce9f6d362c4439c5ee404ea7bc9e458cfbfd7e37f9ff67b53cc02f1aa3c62c7b7ad9fcf57646ad59e9f60b94c5
|
||||
DIST plasma-workspace-5.21.5.tar.xz 9724000 BLAKE2B 2688c8aacd4e5584bb2660a287563aa683af4d469aad45f3521d31ec569d403204cceeb167062a9d8dfe591972db3758d5f46c21ca7c30453cd6740f3e3b470a SHA512 6918c1a29e977ac7f3ebf6ac7308f20f20712db96bf10599f3372987509630aa2ca8bc6adf0b1af4e543ccd2a2001e38ce02d759d25f09588c7c1aaa358af1b4
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
From e8e17c5ef8734fa56a78405e32277568e4e1095e Mon Sep 17 00:00:00 2001
|
||||
From: Nate Graham <nate@kde.org>
|
||||
Date: Thu, 22 Apr 2021 08:38:18 -0600
|
||||
Subject: [PATCH] [ksmserver] Remove default shortcuts for "Without
|
||||
Confirmation" actions
|
||||
|
||||
These actions bypass the user setting for whether or not to show the
|
||||
logout screen and always log out/reboot/etc. immediately. Because they
|
||||
have default keyboard shortcuts, they can be triggered by accident and
|
||||
cause unexpected logouts/reboots/etc.
|
||||
|
||||
BUG: 435954
|
||||
FIXED-IN: 5.22
|
||||
---
|
||||
ksmserver/server.cpp | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/ksmserver/server.cpp b/ksmserver/server.cpp
|
||||
index ac9da9f09..6f3179fb9 100644
|
||||
--- a/ksmserver/server.cpp
|
||||
+++ b/ksmserver/server.cpp
|
||||
@@ -880,17 +880,17 @@ void KSMServer::setupShortcuts()
|
||||
|
||||
a = actionCollection->addAction(QStringLiteral("Log Out Without Confirmation"));
|
||||
a->setText(i18n("Log Out Without Confirmation"));
|
||||
- KGlobalAccel::self()->setGlobalShortcut(a, QList<QKeySequence>() << Qt::ALT + Qt::CTRL + Qt::SHIFT + Qt::Key_Delete);
|
||||
+ KGlobalAccel::self()->setGlobalShortcut(a, QKeySequence());
|
||||
connect(a, &QAction::triggered, this, &KSMServer::logoutWithoutConfirmation);
|
||||
|
||||
a = actionCollection->addAction(QStringLiteral("Halt Without Confirmation"));
|
||||
a->setText(i18n("Halt Without Confirmation"));
|
||||
- KGlobalAccel::self()->setGlobalShortcut(a, QList<QKeySequence>() << Qt::ALT + Qt::CTRL + Qt::SHIFT + Qt::Key_PageDown);
|
||||
+ KGlobalAccel::self()->setGlobalShortcut(a, QKeySequence());
|
||||
connect(a, &QAction::triggered, this, &KSMServer::haltWithoutConfirmation);
|
||||
|
||||
a = actionCollection->addAction(QStringLiteral("Reboot Without Confirmation"));
|
||||
a->setText(i18n("Reboot Without Confirmation"));
|
||||
- KGlobalAccel::self()->setGlobalShortcut(a, QList<QKeySequence>() << Qt::ALT + Qt::CTRL + Qt::SHIFT + Qt::Key_PageUp);
|
||||
+ KGlobalAccel::self()->setGlobalShortcut(a, QKeySequence());
|
||||
connect(a, &QAction::triggered, this, &KSMServer::rebootWithoutConfirmation);
|
||||
}
|
||||
}
|
||||
--
|
||||
GitLab
|
||||
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
From 1cf02aad96bfe650a1f4d1465ae15234205fb061 Mon Sep 17 00:00:00 2001
|
||||
From: Bharadwaj Raju <bharadwaj.raju777@protonmail.com>
|
||||
Date: Mon, 26 Apr 2021 18:47:51 +0000
|
||||
Subject: [PATCH] Load panelOpacity from config parent, not from config
|
||||
|
||||
BUG: 434285
|
||||
FIXED-IN: 5.22
|
||||
---
|
||||
shell/panelview.cpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/shell/panelview.cpp b/shell/panelview.cpp
|
||||
index 5ed743024..4533e856f 100644
|
||||
--- a/shell/panelview.cpp
|
||||
+++ b/shell/panelview.cpp
|
||||
@@ -633,7 +633,7 @@ void PanelView::restore()
|
||||
// the place for this config key is changed in Plasma 5.9
|
||||
// Do NOT use readConfigValueWithFallBack
|
||||
setVisibilityMode((VisibilityMode)panelConfig.parent().readEntry<int>("panelVisibility", panelConfig.readEntry<int>("panelVisibility", (int)NormalPanel)));
|
||||
- setOpacityMode((OpacityMode)readConfigValueWithFallBack("panelOpacity", PanelView::OpacityMode::Adaptive));
|
||||
+ setOpacityMode((OpacityMode)config().parent().readEntry<int>("panelOpacity", configDefaults().parent().readEntry<int>("panelOpacity", PanelView::OpacityMode::Adaptive)));
|
||||
m_initCompleted = true;
|
||||
resizePanel();
|
||||
positionPanel();
|
||||
--
|
||||
GitLab
|
||||
|
||||
@@ -0,0 +1,376 @@
|
||||
From 7db8d5ee551f30576588d31470fe287b6ad2adcd Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Niccol=C3=B2=20Venerandi?= <niccolo@venerandi.com>
|
||||
Date: Mon, 1 Mar 2021 22:14:43 +0000
|
||||
Subject: [PATCH] Add support for adaptive opacity panels
|
||||
|
||||
Co-authored-by: Jan Blackquill <uhhadd@gmail.com>
|
||||
---
|
||||
libtaskmanager/taskfilterproxymodel.cpp | 26 ++++++++++++++++++
|
||||
libtaskmanager/taskfilterproxymodel.h | 19 ++++++++++++++
|
||||
libtaskmanager/tasksmodel.cpp | 11 ++++++++
|
||||
libtaskmanager/tasksmodel.h | 19 ++++++++++++++
|
||||
shell/panelconfigview.cpp | 11 ++++++++
|
||||
shell/panelconfigview.h | 5 ++++
|
||||
shell/panelview.cpp | 35 +++++++++++++++++++++++++
|
||||
shell/panelview.h | 28 ++++++++++++++++++++
|
||||
8 files changed, 154 insertions(+)
|
||||
|
||||
diff --git a/libtaskmanager/taskfilterproxymodel.cpp b/libtaskmanager/taskfilterproxymodel.cpp
|
||||
index 37a3076fd..6bb27537a 100644
|
||||
--- a/libtaskmanager/taskfilterproxymodel.cpp
|
||||
+++ b/libtaskmanager/taskfilterproxymodel.cpp
|
||||
@@ -40,6 +40,7 @@ public:
|
||||
bool filterByScreen = false;
|
||||
bool filterByActivity = false;
|
||||
bool filterNotMinimized = false;
|
||||
+ bool filterNotMaximized = false;
|
||||
bool filterSkipTaskbar = true;
|
||||
bool filterSkipPager = false;
|
||||
|
||||
@@ -185,6 +186,22 @@ void TaskFilterProxyModel::setFilterNotMinimized(bool filter)
|
||||
}
|
||||
}
|
||||
|
||||
+bool TaskFilterProxyModel::filterNotMaximized() const
|
||||
+{
|
||||
+ return d->filterNotMaximized;
|
||||
+}
|
||||
+
|
||||
+void TaskFilterProxyModel::setFilterNotMaximized(bool filter)
|
||||
+{
|
||||
+ if (d->filterNotMaximized != filter) {
|
||||
+ d->filterNotMaximized = filter;
|
||||
+
|
||||
+ invalidateFilter();
|
||||
+
|
||||
+ emit filterNotMaximizedChanged();
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
bool TaskFilterProxyModel::filterSkipTaskbar() const
|
||||
{
|
||||
return d->filterSkipTaskbar;
|
||||
@@ -301,6 +318,15 @@ bool TaskFilterProxyModel::acceptsRow(int sourceRow) const
|
||||
}
|
||||
}
|
||||
|
||||
+ // Filter not maximized.
|
||||
+ if (d->filterNotMaximized) {
|
||||
+ bool isMaximized = sourceIdx.data(AbstractTasksModel::IsMaximized).toBool();
|
||||
+
|
||||
+ if (!isMaximized) {
|
||||
+ return false;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
return true;
|
||||
}
|
||||
|
||||
diff --git a/libtaskmanager/taskfilterproxymodel.h b/libtaskmanager/taskfilterproxymodel.h
|
||||
index 7ad2cb9ce..88ba3adab 100644
|
||||
--- a/libtaskmanager/taskfilterproxymodel.h
|
||||
+++ b/libtaskmanager/taskfilterproxymodel.h
|
||||
@@ -52,6 +52,7 @@ class TASKMANAGER_EXPORT TaskFilterProxyModel : public QSortFilterProxyModel, pu
|
||||
Q_PROPERTY(bool filterByScreen READ filterByScreen WRITE setFilterByScreen NOTIFY filterByScreenChanged)
|
||||
Q_PROPERTY(bool filterByActivity READ filterByActivity WRITE setFilterByActivity NOTIFY filterByActivityChanged)
|
||||
Q_PROPERTY(bool filterNotMinimized READ filterNotMinimized WRITE setFilterNotMinimized NOTIFY filterNotMinimizedChanged)
|
||||
+ Q_PROPERTY(bool filterNotMaximized READ filterNotMaximized WRITE setFilterNotMaximized NOTIFY filterNotMaximizedChanged)
|
||||
Q_PROPERTY(bool filterSkipTaskbar READ filterSkipTaskbar WRITE setFilterSkipTaskbar NOTIFY filterSkipTaskbarChanged)
|
||||
Q_PROPERTY(bool filterSkipPager READ filterSkipPager WRITE setFilterSkipPager NOTIFY filterSkipPagerChanged)
|
||||
|
||||
@@ -212,6 +213,23 @@ public:
|
||||
**/
|
||||
void setFilterNotMinimized(bool filter);
|
||||
|
||||
+ /**
|
||||
+ * Whether non-maximized tasks should be filtered. Defaults to
|
||||
+ * @c false.
|
||||
+ *
|
||||
+ * @see setFilterNotMaximized
|
||||
+ * @returns @c true if non-maximized tasks should be filtered.
|
||||
+ **/
|
||||
+ bool filterNotMaximized() const;
|
||||
+
|
||||
+ /**
|
||||
+ * Set whether non-maximized tasks should be filtered.
|
||||
+ *
|
||||
+ * @see filterNotMaximized
|
||||
+ * @param filter Whether non-maximized tasks should be filtered.
|
||||
+ **/
|
||||
+ void setFilterNotMaximized(bool filter);
|
||||
+
|
||||
/**
|
||||
* Whether tasks which should be omitted from 'task bars' should be
|
||||
* filtered. Defaults to @c true.
|
||||
@@ -285,6 +303,7 @@ Q_SIGNALS:
|
||||
void filterByScreenChanged() const;
|
||||
void filterByActivityChanged() const;
|
||||
void filterNotMinimizedChanged() const;
|
||||
+ void filterNotMaximizedChanged() const;
|
||||
void filterSkipTaskbarChanged() const;
|
||||
void filterSkipPagerChanged() const;
|
||||
void demandingAttentionSkipsFiltersChanged() const;
|
||||
diff --git a/libtaskmanager/tasksmodel.cpp b/libtaskmanager/tasksmodel.cpp
|
||||
index c6e66926b..11eb53fdf 100644
|
||||
--- a/libtaskmanager/tasksmodel.cpp
|
||||
+++ b/libtaskmanager/tasksmodel.cpp
|
||||
@@ -302,6 +302,7 @@ void TasksModel::Private::initModels()
|
||||
QObject::connect(filterProxyModel, &TaskFilterProxyModel::filterByScreenChanged, q, &TasksModel::filterByScreenChanged);
|
||||
QObject::connect(filterProxyModel, &TaskFilterProxyModel::filterByActivityChanged, q, &TasksModel::filterByActivityChanged);
|
||||
QObject::connect(filterProxyModel, &TaskFilterProxyModel::filterNotMinimizedChanged, q, &TasksModel::filterNotMinimizedChanged);
|
||||
+ QObject::connect(filterProxyModel, &TaskFilterProxyModel::filterNotMaximizedChanged, q, &TasksModel::filterNotMaximizedChanged);
|
||||
|
||||
groupingProxyModel = new TaskGroupingProxyModel(q);
|
||||
groupingProxyModel->setSourceModel(filterProxyModel);
|
||||
@@ -1152,6 +1153,16 @@ void TasksModel::setFilterNotMinimized(bool filter)
|
||||
d->filterProxyModel->setFilterNotMinimized(filter);
|
||||
}
|
||||
|
||||
+bool TasksModel::filterNotMaximized() const
|
||||
+{
|
||||
+ return d->filterProxyModel->filterNotMaximized();
|
||||
+}
|
||||
+
|
||||
+void TasksModel::setFilterNotMaximized(bool filter)
|
||||
+{
|
||||
+ d->filterProxyModel->setFilterNotMaximized(filter);
|
||||
+}
|
||||
+
|
||||
TasksModel::SortMode TasksModel::sortMode() const
|
||||
{
|
||||
return d->sortMode;
|
||||
diff --git a/libtaskmanager/tasksmodel.h b/libtaskmanager/tasksmodel.h
|
||||
index 18e3d9bb4..8c84012d0 100644
|
||||
--- a/libtaskmanager/tasksmodel.h
|
||||
+++ b/libtaskmanager/tasksmodel.h
|
||||
@@ -73,6 +73,7 @@ class TASKMANAGER_EXPORT TasksModel : public QSortFilterProxyModel, public Abstr
|
||||
Q_PROPERTY(bool filterByScreen READ filterByScreen WRITE setFilterByScreen NOTIFY filterByScreenChanged)
|
||||
Q_PROPERTY(bool filterByActivity READ filterByActivity WRITE setFilterByActivity NOTIFY filterByActivityChanged)
|
||||
Q_PROPERTY(bool filterNotMinimized READ filterNotMinimized WRITE setFilterNotMinimized NOTIFY filterNotMinimizedChanged)
|
||||
+ Q_PROPERTY(bool filterNotMaximized READ filterNotMaximized WRITE setFilterNotMaximized NOTIFY filterNotMaximized)
|
||||
|
||||
Q_PROPERTY(SortMode sortMode READ sortMode WRITE setSortMode NOTIFY sortModeChanged)
|
||||
Q_PROPERTY(bool separateLaunchers READ separateLaunchers WRITE setSeparateLaunchers NOTIFY separateLaunchersChanged)
|
||||
@@ -295,6 +296,23 @@ public:
|
||||
**/
|
||||
void setFilterNotMinimized(bool filter);
|
||||
|
||||
+ /**
|
||||
+ * Whether non-maximized tasks should be filtered. Defaults to
|
||||
+ * @c false.
|
||||
+ *
|
||||
+ * @see setFilterNotMaximized
|
||||
+ * @returns @c true if non-maximized tasks should be filtered.
|
||||
+ **/
|
||||
+ bool filterNotMaximized() const;
|
||||
+
|
||||
+ /**
|
||||
+ * Set whether non-maximized tasks should be filtered.
|
||||
+ *
|
||||
+ * @see filterNotMaximized
|
||||
+ * @param filter Whether non-maximized tasks should be filtered.
|
||||
+ **/
|
||||
+ void setFilterNotMaximized(bool filter);
|
||||
+
|
||||
/**
|
||||
* The sort mode used in sorting tasks. Defaults to SortAlpha.
|
||||
*
|
||||
@@ -848,6 +866,7 @@ Q_SIGNALS:
|
||||
void filterByScreenChanged() const;
|
||||
void filterByActivityChanged() const;
|
||||
void filterNotMinimizedChanged() const;
|
||||
+ void filterNotMaximizedChanged() const;
|
||||
void sortModeChanged() const;
|
||||
void separateLaunchersChanged() const;
|
||||
void launchInPlaceChanged() const;
|
||||
diff --git a/shell/panelconfigview.cpp b/shell/panelconfigview.cpp
|
||||
index a331c0bb2..5637f3233 100644
|
||||
--- a/shell/panelconfigview.cpp
|
||||
+++ b/shell/panelconfigview.cpp
|
||||
@@ -289,6 +289,17 @@ PanelView::VisibilityMode PanelConfigView::visibilityMode() const
|
||||
return m_panelView->visibilityMode();
|
||||
}
|
||||
|
||||
+void PanelConfigView::setOpacityMode(PanelView::OpacityMode mode)
|
||||
+{
|
||||
+ m_panelView->setOpacityMode(mode);
|
||||
+ emit opacityModeChanged();
|
||||
+}
|
||||
+
|
||||
+PanelView::OpacityMode PanelConfigView::opacityMode() const
|
||||
+{
|
||||
+ return m_panelView->opacityMode();
|
||||
+}
|
||||
+
|
||||
Plasma::FrameSvg::EnabledBorders PanelConfigView::enabledBorders() const
|
||||
{
|
||||
return m_enabledBorders;
|
||||
diff --git a/shell/panelconfigview.h b/shell/panelconfigview.h
|
||||
index 8e0abd314..db2af6bf9 100644
|
||||
--- a/shell/panelconfigview.h
|
||||
+++ b/shell/panelconfigview.h
|
||||
@@ -51,6 +51,7 @@ class PanelConfigView : public PlasmaQuick::ConfigView
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(PanelView::VisibilityMode visibilityMode READ visibilityMode WRITE setVisibilityMode NOTIFY visibilityModeChanged)
|
||||
+ Q_PROPERTY(PanelView::OpacityMode opacityMode READ opacityMode WRITE setOpacityMode NOTIFY opacityModeChanged)
|
||||
Q_PROPERTY(Plasma::FrameSvg::EnabledBorders enabledBorders READ enabledBorders NOTIFY enabledBordersChanged)
|
||||
|
||||
public:
|
||||
@@ -62,6 +63,9 @@ public:
|
||||
PanelView::VisibilityMode visibilityMode() const;
|
||||
void setVisibilityMode(PanelView::VisibilityMode mode);
|
||||
|
||||
+ PanelView::OpacityMode opacityMode() const;
|
||||
+ void setOpacityMode(PanelView::OpacityMode mode);
|
||||
+
|
||||
Plasma::FrameSvg::EnabledBorders enabledBorders() const;
|
||||
|
||||
protected:
|
||||
@@ -84,6 +88,7 @@ private Q_SLOTS:
|
||||
|
||||
Q_SIGNALS:
|
||||
void visibilityModeChanged();
|
||||
+ void opacityModeChanged();
|
||||
void enabledBordersChanged();
|
||||
|
||||
private:
|
||||
diff --git a/shell/panelview.cpp b/shell/panelview.cpp
|
||||
index 4654a7a72..a699cc84c 100644
|
||||
--- a/shell/panelview.cpp
|
||||
+++ b/shell/panelview.cpp
|
||||
@@ -64,6 +64,7 @@ PanelView::PanelView(ShellCorona *corona, QScreen *targetScreen, QWindow *parent
|
||||
, m_alignment(Qt::AlignLeft)
|
||||
, m_corona(corona)
|
||||
, m_visibilityMode(NormalPanel)
|
||||
+ , m_opacityMode(Adaptive)
|
||||
, m_backgroundHints(Plasma::Types::StandardBackground)
|
||||
, m_shellSurface(nullptr)
|
||||
{
|
||||
@@ -76,8 +77,10 @@ PanelView::PanelView(ShellCorona *corona, QScreen *targetScreen, QWindow *parent
|
||||
setClearBeforeRendering(true);
|
||||
setColor(QColor(Qt::transparent));
|
||||
setFlags(Qt::FramelessWindowHint | Qt::WindowDoesNotAcceptFocus);
|
||||
+ updateAdaptiveOpacityEnabled();
|
||||
|
||||
connect(&m_theme, &Plasma::Theme::themeChanged, this, &PanelView::updateMask);
|
||||
+ connect(&m_theme, &Plasma::Theme::themeChanged, this, &PanelView::updateAdaptiveOpacityEnabled);
|
||||
connect(this, &PanelView::backgroundHintsChanged, this, &PanelView::updateMask);
|
||||
connect(this, &PanelView::backgroundHintsChanged, this, &PanelView::updateEnabledBorders);
|
||||
// TODO: add finished/componentComplete signal to QuickViewSharedEngine,
|
||||
@@ -405,6 +408,37 @@ PanelView::VisibilityMode PanelView::visibilityMode() const
|
||||
return m_visibilityMode;
|
||||
}
|
||||
|
||||
+PanelView::OpacityMode PanelView::opacityMode() const
|
||||
+{
|
||||
+ if (!m_theme.adaptiveTransparencyEnabled()) {
|
||||
+ return PanelView::Translucent;
|
||||
+ }
|
||||
+ return m_opacityMode;
|
||||
+}
|
||||
+
|
||||
+bool PanelView::adaptiveOpacityEnabled()
|
||||
+{
|
||||
+ return m_theme.adaptiveTransparencyEnabled();
|
||||
+}
|
||||
+
|
||||
+void PanelView::setOpacityMode(PanelView::OpacityMode mode)
|
||||
+{
|
||||
+ if (m_opacityMode != mode) {
|
||||
+ m_opacityMode = mode;
|
||||
+ if (config().isValid() && config().parent().isValid()) {
|
||||
+ config().parent().writeEntry("panelOpacity", (int)mode);
|
||||
+ m_corona->requestApplicationConfigSync();
|
||||
+ }
|
||||
+ emit opacityModeChanged();
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+void PanelView::updateAdaptiveOpacityEnabled()
|
||||
+{
|
||||
+ emit opacityModeChanged();
|
||||
+ emit adaptiveOpacityEnabledChanged();
|
||||
+}
|
||||
+
|
||||
void PanelView::positionPanel()
|
||||
{
|
||||
if (!containment()) {
|
||||
@@ -599,6 +633,7 @@ void PanelView::restore()
|
||||
// the place for this config key is changed in Plasma 5.9
|
||||
// Do NOT use readConfigValueWithFallBack
|
||||
setVisibilityMode((VisibilityMode)panelConfig.parent().readEntry<int>("panelVisibility", panelConfig.readEntry<int>("panelVisibility", (int)NormalPanel)));
|
||||
+ setOpacityMode((OpacityMode)readConfigValueWithFallBack("panelOpacity", PanelView::OpacityMode::Adaptive));
|
||||
m_initCompleted = true;
|
||||
resizePanel();
|
||||
positionPanel();
|
||||
diff --git a/shell/panelview.h b/shell/panelview.h
|
||||
index 60e4d446e..c312d4907 100644
|
||||
--- a/shell/panelview.h
|
||||
+++ b/shell/panelview.h
|
||||
@@ -100,6 +100,18 @@ class PanelView : public PlasmaQuick::ContainmentView
|
||||
*/
|
||||
Q_PROPERTY(VisibilityMode visibilityMode READ visibilityMode WRITE setVisibilityMode NOTIFY visibilityModeChanged)
|
||||
|
||||
+ /**
|
||||
+ * Property that determines how a panel's opacity behaves.
|
||||
+ *
|
||||
+ * @see OpacityMode
|
||||
+ */
|
||||
+ Q_PROPERTY(OpacityMode opacityMode READ opacityMode WRITE setOpacityMode NOTIFY opacityModeChanged)
|
||||
+
|
||||
+ /**
|
||||
+ /* Property that determines whether adaptive opacity is used.
|
||||
+ */
|
||||
+ Q_PROPERTY(bool adaptiveOpacityEnabled READ adaptiveOpacityEnabled NOTIFY adaptiveOpacityEnabledChanged)
|
||||
+
|
||||
public:
|
||||
enum VisibilityMode {
|
||||
NormalPanel = 0, /** default, always visible panel, the windowmanager reserves a places for it */
|
||||
@@ -109,6 +121,14 @@ public:
|
||||
};
|
||||
Q_ENUM(VisibilityMode)
|
||||
|
||||
+ /** Enumeration of possible opacity modes. */
|
||||
+ enum OpacityMode {
|
||||
+ Adaptive = 0, /** The panel will change opacity depending on the presence of a maximized window */
|
||||
+ Opaque, /** The panel will always be opaque */
|
||||
+ Translucent /** The panel will always be translucent */
|
||||
+ };
|
||||
+ Q_ENUM(OpacityMode)
|
||||
+
|
||||
explicit PanelView(ShellCorona *corona, QScreen *targetScreen = nullptr, QWindow *parent = nullptr);
|
||||
~PanelView() override;
|
||||
|
||||
@@ -147,6 +167,11 @@ public:
|
||||
VisibilityMode visibilityMode() const;
|
||||
void setVisibilityMode(PanelView::VisibilityMode mode);
|
||||
|
||||
+ PanelView::OpacityMode opacityMode() const;
|
||||
+ bool adaptiveOpacityEnabled();
|
||||
+ void setOpacityMode(PanelView::OpacityMode mode);
|
||||
+ void updateAdaptiveOpacityEnabled();
|
||||
+
|
||||
/**
|
||||
* @returns the geometry of the panel given a distance
|
||||
*/
|
||||
@@ -185,6 +210,8 @@ Q_SIGNALS:
|
||||
// QWindow does not have a property for screen. Adding this property requires re-implementing the signal
|
||||
void screenToFollowChanged(QScreen *screen);
|
||||
void visibilityModeChanged();
|
||||
+ void opacityModeChanged();
|
||||
+ void adaptiveOpacityEnabledChanged();
|
||||
|
||||
protected Q_SLOTS:
|
||||
/**
|
||||
@@ -235,6 +262,7 @@ private:
|
||||
ShellCorona *m_corona;
|
||||
QTimer m_strutsTimer;
|
||||
VisibilityMode m_visibilityMode;
|
||||
+ OpacityMode m_opacityMode;
|
||||
Plasma::Theme m_theme;
|
||||
QTimer m_positionPaneltimer;
|
||||
QTimer m_unhideTimer;
|
||||
--
|
||||
GitLab
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
</maintainer>
|
||||
<use>
|
||||
<flag name="appstream">Enable AppStream software metadata support</flag>
|
||||
<flag name="calculator">Enable calculator runner using <pkg>sci-libs/libqalculate</pkg></flag>
|
||||
<flag name="geolocation">Enables dataengine providing location information</flag>
|
||||
<flag name="qalculate">Enable Qalculate runner using <pkg>sci-libs/libqalculate</pkg></flag>
|
||||
<flag name="screencast">Enable screencast portal using <pkg>media-video/pipewire</pkg></flag>
|
||||
|
||||
@@ -0,0 +1,211 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
ECM_HANDBOOK="forceoptional"
|
||||
ECM_TEST="forceoptional"
|
||||
KFMIN=5.82.0
|
||||
PVCUT=$(ver_cut 1-3)
|
||||
QTMIN=5.15.2
|
||||
VIRTUALX_REQUIRED="test"
|
||||
inherit ecm kde.org
|
||||
|
||||
DESCRIPTION="KDE Plasma workspace"
|
||||
|
||||
LICENSE="GPL-2" # TODO: CHECK
|
||||
SLOT="5"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
|
||||
IUSE="appstream +calculator +calendar +fontconfig geolocation gps screencast
|
||||
+semantic-desktop systemd telemetry"
|
||||
|
||||
REQUIRED_USE="gps? ( geolocation )"
|
||||
RESTRICT+=" test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
>=dev-libs/wayland-1.15
|
||||
>=dev-qt/qtdbus-${QTMIN}:5
|
||||
>=dev-qt/qtdeclarative-${QTMIN}:5[widgets]
|
||||
>=dev-qt/qtgui-${QTMIN}:5=[jpeg]
|
||||
>=dev-qt/qtnetwork-${QTMIN}:5
|
||||
>=dev-qt/qtsql-${QTMIN}:5
|
||||
>=dev-qt/qtsvg-${QTMIN}:5
|
||||
>=dev-qt/qtwayland-${QTMIN}:5
|
||||
>=dev-qt/qtwidgets-${QTMIN}:5
|
||||
>=dev-qt/qtx11extras-${QTMIN}:5
|
||||
>=dev-qt/qtxml-${QTMIN}:5
|
||||
>=kde-frameworks/kactivities-${KFMIN}:5
|
||||
>=kde-frameworks/kactivities-stats-${KFMIN}:5
|
||||
>=kde-frameworks/kauth-${KFMIN}:5
|
||||
>=kde-frameworks/kbookmarks-${KFMIN}:5
|
||||
>=kde-frameworks/kcompletion-${KFMIN}:5
|
||||
>=kde-frameworks/kconfig-${KFMIN}:5
|
||||
>=kde-frameworks/kconfigwidgets-${KFMIN}:5
|
||||
>=kde-frameworks/kcoreaddons-${KFMIN}:5
|
||||
>=kde-frameworks/kcrash-${KFMIN}:5
|
||||
>=kde-frameworks/kdbusaddons-${KFMIN}:5
|
||||
>=kde-frameworks/kdeclarative-${KFMIN}:5
|
||||
>=kde-frameworks/kded-${KFMIN}:5
|
||||
>=kde-frameworks/kdelibs4support-${KFMIN}:5
|
||||
>=kde-frameworks/kglobalaccel-${KFMIN}:5
|
||||
>=kde-frameworks/kguiaddons-${KFMIN}:5
|
||||
>=kde-frameworks/ki18n-${KFMIN}:5
|
||||
>=kde-frameworks/kiconthemes-${KFMIN}:5
|
||||
>=kde-frameworks/kidletime-${KFMIN}:5
|
||||
>=kde-frameworks/kio-${KFMIN}:5
|
||||
>=kde-frameworks/kitemmodels-${KFMIN}:5
|
||||
>=kde-frameworks/kitemviews-${KFMIN}:5
|
||||
>=kde-frameworks/kjobwidgets-${KFMIN}:5
|
||||
>=kde-frameworks/knewstuff-${KFMIN}:5
|
||||
>=kde-frameworks/knotifications-${KFMIN}:5
|
||||
>=kde-frameworks/knotifyconfig-${KFMIN}:5
|
||||
>=kde-frameworks/kpackage-${KFMIN}:5
|
||||
>=kde-frameworks/kpeople-${KFMIN}:5
|
||||
>=kde-frameworks/krunner-${KFMIN}:5
|
||||
>=kde-frameworks/kservice-${KFMIN}:5
|
||||
>=kde-frameworks/ktexteditor-${KFMIN}:5
|
||||
>=kde-frameworks/ktextwidgets-${KFMIN}:5
|
||||
>=kde-frameworks/kwallet-${KFMIN}:5
|
||||
>=kde-frameworks/kwayland-${KFMIN}:5
|
||||
>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
|
||||
>=kde-frameworks/kwindowsystem-${KFMIN}:5
|
||||
>=kde-frameworks/kxmlgui-${KFMIN}:5
|
||||
>=kde-frameworks/plasma-${KFMIN}:5
|
||||
>=kde-frameworks/prison-${KFMIN}:5[qml]
|
||||
>=kde-frameworks/solid-${KFMIN}:5
|
||||
>=kde-plasma/breeze-${PVCUT}:5
|
||||
>=kde-plasma/kscreenlocker-${PVCUT}:5
|
||||
>=kde-plasma/kwin-${PVCUT}:5
|
||||
>=kde-plasma/libkscreen-${PVCUT}:5
|
||||
>=kde-plasma/libksysguard-${PVCUT}:5
|
||||
>=kde-plasma/libkworkspace-${PVCUT}:5
|
||||
>=media-libs/phonon-4.11.0
|
||||
sys-libs/zlib
|
||||
x11-libs/libICE
|
||||
x11-libs/libSM
|
||||
x11-libs/libX11
|
||||
x11-libs/libXau
|
||||
x11-libs/libxcb
|
||||
x11-libs/libXcursor
|
||||
x11-libs/libXfixes
|
||||
x11-libs/libXrender
|
||||
x11-libs/libXtst
|
||||
x11-libs/xcb-util
|
||||
x11-libs/xcb-util-image
|
||||
appstream? ( dev-libs/appstream[qt5] )
|
||||
calculator? ( sci-libs/libqalculate:= )
|
||||
calendar? ( >=kde-frameworks/kholidays-${KFMIN}:5 )
|
||||
fontconfig? (
|
||||
media-libs/fontconfig
|
||||
media-libs/freetype
|
||||
x11-libs/libXft
|
||||
x11-libs/xcb-util-image
|
||||
)
|
||||
geolocation? ( >=kde-frameworks/networkmanager-qt-${KFMIN}:5 )
|
||||
gps? ( sci-geosciences/gpsd )
|
||||
screencast? (
|
||||
>=media-video/pipewire-0.3:=
|
||||
x11-libs/libdrm
|
||||
)
|
||||
semantic-desktop? ( >=kde-frameworks/baloo-${KFMIN}:5 )
|
||||
telemetry? ( dev-libs/kuserfeedback:5 )
|
||||
"
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
>=dev-libs/plasma-wayland-protocols-1.1.1
|
||||
>=dev-qt/qtconcurrent-${QTMIN}:5
|
||||
x11-base/xorg-proto
|
||||
fontconfig? ( x11-libs/libXrender )
|
||||
"
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
app-text/iso-codes
|
||||
>=dev-qt/qdbus-${QTMIN}:5
|
||||
>=dev-qt/qtgraphicaleffects-${QTMIN}:5
|
||||
>=dev-qt/qtpaths-${QTMIN}:5
|
||||
>=dev-qt/qtquickcontrols-${QTMIN}:5[widgets]
|
||||
>=dev-qt/qtquickcontrols2-${QTMIN}:5
|
||||
>=kde-apps/kio-extras-19.04.3:5
|
||||
>=kde-frameworks/kdesu-${KFMIN}:5
|
||||
>=kde-frameworks/kirigami-${KFMIN}:5
|
||||
>=kde-frameworks/kquickcharts-${KFMIN}:5
|
||||
>=kde-plasma/ksysguard-${PVCUT}:5
|
||||
>=kde-plasma/milou-${PVCUT}:5
|
||||
>=kde-plasma/plasma-integration-${PVCUT}:5
|
||||
x11-apps/xmessage
|
||||
x11-apps/xprop
|
||||
x11-apps/xrdb
|
||||
x11-apps/xsetroot
|
||||
systemd? ( sys-apps/dbus[user-session] )
|
||||
!systemd? ( sys-apps/dbus )
|
||||
!<kde-plasma/plasma-desktop-5.19.80:5
|
||||
"
|
||||
BDEPEND="virtual/pkgconfig"
|
||||
PDEPEND="
|
||||
>=kde-plasma/kde-cli-tools-${PVCUT}:5
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-5.14.2-split-libkworkspace.patch"
|
||||
"${FILESDIR}/${P}-transparency.patch" # KDE-bug 434202
|
||||
"${FILESDIR}/${P}-transparency-panelConfig.patch" # KDE-bug 434285
|
||||
"${FILESDIR}/${P}-dangerous-shortcuts.patch" # KDE-bug 435954
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
rm po/ta/kcm_autostart.po || die # spurious file
|
||||
|
||||
ecm_src_prepare
|
||||
|
||||
cmake_comment_add_subdirectory libkworkspace
|
||||
# delete colliding libkworkspace translations
|
||||
if [[ ${KDE_BUILD_TYPE} = release ]]; then
|
||||
find po -type f -name "*po" -and -name "libkworkspace*" -delete || die
|
||||
fi
|
||||
|
||||
# TODO: try to get a build switch upstreamed
|
||||
if ! use screencast; then
|
||||
sed -e "s/^pkg_check_modules.*PipeWire/#&/" -i CMakeLists.txt || die
|
||||
fi
|
||||
|
||||
# KDE-bug: 433730
|
||||
use calculator ||
|
||||
cmake_run_in runners cmake_comment_add_subdirectory calculator
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local mycmakeargs=(
|
||||
-DBUILD_xembed-sni-proxy=OFF
|
||||
$(cmake_use_find_package appstream AppStreamQt)
|
||||
$(cmake_use_find_package calendar KF5Holidays)
|
||||
$(cmake_use_find_package fontconfig Fontconfig)
|
||||
$(cmake_use_find_package geolocation KF5NetworkManagerQt)
|
||||
$(cmake_use_find_package semantic-desktop KF5Baloo)
|
||||
$(cmake_use_find_package telemetry KUserFeedback)
|
||||
)
|
||||
|
||||
use geolocation && mycmakeargs+=( $(cmake_use_find_package gps libgps) )
|
||||
|
||||
ecm_src_configure
|
||||
}
|
||||
|
||||
src_install() {
|
||||
ecm_src_install
|
||||
|
||||
# default startup and shutdown scripts
|
||||
insinto /etc/xdg/plasma-workspace/env
|
||||
doins "${FILESDIR}"/10-agent-startup.sh
|
||||
|
||||
insinto /etc/xdg/plasma-workspace/shutdown
|
||||
doins "${FILESDIR}"/10-agent-shutdown.sh
|
||||
fperms +x /etc/xdg/plasma-workspace/shutdown/10-agent-shutdown.sh
|
||||
}
|
||||
|
||||
pkg_postinst () {
|
||||
ecm_pkg_postinst
|
||||
|
||||
# Clean up pre-5.17.4 dirs
|
||||
rmdir -v "${EROOT}"/etc/plasma{/startup,/shutdown,} 2> /dev/null
|
||||
|
||||
elog "To enable gpg-agent and/or ssh-agent in Plasma sessions,"
|
||||
elog "edit ${EPREFIX}/etc/xdg/plasma-workspace/env/10-agent-startup.sh"
|
||||
elog "and ${EPREFIX}/etc/xdg/plasma-workspace/shutdown/10-agent-shutdown.sh"
|
||||
}
|
||||
Reference in New Issue
Block a user