summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJimi Huotari <chiitoo@gentoo.org>2020-06-07 20:19:03 +0300
committerAndreas Sturmlechner <asturm@gentoo.org>2020-06-15 00:48:36 +0200
commitd71c37a5496c754ead52d85f64c6a8b922151923 (patch)
treeafece8fe6a34a2b2537ca11ebbe1c27de2dadb1e /lxqt-base
parentx11-libs/libfm-qt: add version 0.15.1-r1 (diff)
downloadgentoo-d71c37a5496c754ead52d85f64c6a8b922151923.tar.gz
gentoo-d71c37a5496c754ead52d85f64c6a8b922151923.tar.bz2
gentoo-d71c37a5496c754ead52d85f64c6a8b922151923.zip
lxqt-base/lxqt-config: add version 0.15.0-r1
Backport a change allowing for users to change the window colour of themes via 'lxqt-config-appearance'. Package-Manager: Portage-2.3.100, Repoman-2.3.22 Signed-off-by: Jimi Huotari <chiitoo@gentoo.org> Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Diffstat (limited to 'lxqt-base')
-rw-r--r--lxqt-base/lxqt-config/files/lxqt-config-0.15.0-window-colour-option.patch333
-rw-r--r--lxqt-base/lxqt-config/lxqt-config-0.15.0-r1.ebuild76
2 files changed, 409 insertions, 0 deletions
diff --git a/lxqt-base/lxqt-config/files/lxqt-config-0.15.0-window-colour-option.patch b/lxqt-base/lxqt-config/files/lxqt-config-0.15.0-window-colour-option.patch
new file mode 100644
index 000000000000..813cd7e4bca8
--- /dev/null
+++ b/lxqt-base/lxqt-config/files/lxqt-config-0.15.0-window-colour-option.patch
@@ -0,0 +1,333 @@
+From 0edcc373698189f27ac24fb0985570ef2ecd8b0d Mon Sep 17 00:00:00 2001
+From: Tsu Jan <tsujan2000@gmail.com>
+Date: Sun, 31 May 2020 18:04:48 +0430
+Subject: [PATCH 1/4] Added an option to change window color
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+It is in LXQt Appearance Configuration → Widget Style.
+
+Note: For the option to work, lxqt-qtplugin 0.15.1 should be installed; otherwise, it will have no effect.
+---
+ lxqt-config-appearance/CMakeLists.txt | 1 +
+ lxqt-config-appearance/colorLabel.cpp | 65 ++++++++++++++++++++++++++
+ lxqt-config-appearance/colorLabel.h | 53 +++++++++++++++++++++
+ lxqt-config-appearance/styleconfig.cpp | 16 ++++++-
+ lxqt-config-appearance/styleconfig.ui | 34 ++++++++++++++
+ 5 files changed, 168 insertions(+), 1 deletion(-)
+ create mode 100644 lxqt-config-appearance/colorLabel.cpp
+ create mode 100644 lxqt-config-appearance/colorLabel.h
+
+diff --git a/lxqt-config-appearance/CMakeLists.txt b/lxqt-config-appearance/CMakeLists.txt
+index 184a8309..1ec118b7 100644
+--- a/lxqt-config-appearance/CMakeLists.txt
++++ b/lxqt-config-appearance/CMakeLists.txt
+@@ -27,6 +27,7 @@ set(CPP_FILES
+ styleconfig.cpp
+ fontconfigfile.cpp
+ configothertoolkits.cpp
++ colorLabel.cpp
+ )
+
+ set(UI_FILES
+diff --git a/lxqt-config-appearance/colorLabel.cpp b/lxqt-config-appearance/colorLabel.cpp
+new file mode 100644
+index 00000000..a3e22df0
+--- /dev/null
++++ b/lxqt-config-appearance/colorLabel.cpp
+@@ -0,0 +1,65 @@
++/* BEGIN_COMMON_COPYRIGHT_HEADER
++ * (c)LGPL2+
++ *
++ * LXQt - a lightweight, Qt based, desktop toolset
++ * https://lxqt.org/
++ *
++ * Copyright: 2020 LXQt team
++ *
++ * This program or 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) any later version.
++ *
++ * 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, write to the
++ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
++ * Boston, MA 02110-1301 USA
++ *
++ * END_COMMON_COPYRIGHT_HEADER */
++
++#include "colorLabel.h"
++#include <QColorDialog>
++
++ColorLabel::ColorLabel(QWidget* parent, Qt::WindowFlags f)
++ : QLabel(parent, f)
++{
++ setFrameStyle(QFrame::Panel | QFrame::Sunken);
++ setFixedWidth(100);
++ setToolTip(tr("Click to change color."));
++}
++
++ColorLabel::~ColorLabel() {}
++
++void ColorLabel::setColor(const QColor& color)
++{
++ if (!color.isValid())
++ return;
++ stylesheetColor_ = color;
++ // ignore translucency
++ stylesheetColor_.setAlpha(255);
++ setStyleSheet(QStringLiteral("QLabel{background-color: rgb(%1, %2, %3);}")
++ .arg(color.red()).arg(color.green()).arg(color.blue()));
++}
++
++QColor ColorLabel::getColor() const
++{
++ if (stylesheetColor_.isValid())
++ return stylesheetColor_; // the window color may be different from the stylesheet color
++ return palette().color(QPalette::Window);
++}
++
++void ColorLabel::mousePressEvent(QMouseEvent* /*event*/) {
++ QColor prevColor = getColor();
++ QColor color = QColorDialog::getColor(prevColor, window(), tr("Select Color"));
++ if (color.isValid() && color != prevColor)
++ {
++ emit colorChanged();
++ setColor(color);
++ }
++}
+diff --git a/lxqt-config-appearance/colorLabel.h b/lxqt-config-appearance/colorLabel.h
+new file mode 100644
+index 00000000..1ea1b62c
+--- /dev/null
++++ b/lxqt-config-appearance/colorLabel.h
+@@ -0,0 +1,53 @@
++/* BEGIN_COMMON_COPYRIGHT_HEADER
++ * (c)LGPL2+
++ *
++ * LXQt - a lightweight, Qt based, desktop toolset
++ * https://lxqt.org/
++ *
++ * Copyright: 2020 LXQt team
++ *
++ * This program or 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) any later version.
++ *
++ * 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, write to the
++ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
++ * Boston, MA 02110-1301 USA
++ *
++ * END_COMMON_COPYRIGHT_HEADER */
++
++#ifndef COLORLABEL_H
++#define COLORLABEL_H
++
++#include <QLabel>
++#include <QWidget>
++#include <Qt>
++
++class ColorLabel : public QLabel {
++ Q_OBJECT
++
++public:
++ explicit ColorLabel(QWidget* parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());
++ ~ColorLabel();
++
++ void setColor(const QColor& color);
++ QColor getColor() const;
++
++signals:
++ void colorChanged();
++
++protected:
++ void mousePressEvent(QMouseEvent* event);
++
++private:
++ QColor stylesheetColor_;
++};
++
++#endif // COLORLABEL_H
+diff --git a/lxqt-config-appearance/styleconfig.cpp b/lxqt-config-appearance/styleconfig.cpp
+index 73f336e7..ce10aff1 100644
+--- a/lxqt-config-appearance/styleconfig.cpp
++++ b/lxqt-config-appearance/styleconfig.cpp
+@@ -61,6 +61,7 @@ StyleConfig::StyleConfig(LXQt::Settings* settings, QSettings* qtSettings, LXQt::
+ connect(ui->gtk3ComboBox, QOverload<int>::of(&QComboBox::activated), this, &StyleConfig::settingsChanged);
+ connect(ui->toolButtonStyle, QOverload<int>::of(&QComboBox::activated), this, &StyleConfig::settingsChanged);
+ connect(ui->singleClickActivate, &QAbstractButton::clicked, this, &StyleConfig::settingsChanged);
++ connect(ui->winColorLabel, &ColorLabel::colorChanged, this, &StyleConfig::settingsChanged);
+ }
+
+
+@@ -97,7 +98,6 @@ void StyleConfig::initControls()
+ // activate item views with single click
+ ui->singleClickActivate->setChecked( mSettings->value(QStringLiteral("single_click_activate"), false).toBool());
+
+-
+ // Fill Qt themes
+ ui->qtComboBox->clear();
+ ui->qtComboBox->addItems(qtThemes);
+@@ -108,8 +108,16 @@ void StyleConfig::initControls()
+
+ ui->gtk2ComboBox->setCurrentText(mConfigOtherToolKits->getGTKThemeFromRCFile(QStringLiteral("2.0")));
+ ui->gtk3ComboBox->setCurrentText(mConfigOtherToolKits->getGTKThemeFromRCFile(QStringLiteral("3.0")));
++
+ mSettings->beginGroup(QLatin1String("Qt"));
++ // Qt style
+ ui->qtComboBox->setCurrentText(mSettings->value(QStringLiteral("style")).toString());
++ // Qt window color
++ QColor color;
++ color.setNamedColor(mSettings->value(QStringLiteral("window_color")).toString());
++ if (!color.isValid())
++ color = QGuiApplication::palette().color(QPalette::Active,QPalette::Window);
++ ui->winColorLabel->setColor(color);
+ mSettings->endGroup();
+
+ update();
+@@ -122,6 +130,12 @@ void StyleConfig::applyStyle()
+ mQtSettings->beginGroup(QLatin1String("Qt"));
+ if(mQtSettings->value(QStringLiteral("style")).toString() != themeName)
+ mQtSettings->setValue(QStringLiteral("style"), themeName);
++ // Qt window color
++ QColor winColor = ui->winColorLabel->getColor();
++ QColor oldWinColor;
++ oldWinColor.setNamedColor(mQtSettings->value(QStringLiteral("window_color")).toString());
++ if (winColor != oldWinColor)
++ mQtSettings->setValue(QStringLiteral("window_color"), winColor.name());
+ mQtSettings->endGroup();
+
+ // single click setting
+diff --git a/lxqt-config-appearance/styleconfig.ui b/lxqt-config-appearance/styleconfig.ui
+index 15394024..6edbe470 100644
+--- a/lxqt-config-appearance/styleconfig.ui
++++ b/lxqt-config-appearance/styleconfig.ui
+@@ -146,8 +146,42 @@ Make sure 'xsettingsd' is installed to help GTK applications apply themes on the
+ </property>
+ </widget>
+ </item>
++ <item row="2" column="0" colspan="2">
++ <layout class="QFormLayout" name="formLayout_3">
++ <property name="horizontalSpacing">
++ <number>5</number>
++ </property>
++ <property name="topMargin">
++ <number>10</number>
++ </property>
++ <property name="bottomMargin">
++ <number>10</number>
++ </property>
++ <item row="0" column="0">
++ <widget class="QLabel" name="label_6">
++ <property name="text">
++ <string>Window Color:</string>
++ </property>
++ </widget>
++ </item>
++ <item row="0" column="1">
++ <widget class="ColorLabel" name="winColorLabel">
++ <property name="text">
++ <string/>
++ </property>
++ </widget>
++ </item>
++ </layout>
++ </item>
+ </layout>
+ </widget>
++ <customwidgets>
++ <customwidget>
++ <class>ColorLabel</class>
++ <extends>QLabel</extends>
++ <header>colorLabel.h</header>
++ </customwidget>
++ </customwidgets>
+ <resources/>
+ <connections/>
+ </ui>
+
+From 99ecfabccceb827256b7ef32c75c6aa6434d2d9f Mon Sep 17 00:00:00 2001
+From: Tsu Jan <tsujan2000@gmail.com>
+Date: Mon, 1 Jun 2020 23:46:49 +0430
+Subject: [PATCH 2/4] Added a distinguishable border to the color label
+
+---
+ lxqt-config-appearance/colorLabel.cpp | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/lxqt-config-appearance/colorLabel.cpp b/lxqt-config-appearance/colorLabel.cpp
+index a3e22df0..c3b69d8d 100644
+--- a/lxqt-config-appearance/colorLabel.cpp
++++ b/lxqt-config-appearance/colorLabel.cpp
+@@ -43,8 +43,10 @@ void ColorLabel::setColor(const QColor& color)
+ stylesheetColor_ = color;
+ // ignore translucency
+ stylesheetColor_.setAlpha(255);
+- setStyleSheet(QStringLiteral("QLabel{background-color: rgb(%1, %2, %3);}")
+- .arg(color.red()).arg(color.green()).arg(color.blue()));
++ QString borderColor = qGray(stylesheetColor_.rgb()) < 255 / 2
++ ? QStringLiteral("white") : QStringLiteral("black");
++ setStyleSheet(QStringLiteral("QLabel{background-color: rgb(%1, %2, %3); border: 1px solid %4;}}")
++ .arg(color.red()).arg(color.green()).arg(color.blue()).arg(borderColor));
+ }
+
+ QColor ColorLabel::getColor() const
+
+From 37f55579da91bfd78310a0e2c28c8551ad484414 Mon Sep 17 00:00:00 2001
+From: Tsu Jan <tsujan2000@gmail.com>
+Date: Thu, 4 Jun 2020 15:47:22 +0430
+Subject: [PATCH 3/4] Removed an extra curly bracket in stylesheet
+
+---
+ lxqt-config-appearance/colorLabel.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lxqt-config-appearance/colorLabel.cpp b/lxqt-config-appearance/colorLabel.cpp
+index c3b69d8d..de730baf 100644
+--- a/lxqt-config-appearance/colorLabel.cpp
++++ b/lxqt-config-appearance/colorLabel.cpp
+@@ -45,7 +45,7 @@ void ColorLabel::setColor(const QColor& color)
+ stylesheetColor_.setAlpha(255);
+ QString borderColor = qGray(stylesheetColor_.rgb()) < 255 / 2
+ ? QStringLiteral("white") : QStringLiteral("black");
+- setStyleSheet(QStringLiteral("QLabel{background-color: rgb(%1, %2, %3); border: 1px solid %4;}}")
++ setStyleSheet(QStringLiteral("QLabel{background-color: rgb(%1, %2, %3); border: 1px solid %4;}")
+ .arg(color.red()).arg(color.green()).arg(color.blue()).arg(borderColor));
+ }
+
+
+From 30cf8267ce4af08f9953b169f9d8109fb9437f7d Mon Sep 17 00:00:00 2001
+From: Tsu Jan <tsujan2000@gmail.com>
+Date: Sat, 6 Jun 2020 14:15:53 +0430
+Subject: [PATCH 4/4] A small improvement
+
+---
+ lxqt-config-appearance/colorLabel.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lxqt-config-appearance/colorLabel.cpp b/lxqt-config-appearance/colorLabel.cpp
+index de730baf..98d01729 100644
+--- a/lxqt-config-appearance/colorLabel.cpp
++++ b/lxqt-config-appearance/colorLabel.cpp
+@@ -46,7 +46,7 @@ void ColorLabel::setColor(const QColor& color)
+ QString borderColor = qGray(stylesheetColor_.rgb()) < 255 / 2
+ ? QStringLiteral("white") : QStringLiteral("black");
+ setStyleSheet(QStringLiteral("QLabel{background-color: rgb(%1, %2, %3); border: 1px solid %4;}")
+- .arg(color.red()).arg(color.green()).arg(color.blue()).arg(borderColor));
++ .arg(QString::number(color.red()), QString::number(color.green()), QString::number(color.blue()), borderColor));
+ }
+
+ QColor ColorLabel::getColor() const
diff --git a/lxqt-base/lxqt-config/lxqt-config-0.15.0-r1.ebuild b/lxqt-base/lxqt-config/lxqt-config-0.15.0-r1.ebuild
new file mode 100644
index 000000000000..af99f9d0116e
--- /dev/null
+++ b/lxqt-base/lxqt-config/lxqt-config-0.15.0-r1.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake xdg-utils
+
+DESCRIPTION="LXQt system configuration control center"
+HOMEPAGE="https://lxqt.github.io/"
+
+if [[ ${PV} = *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/lxqt/${PN}.git"
+else
+ SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+fi
+
+LICENSE="GPL-2 GPL-2+ GPL-3 LGPL-2 LGPL-2+ LGPL-2.1+ WTFPL-2"
+SLOT="0"
+IUSE="+monitor +touchpad"
+
+BDEPEND="
+ dev-qt/linguist-tools:5
+ >=dev-util/lxqt-build-tools-0.7.0
+"
+DEPEND="
+ >=dev-libs/libqtxdg-3.3.1
+ dev-qt/qtcore:5
+ dev-qt/qtdbus:5
+ dev-qt/qtgui:5
+ dev-qt/qtwidgets:5
+ dev-qt/qtx11extras:5
+ dev-qt/qtxml:5
+ kde-frameworks/kwindowsystem:5
+ =lxqt-base/liblxqt-$(ver_cut 1-2)*
+ sys-libs/zlib:=
+ x11-apps/setxkbmap
+ x11-libs/libxcb:=
+ x11-libs/libX11
+ x11-libs/libXcursor
+ x11-libs/libXfixes
+ monitor? ( kde-plasma/libkscreen:5= )
+ touchpad? (
+ virtual/libudev
+ x11-drivers/xf86-input-libinput
+ x11-libs/libXext
+ x11-libs/libXi
+ )
+"
+RDEPEND="${DEPEND}
+ !lxqt-base/lxqt-l10n
+"
+
+PATCHES=( "${FILESDIR}/${PN}-0.15.0-window-colour-option.patch" )
+
+src_configure() {
+ local mycmakeargs=(
+ -DWITH_MONITOR=$(usex monitor)
+ -DWITH_TOUCHPAD=$(usex touchpad)
+ )
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+ doman man/*.1 liblxqt-config-cursor/man/*.1 lxqt-config-appearance/man/*.1
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+}