commit:     d71c37a5496c754ead52d85f64c6a8b922151923
Author:     Jimi Huotari <chiitoo <AT> gentoo <DOT> org>
AuthorDate: Sun Jun  7 17:19:03 2020 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sun Jun 14 22:48:36 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d71c37a5

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 <AT> gentoo.org>
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 .../lxqt-config-0.15.0-window-colour-option.patch  | 333 +++++++++++++++++++++
 lxqt-base/lxqt-config/lxqt-config-0.15.0-r1.ebuild |  76 +++++
 2 files changed, 409 insertions(+)

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 00000000000..813cd7e4bca
--- /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 <tsujan2...@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 <tsujan2...@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 <tsujan2...@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 <tsujan2...@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 00000000000..af99f9d0116
--- /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
+}

Reply via email to