Compare commits

..

No commits in common. 'ubuntu/plucky' and 'ubuntu/cosmic' have entirely different histories.

245
debian/changelog vendored

@ -1,168 +1,74 @@
lxqt-panel (2.1.0-0ubuntu1) plucky; urgency=medium lxqt-panel (0.13.0-0ubuntu5) cosmic; urgency=medium
* New upstream release. * Add optional overriding of icon theme.
- Bump build dependencies. * Run wrap-and-sort.
-- Simon Quigley <tsimonq2@ubuntu.com> Fri, 15 Nov 2024 15:32:51 -0600
lxqt-panel (2.0.1-0ubuntu1) oracular; urgency=medium
* New upstream release.
* Update copyright file.
* Bump Standards-Version to 4.7.0, no changes necessary.
* Dropped trim-custom-commands-prevent-crash.patch, applied upstream.
* Adjust build dependencies.
-- Aaron Rainbolt <arraybolt3@ubuntu.com> Thu, 15 Aug 2024 16:25:54 -0500
lxqt-panel (1.4.0-0ubuntu2) noble; urgency=medium
* Apply upstream patch fixing a crash on a custom command.
-- Simon Quigley <tsimonq2@ubuntu.com> Fri, 22 Dec 2023 16:40:34 -0600
lxqt-panel (1.4.0-0ubuntu1) noble; urgency=medium
* New upstream release.
* Fixed copyright file.
* Bumped build dependency versions.
* Added lxqt-menu-data as a build dependency.
* Removed no-longer-existing directory from lxqt-panel.install.
* Move a README file for qeyes-types to the proper documentation directory.
-- Aaron Rainbolt <arraybolt3@gmail.com> Mon, 13 Nov 2023 11:34:09 -0600 -- Walter Lapchynski <wxl@ubuntu.com> Tue, 21 Aug 2018 23:37:22 -0700
lxqt-panel (1.3.0-0ubuntu1) mantic; urgency=medium lxqt-panel (0.13.0-0ubuntu4) cosmic; urgency=medium
* New upstream release. * Change the Uploaders to Ubuntu uploaders.
* Bump build dependencies. * Update Standards-version to 4.2.0, no changes needed.
* Fix some build dependencies that were renamed. * Add an autoexpansion feature to the spacer plugin.
* Remove redundant hardening rule.
-- Simon Quigley <tsimonq2@ubuntu.com> Fri, 11 Aug 2023 12:49:49 -0500 -- Simon Quigley <tsimonq2@ubuntu.com> Thu, 16 Aug 2018 16:17:17 -0500
lxqt-panel (1.2.1-1ubuntu1) lunar; urgency=medium lxqt-panel (0.13.0-0ubuntu3) cosmic; urgency=medium
* Merge from Debian Unstable, remaining changes: * Add a DEP-3 header for the patch completely removing the clock plugin.
- Lubuntuify the package slightly. * Don't auto-unmute the volume when it's changed.
- Run wrap-and-sort for cleanliness. * Bump Standards-version to 4.1.5, no changes needed.
- Update the copyright file. * Run wrap-and-sort.
- Take a different approach for the watch file.
- Add missing entry from the install file.
-- Simon Quigley <tsimonq2@ubuntu.com> Mon, 16 Jan 2023 16:43:29 -0600 -- Simon Quigley <tsimonq2@ubuntu.com> Mon, 16 Jul 2018 21:58:19 -0500
lxqt-panel (1.2.1-1) unstable; urgency=medium lxqt-panel (0.13.0-0ubuntu2) cosmic; urgency=medium
* New upstream release. * Completely remove plugin-clock.
* Bump Standards-Version to 4.6.2.
-- ChangZhuo Chen (陳昌倬) <czchen@debian.org> Thu, 05 Jan 2023 00:10:18 +0800 -- Simon Quigley <tsimonq2@ubuntu.com> Thu, 24 May 2018 22:51:05 -0500
lxqt-panel (1.2.0-1) unstable; urgency=medium lxqt-panel (0.13.0-0ubuntu1) cosmic; urgency=medium
* New upstream release. * New upstream release.
* Bump Standards-Version to 4.6.1. * Update build dependencies.
* Add Rules-Requires-Root: no * Update copyright.
* Bump compat to 13. * Remove patches applied upstream.
* Remove unnecessary -Wl,--as-needed in d/rules
* Remove unnecessary --fail-missing in d/rules -- Simon Quigley <tsimonq2@ubuntu.com> Wed, 23 May 2018 22:38:37 -0500
* Fix d/upstream/metadata.
* Update d/copyright. lxqt-panel (0.12.0-9ubuntu1) cosmic; urgency=medium
* Update d/watch for GitHub.
* Merge from Debian Sid. Remaining changes:
-- ChangZhuo Chen (陳昌倬) <czchen@debian.org> Fri, 16 Dec 2022 01:24:07 +0800 - Cherry-pick some upstream commits:
+ Fix wrongly positioned popups (LP: #1527013).
lxqt-panel (1.1.0-2) unstable; urgency=medium * fix-wrongly-positioned-popups.patch
* Upstream commit 7391172.
* Merge to unstable. + plugin-volume: Use a specific icon for the panel.
* use-specific-panel-icon.patch
-- ChangZhuo Chen (陳昌倬) <czchen@debian.org> Sat, 19 Nov 2022 16:14:37 +0800 * Upstream commit eaa65e5.
+ Fix various memory leaks.
lxqt-panel (1.1.0-1) experimental; urgency=medium * fix-memory-leaks.patch
* mainmenu: Fix possible leaks in menu-cache usage.
* Add debian/salsa-ci.yml file. - Upstream commit 04630d4.
* Update debian/upstream/signing-key.asc. * mount: Fix leak by correctly assigning the QObject parent.
* New upstream version 1.0.0 - Upstream commit d1bd23f.
* New upstream version 1.1.0 * taskbar: Avoid conditionals on unintialized values by proper
* Build-deps on liblxqt1-dev (>= 1.1.0~). initialization of data members
* Build-deps on liblxqt-globalkeys1-dev (>= 1.1.0~). - Upstream commit 1cb5778.
* Build-deps on liblxqt-globalkeys-ui1-dev (>= 1.1.0~). + Avoid infinite recursion when no icon is available.
* Build-deps on libsysstat-qt5-0-dev (>= 0.4.6~). * avoid-infinite-recursion-icons.patch
* Drop obsoleted Breaks and Replaces lines. * Upstream commit b9b4133.
* debian/copyright: update years. + Add Move and Resize items in the task-button context menu.
* Build-deps on libxcb-randr0-dev. * add-move-resize-items.patch
* Build-deps on libxcb-image0-dev. * Upstream commit b69fe72.
* Build-deps on libxtst-dev. + Set the initial task button text (and icon) correctly.
* Build-deps on libxcb-composite0-dev. * set-initial-task-button-correctly.patch
* Upstream commit 563d6bf.
-- Andrew Lee (李健秋) <ajqlee@debian.org> Sat, 16 Jul 2022 00:26:18 +0800 * Change the Vcs entries to be Lubuntu-specific.
* Fix typo in the patch description of fix-memory-leaks.patch.
lxqt-panel (0.16.1-1) unstable; urgency=medium
-- Simon Quigley <tsimonq2@ubuntu.com> Mon, 21 May 2018 00:43:10 -0500
[ Alf Gaida ]
* Switched to gbp
* Bumped Standards-Version to 4.4.0, no changes needed
* improved debian/rules
[ Andrew Lee (李健秋) ]
* New upstream release. (Closes: #916105, #953154, #978204)
-- Andrew Lee (李健秋) <ajqlee@debian.org> Wed, 06 Jan 2021 18:30:22 +0800
lxqt-panel (0.14.1-1) unstable; urgency=medium
* Cherry-picking new upstream version 0.14.1.
* Bumped minimum versions:
- liblxqt0-dev (>= 0.14.1~)
- liblxqt-globalkeys0-dev (>= 0.14.1~)
- liblxqt-globalkeys-ui0-dev (>= 0.14.1~)
-- Alf Gaida <agaida@siduction.org> Tue, 26 Feb 2019 03:28:17 +0100
lxqt-panel (0.14.0-1) unstable; urgency=medium
* Cherry-picking new upstream version 0.14.0.
* Bumped Standards to 4.3.0, no changes needed
* Dropped d/compat, use debhelper-compat = 12, no changes needed
* Fixed years in d/copyright
* Bumped minimum versions:
- liblxqt0-dev (>= 0.14.0~)
- liblxqt-globalkeys0-dev (>= 0.14.0~)
- liblxqt-globalkeys-ui0-dev (>= 0.14.0~)
- libsysstat-qt5-0-dev (>= 0.4.2~)
* Removed obsolete PULL_TRANSLATIONS= OFF from dh_auto_configure
* Added l10n-package, moved from lxqt-l10n
* Added d/upstream/metadata
-- Alf Gaida <agaida@siduction.org> Sun, 27 Jan 2019 23:13:10 +0100
lxqt-panel (0.13.0-2) unstable; urgency=medium
* Build dependency libsensors4-dev -> libsensors-dev (Closes: #917440)
* Bumped Standards to 4.2.1, no changes needed
-- Alf Gaida <agaida@siduction.org> Sat, 29 Dec 2018 13:03:56 +0100
lxqt-panel (0.13.0-1) unstable; urgency=medium
* Cherry-picking new upstream version 0.13.0.
* Bumped build dependencies
- liblxqt0-dev to >= 0.13.0~
- liblxqt0-dev to >= 0.13.0~
- liblxqt-globalkeys0-dev to >= 0.13.0~
- liblxqt-globalkeys-ui0-dev to >= 0.13.0~
- libsysstat-qt5-0-dev to >= 0.4.1~
* Removed build dependency libglib2.0-dev, thrown in via lxqt-build-tools
* Bumped year in copyright
-- Alf Gaida <agaida@siduction.org> Fri, 25 May 2018 00:08:49 +0200
lxqt-panel (0.12.0-10) unstable; urgency=medium
* Changed Source and watch for lxqt
-- Alf Gaida <agaida@siduction.org> Sat, 28 Apr 2018 15:17:35 +0200
lxqt-panel (0.12.0-9) unstable; urgency=medium lxqt-panel (0.12.0-9) unstable; urgency=medium
@ -178,6 +84,43 @@ lxqt-panel (0.12.0-9) unstable; urgency=medium
-- Alf Gaida <agaida@siduction.org> Mon, 23 Apr 2018 19:47:29 +0200 -- Alf Gaida <agaida@siduction.org> Mon, 23 Apr 2018 19:47:29 +0200
lxqt-panel (0.12.0-8ubuntu1) bionic; urgency=medium
* Cherry-pick some upstream commits because the upstream release cycle is
horribly slow (and without this it'll be years before they come in):
- Fix wrongly positioned popups (LP: #1527013).
+ fix-wrongly-positioned-popups.patch
+ Upstream commit 7391172.
- plugin-volume: Use a specific icon for the panel.
+ use-specific-panel-icon.patch
+ Upstream commit eaa65e5.
- Fix various memory leaks.
+ fix-memory-leaks.patch
+ mainmenu: Fix possible leaks in menu-cache usage.
* Upstream commit 04630d4.
+ mount: Fix leak by correctly assigning the QObject parent.
* Upstream commit d1bd23f.
+ taskbar: Avoid conditionals on unintialized values by proper
initialization of data members
* Upstream commit 1cb5778.
- Avoid infinite recursion when no icon is available.
+ avoid-infinite-recursion-icons.patch
+ Upstream commit b9b4133.
- Add Move and Resize items in the task-button context menu.
+ add-move-resize-items.patch
+ Upstream commit b69fe72.
- Set the initial task button text (and icon) correctly.
+ set-initial-task-button-correctly.patch
+ Upstream commit 563d6bf.
-- Simon Quigley <tsimonq2@ubuntu.com> Mon, 05 Feb 2018 20:04:48 -0600
lxqt-panel (0.12.0-8build1) bionic; urgency=medium
* No change rebuild against libdbusmenu-qt5-2.
-- Dmitry Shachnev <mitya57@ubuntu.com> Tue, 30 Jan 2018 22:29:41 +0300
lxqt-panel (0.12.0-8) unstable; urgency=medium lxqt-panel (0.12.0-8) unstable; urgency=medium
* Fix plugin-volume, use pavucontrol-qt (Closes: #884547) * Fix plugin-volume, use pavucontrol-qt (Closes: #884547)

1
debian/compat vendored

@ -0,0 +1 @@
11

72
debian/control vendored

@ -1,60 +1,44 @@
Source: lxqt-panel Source: lxqt-panel
Maintainer: Lubuntu Developers <lubuntu-devel@lists.ubuntu.com> Maintainer: Lubuntu Developers <lubuntu-devel@lists.ubuntu.com>
Original-Maintainer: LXQt Packaging Team <pkg-lxqt-devel@lists.alioth.debian.org> XSBC-Original-Maintainer: LXQt Packaging Team <pkg-lxqt-devel@lists.alioth.debian.org>
Uploaders: Alf Gaida <agaida@siduction.org>, Uploaders: Simon Quigley <tsimonq2@ubuntu.com>
ChangZhuo Chen (陳昌倬) <czchen@debian.org>,
Andrew Lee (李健秋) <ajqlee@debian.org>
Section: x11 Section: x11
Priority: optional Priority: optional
Build-Depends: debhelper-compat (= 13), Build-Depends: debhelper (>= 11),
layer-shell-qt,
libasound2-dev, libasound2-dev,
libdbusmenu-lxqt0-dev (>= 0.2.0), libdbusmenu-qt5-dev,
libglib2.0-dev, libglib2.0-dev,
libicu-dev, libicu-dev,
libkf6solid-dev (>= 6.0.0), libkf5solid-dev,
libkf6windowsystem-dev (>= 6.0.0), libkf5windowsystem-dev,
liblayershellqtinterface-dev, liblxqt-globalkeys-ui0-dev (>= 0.13.0),
liblxqt-globalkeys-ui2-dev (>= 2.1.0), liblxqt-globalkeys0-dev (>= 0.13.0),
liblxqt-globalkeys2-dev (>= 2.1.0), liblxqt0-dev (>= 0.13.0),
liblxqt2-dev (>= 2.1.0),
libpulse-dev, libpulse-dev,
libsensors-dev [!hurd-any], libqt5svg5-dev,
libqt5x11extras5-dev,
libsensors4-dev [!hurd-any],
libstatgrab-dev [linux-any], libstatgrab-dev [linux-any],
libsysstat-qt6-1-dev (>= 1.1.0), libsysstat-qt5-0-dev (>= 0.4.1),
libx11-dev, libx11-dev,
libxcb-composite0-dev,
libxcb-damage0-dev, libxcb-damage0-dev,
libxcb-image0-dev, libxcb-util0-dev,
libxcb-randr0-dev,
libxcb-shm0-dev,
libxcb-util-dev,
libxcb-xkb-dev, libxcb-xkb-dev,
libxcomposite-dev, libxcomposite-dev,
libxdamage-dev, libxdamage-dev,
libxkbcommon-dev, libxkbcommon-dev,
libxkbcommon-x11-dev, libxkbcommon-x11-dev,
libxrender-dev, libxrender-dev
libxtst-dev, Standards-Version: 4.2.0
lxqt-menu-data (>= 2.1.0), Vcs-Browser: https://phab.lubuntu.me/source/lxqt-panel/
qt6-base-private-dev (>= 6.6.0), Vcs-Git: https://phab.lubuntu.me/source/lxqt-panel.git
qt6-svg-dev (>= 6.6.0), XS-Debian-Vcs-Browser: https://salsa.debian.org/lxqt-team/lxqt-panel
qt6-wayland-dev (>= 6.6.0) XS-Debian-Vcs-Git: https://salsa.debian.org/lxqt-team/lxqt-panel.git
Standards-Version: 4.7.0
Vcs-Browser: https://git.lubuntu.me/Lubuntu/lxqt-panel-packaging
Vcs-Git: https://git.lubuntu.me/Lubuntu/lxqt-panel-packaging.git
Debian-Vcs-Browser: https://salsa.debian.org/lxqt-team/lxqt-panel
Debian-Vcs-Git: https://salsa.debian.org/lxqt-team/lxqt-panel.git
Homepage: https://github.com/lxqt/lxqt-panel Homepage: https://github.com/lxqt/lxqt-panel
Rules-Requires-Root: no
Package: lxqt-panel Package: lxqt-panel
Architecture: any Architecture: any
Depends: layer-shell-qt, Depends: lxmenu-data, lxqt-policykit, ${misc:Depends}, ${shlibs:Depends}
lxmenu-data,
lxqt-policykit,
${misc:Depends},
${shlibs:Depends}
Recommends: lxqt-about, Recommends: lxqt-about,
lxqt-config, lxqt-config,
lxqt-notificationd, lxqt-notificationd,
@ -65,17 +49,9 @@ Recommends: lxqt-about,
pavucontrol-qt | pavucontrol, pavucontrol-qt | pavucontrol,
qlipper qlipper
Suggests: lxqt | lxqt-core Suggests: lxqt | lxqt-core
Breaks: lxqt-common (<< 0.12.0)
Replaces: lxqt-common (<< 0.12.0)
Description: LXQt desktop panel Description: LXQt desktop panel
The LXQt desktop panel The LXQt desktop panel
. .
This package contains the LXQt panel. This package contain the LXQt panel.
Package: lxqt-panel-l10n
Architecture: all
Multi-Arch: foreign
Section: localization
Depends: qt6-translations-l10n, ${misc:Depends}
Description: Language package for lxqt-panel
The l10n files for lxqt-panel.
.
This package contains the l10n files needed by lxqt-panel.

22
debian/copyright vendored

@ -1,27 +1,15 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: lxqt-panel Upstream-Name: lxqt-panel
Source: https://github.com/lxqt/lxqt-panel Source: https://github.com/lxde/lxqt-panel
Files: * Files: *
Copyright: 2010-2013 Razor team Copyright: 2012-2018 LXQt team
2012-2024 LXQt team 2010-2012 Razor team
License: LGPL-2.1+
Files: panel/lxqtpanelapplication_p.h
Copyright: 2016 Luís Pereira <luis.artur.pereira@gmail.com>
License: LGPL-2.1+ License: LGPL-2.1+
Files: debian/* Files: debian/*
Copyright: 2014-2019 Alf Gaida <agaida@siduction.org> Copyright: 2014-2018 Alf Gaida <agaida@siduction.org>
2015-2022 Andrew Lee (李健秋) <ajqlee@debian.org> 2015 Andrew Lee (李健秋) <ajqlee@debian.org>
2022-2023 ChangZhuo Chen (陳昌倬) <czchen@debian.org>
2015 Shih-Yuan Lee (FourDollars) <fourdollars@gmail.com>
2016 Ralf Jung <post@ralfj.de>
2018 Walter Lapchynski <wxl@ubuntu.com>
2020-2021 Raman Sarda <theloudspeaker@lubuntu.me>
2021 apt-ghetto <apt-ghetto@protonmail.com>
2018-2023 Simon Quigley <tsimonq2@ubuntu.com>
2023-2024 Aaron Rainbolt <arraybolt3@gmail.com>
License: LGPL-2.1+ License: LGPL-2.1+
License: LGPL-2.1+ License: LGPL-2.1+

6
debian/gbp.conf vendored

@ -1,6 +0,0 @@
[DEFAULT]
debian-branch = debian/sid
upstream-branch = upstream/latest
pristine-tar = True
compression = xz

@ -1 +0,0 @@
usr/share/lxqt/translations/lxqt-panel/

@ -1,9 +0,0 @@
etc/xdg
usr/bin/lxqt-panel
usr/include/lxqt
usr/lib/*/lxqt-panel
usr/share/applications/
usr/share/lxqt/lxqt-panel
usr/share/lxqt/panel.conf
usr/share/lxqt/panel/qeyes-types/
usr/share/man

@ -1,9 +0,0 @@
# This is expected
lxqt-panel: desktop-entry-missing-required-key Name [usr/share/applications/lxqt-panel.desktop]
lxqt-panel: desktop-entry-limited-to-environments [usr/share/applications/lxqt-panel.desktop]
# Not likely to be fixed soon
lxqt-panel: spelling-error-in-binary managment management [usr/bin/lxqt-panel]
# False positive
lxqt-panel: hardening-no-fortify-functions [usr/lib/x86_64-linux-gnu/lxqt-panel/backend/libwmbackend_kwin_wayland.so]

@ -0,0 +1,105 @@
Description: Allow plugin's "static" configration change
This is patch 1/4 adding autoexpansion support to the spacer plugin.
Author: Palo Kisa <palo.kisa@gmail.com>
Origin: upstream
Bug: https://github.com/lxqt/lxqt/issues/1038
Applied-Upstream: commit:6fbe184
Last-Update: 2018-08-16
--- a/panel/ilxqtpanel.h
+++ b/panel/ilxqtpanel.h
@@ -110,6 +110,16 @@ public:
*
*/
virtual void willShowWindow(QWidget * w) = 0;
+
+ /*!
+ * \brief By calling this function, a plugin notifies the panel about change of it's "static"
+ * configuration
+ *
+ * \param plugin the changed plugin
+ *
+ * \sa ILXQtPanelPlugin::isSeparate(), ILXQtPanelPlugin::isExpandable
+ */
+ virtual void pluginFlagsChanged(const ILXQtPanelPlugin * plugin) = 0;
};
#endif // ILXQTPANEL_H
--- a/panel/ilxqtpanelplugin.h
+++ b/panel/ilxqtpanelplugin.h
@@ -196,6 +196,17 @@ public:
mPanel->willShowWindow(w);
}
+ /*!
+ * \brief By calling this function, a plugin notifies the panel about change of it's "static"
+ * configuration
+ *
+ * \sa isSeparate(), isExpandable
+ */
+ inline void pluginFlagsChanged()
+ {
+ mPanel->pluginFlagsChanged(this);
+ }
+
virtual bool isSeparate() const { return false; }
virtual bool isExpandable() const { return false; }
private:
--- a/panel/lxqtpanel.cpp
+++ b/panel/lxqtpanel.cpp
@@ -1225,6 +1225,14 @@ void LXQtPanel::willShowWindow(QWidget *
/************************************************
************************************************/
+void LXQtPanel::pluginFlagsChanged(const ILXQtPanelPlugin * /*plugin*/)
+{
+ mLayout->rebuild();
+}
+
+/************************************************
+
+ ************************************************/
QString LXQtPanel::qssPosition() const
{
return positionToStr(position());
--- a/panel/lxqtpanel.h
+++ b/panel/lxqtpanel.h
@@ -146,6 +146,7 @@ public:
QRect calculatePopupWindowPos(QPoint const & absolutePos, QSize const & windowSize) const override;
QRect calculatePopupWindowPos(const ILXQtPanelPlugin *plugin, const QSize &windowSize) const override;
void willShowWindow(QWidget * w) override;
+ void pluginFlagsChanged(const ILXQtPanelPlugin * plugin) override;
// ........ end of ILXQtPanel overrides
/**
--- a/panel/lxqtpanellayout.cpp
+++ b/panel/lxqtpanellayout.cpp
@@ -946,6 +946,16 @@ void LXQtPanelLayout::setLineCount(int v
/************************************************
************************************************/
+void LXQtPanelLayout::rebuild()
+{
+ mLeftGrid->rebuild();
+ mRightGrid->rebuild();
+}
+
+
+/************************************************
+
+ ************************************************/
int LXQtPanelLayout::lineSize() const
{
return mLeftGrid->lineSize();
--- a/panel/lxqtpanellayout.h
+++ b/panel/lxqtpanellayout.h
@@ -73,6 +73,10 @@ public:
ILXQtPanel::Position position() const { return mPosition; }
void setPosition(ILXQtPanel::Position value);
+ /*! \brief Force the layout to re-read items/plugins "static" configuration
+ */
+ void rebuild();
+
static bool itemIsSeparate(QLayoutItem *item);
signals:
void pluginMoved(Plugin * plugin);

@ -0,0 +1,35 @@
Description: Add "override" to declarations
This is patch 2/4 adding autoexpansion support to the spacer plugin.
Author: Palo Kisa <palo.kisa@gmail.com>
Origin: upstream
Bug: https://github.com/lxqt/lxqt/issues/1038
Applied-Upstream: commit:764aadd
Last-Update: 2018-08-16
--- a/plugin-spacer/spacer.h
+++ b/plugin-spacer/spacer.h
@@ -57,18 +57,18 @@ class Spacer : public QObject, public I
public:
Spacer(const ILXQtPanelPluginStartupInfo &startupInfo);
- virtual QWidget *widget() { return &mSpacer; }
- virtual QString themeId() const { return "Spacer"; }
+ virtual QWidget *widget() override { return &mSpacer; }
+ virtual QString themeId() const override { return "Spacer"; }
- bool isSeparate() const { return true; }
+ bool isSeparate() const override { return true; }
- virtual ILXQtPanelPlugin::Flags flags() const { return HaveConfigDialog; }
- QDialog *configureDialog();
+ virtual ILXQtPanelPlugin::Flags flags() const override { return HaveConfigDialog; }
+ QDialog *configureDialog() override;
- virtual void realign();
+ virtual void realign() override;
private slots:
- virtual void settingsChanged();
+ virtual void settingsChanged() override;
private:
void setSizes();

@ -0,0 +1,238 @@
Description: Add auto-expansion feature
This is patch 3/4 adding autoexpansion support to the spacer plugin.
Author: Palo Kisa <palo.kisa@gmail.com>
Origin: upstream
Bug: https://github.com/lxqt/lxqt/issues/1038
Applied-Upstream: commit:b57a178
Last-Update: 2018-08-16
--- a/plugin-spacer/spacer.cpp
+++ b/plugin-spacer/spacer.cpp
@@ -55,6 +55,7 @@ Spacer::Spacer(const ILXQtPanelPluginSta
QObject()
, ILXQtPanelPlugin(startupInfo)
, mSize(8)
+ , mExpandable(false)
{
settingsChanged();
}
@@ -65,8 +66,12 @@ Spacer::Spacer(const ILXQtPanelPluginSta
void Spacer::settingsChanged()
{
mSize = settings()->value("size", 8).toInt();
+ const bool old_expandable = mExpandable;
+ mExpandable = settings()->value("expandable", false).toBool();
mSpacer.setType(settings()->value("spaceType", SpacerConfiguration::msTypes[0]).toString());
setSizes();
+ if (old_expandable != mExpandable)
+ pluginFlagsChanged();
}
/************************************************
@@ -82,21 +87,30 @@ QDialog *Spacer::configureDialog()
************************************************/
void Spacer::setSizes()
{
- if (panel()->isHorizontal())
+ if (mExpandable)
{
- mSpacer.setOrientation("horizontal");
- mSpacer.setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding);
- mSpacer.setFixedWidth(mSize);
- mSpacer.setMinimumHeight(0);
- mSpacer.setMaximumHeight(QWIDGETSIZE_MAX);
- }
- else
+ mSpacer.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+ mSpacer.setMinimumSize({1, 1});
+ mSpacer.setMaximumSize({QWIDGETSIZE_MAX, QWIDGETSIZE_MAX});
+ mSpacer.setOrientation(panel()->isHorizontal() ? "horizontal" : "vertical");
+ } else
{
- mSpacer.setOrientation("vertical");
- mSpacer.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
- mSpacer.setFixedHeight(mSize);
- mSpacer.setMinimumWidth(0);
- mSpacer.setMaximumWidth(QWIDGETSIZE_MAX);
+ if (panel()->isHorizontal())
+ {
+ mSpacer.setOrientation("horizontal");
+ mSpacer.setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding);
+ mSpacer.setFixedWidth(mSize);
+ mSpacer.setMinimumHeight(0);
+ mSpacer.setMaximumHeight(QWIDGETSIZE_MAX);
+ }
+ else
+ {
+ mSpacer.setOrientation("vertical");
+ mSpacer.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+ mSpacer.setFixedHeight(mSize);
+ mSpacer.setMinimumWidth(0);
+ mSpacer.setMaximumWidth(QWIDGETSIZE_MAX);
+ }
}
}
--- a/plugin-spacer/spacer.h
+++ b/plugin-spacer/spacer.h
@@ -61,6 +61,7 @@ public:
virtual QString themeId() const override { return "Spacer"; }
bool isSeparate() const override { return true; }
+ bool isExpandable() const override { return mExpandable; }
virtual ILXQtPanelPlugin::Flags flags() const override { return HaveConfigDialog; }
QDialog *configureDialog() override;
@@ -76,6 +77,7 @@ private:
private:
SpacerWidget mSpacer;
int mSize;
+ int mExpandable;
};
class SpacerPluginLibrary: public QObject, public ILXQtPanelPluginLibrary
--- a/plugin-spacer/spacerconfiguration.cpp
+++ b/plugin-spacer/spacerconfiguration.cpp
@@ -52,6 +52,8 @@ SpacerConfiguration::SpacerConfiguration
connect(ui->sizeSB, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged), this, &SpacerConfiguration::sizeChanged);
connect(ui->typeCB, static_cast<void (QComboBox::*)(int index)>(&QComboBox::currentIndexChanged), this, &SpacerConfiguration::typeChanged);
+ //Note: if there will be more than 2 radio buttons for width/size type, this simple setting logic will break
+ connect(ui->sizeExpandRB, &QAbstractButton::toggled, this, &SpacerConfiguration::widthTypeChanged);
}
SpacerConfiguration::~SpacerConfiguration()
@@ -63,6 +65,10 @@ void SpacerConfiguration::loadSettings()
{
ui->sizeSB->setValue(settings().value("size", 8).toInt());
ui->typeCB->setCurrentIndex(ui->typeCB->findData(settings().value("spaceType", msTypes[0]).toString()));
+ const bool expandable = settings().value("expandable", false).toBool();
+ ui->sizeExpandRB->setChecked(expandable);
+ ui->sizeFixedRB->setChecked(!expandable);
+ ui->sizeSB->setDisabled(expandable);
}
void SpacerConfiguration::sizeChanged(int value)
@@ -74,3 +80,8 @@ void SpacerConfiguration::typeChanged(in
{
settings().setValue("spaceType", ui->typeCB->itemData(index, Qt::UserRole));
}
+
+void SpacerConfiguration::widthTypeChanged(bool expandableChecked)
+{
+ settings().setValue("expandable", expandableChecked);
+}
--- a/plugin-spacer/spacerconfiguration.h
+++ b/plugin-spacer/spacerconfiguration.h
@@ -58,6 +58,7 @@ private slots:
void loadSettings();
void sizeChanged(int value);
void typeChanged(int index);
+ void widthTypeChanged(bool expandableChecked);
};
#endif // SPACERCONFIGURATION_H
--- a/plugin-spacer/spacerconfiguration.ui
+++ b/plugin-spacer/spacerconfiguration.ui
@@ -6,6 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
+ <width>289</width>
+ <height>135</height>
</rect>
</property>
<property name="windowTitle">
@@ -19,7 +21,7 @@
</property>
</widget>
</item>
- <item row="0" column="1">
+ <item row="0" column="2">
<widget class="QSpinBox" name="sizeSB">
<property name="minimum">
<number>4</number>
@@ -32,21 +34,14 @@
</property>
</widget>
</item>
- <item row="1" column="0">
+ <item row="2" column="0">
<widget class="QLabel" name="labelType">
<property name="text">
<string>Space type:</string>
</property>
</widget>
</item>
- <item row="1" column="1">
- <widget class="QComboBox" name="typeCB">
- <property name="editable">
- <bool>false</bool>
- </property>
- </widget>
- </item>
- <item row="2" column="0" colspan="2">
+ <item row="3" column="0" colspan="3">
<widget class="QDialogButtonBox" name="buttons">
<property name="orientation">
<enum>Qt::Horizontal</enum>
@@ -56,6 +51,27 @@
</property>
</widget>
</item>
+ <item row="0" column="1">
+ <widget class="QRadioButton" name="sizeFixedRB">
+ <property name="text">
+ <string>fixed</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" colspan="2">
+ <widget class="QComboBox" name="typeCB">
+ <property name="editable">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" colspan="2">
+ <widget class="QRadioButton" name="sizeExpandRB">
+ <property name="text">
+ <string>expandable</string>
+ </property>
+ </widget>
+ </item>
</layout>
</widget>
<resources/>
@@ -65,6 +81,32 @@
<signal>clicked(QAbstractButton*)</signal>
<receiver>SpacerConfiguration</receiver>
<slot>close()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>sizeFixedRB</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>sizeSB</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>152</x>
+ <y>21</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>244</x>
+ <y>21</y>
+ </hint>
+ </hints>
</connection>
</connections>
</ui>

@ -0,0 +1,114 @@
Description: Use QStringLiteral whenever possible
This is patch 4/4 adding autoexpansion support to the spacer plugin.
Author: Palo Kisa <palo.kisa@gmail.com>
Origin: upstream
Bug: https://github.com/lxqt/lxqt/issues/1038
Applied-Upstream: commit:4908fcd
Last-Update: 2018-08-16
--- a/plugin-spacer/spacer.cpp
+++ b/plugin-spacer/spacer.cpp
@@ -65,10 +65,10 @@ Spacer::Spacer(const ILXQtPanelPluginSta
************************************************/
void Spacer::settingsChanged()
{
- mSize = settings()->value("size", 8).toInt();
+ mSize = settings()->value(QStringLiteral("size"), 8).toInt();
const bool old_expandable = mExpandable;
- mExpandable = settings()->value("expandable", false).toBool();
- mSpacer.setType(settings()->value("spaceType", SpacerConfiguration::msTypes[0]).toString());
+ mExpandable = settings()->value(QStringLiteral("expandable"), false).toBool();
+ mSpacer.setType(settings()->value(QStringLiteral("spaceType"), SpacerConfiguration::msTypes[0]).toString());
setSizes();
if (old_expandable != mExpandable)
pluginFlagsChanged();
@@ -92,12 +92,12 @@ void Spacer::setSizes()
mSpacer.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
mSpacer.setMinimumSize({1, 1});
mSpacer.setMaximumSize({QWIDGETSIZE_MAX, QWIDGETSIZE_MAX});
- mSpacer.setOrientation(panel()->isHorizontal() ? "horizontal" : "vertical");
+ mSpacer.setOrientation(panel()->isHorizontal() ? QStringLiteral("horizontal") : QStringLiteral("vertical"));
} else
{
if (panel()->isHorizontal())
{
- mSpacer.setOrientation("horizontal");
+ mSpacer.setOrientation(QStringLiteral("horizontal"));
mSpacer.setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding);
mSpacer.setFixedWidth(mSize);
mSpacer.setMinimumHeight(0);
@@ -105,7 +105,7 @@ void Spacer::setSizes()
}
else
{
- mSpacer.setOrientation("vertical");
+ mSpacer.setOrientation(QStringLiteral("vertical"));
mSpacer.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
mSpacer.setFixedHeight(mSize);
mSpacer.setMinimumWidth(0);
--- a/plugin-spacer/spacer.h
+++ b/plugin-spacer/spacer.h
@@ -58,7 +58,7 @@ public:
Spacer(const ILXQtPanelPluginStartupInfo &startupInfo);
virtual QWidget *widget() override { return &mSpacer; }
- virtual QString themeId() const override { return "Spacer"; }
+ virtual QString themeId() const override { return QStringLiteral("Spacer"); }
bool isSeparate() const override { return true; }
bool isExpandable() const override { return mExpandable; }
--- a/plugin-spacer/spacerconfiguration.cpp
+++ b/plugin-spacer/spacerconfiguration.cpp
@@ -31,9 +31,9 @@
//Note: strings can't actually be translated here (in static initialization time)
// the QT_TR_NOOP here is just for qt translate tools to get the strings for translation
const QStringList SpacerConfiguration::msTypes = {
- QLatin1String(QT_TR_NOOP("lined"))
- , QLatin1String(QT_TR_NOOP("dotted"))
- , QLatin1String(QT_TR_NOOP("invisible"))
+ QStringLiteral(QT_TR_NOOP("lined"))
+ , QStringLiteral(QT_TR_NOOP("dotted"))
+ , QStringLiteral(QT_TR_NOOP("invisible"))
};
SpacerConfiguration::SpacerConfiguration(PluginSettings *settings, QWidget *parent) :
@@ -41,7 +41,7 @@ SpacerConfiguration::SpacerConfiguration
ui(new Ui::SpacerConfiguration)
{
setAttribute(Qt::WA_DeleteOnClose);
- setObjectName("SpacerConfigurationWindow");
+ setObjectName(QStringLiteral("SpacerConfigurationWindow"));
ui->setupUi(this);
//Note: translation is needed here in runtime (translator is attached already)
@@ -63,9 +63,9 @@ SpacerConfiguration::~SpacerConfiguratio
void SpacerConfiguration::loadSettings()
{
- ui->sizeSB->setValue(settings().value("size", 8).toInt());
- ui->typeCB->setCurrentIndex(ui->typeCB->findData(settings().value("spaceType", msTypes[0]).toString()));
- const bool expandable = settings().value("expandable", false).toBool();
+ ui->sizeSB->setValue(settings().value(QStringLiteral("size"), 8).toInt());
+ ui->typeCB->setCurrentIndex(ui->typeCB->findData(settings().value(QStringLiteral("spaceType"), msTypes[0]).toString()));
+ const bool expandable = settings().value(QStringLiteral("expandable"), false).toBool();
ui->sizeExpandRB->setChecked(expandable);
ui->sizeFixedRB->setChecked(!expandable);
ui->sizeSB->setDisabled(expandable);
@@ -73,15 +73,15 @@ void SpacerConfiguration::loadSettings()
void SpacerConfiguration::sizeChanged(int value)
{
- settings().setValue("size", value);
+ settings().setValue(QStringLiteral("size"), value);
}
void SpacerConfiguration::typeChanged(int index)
{
- settings().setValue("spaceType", ui->typeCB->itemData(index, Qt::UserRole));
+ settings().setValue(QStringLiteral("spaceType"), ui->typeCB->itemData(index, Qt::UserRole));
}
void SpacerConfiguration::widthTypeChanged(bool expandableChecked)
{
- settings().setValue("expandable", expandableChecked);
+ settings().setValue(QStringLiteral("expandable"), expandableChecked);
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,30 @@
Description: volume: Do not auto-unmute on volume change
Author: Palo Kisa <palo.kisa@gmail.com>
Origin: upstream
Bug: https://github.com/lxqt/lxqt/issues/1520
Applied-Upstream: commit:41259bb
Last-Update: 2018-07-16
--- a/plugin-volume/audiodevice.cpp
+++ b/plugin-volume/audiodevice.cpp
@@ -114,7 +114,6 @@ void AudioDevice::setVolume(int volume)
return;
setVolumeNoCommit(volume);
- setMute(false);
if (m_engine)
m_engine->commitDeviceVolume(this);
--- a/plugin-volume/lxqtvolume.cpp
+++ b/plugin-volume/lxqtvolume.cpp
@@ -283,10 +283,7 @@ void LXQtVolume::showNotification(bool f
{
if (Q_LIKELY(m_defaultSink))
{
- if (m_defaultSink->mute())
- m_notification->setSummary(tr("Volume: muted"));
- else
- m_notification->setSummary(tr("Volume: %1%").arg(QString::number(m_defaultSink->volume())));
+ m_notification->setSummary(tr("Volume: %1%%2").arg(QString::number(m_defaultSink->volume())).arg(m_defaultSink->mute() ? tr("(muted)") : ""));
m_notification->update();
}
}

@ -0,0 +1,322 @@
Description: Add optional overriding of icon theme.
Author: Walter Lapchynski <wxl@ubuntu.com>
Last-Updated: 2018-08-22
Applied-Upstream: https://github.com/lxqt/lxqt-panel/pull/674/commits/1a70479ed931e07a67a182223426328ab3fcbeff
--- a/panel/config/configpaneldialog.cpp
+++ b/panel/config/configpaneldialog.cpp
@@ -56,3 +56,8 @@ void ConfigPanelDialog::showConfigPlugin
{
showPage(mPluginsPage);
}
+
+void ConfigPanelDialog::updateIconThemeSettings()
+{
+ mPanelPage->updateIconThemeSettings();
+}
--- a/panel/config/configpaneldialog.h
+++ b/panel/config/configpaneldialog.h
@@ -43,6 +43,7 @@ public:
void showConfigPanelPage();
void showConfigPluginsPage();
+ void updateIconThemeSettings();
private:
ConfigPanelWidget *mPanelPage;
--- a/panel/config/configpanelwidget.cpp
+++ b/panel/config/configpanelwidget.cpp
@@ -57,6 +57,7 @@ ConfigPanelWidget::ConfigPanelWidget(LXQ
fillComboBox_position();
fillComboBox_alignment();
+ fillComboBox_icon();
mOldPanelSize = mPanel->panelSize();
mOldIconSize = mPanel->iconSize();
@@ -115,6 +116,9 @@ ConfigPanelWidget::ConfigPanelWidget(LXQ
connect(ui->slider_opacity, &QSlider::valueChanged, this, &ConfigPanelWidget::editChanged);
connect(ui->checkBox_reserveSpace, &QAbstractButton::toggled, [this](bool checked) { mPanel->setReserveSpace(checked, true); });
+
+ connect(ui->groupBox_icon, &QGroupBox::clicked, this, &ConfigPanelWidget::editChanged);
+ connect(ui->comboBox_icon, QOverload<int>::of(&QComboBox::activated), this, &ConfigPanelWidget::editChanged);
}
@@ -211,6 +215,59 @@ void ConfigPanelWidget::fillComboBox_ali
};
}
+/************************************************
+ *
+ ************************************************/
+void ConfigPanelWidget::fillComboBox_icon()
+{
+ ui->groupBox_icon->setChecked(!mPanel->iconTheme().isEmpty());
+
+ QStringList themeList;
+ QStringList processed;
+ const QStringList baseDirs = QIcon::themeSearchPaths();
+ for (const QString &baseDirName : baseDirs)
+ {
+ QDir baseDir(baseDirName);
+ if (!baseDir.exists())
+ continue;
+ const QFileInfoList dirs = baseDir.entryInfoList(QDir::AllDirs | QDir::NoDotAndDotDot, QDir::Name);
+ for (const QFileInfo &dir : dirs)
+ {
+ if (!processed.contains(dir.canonicalFilePath()))
+ {
+ processed << dir.canonicalFilePath();
+ QDir Dir(dir.canonicalFilePath());
+ QSettings file(Dir.absoluteFilePath(QStringLiteral("index.theme")), QSettings::IniFormat);
+ if (file.status() == QSettings::NoError
+ && !file.value(QStringLiteral("Icon Theme/Directories")).toStringList().join(QLatin1Char(' ')).isEmpty()
+ && !file.value(QStringLiteral("Icon Theme/Hidden"), false).toBool())
+ {
+ themeList << Dir.dirName();
+ }
+ }
+ }
+ }
+ if (!themeList.isEmpty())
+ {
+ themeList.sort();
+ ui->comboBox_icon->insertItems(0, themeList);
+ QString curTheme = QIcon::themeName();
+ if (!curTheme.isEmpty())
+ ui->comboBox_icon->setCurrentText(curTheme);
+ }
+}
+
+
+/************************************************
+ *
+ ************************************************/
+void ConfigPanelWidget::updateIconThemeSettings()
+{
+ ui->groupBox_icon->setChecked(!mPanel->iconTheme().isEmpty());
+ QString curTheme = QIcon::themeName();
+ if (!curTheme.isEmpty())
+ ui->comboBox_icon->setCurrentText(curTheme);
+}
/************************************************
*
@@ -284,6 +341,11 @@ void ConfigPanelWidget::editChanged()
QString image = ui->checkBox_customBgImage->isChecked() ? ui->lineEdit_customBgImage->text() : QString();
mPanel->setBackgroundImage(image, true);
+
+ if (!ui->groupBox_icon->isChecked())
+ mPanel->setIconTheme(QString());
+ else if (!ui->comboBox_icon->currentText().isEmpty())
+ mPanel->setIconTheme(ui->comboBox_icon->currentText());
}
--- a/panel/config/configpanelwidget.h
+++ b/panel/config/configpanelwidget.h
@@ -49,6 +49,7 @@ public:
int screenNum() const { return mScreenNum; }
ILXQtPanel::Position position() const { return mPosition; }
+ void updateIconThemeSettings();
signals:
void changed();
@@ -73,6 +74,7 @@ private:
void addPosition(const QString& name, int screen, LXQtPanel::Position position);
void fillComboBox_position();
void fillComboBox_alignment();
+ void fillComboBox_icon();
int indexForPosition(int screen, ILXQtPanel::Position position);
int getMaxLength();
--- a/panel/config/configpanelwidget.ui
+++ b/panel/config/configpanelwidget.ui
@@ -555,6 +555,44 @@
</layout>
</widget>
</item>
+ <item>
+ <widget class="QGroupBox" name="groupBox_icon">
+ <property name="toolTip">
+ <string>A partial workaround for widget styles that
+cannot give a separate theme to the panel.
+
+You might also want to disable:
+
+LXQt Appearance Configuration →
+Icons Theme →
+Colorize icons based on widget style (palette)</string>
+ </property>
+ <property name="title">
+ <string>Override icon &amp;theme</string>
+ </property>
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ <property name="checked">
+ <bool>false</bool>
+ </property>
+ <layout class="QFormLayout" name="formLayout_2">
+ <property name="formAlignment">
+ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+ </property>
+ <item row="0" column="0">
+ <widget class="QLabel" name="label_3">
+ <property name="text">
+ <string>Icon theme for panels:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QComboBox" name="comboBox_icon"/>
+ </item>
+ </layout>
+ </widget>
+ </item>
</layout>
</widget>
<resources/>
--- a/panel/lxqtpanel.cpp
+++ b/panel/lxqtpanel.cpp
@@ -1354,6 +1354,28 @@ void LXQtPanel::setShowDelay(int showDel
saveSettings(true);
}
+QString LXQtPanel::iconTheme() const
+{
+ return mSettings->value("iconTheme").toString();
+}
+
+void LXQtPanel::setIconTheme(const QString& iconTheme)
+{
+ LXQtPanelApplication *a = reinterpret_cast<LXQtPanelApplication*>(qApp);
+ a->setIconTheme(iconTheme);
+}
+
+void LXQtPanel::updateConfigDialog() const
+{
+ if (!mConfigDialog.isNull() && mConfigDialog->isVisible())
+ {
+ mConfigDialog->updateIconThemeSettings();
+ const QList<QWidget*> widgets = mConfigDialog->findChildren<QWidget*>();
+ for (QWidget *widget : widgets)
+ widget->update();
+ }
+}
+
bool LXQtPanel::isPluginSingletonAndRunnig(QString const & pluginId) const
{
Plugin const * plugin = mPlugins->pluginByID(pluginId);
--- a/panel/lxqtpanel.h
+++ b/panel/lxqtpanel.h
@@ -222,6 +222,7 @@ public:
bool hidable() const { return mHidable; }
int animationTime() const { return mAnimationTime; }
int showDelay() const { return mShowDelayTimer.interval(); }
+ QString iconTheme() const;
/*!
* \brief Checks if a given Plugin is running and has the
@@ -232,6 +233,11 @@ public:
* ILXQtPanelPlugin::SingleInstance flag set, false otherwise.
*/
bool isPluginSingletonAndRunnig(QString const & pluginId) const;
+ /*!
+ * \brief Updates the config dialog. Used for updating its icons
+ * when the panel-specific icon theme changes.
+ */
+ void updateConfigDialog() const;
public slots:
/**
@@ -299,6 +305,7 @@ public slots:
void setHidable(bool hidable, bool save); //!< \sa setPanelSize()
void setAnimationTime(int animationTime, bool save); //!< \sa setPanelSize()
void setShowDelay(int showDelay, bool save); //!< \sa setPanelSize()
+ void setIconTheme(const QString& iconTheme);
/**
* @brief Saves the current configuration, i.e. writes the current
@@ -549,7 +556,7 @@ private:
* @brief Stores if mLength is stored in pixels or relative to the
* screen size in percents. If true, the length is stored in percents,
* otherwise in pixels.
- *
+ *
* \sa mLength
*/
bool mLengthInPercents;
--- a/panel/lxqtpanelapplication.cpp
+++ b/panel/lxqtpanelapplication.cpp
@@ -117,6 +117,15 @@ LXQtPanelApplication::LXQtPanelApplicati
QStringList panels = d->mSettings->value("panels").toStringList();
+ // WARNING: Giving a separate icon theme to the panel is wrong and has side effects.
+ // However, it is optional and can be used as the last resort for avoiding a low
+ // contrast in the case of symbolic SVG icons. (The correct way of doing that is
+ // using a Qt widget style that can assign a separate theme/QPalette to the panel.)
+ mGlobalIconTheme = QIcon::themeName();
+ const QString iconTheme = d->mSettings->value("iconTheme").toString();
+ if (!iconTheme.isEmpty())
+ QIcon::setThemeName(iconTheme);
+
if (panels.isEmpty())
{
panels << "panel1";
@@ -280,3 +289,21 @@ bool LXQtPanelApplication::isPluginSingl
return false;
}
+
+// See LXQtPanelApplication::LXQtPanelApplication for why this isn't good.
+void LXQtPanelApplication::setIconTheme(const QString &iconTheme)
+{
+ Q_D(LXQtPanelApplication);
+
+ d->mSettings->setValue("iconTheme", iconTheme == mGlobalIconTheme ? QString() : iconTheme);
+ QString newTheme = iconTheme.isEmpty() ? mGlobalIconTheme : iconTheme;
+ if (newTheme != QIcon::themeName())
+ {
+ QIcon::setThemeName(newTheme);
+ for(LXQtPanel* panel : qAsConst(mPanels))
+ {
+ panel->update();
+ panel->updateConfigDialog();
+ }
+ }
+}
--- a/panel/lxqtpanelapplication.h
+++ b/panel/lxqtpanelapplication.h
@@ -69,12 +69,14 @@ public:
explicit LXQtPanelApplication(int& argc, char** argv);
~LXQtPanelApplication();
+ void setIconTheme(const QString &iconTheme);
+
/*!
* \brief Determines the number of LXQtPanel objects
* \return the current number of LXQtPanel objects
*/
- int count() { return mPanels.count(); }
-
+ int count() const { return mPanels.count(); }
+
/*!
* \brief Checks if a given Plugin is running and has the
* ILXQtPanelPlugin::SingleInstance flag set. As Plugins are added to
@@ -123,6 +125,10 @@ private:
*/
QList<LXQtPanel*> mPanels;
/*!
+ * \brief The global icon theme used by all apps (except for panels perhaps).
+ */
+ QString mGlobalIconTheme;
+ /*!
* \brief Creates a new LXQtPanel with the given name and connects the
* appropriate signals and slots.
* This method can be used at application startup.

@ -0,0 +1,7 @@
completely-remove-plugin-clock.patch
don't-autounmute-on-volume-change.patch
add-autoexpansion-1.patch
add-autoexpansion-2.patch
add-autoexpansion-3.patch
add-autoexpansion-4.patch
override-icon-theme.patch

19
debian/rules vendored

@ -2,29 +2,26 @@
# export DH_VERBOSE=1 # export DH_VERBOSE=1
export LC_ALL=C.UTF-8 export LC_ALL=C.UTF-8
export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
export DEB_BUILD_MAINT_OPTIONS = hardening=+all export DEB_BUILD_MAINT_OPTIONS = hardening=+all
include /usr/share/dpkg/architecture.mk WHICH_OS := $(shell dpkg-architecture -qDEB_HOST_ARCH_OS 2>/dev/null)
ifeq ($(DEB_HOST_ARCH_OS), kfreebsd) ifeq ($(WHICH_OS), kfreebsd)
CONF_FLAGS := -DCPULOAD_PLUGIN=NO -DNETWORKMONITOR_PLUGIN=NO -DVOLUME_PLUGIN=NO NOT_LINUX := -DCPULOAD_PLUGIN=NO -DNETWORKMONITOR_PLUGIN=NO -DVOLUME_PLUGIN=NO
endif endif
ifeq ($(DEB_HOST_ARCH_OS), hurd) ifeq ($(WHICH_OS), hurd)
CONF_FLAGS := -DCPULOAD_PLUGIN=NO -DNETWORKMONITOR_PLUGIN=NO -DVOLUME_PLUGIN=NO -DSENSORS_PLUGIN=NO NOT_LINUX := -DCPULOAD_PLUGIN=NO -DNETWORKMONITOR_PLUGIN=NO -DVOLUME_PLUGIN=NO -DSENSORS_PLUGIN=NO
endif endif
%: %:
dh ${@} --buildsystem cmake dh ${@} --buildsystem cmake
override_dh_installdocs:
dh_installdocs
mv debian/lxqt-panel/usr/share/lxqt/panel/qeyes-types/README debian/lxqt-panel/usr/share/doc/lxqt-panel/README.qeyes-types
override_dh_auto_configure: override_dh_auto_configure:
dh_auto_configure --\ dh_auto_configure --\
-DPULL_TRANSLATIONS=OFF \
-DUPDATE_TRANSLATIONS=OFF \ -DUPDATE_TRANSLATIONS=OFF \
-DDOM_PLUGIN=YES \ -DDOM_PLUGIN=YES \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
$(CONF_FLAGS) $(NOT_LINUX)

@ -1,12 +0,0 @@
# For more information on what jobs are run see:
# https://salsa.debian.org/salsa-ci-team/pipeline
#
# To enable the jobs, go to your repository (at salsa.debian.org)
# and click over Settings > CI/CD > Expand (in General pipelines).
# In "Custom CI config path" write debian/salsa-ci.yml and click
# in "Save Changes". The CI tests will run after the next commit.
---
include:
- https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
- https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml

@ -1,5 +0,0 @@
# Expected to be verylong
lxqt-panel source: very-long-line-length-in-source-file * > 512 [*.ts:*]
lxqt-panel source: very-long-line-length-in-source-file * > 512 [CHANGELOG:*]
lxqt-panel source: very-long-line-length-in-source-file * > 512 [plugin-colorpicker/colorpicker.cpp:52]
lxqt-panel source: very-long-line-length-in-source-file * > 512 [*.ui:*]

@ -1,6 +0,0 @@
Name: lxqt-panel
Bug-Database: https://github.com/lxqt/lxqt-panel/issues
Bug-Submit: https://github.com/lxqt/lxqt-panel/issues/new
Changelog: https://github.com/lxqt/lxqt-panel/blob/master/CHANGELOG
Repository: https://github.com/lxqt/lxqt-panel
Repository-Browse: https://github.com/lxqt/lxqt-panel

@ -1,52 +1,50 @@
-----BEGIN PGP PUBLIC KEY BLOCK----- -----BEGIN PGP PUBLIC KEY BLOCK-----
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 =h7ww
sw==
=gSIv
-----END PGP PUBLIC KEY BLOCK----- -----END PGP PUBLIC KEY BLOCK-----

6
debian/watch vendored

@ -1,5 +1,3 @@
version=4 version=4
opts="searchmode=plain, \ opts="pgpsigurlmangle=s/$/.asc/" \
pgpsigurlmangle=s/$/.asc/, \ https://github.com/lxde/lxqt-panel/releases .*/lxqt-panel-([\d\.]+).tar.xz
uversionmangle=s/(\d+\.\d+\.\d+).*/$1/" \
https://api.github.com/repos/lxqt/@PACKAGE@/releases https:\/\/github.com\/lxqt\/@PACKAGE@\/releases\/download\/@ANY_VERSION@\/@PACKAGE@-@ANY_VERSION@.tar.xz

Loading…
Cancel
Save