forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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 <[email protected]> Signed-off-by: Andreas Sturmlechner <[email protected]>
- Loading branch information
Showing
2 changed files
with
409 additions
and
0 deletions.
There are no files selected for viewing
333 changes: 333 additions & 0 deletions
333
lxqt-base/lxqt-config/files/lxqt-config-0.15.0-window-colour-option.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,333 @@ | ||
From 0edcc373698189f27ac24fb0985570ef2ecd8b0d Mon Sep 17 00:00:00 2001 | ||
From: Tsu Jan <[email protected]> | ||
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 <[email protected]> | ||
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 <[email protected]> | ||
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 <[email protected]> | ||
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 |
Oops, something went wrong.