diff options
author | Jimi Huotari <chiitoo@gentoo.org> | 2020-06-07 20:19:03 +0300 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2020-06-15 00:48:36 +0200 |
commit | d71c37a5496c754ead52d85f64c6a8b922151923 (patch) | |
tree | afece8fe6a34a2b2537ca11ebbe1c27de2dadb1e /lxqt-base | |
parent | x11-libs/libfm-qt: add version 0.15.1-r1 (diff) | |
download | gentoo-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.patch | 333 | ||||
-rw-r--r-- | lxqt-base/lxqt-config/lxqt-config-0.15.0-r1.ebuild | 76 |
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 +} |