diff options
Diffstat (limited to 'lxqt-base/lxqt-config/files')
-rw-r--r-- | lxqt-base/lxqt-config/files/revert0-adfb181b7924ac2e71347709171542316ea248de.patch | 1464 | ||||
-rw-r--r-- | lxqt-base/lxqt-config/files/revert1-c66eb66b58328beb1cac4b3576f30bb68001021c.patch | 161 | ||||
-rw-r--r-- | lxqt-base/lxqt-config/files/revert2-2aff948ea19508317c185d87bc5f5e20fe64a30f.patch (renamed from lxqt-base/lxqt-config/files/revert-2aff948ea19508317c185d87bc5f5e20fe64a30f.patch) | 0 |
3 files changed, 1625 insertions, 0 deletions
diff --git a/lxqt-base/lxqt-config/files/revert0-adfb181b7924ac2e71347709171542316ea248de.patch b/lxqt-base/lxqt-config/files/revert0-adfb181b7924ac2e71347709171542316ea248de.patch new file mode 100644 index 00000000..df9fcfde --- /dev/null +++ b/lxqt-base/lxqt-config/files/revert0-adfb181b7924ac2e71347709171542316ea248de.patch @@ -0,0 +1,1464 @@ +diff '--color=auto' -Nur a/lxqt-config-appearance/configothertoolkits.cpp b/lxqt-config-appearance/configothertoolkits.cpp +--- a/lxqt-config-appearance/configothertoolkits.cpp 2025-04-17 10:06:55.000000000 +0100 ++++ b/lxqt-config-appearance/configothertoolkits.cpp 2025-05-01 02:30:30.145317762 +0100 +@@ -96,7 +96,7 @@ + * GTK just doesn't intend to support image menu items. They're considered bad practice in modern UI. + */ + +-ConfigOtherToolKits::ConfigOtherToolKits(LXQt::Settings *settings, LXQt::Settings *configAppearanceSettings, QObject *parent) : QObject(parent) ++ConfigOtherToolKits::ConfigOtherToolKits(LXQt::Settings *settings, LXQt::Settings *configAppearanceSettings, QObject *parent) : QObject(parent) + { + mSettings = settings; + mConfigAppearanceSettings = configAppearanceSettings; +@@ -406,7 +406,7 @@ + if(defaultTheme.size() <= 1) + return QString(); + // The theme has got quotation marks. Remove it: +- defaultTheme.replace("'", ""); ++ defaultTheme.replace("'",""); + return QString::fromUtf8(defaultTheme); + } + +diff '--color=auto' -Nur a/lxqt-config-appearance/iconthemeconfig.cpp b/lxqt-config-appearance/iconthemeconfig.cpp +--- a/lxqt-config-appearance/iconthemeconfig.cpp 2025-04-17 10:06:55.000000000 +0100 ++++ b/lxqt-config-appearance/iconthemeconfig.cpp 2025-05-01 02:30:30.145317762 +0100 +@@ -77,7 +77,7 @@ + if (theme.isValid() && (!theme.isHidden())) + { + QTreeWidgetItem *item = new QTreeWidgetItem((QTreeWidget*)nullptr); +- item->setSizeHint(0, QSize(42, 42)); // make icons non-cropped ++ item->setSizeHint(0, QSize(42,42)); // make icons non-cropped + item->setData(0, Qt::UserRole, theme.name()); + + const QList<QIcon> icons = theme.icons(iconNames); +diff '--color=auto' -Nur a/lxqt-config-appearance/lxqtthemeconfig.cpp b/lxqt-config-appearance/lxqtthemeconfig.cpp +--- a/lxqt-config-appearance/lxqtthemeconfig.cpp 2025-04-17 10:06:55.000000000 +0100 ++++ b/lxqt-config-appearance/lxqtthemeconfig.cpp 2025-05-01 02:30:30.145317762 +0100 +@@ -87,7 +87,7 @@ + { + item->setIcon(0, QIcon(theme.previewImage())); + } +- item->setSizeHint(0, QSize(42, 42)); // make icons non-cropped ++ item->setSizeHint(0, QSize(42,42)); // make icons non-cropped + item->setData(0, Qt::UserRole, theme.name()); + ui->lxqtThemeList->addTopLevelItem(item); + } +diff '--color=auto' -Nur a/lxqt-config-appearance/styleconfig.cpp b/lxqt-config-appearance/styleconfig.cpp +--- a/lxqt-config-appearance/styleconfig.cpp 2025-04-17 10:06:55.000000000 +0100 ++++ b/lxqt-config-appearance/styleconfig.cpp 2025-05-01 02:30:30.145317762 +0100 +@@ -72,17 +72,17 @@ + QColor winColor(239, 239, 239); + QPalette defaultPalette(winColor); + ui->winColorLabel->setColor(winColor, true); +- ui->baseColorLabel->setColor(defaultPalette.color(QPalette::Active, QPalette::Base), true); ++ ui->baseColorLabel->setColor(defaultPalette.color(QPalette::Active,QPalette::Base), true); + // Qt's default highlight color may be different from that of Fusion + ui->highlightColorLabel->setColor(QColor(60, 140, 230), true); +- ui->windowTextColorLabel->setColor(defaultPalette.color(QPalette::Active, QPalette::WindowText), true); +- ui->viewTextColorLabel->setColor(defaultPalette.color(QPalette::Active, QPalette::Text), true); +- ui->highlightedTextColorLabel->setColor(defaultPalette.color(QPalette::Active, QPalette::HighlightedText), true); +- ui->linkColorLabel->setColor(defaultPalette.color(QPalette::Active, QPalette::Link), true); +- ui->linkVisitedColorLabel->setColor(defaultPalette.color(QPalette::Active, QPalette::LinkVisited), true); ++ ui->windowTextColorLabel->setColor(defaultPalette.color(QPalette::Active,QPalette::WindowText), true); ++ ui->viewTextColorLabel->setColor(defaultPalette.color(QPalette::Active,QPalette::Text), true); ++ ui->highlightedTextColorLabel->setColor(defaultPalette.color(QPalette::Active,QPalette::HighlightedText), true); ++ ui->linkColorLabel->setColor(defaultPalette.color(QPalette::Active,QPalette::Link), true); ++ ui->linkVisitedColorLabel->setColor(defaultPalette.color(QPalette::Active,QPalette::LinkVisited), true); + // tooltips use the Inactive color group +- ui->tooltipColorLabel->setColor(defaultPalette.color(QPalette::Inactive, QPalette::ToolTipBase), true); +- ui->tooltipTextColorLabel->setColor(defaultPalette.color(QPalette::Inactive, QPalette::ToolTipText), true); ++ ui->tooltipColorLabel->setColor(defaultPalette.color(QPalette::Inactive,QPalette::ToolTipBase), true); ++ ui->tooltipTextColorLabel->setColor(defaultPalette.color(QPalette::Inactive,QPalette::ToolTipText), true); + }); + + connect(ui->savePaletteBtn, &QAbstractButton::clicked, this, &StyleConfig::savePalette); +@@ -155,53 +155,53 @@ + QColor color; + color = QColor::fromString(mSettings->value(QStringLiteral("window_color")).toString()); + if (!color.isValid()) +- color = QGuiApplication::palette().color(QPalette::Active, QPalette::Window); ++ color = QGuiApplication::palette().color(QPalette::Active,QPalette::Window); + ui->winColorLabel->setColor(color); + + color = QColor::fromString(mSettings->value(QStringLiteral("base_color")).toString()); + if (!color.isValid()) +- color = QGuiApplication::palette().color(QPalette::Active, QPalette::Base); ++ color = QGuiApplication::palette().color(QPalette::Active,QPalette::Base); + ui->baseColorLabel->setColor(color); + + color = QColor::fromString(mSettings->value(QStringLiteral("highlight_color")).toString()); + if (!color.isValid()) +- color = QGuiApplication::palette().color(QPalette::Active, QPalette::Highlight); ++ color = QGuiApplication::palette().color(QPalette::Active,QPalette::Highlight); + ui->highlightColorLabel->setColor(color); + + color = QColor::fromString(mSettings->value(QStringLiteral("window_text_color")).toString()); + if (!color.isValid()) +- color = QGuiApplication::palette().color(QPalette::Active, QPalette::WindowText); ++ color = QGuiApplication::palette().color(QPalette::Active,QPalette::WindowText); + ui->windowTextColorLabel->setColor(color); + + color = QColor::fromString(mSettings->value(QStringLiteral("text_color")).toString()); + if (!color.isValid()) +- color = QGuiApplication::palette().color(QPalette::Active, QPalette::Text); ++ color = QGuiApplication::palette().color(QPalette::Active,QPalette::Text); + ui->viewTextColorLabel->setColor(color); + + color = QColor::fromString(mSettings->value(QStringLiteral("highlighted_text_color")).toString()); + if (!color.isValid()) +- color = QGuiApplication::palette().color(QPalette::Active, QPalette::HighlightedText); ++ color = QGuiApplication::palette().color(QPalette::Active,QPalette::HighlightedText); + ui->highlightedTextColorLabel->setColor(color); + + color = QColor::fromString(mSettings->value(QStringLiteral("link_color")).toString()); + if (!color.isValid()) +- color = QGuiApplication::palette().color(QPalette::Active, QPalette::Link); ++ color = QGuiApplication::palette().color(QPalette::Active,QPalette::Link); + ui->linkColorLabel->setColor(color); + + color = QColor::fromString(mSettings->value(QStringLiteral("link_visited_color")).toString()); + if (!color.isValid()) +- color = QGuiApplication::palette().color(QPalette::Active, QPalette::LinkVisited); ++ color = QGuiApplication::palette().color(QPalette::Active,QPalette::LinkVisited); + ui->linkVisitedColorLabel->setColor(color); + + // tooltips use the Inactive color group + color = QColor::fromString(mSettings->value(QStringLiteral("tooltip_base_color")).toString()); + if (!color.isValid()) +- color = QGuiApplication::palette().color(QPalette::Inactive, QPalette::ToolTipBase); ++ color = QGuiApplication::palette().color(QPalette::Inactive,QPalette::ToolTipBase); + ui->tooltipColorLabel->setColor(color); + + color = QColor::fromString(mSettings->value(QStringLiteral("tooltip_text_color")).toString()); + if (!color.isValid()) +- color = QGuiApplication::palette().color(QPalette::Inactive, QPalette::ToolTipText); ++ color = QGuiApplication::palette().color(QPalette::Inactive,QPalette::ToolTipText); + ui->tooltipTextColorLabel->setColor(color); + + mSettings->endGroup(); +@@ -438,7 +438,7 @@ + { + bool visible(item->text().contains(filterStr, Qt::CaseInsensitive)); + if (I < 0 && visible) +- I = i; ++ I = i; + item->setHidden(!visible); + } + } +@@ -501,53 +501,53 @@ + QColor color; + color = QColor::fromString(settings.value(QStringLiteral("window_color")).toString()); + if (!color.isValid()) +- color = QGuiApplication::palette().color(QPalette::Active, QPalette::Window); ++ color = QGuiApplication::palette().color(QPalette::Active,QPalette::Window); + ui->winColorLabel->setColor(color, true); + + color = QColor::fromString(settings.value(QStringLiteral("base_color")).toString()); + if (!color.isValid()) +- color = QGuiApplication::palette().color(QPalette::Active, QPalette::Base); ++ color = QGuiApplication::palette().color(QPalette::Active,QPalette::Base); + ui->baseColorLabel->setColor(color, true); + + color = QColor::fromString(settings.value(QStringLiteral("highlight_color")).toString()); + if (!color.isValid()) +- color = QGuiApplication::palette().color(QPalette::Active, QPalette::Highlight); ++ color = QGuiApplication::palette().color(QPalette::Active,QPalette::Highlight); + ui->highlightColorLabel->setColor(color, true); + + color = QColor::fromString(settings.value(QStringLiteral("window_text_color")).toString()); + if (!color.isValid()) +- color = QGuiApplication::palette().color(QPalette::Active, QPalette::WindowText); ++ color = QGuiApplication::palette().color(QPalette::Active,QPalette::WindowText); + ui->windowTextColorLabel->setColor(color, true); + + color = QColor::fromString(settings.value(QStringLiteral("text_color")).toString()); + if (!color.isValid()) +- color = QGuiApplication::palette().color(QPalette::Active, QPalette::Text); ++ color = QGuiApplication::palette().color(QPalette::Active,QPalette::Text); + ui->viewTextColorLabel->setColor(color, true); + + color = QColor::fromString(settings.value(QStringLiteral("highlighted_text_color")).toString()); + if (!color.isValid()) +- color = QGuiApplication::palette().color(QPalette::Active, QPalette::HighlightedText); ++ color = QGuiApplication::palette().color(QPalette::Active,QPalette::HighlightedText); + ui->highlightedTextColorLabel->setColor(color, true); + + color = QColor::fromString(settings.value(QStringLiteral("link_color")).toString()); + if (!color.isValid()) +- color = QGuiApplication::palette().color(QPalette::Active, QPalette::Link); ++ color = QGuiApplication::palette().color(QPalette::Active,QPalette::Link); + ui->linkColorLabel->setColor(color, true); + + color = QColor::fromString(settings.value(QStringLiteral("link_visited_color")).toString()); + if (!color.isValid()) +- color = QGuiApplication::palette().color(QPalette::Active, QPalette::LinkVisited); ++ color = QGuiApplication::palette().color(QPalette::Active,QPalette::LinkVisited); + ui->linkVisitedColorLabel->setColor(color, true); + + // tooltips use the Inactive color group + color = QColor::fromString(settings.value(QStringLiteral("tooltip_base_color")).toString()); + if (!color.isValid()) +- color = QGuiApplication::palette().color(QPalette::Inactive, QPalette::ToolTipBase); ++ color = QGuiApplication::palette().color(QPalette::Inactive,QPalette::ToolTipBase); + ui->tooltipColorLabel->setColor(color, true); + + color = QColor::fromString(settings.value(QStringLiteral("tooltip_text_color")).toString()); + if (!color.isValid()) +- color = QGuiApplication::palette().color(QPalette::Inactive, QPalette::ToolTipText); ++ color = QGuiApplication::palette().color(QPalette::Inactive,QPalette::ToolTipText); + ui->tooltipTextColorLabel->setColor(color, true); + + settings.endGroup(); +diff '--color=auto' -Nur a/lxqt-config-brightness/brightnesssettings.cpp b/lxqt-config-brightness/brightnesssettings.cpp +--- a/lxqt-config-brightness/brightnesssettings.cpp 2025-04-17 10:06:55.000000000 +0100 ++++ b/lxqt-config-brightness/brightnesssettings.cpp 2025-05-01 02:30:30.146317762 +0100 +@@ -97,7 +97,7 @@ + + void BrightnessSettings::monitorSettingsChanged(MonitorInfo monitor) + { +- mBrightness->setMonitorsSettings(QList<MonitorInfo>{} << monitor); ++ mBrightness->setMonitorsSettings(QList<MonitorInfo>{} << monitor); + if (ui->confirmCB->isChecked()) + mConfirmRequestTimer.start(); + else { +diff '--color=auto' -Nur a/lxqt-config-brightness/brightnesssettings.cpp.orig b/lxqt-config-brightness/brightnesssettings.cpp.orig +--- a/lxqt-config-brightness/brightnesssettings.cpp.orig 1970-01-01 01:00:00.000000000 +0100 ++++ b/lxqt-config-brightness/brightnesssettings.cpp.orig 2025-04-17 10:06:55.000000000 +0100 +@@ -0,0 +1,196 @@ ++/* ++ Copyright (C) 2016 P.L. Lucas <selairi@gmail.com> ++ ++ This 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 ++*/ ++ ++#include "brightnesssettings.h" ++#include "outputwidget.h" ++#include <QMessageBox> ++#include <QPushButton> ++ ++#include <cmath> ++#include <algorithm> ++ ++BrightnessSettings::BrightnessSettings(QWidget *parent):QDialog(parent) ++{ ++ ui = new Ui::BrightnessSettings(); ++ ui->setupUi(this); ++ ++ mBrightness = new XRandrBrightness(); ++ mMonitors = mBrightness->getMonitorsInfo(); ++ mMonitorsInitial = mBrightness->getMonitorsInfo(); ++ mBacklight = new LXQt::Backlight(this); ++ ++ ui->headIconLabel->setPixmap(QIcon::fromTheme(QStringLiteral("display-brightness-symbolic")).pixmap(32, 32)); ++ ++ ui->backlightSlider->setEnabled(mBacklight->isBacklightAvailable() || mBacklight->isBacklightOff()); ++ ui->backlightGroupBox->setEnabled(mBacklight->isBacklightAvailable() || mBacklight->isBacklightOff()); ++ if(mBacklight->isBacklightAvailable()) { ++ setBacklightSliderValue(mBacklight->getBacklight()); ++ ++ mInitialBacklightValue = mLastBacklightValue = mBacklight->getBacklight(); ++ connect(ui->backlightSlider, &QSlider::valueChanged, this, &BrightnessSettings::setBacklight); ++ ++ connect(ui->backlightDownButton, &QToolButton::clicked, ++ [this](bool){ ui->backlightSlider->setValue(ui->backlightSlider->value()-1); }); ++ connect(ui->backlightUpButton, &QToolButton::clicked, ++ [this](bool){ ui->backlightSlider->setValue(ui->backlightSlider->value()+1); }); ++ } ++ ++ for(const MonitorInfo &monitor: std::as_const(mMonitors)) ++ { ++ OutputWidget *output = new OutputWidget(monitor, this); ++ ui->layout->addWidget(output); ++ output->show(); ++ connect(output, &OutputWidget::changed, this, &BrightnessSettings::monitorSettingsChanged); ++ connect(this, &BrightnessSettings::monitorReverted, output, &OutputWidget::setRevertedValues); ++ } ++ ++ mConfirmRequestTimer.setSingleShot(true); ++ mConfirmRequestTimer.setInterval(1000); ++ connect(&mConfirmRequestTimer, &QTimer::timeout, this, &BrightnessSettings::requestConfirmation); ++ ++ connect(ui->buttonBox, &QDialogButtonBox::clicked, ++ [this](QAbstractButton *button) { ++ if(ui->buttonBox->button(QDialogButtonBox::Reset) == button) { ++ revertValues(); ++ } ++ } ); ++} ++ ++BrightnessSettings::~BrightnessSettings() ++{ ++ delete ui; ++ ui = nullptr; ++ ++ delete mBrightness; ++ mBrightness = nullptr; ++} ++ ++void BrightnessSettings::setBacklight() ++{ ++ int value = ui->backlightSlider->value(); ++ // Set the minimum to 5% of the maximum to prevent a black screen ++ int minBacklight = std::max(std::round((qreal)(mBacklight->getMaxBacklight())*0.05), 1.0); ++ int maxBacklight = mBacklight->getMaxBacklight(); ++ int interval = maxBacklight - minBacklight; ++ if(interval > 100) ++ value = (value * maxBacklight) / 100; ++ mBacklight->setBacklight(value); ++ ++ if (ui->confirmCB->isChecked()) ++ mConfirmRequestTimer.start(); ++} ++ ++void BrightnessSettings::monitorSettingsChanged(MonitorInfo monitor) ++{ ++ mBrightness->setMonitorsSettings(QList<MonitorInfo>{} << monitor); ++ if (ui->confirmCB->isChecked()) ++ mConfirmRequestTimer.start(); ++ else { ++ for (auto & m : mMonitors) { ++ if (m.id() == monitor.id() && m.name() == monitor.name()) { ++ m.setBacklight(monitor.backlight()); ++ m.setBrightness(monitor.brightness()); ++ } ++ } ++ } ++} ++ ++void BrightnessSettings::requestConfirmation() ++{ ++ QMessageBox msg{QMessageBox::Question, tr("Brightness settings changed") ++ , tr("Confirmation required. Are the settings correct?") ++ , QMessageBox::Yes | QMessageBox::No}; ++ int timeout = 5; // seconds ++ QString no_text; ++ if (auto btn = msg.button(QMessageBox::No)) { ++ no_text = btn->text(); ++ no_text += QStringLiteral("(%1)"); ++ btn->setText(no_text.arg(timeout)); ++ } ++ msg.setDefaultButton(QMessageBox::No); ++ ++ QTimer timeoutTimer; ++ timeoutTimer.setSingleShot(false); ++ timeoutTimer.setInterval(1000); ++ connect(&timeoutTimer, &QTimer::timeout, [&] { ++ if (auto btn = msg.button(QMessageBox::No)) { ++ btn->setText(no_text.arg(--timeout)); ++ } ++ if (timeout == 0) ++ { ++ timeoutTimer.stop(); ++ msg.reject(); ++ } ++ }); ++ timeoutTimer.start(); ++ ++ if (QMessageBox::Yes == msg.exec()) ++ { ++ // re-read current values ++ if(mBacklight->isBacklightAvailable()) ++ mLastBacklightValue = mBacklight->getBacklight(); ++ ++ mMonitors = mBrightness->getMonitorsInfo(); ++ } else ++ { ++ // revert the changes ++ if(mBacklight->isBacklightAvailable()) { ++ disconnect(ui->backlightSlider, &QSlider::valueChanged, this, &BrightnessSettings::setBacklight); ++ mBacklight->setBacklight(mLastBacklightValue); ++ setBacklightSliderValue(mLastBacklightValue); ++ connect(ui->backlightSlider, &QSlider::valueChanged, this, &BrightnessSettings::setBacklight); ++ } ++ ++ mBrightness->setMonitorsSettings(mMonitors); ++ for (const auto & monitor : std::as_const(mMonitors)) ++ emit monitorReverted(monitor); ++ } ++} ++ ++void BrightnessSettings::revertValues() ++{ ++ if(mBacklight->isBacklightAvailable()) { ++ disconnect(ui->backlightSlider, &QSlider::valueChanged, this, &BrightnessSettings::setBacklight); ++ mBacklight->setBacklight(mInitialBacklightValue); ++ setBacklightSliderValue(mInitialBacklightValue); ++ connect(ui->backlightSlider, &QSlider::valueChanged, this, &BrightnessSettings::setBacklight); ++ } ++ ++ mBrightness->setMonitorsSettings(mMonitorsInitial); ++ for (const auto & monitor : std::as_const(mMonitorsInitial)) ++ emit monitorReverted(monitor); ++} ++ ++ ++void BrightnessSettings::setBacklightSliderValue(int value) ++{ ++ // Set the minimum to 5% of the maximum to prevent a black screen ++ int minBacklight = std::max(std::round((qreal)(mBacklight->getMaxBacklight())*0.05), 1.0); ++ int maxBacklight = mBacklight->getMaxBacklight(); ++ int interval = maxBacklight - minBacklight; ++ if(interval <= 100) { ++ ui->backlightSlider->setMaximum(maxBacklight); ++ ui->backlightSlider->setMinimum(minBacklight); ++ ui->backlightSlider->setValue(value); ++ } else { ++ ui->backlightSlider->setMaximum(100); ++ // Set the minimum to 5% of the maximum to prevent a black screen ++ ui->backlightSlider->setMinimum(5); ++ ui->backlightSlider->setValue( (value * 100) / maxBacklight); ++ } ++} +diff '--color=auto' -Nur a/lxqt-config-brightness/xrandrbrightness.cpp b/lxqt-config-brightness/xrandrbrightness.cpp +--- a/lxqt-config-brightness/xrandrbrightness.cpp 2025-04-17 10:06:55.000000000 +0100 ++++ b/lxqt-config-brightness/xrandrbrightness.cpp 2025-05-01 02:30:30.146317762 +0100 +@@ -160,7 +160,7 @@ + return -1; + } + +- xcb_generic_error_t *error; ++ xcb_generic_error_t *error; + + xcb_randr_get_output_info_cookie_t output_info_cookie = xcb_randr_get_output_info (x11NativeInterface->connection(), output, 0); + ScopedCPointer<xcb_randr_get_output_info_reply_t> output_info(xcb_randr_get_output_info_reply (x11NativeInterface->connection(), output_info_cookie, &error)); +@@ -219,7 +219,7 @@ + return; + } + +- xcb_generic_error_t *error; ++ xcb_generic_error_t *error; + + xcb_randr_get_output_info_cookie_t output_info_cookie = xcb_randr_get_output_info (x11NativeInterface->connection(), output, 0); + ScopedCPointer<xcb_randr_get_output_info_reply_t> output_info(xcb_randr_get_output_info_reply (x11NativeInterface->connection(), output_info_cookie, &error)); +@@ -292,7 +292,7 @@ + for (int i = 0; i < m_resources->num_outputs; ++i) { + xcb_randr_output_t output = outputs[i]; + +- xcb_generic_error_t *error; ++ xcb_generic_error_t *error; + + xcb_randr_get_output_info_cookie_t output_info_cookie = xcb_randr_get_output_info (x11NativeInterface->connection(), output, 0); + ScopedCPointer <xcb_randr_get_output_info_reply_t> output_info(xcb_randr_get_output_info_reply (x11NativeInterface->connection(), output_info_cookie, &error)); +@@ -385,7 +385,7 @@ + for (int i = 0; i < m_resources->num_outputs; ++i) { + xcb_randr_output_t output = outputs[i]; + +- xcb_generic_error_t *error; ++ xcb_generic_error_t *error; + + xcb_randr_get_output_info_cookie_t output_info_cookie = xcb_randr_get_output_info (x11NativeInterface->connection(), output, 0); + ScopedCPointer<xcb_randr_get_output_info_reply_t> output_info(xcb_randr_get_output_info_reply (x11NativeInterface->connection(), output_info_cookie, &error)); +diff '--color=auto' -Nur a/lxqt-config-brightness/xrandrbrightness.cpp.orig b/lxqt-config-brightness/xrandrbrightness.cpp.orig +--- a/lxqt-config-brightness/xrandrbrightness.cpp.orig 1970-01-01 01:00:00.000000000 +0100 ++++ b/lxqt-config-brightness/xrandrbrightness.cpp.orig 2025-04-17 10:06:55.000000000 +0100 +@@ -0,0 +1,448 @@ ++/* This file is part of the KDE project ++ * Copyright (C) 2010 Lukas Tinkl <ltinkl@redhat.com> ++ * Copyright (C) 2015 Kai Uwe Broulik <kde@privat.broulik.de> ++ * ++ * This library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Library General Public ++ * License version 2 as published by the Free Software Foundation. ++ * ++ * 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 ++ * Library General Public License for more details. ++ * ++ * You should have received a copy of the GNU Library General Public License ++ * along with this library; see the file COPYING.LIB. If not, write to ++ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, ++ * Boston, MA 02110-1301, USA. ++ * ++ */ ++ ++ ++#include <QGuiApplication> ++#include <QDebug> ++ ++#include <algorithm> ++ ++#include "xrandrbrightness.h" ++ ++XRandrBrightness::XRandrBrightness() ++{ ++ if (QGuiApplication::platformName() != QStringLiteral("xcb")) { ++ return; ++ } ++ auto x11NativeInterface = qGuiApp->nativeInterface<QNativeInterface::QX11Application>(); ++ if (!x11NativeInterface) { ++ return; ++ } ++ ScopedCPointer<xcb_randr_query_version_reply_t> versionReply(xcb_randr_query_version_reply(x11NativeInterface->connection(), ++ xcb_randr_query_version(x11NativeInterface->connection(), 1, 2), ++ nullptr)); ++ ++ if (!versionReply) { ++ qDebug() << "RandR Query version returned null"; ++ return; ++ } ++ ++ if (versionReply->major_version < 1 || (versionReply->major_version == 1 && versionReply->minor_version < 2)) { ++ qDebug() << "RandR version" << versionReply->major_version << "." << versionReply->minor_version << " too old"; ++ return; ++ } ++ ScopedCPointer<xcb_intern_atom_reply_t> backlightReply(xcb_intern_atom_reply(x11NativeInterface->connection(), ++ xcb_intern_atom (x11NativeInterface->connection(), 1, strlen("Backlight"), "Backlight"), ++ nullptr)); ++ ++ if (!backlightReply) { ++ qDebug() << "Intern Atom for Backlight returned null"; ++ return; ++ } ++ ++ m_backlight = backlightReply->atom; ++ ++ if (m_backlight == XCB_NONE) { ++ qDebug() << "No outputs have backlight property"; ++ //return; ++ } ++ xcb_screen_iterator_t iter = xcb_setup_roots_iterator(xcb_get_setup(x11NativeInterface->connection())); ++ if (!iter.rem) { ++ qDebug() << "XCB Screen Roots Iterator rem was null"; ++ return; ++ } ++ ++ xcb_screen_t *screen = iter.data; ++ xcb_window_t root = screen->root; ++ ++ m_resources.reset(xcb_randr_get_screen_resources_current_reply(x11NativeInterface->connection(), ++ xcb_randr_get_screen_resources_current(x11NativeInterface->connection(), root) ++ , nullptr)); ++ ++ if (!m_resources) { ++ qDebug() << "RANDR Get Screen Resources returned null"; ++ return; ++ } ++} ++ ++ ++ ++bool XRandrBrightness::backlight_get_with_range(xcb_randr_output_t output, long &value, long &min, long &max) const { ++ long cur = backlight_get(output); ++ if (cur == -1) { ++ return false; ++ } ++ auto x11NativeInterface = qGuiApp->nativeInterface<QNativeInterface::QX11Application>(); ++ if (!x11NativeInterface) { ++ return false; ++ } ++ ++ ScopedCPointer<xcb_randr_query_output_property_reply_t> propertyReply(xcb_randr_query_output_property_reply(x11NativeInterface->connection(), ++ xcb_randr_query_output_property(x11NativeInterface->connection(), output, m_backlight) ++ , nullptr)); ++ ++ if (!propertyReply) { ++ return false; ++ } ++ ++ if (propertyReply->range && xcb_randr_query_output_property_valid_values_length(propertyReply.data()) == 2) { ++ int32_t *values = xcb_randr_query_output_property_valid_values(propertyReply.data()); ++ value = cur; ++ min = values[0]; ++ max = values[1]; ++ return true; ++ } ++ ++ return false; ++} ++ ++long XRandrBrightness::backlight_get(xcb_randr_output_t output) const ++{ ++ auto x11NativeInterface = qGuiApp->nativeInterface<QNativeInterface::QX11Application>(); ++ if (!x11NativeInterface) { ++ return -1; ++ } ++ ++ ScopedCPointer<xcb_randr_get_output_property_reply_t> propertyReply; ++ long value; ++ ++ if (m_backlight != XCB_ATOM_NONE) { ++ propertyReply.reset(xcb_randr_get_output_property_reply(x11NativeInterface->connection(), ++ xcb_randr_get_output_property(x11NativeInterface->connection(), output, m_backlight, XCB_ATOM_NONE, 0, 4, 0, 0) ++ , nullptr)); ++ ++ if (!propertyReply) { ++ return -1; ++ } ++ } ++ ++ if (!propertyReply || propertyReply->type != XCB_ATOM_INTEGER || propertyReply->num_items != 1 || propertyReply->format != 32) { ++ value = -1; ++ } else { ++ value = *(reinterpret_cast<long *>(xcb_randr_get_output_property_data(propertyReply.data()))); ++ } ++ return value; ++} ++ ++void XRandrBrightness::backlight_set(xcb_randr_output_t output, long value) ++{ ++ auto x11NativeInterface = qGuiApp->nativeInterface<QNativeInterface::QX11Application>(); ++ if (!x11NativeInterface) { ++ return; ++ } ++ xcb_randr_change_output_property(x11NativeInterface->connection(), output, m_backlight, XCB_ATOM_INTEGER, ++ 32, XCB_PROP_MODE_REPLACE, ++ 1, reinterpret_cast<unsigned char *>(&value)); ++} ++ ++ ++float XRandrBrightness::gamma_brightness_get(xcb_randr_output_t output) ++{ ++ auto x11NativeInterface = qGuiApp->nativeInterface<QNativeInterface::QX11Application>(); ++ if (!x11NativeInterface) { ++ return -1; ++ } ++ ++ xcb_generic_error_t *error; ++ ++ xcb_randr_get_output_info_cookie_t output_info_cookie = xcb_randr_get_output_info (x11NativeInterface->connection(), output, 0); ++ ScopedCPointer<xcb_randr_get_output_info_reply_t> output_info(xcb_randr_get_output_info_reply (x11NativeInterface->connection(), output_info_cookie, &error)); ++ if(error != nullptr) ++ { ++ qDebug() << "Error getting output_info"; ++ return -1; ++ } ++ if(output_info == nullptr) ++ { ++ qDebug() << "Error: output_info is null"; ++ return -1; ++ } ++ // xcb_randr_get_output_info_reply_t tiene como elemento crtc ++ xcb_randr_get_crtc_gamma_cookie_t gamma_cookie = xcb_randr_get_crtc_gamma_unchecked (x11NativeInterface->connection(), output_info->crtc); ++ ScopedCPointer<xcb_randr_get_crtc_gamma_reply_t> gamma_reply(xcb_randr_get_crtc_gamma_reply (x11NativeInterface->connection(), gamma_cookie, &error)); ++ if(error != nullptr) ++ { ++ qDebug() << "Error getting gamma_reply"; ++ return -1; ++ } ++ if(gamma_reply == nullptr) ++ { ++ qDebug() << "Error: gamma_reply is null"; ++ return -1; ++ } ++ uint16_t * red = xcb_randr_get_crtc_gamma_red (gamma_reply.data()); ++ if(red == nullptr) ++ { ++ qDebug() << "Error: red is null"; ++ return -1; ++ } ++ int red_length = xcb_randr_get_crtc_gamma_red_length(gamma_reply.data()); ++ ++ // uint16_t *green = xcb_randr_get_crtc_gamma_green (gamma_reply); ++ // if(green == NULL) ++ // { ++ // qDebug() << "Error: green is null"; ++ // return -1; ++ // } ++ // uint16_t *blue = xcb_randr_get_crtc_gamma_blue (gamma_reply); ++ // if(blue == NULL) ++ // { ++ // qDebug() << "Error: blue is null"; ++ // return -1; ++ // } ++ ++ float brightness = (float)red[red_length-1]/65535.0; ++ return brightness; ++} ++ ++void XRandrBrightness::gamma_brightness_set(xcb_randr_output_t output, float percent) ++{ ++ auto x11NativeInterface = qGuiApp->nativeInterface<QNativeInterface::QX11Application>(); ++ if (!x11NativeInterface) { ++ return; ++ } ++ ++ xcb_generic_error_t *error; ++ ++ xcb_randr_get_output_info_cookie_t output_info_cookie = xcb_randr_get_output_info (x11NativeInterface->connection(), output, 0); ++ ScopedCPointer<xcb_randr_get_output_info_reply_t> output_info(xcb_randr_get_output_info_reply (x11NativeInterface->connection(), output_info_cookie, &error)); ++ if(error != nullptr) ++ { ++ qDebug() << "Error getting output_info"; ++ return; ++ } ++ if(output_info == nullptr) ++ { ++ qDebug() << "Error: output_info is null"; ++ return; ++ } ++ // xcb_randr_get_output_info_reply_t tiene como elemento crtc ++ xcb_randr_get_crtc_gamma_cookie_t gamma_cookie = xcb_randr_get_crtc_gamma_unchecked (x11NativeInterface->connection(), output_info->crtc); ++ ScopedCPointer<xcb_randr_get_crtc_gamma_reply_t> gamma_reply(xcb_randr_get_crtc_gamma_reply (x11NativeInterface->connection(), gamma_cookie, &error)); ++ if(error != nullptr) ++ { ++ qDebug() << "Error getting gamma_reply"; ++ return; ++ } ++ if(gamma_reply == nullptr) ++ { ++ qDebug() << "Error: gamma_reply is null"; ++ return; ++ } ++ uint16_t *red = xcb_randr_get_crtc_gamma_red (gamma_reply.data()); ++ if(red == nullptr) ++ { ++ qDebug() << "Error: red is null"; ++ return; ++ } ++ int red_length = xcb_randr_get_crtc_gamma_red_length(gamma_reply.data()); ++ uint16_t *green = xcb_randr_get_crtc_gamma_green (gamma_reply.data()); ++ if(green == nullptr) ++ { ++ qDebug() << "Error: green is null"; ++ return; ++ } ++ uint16_t *blue = xcb_randr_get_crtc_gamma_blue (gamma_reply.data()); ++ if(blue == nullptr) ++ { ++ qDebug() << "Error: blue is null"; ++ return; ++ } ++ ++ float max_gamma = 65535*percent; ++ for(int i=0;i<red_length;i++) ++ { ++ int value = std::min((int)(((float)i/(float)(red_length-1))*max_gamma), 65535); ++ green[i] = blue[i] = red[i] = value; ++ } ++ xcb_randr_set_crtc_gamma (x11NativeInterface->connection(), output_info->crtc, red_length, red, green, blue); ++} ++ ++ ++QList<MonitorInfo> XRandrBrightness::getMonitorsInfo() ++{ ++ QList<MonitorInfo> monitors; ++ ++ if (!m_resources) { ++ return monitors; ++ } ++ auto x11NativeInterface = qGuiApp->nativeInterface<QNativeInterface::QX11Application>(); ++ if (!x11NativeInterface) { ++ return monitors; ++ } ++ ++ auto *outputs = xcb_randr_get_screen_resources_current_outputs(m_resources.data()); ++ for (int i = 0; i < m_resources->num_outputs; ++i) { ++ xcb_randr_output_t output = outputs[i]; ++ ++ xcb_generic_error_t *error; ++ ++ xcb_randr_get_output_info_cookie_t output_info_cookie = xcb_randr_get_output_info (x11NativeInterface->connection(), output, 0); ++ ScopedCPointer <xcb_randr_get_output_info_reply_t> output_info(xcb_randr_get_output_info_reply (x11NativeInterface->connection(), output_info_cookie, &error)); ++ if(error != nullptr) ++ { ++ qDebug() << "Error getting output_info"; ++ continue; ++ } ++ if(output_info == nullptr) ++ { ++ qDebug() << "Error: output_info is null"; ++ continue; ++ } ++ ++ QString name = QString::fromUtf8((const char *) xcb_randr_get_output_info_name(output_info.data()), output_info->name_len); ++ ++ ++ qDebug() << "Found output:" << name; ++ ++ ++ // Is connected? ++ if ( (xcb_randr_connection_t)(output_info->connection) != XCB_RANDR_CONNECTION_CONNECTED ) ++ { ++ qDebug() << "Output is not connected"; ++ continue; // This output is not connected. Check other ++ } ++ ++ // Is enabled? ++ if( output_info->crtc == 0) ++ { ++ qDebug() << "Crtc is not null. Output not enabled."; ++ continue; ++ } ++ xcb_randr_get_crtc_info_cookie_t crtc_info_cookie = xcb_randr_get_crtc_info_unchecked (x11NativeInterface->connection(), output_info->crtc, 0); ++ ScopedCPointer<xcb_randr_get_crtc_info_reply_t> crtc_info(xcb_randr_get_crtc_info_reply (x11NativeInterface->connection(), crtc_info_cookie, &error)); ++ if(error != nullptr) ++ { ++ qDebug() << "Error getting output_info"; ++ continue; ++ } ++ if(crtc_info == nullptr) ++ { ++ qDebug() << "Error: output_info is null"; ++ continue; ++ } ++ if( crtc_info->mode == XCB_NONE ) ++ { ++ qDebug() << "No modes. Output not enabled."; ++ continue; ++ } ++ ++ // Output is connected and enabled. Get data: ++ bool backlightIsSupported = false; ++ long cur, min, max, backlight_max = -1; ++ if (backlight_get(output) != -1) ++ { ++ if (backlight_get_with_range(output, cur, min, max)) ++ { ++ backlightIsSupported = true; ++ backlight_max = max - min; ++ } ++ } ++ ++ MonitorInfo monitor((int)output, name, backlight_max); ++ ++ if(backlightIsSupported) ++ monitor.setBacklight(cur-min); ++ ++ monitor.setBrightness(gamma_brightness_get(output)); ++ ++ qDebug() << "Output:" << name << "added"; ++ monitors.append(monitor); ++ ++ } ++ ++ return monitors; ++} ++ ++void XRandrBrightness::setMonitorsSettings(QList<MonitorInfo> monitors) ++{ ++ if (!m_resources) { ++ return; ++ } ++ auto x11NativeInterface = qGuiApp->nativeInterface<QNativeInterface::QX11Application>(); ++ if (!x11NativeInterface) { ++ return; ++ } ++ ++ auto *outputs = xcb_randr_get_screen_resources_current_outputs(m_resources.data()); ++ for (int i = 0; i < m_resources->num_outputs; ++i) { ++ xcb_randr_output_t output = outputs[i]; ++ ++ xcb_generic_error_t *error; ++ ++ xcb_randr_get_output_info_cookie_t output_info_cookie = xcb_randr_get_output_info (x11NativeInterface->connection(), output, 0); ++ ScopedCPointer<xcb_randr_get_output_info_reply_t> output_info(xcb_randr_get_output_info_reply (x11NativeInterface->connection(), output_info_cookie, &error)); ++ if(error != nullptr) ++ { ++ qDebug() << "Error getting output_info"; ++ continue; ++ } ++ if(output_info == nullptr) ++ { ++ qDebug() << "Error: output_info is null"; ++ continue; ++ } ++ ++ // Is connected? ++ if ( (xcb_randr_connection_t)(output_info->connection) != XCB_RANDR_CONNECTION_CONNECTED ) ++ continue; // This output is not connected. Check other ++ ++ // Is enabled? ++ if( output_info->crtc == 0) ++ continue; ++ xcb_randr_get_crtc_info_cookie_t crtc_info_cookie = xcb_randr_get_crtc_info_unchecked (x11NativeInterface->connection(), output_info->crtc, 0); ++ ScopedCPointer<xcb_randr_get_crtc_info_reply_t> crtc_info(xcb_randr_get_crtc_info_reply (x11NativeInterface->connection(), crtc_info_cookie, &error)); ++ if(error != nullptr) ++ continue; ++ if(crtc_info == nullptr || crtc_info->mode == XCB_NONE ) ++ continue; ++ ++ QString name = QString::fromUtf8((const char *) xcb_randr_get_output_info_name(output_info.data()), output_info->name_len); ++ ++ // Output is connected and enabled. Get data: ++ bool backlightIsSupported = false; ++ long cur, min, max, backlight_value = 0; ++ if (backlight_get(output) != -1) ++ { ++ if (backlight_get_with_range(output, cur, min, max)) ++ { ++ backlightIsSupported = true; ++ backlight_value = cur - min; ++ } ++ } ++ float brightness_value = gamma_brightness_get(output); ++ ++ // Compare output info with settings and set it. ++ for(const MonitorInfo &monitor: monitors) ++ { ++ //qDebug() << "[XRandrBrightness::setMonitorsSettings]" << monitor.id() << (int)output << monitor.name() << name ; ++ if(monitor.id() == (int)output && monitor.name() == name) ++ { ++ // Set settings ++ if(backlightIsSupported && monitor.backlight() != backlight_value) ++ backlight_set(output, min+monitor.backlight()); ++ if(monitor.brightness() != brightness_value) ++ gamma_brightness_set(output, monitor.brightness()); ++ break; ++ } ++ } ++ } ++} ++ +diff '--color=auto' -Nur a/lxqt-config-file-associations/mimetypeviewer.cpp b/lxqt-config-file-associations/mimetypeviewer.cpp +--- a/lxqt-config-file-associations/mimetypeviewer.cpp 2025-04-17 10:06:55.000000000 +0100 ++++ b/lxqt-config-file-associations/mimetypeviewer.cpp 2025-05-01 02:30:30.146317762 +0100 +@@ -230,14 +230,14 @@ + + widget.searchTermLineEdit->setTextMargins(0, 0, 30, 0); + QHBoxLayout *hBoxLayout = new QHBoxLayout(widget.searchTermLineEdit); +- hBoxLayout->setContentsMargins(0, 0, 0, 0); ++ hBoxLayout->setContentsMargins(0,0,0,0); + widget.searchTermLineEdit->setLayout(hBoxLayout); + QLabel *searchIconLabel = new QLabel(widget.searchTermLineEdit); + searchIconLabel->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter); + searchIconLabel->setMinimumHeight(30); + searchIconLabel->setMinimumWidth(30); + +- searchIconLabel->setPixmap(searchIcon.pixmap(QSize(20, 20))); ++ searchIconLabel->setPixmap(searchIcon.pixmap(QSize(20,20))); + hBoxLayout->addWidget(searchIconLabel, 0, Qt::AlignRight | Qt::AlignVCenter); + } + +diff '--color=auto' -Nur a/lxqt-config-monitor/loadsettings.cpp b/lxqt-config-monitor/loadsettings.cpp +--- a/lxqt-config-monitor/loadsettings.cpp 2025-04-17 10:06:55.000000000 +0100 ++++ b/lxqt-config-monitor/loadsettings.cpp 2025-05-01 02:30:30.146317762 +0100 +@@ -61,7 +61,7 @@ + + void LoadSettings::applyBestSettings() + { +- KScreen::GetConfigOperation *operation = new KScreen::GetConfigOperation(); ++ KScreen::GetConfigOperation *operation = new KScreen::GetConfigOperation(); + connect(operation, &KScreen::GetConfigOperation::finished, [this, operation] (KScreen::ConfigOperation *op) { + KScreen::GetConfigOperation *configOp = qobject_cast<KScreen::GetConfigOperation *>(op); + if (configOp) { +diff '--color=auto' -Nur a/lxqt-config-monitor/managesavedsettings.cpp b/lxqt-config-monitor/managesavedsettings.cpp +--- a/lxqt-config-monitor/managesavedsettings.cpp 2025-04-17 10:06:55.000000000 +0100 ++++ b/lxqt-config-monitor/managesavedsettings.cpp 2025-05-01 02:30:30.146317762 +0100 +@@ -29,7 +29,7 @@ + Q_DECLARE_METATYPE(MonitorSavedSettings) + + +-ManageSavedSettings::ManageSavedSettings(LXQt::Settings * applicationSettings, KScreen::ConfigPtr config, QWidget * parent): ++ManageSavedSettings::ManageSavedSettings(LXQt::Settings * applicationSettings, KScreen::ConfigPtr config, QWidget * parent): + QDialog(parent) + { + +diff '--color=auto' -Nur a/lxqt-config-monitor/monitorpicture.cpp b/lxqt-config-monitor/monitorpicture.cpp +--- a/lxqt-config-monitor/monitorpicture.cpp 2025-04-17 10:06:55.000000000 +0100 ++++ b/lxqt-config-monitor/monitorpicture.cpp 2025-05-01 02:30:30.147317761 +0100 +@@ -68,7 +68,7 @@ + } + + MonitorPictureDialog::MonitorPictureDialog(KScreen::ConfigPtr config, QWidget * parent, Qt::WindowFlags f) : +- QWidget(parent, f) ++ QWidget(parent,f) + { + updatingOk = false; + firstShownOk = false; +@@ -182,7 +182,7 @@ + picture->monitorWidget->ui.yPosSpinBox->setValue(y); + //else + // qDebug() << "y Iguales"; +- //qDebug() << "[MonitorPictureDialog::updateMonitorWidgets]" << x << '=' << picture->monitorWidget->ui.xPosSpinBox->value() << ',' << y << '=' << picture->monitorWidget->ui.yPosSpinBox->value(); ++ //qDebug() << "[MonitorPictureDialog::updateMonitorWidgets]" << x << '=' << picture->monitorWidget->ui.xPosSpinBox->value() << ',' << y << '=' << picture->monitorWidget->ui.yPosSpinBox->value(); + } + updatingOk = false; + } +diff '--color=auto' -Nur a/lxqt-config-monitor/monitorpicture.cpp.orig b/lxqt-config-monitor/monitorpicture.cpp.orig +--- a/lxqt-config-monitor/monitorpicture.cpp.orig 1970-01-01 01:00:00.000000000 +0100 ++++ b/lxqt-config-monitor/monitorpicture.cpp.orig 2025-04-17 10:06:55.000000000 +0100 +@@ -0,0 +1,420 @@ ++/* ++ * Copyright (C) 2014 P.L. Lucas <selairi@gmail.com> ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program 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 General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License along ++ * with this program; if not, write to the Free Software Foundation, Inc., ++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++ */ ++ ++#include "monitorpicture.h" ++ ++#include <QFont> ++#include <QFontMetrics> ++#include <QPen> ++#include <QDebug> ++#include <QVector2D> ++#include <QRectF> ++#include <KScreen/Mode> ++#include <QScrollBar> ++#include <QResizeEvent> ++#include <QTransform> ++ ++#include <cmath> ++#include <algorithm> ++ ++#include "configure.h" ++ ++// Gets size from string rate. String rate format is "widthxheight". Example: 800x600 ++static QSize sizeFromString(QString str) ++{ ++ int width = 0; ++ int height = 0; ++ int x = str.indexOf(QLatin1Char('x')); ++ if (x > 0) { ++ width = str.first(x).toInt(); ++ height = str.last(str.size() - x - 1).toInt(); ++ } ++ return QSize(width, height); ++} ++ ++MonitorPictureProxy::MonitorPictureProxy(QObject *parent, MonitorPicture *monitorPicture):QObject(parent) ++{ ++ this->monitorPicture = monitorPicture; ++} ++ ++void MonitorPictureProxy::updateSize() ++{ ++ KScreen::OutputPtr output = monitorPicture->monitorWidget->output; ++ QSize size = output->currentMode()->size(); ++ monitorPicture->updateSize(size); ++} ++ ++void MonitorPictureProxy::updatePosition() ++{ ++ KScreen::OutputPtr output = monitorPicture->monitorWidget->output; ++ QPoint pos = output->pos(); ++ //qDebug() << "MonitorPictureProxy:updatePosition]" << pos; ++ monitorPicture->setMonitorPosition(pos.x(), pos.y()); ++} ++ ++MonitorPictureDialog::MonitorPictureDialog(KScreen::ConfigPtr config, QWidget * parent, Qt::WindowFlags f) : ++ QWidget(parent, f) ++{ ++ updatingOk = false; ++ firstShownOk = false; ++ maxMonitorSize = 0; ++ mConfig = config; ++ ui.setupUi(this); ++} ++ ++ ++void MonitorPictureDialog::setScene(QList<MonitorWidget *> monitors) ++{ ++ int monitorsWidth =0; ++ int monitorsHeight = 0; ++ QGraphicsScene *scene = new QGraphicsScene(this); ++ for (MonitorWidget *monitor : monitors) { ++ MonitorPicture *monitorPicture = new MonitorPicture(nullptr, monitor, this); ++ pictures.append(monitorPicture); ++ scene->addItem(monitorPicture); ++ monitorsWidth += monitorPicture->rect().width(); ++ monitorsHeight += monitorPicture->rect().height(); ++ MonitorPictureProxy *proxy = new MonitorPictureProxy(this, monitorPicture); ++ proxy->connect(monitor->output.data(), &KScreen::Output::currentModeIdChanged, proxy, &MonitorPictureProxy::updateSize); ++ proxy->connect(monitor->output.data(), &KScreen::Output::posChanged, proxy, &MonitorPictureProxy::updatePosition); ++ } ++ // The blue rectangle is maximum size of virtual screen (framebuffer) ++ scene->addRect(0, 0, mConfig->screen()->maxSize().width(), mConfig->screen()->maxSize().height(), QPen(Qt::blue, 20))->setOpacity(0.5); ++ maxMonitorSize = std::max(monitorsWidth, monitorsHeight); ++ ui.graphicsView->setScene(scene); ++} ++ ++void MonitorPictureDialog::showEvent(QShowEvent * event) ++{ ++ QWidget::showEvent(event); ++ if (!firstShownOk) { ++ firstShownOk = true; ++ qreal minWidgetLength = static_cast<qreal>(std::max(ui.graphicsView->size().width(), ui.graphicsView->size().height())) / 1.2; ++ if (maxMonitorSize > 0) ++ updateScale(minWidgetLength / maxMonitorSize); ++ } ++} ++ ++void MonitorPictureDialog::resizeEvent(QResizeEvent *event) ++{ ++ QWidget::resizeEvent(event); ++ if (firstShownOk && maxMonitorSize > 0) ++ { ++ qreal scale = ui.graphicsView->transform().m11(); ++ if (scale > 0) ++ { ++ qreal minWidgetLength = static_cast<qreal>(std::max(ui.graphicsView->size().width(), ui.graphicsView->size().height())) / 1.2; ++ updateScale((minWidgetLength / maxMonitorSize) / scale); ++ } ++ } ++} ++ ++void MonitorPictureDialog::updateScale(qreal scale) ++{ ++ // Update scale and set scrollbar position. ++ if (scale > 0) ++ { ++ ui.graphicsView->scale(scale, scale); ++ updateScene(); ++ ui.graphicsView->verticalScrollBar()->setValue(0); ++ ui.graphicsView->horizontalScrollBar()->setValue(0); ++ } ++} ++ ++void MonitorPictureDialog::updateScene() ++{ ++ ui.graphicsView->scene()->update(); ++} ++ ++void MonitorPictureDialog::updateMonitorWidgets(QString primaryMonitor) ++{ ++ // This method update spin boxes of position. ++ // If position is changed when this method is running, position is changed until buffer overflow. ++ // updatingOk control that this method can not be run twice in the same position change. ++ ++ if(updatingOk) ++ return; ++ updatingOk = true; ++ int x0, y0; ++ x0 = y0 = 0; ++ ++ for (MonitorPicture *picture : std::as_const(pictures)) { ++ if (picture->monitorWidget->output->name() == primaryMonitor ++ || primaryMonitor == QLatin1String()) { ++ x0 = picture->originX + picture->pos().x(); ++ y0 = picture->originY + picture->pos().y(); ++ break; ++ } ++ } ++ ++ if( primaryMonitor == QLatin1String() ) { ++ for(MonitorPicture *picture : std::as_const(pictures)) { ++ int x1 = picture->originX + picture->pos().x(); ++ int y1 = picture->originY + picture->pos().y(); ++ x0 = std::min(x0, x1); ++ y0 = std::min(y0, y1); ++ } ++ } ++ ++ for (MonitorPicture *picture : std::as_const(pictures)) { ++ int x = picture->originX + picture->pos().x() - x0; ++ int y = picture->originY + picture->pos().y() - y0; ++ if( x != picture->monitorWidget->ui.xPosSpinBox->value() ) ++ picture->monitorWidget->ui.xPosSpinBox->setValue(x); ++ //else ++ // qDebug() << "x Iguales"; ++ if( y != picture->monitorWidget->ui.yPosSpinBox->value() ) ++ picture->monitorWidget->ui.yPosSpinBox->setValue(y); ++ //else ++ // qDebug() << "y Iguales"; ++ //qDebug() << "[MonitorPictureDialog::updateMonitorWidgets]" << x << '=' << picture->monitorWidget->ui.xPosSpinBox->value() << ',' << y << '=' << picture->monitorWidget->ui.yPosSpinBox->value(); ++ } ++ updatingOk = false; ++} ++ ++MonitorPicture::MonitorPicture(QGraphicsItem * parent, ++ MonitorWidget *monitorWidget, ++ MonitorPictureDialog *monitorPictureDialog) : ++ QGraphicsRectItem(parent) ++{ ++ this->monitorWidget = monitorWidget; ++ this->monitorPictureDialog = monitorPictureDialog; ++ QSizeF currentSizeF = sizeFromString(monitorWidget->ui.resolutionCombo->currentText()) / monitorWidget->output->scale(); ++ QSize currentSize = currentSizeF.toSize(); ++ if( monitorWidget->output->rotation() == KScreen::Output::Left || monitorWidget->output->rotation() == KScreen::Output::Right ) ++ currentSize.transpose(); ++ int x = monitorWidget->ui.xPosSpinBox->value(); ++ int y = monitorWidget->ui.yPosSpinBox->value(); ++ setAcceptedMouseButtons(Qt::LeftButton); ++ setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemSendsGeometryChanges); ++ originX = x; ++ originY = y; ++ ++ setRect(x, y, currentSize.width(), currentSize.height()); ++ // setPen(QPen(Qt::black, 20)); ++ // textItem = new QGraphicsTextItem(monitorWidget->output->name(), this); ++ // textItem->setX(x); ++ // textItem->setY(y); ++ // textItem->setParentItem(this); ++ ++ QSvgRenderer *renderer = new QSvgRenderer(QLatin1String(ICON_PATH "monitor.svg")); ++ svgItem = new QGraphicsSvgItem(); ++ svgItem->setSharedRenderer(renderer); ++ svgItem->setX(x); ++ svgItem->setY(y); ++ svgItem->setOpacity(0.7); ++ svgItem->setParentItem(this); ++ ++ ++ textItem = new QGraphicsTextItem(monitorWidget->output->name(), this); ++ textItem->setDefaultTextColor(Qt::white); ++ textItem->setX(x); ++ textItem->setY(y); ++ textItem->setParentItem(this); ++ setPen(QPen(Qt::black, 20)); ++ ++ ++ adjustNameSize(); ++} ++ ++void MonitorPicture::adjustNameSize() ++{ ++ prepareGeometryChange(); ++ qreal fontWidth = QFontMetrics(textItem->font()).horizontalAdvance(monitorWidget->output->name() + QStringLiteral(" ")); ++ textItem->setScale((qreal) this->rect().width() / fontWidth); ++ QTransform transform; ++ qreal width = std::abs(this->rect().width()/svgItem->boundingRect().width()); ++ qreal height = std::abs(this->rect().height()/svgItem->boundingRect().height()); ++ qDebug() << "Width x Height" << width << "x" << height; ++ transform.scale(width, height); ++ svgItem->setTransform(transform); ++} ++ ++void MonitorPicture::updateSize(QSize currentSize) ++{ ++ QRectF r = rect(); ++ r.setSize(currentSize); ++ setRect(r); ++ adjustNameSize(); ++} ++ ++QVariant MonitorPicture::itemChange(GraphicsItemChange change, const QVariant & value) ++{ ++ //qDebug() << "[MonitorPicture::itemChange]: "; ++ //if ( change == ItemPositionChange && scene()) { ++ // value is the new position. ++ //QPointF newPos = value.toPointF(); ++ //qDebug() << "[MonitorPictureDialog::updateMonitorWidgets]: " << newPos.x() << "x" << newPos.y(); ++ //} ++ QVariant v = QGraphicsItem::itemChange(change, value); ++ //monitorPictureDialog->updateMonitorWidgets(QString()); ++ return v; ++} ++ ++void MonitorPicture::setMonitorPosition(int x, int y) ++{ ++ setX( x - originX ); ++ setY( y - originY ); ++} ++ ++void MonitorPicture::mouseReleaseEvent(QGraphicsSceneMouseEvent * event) ++{ ++ QGraphicsRectItem::mouseReleaseEvent(event); ++ monitorPictureDialog->moveMonitorPictureToNearest(this); ++ monitorPictureDialog->updateMonitorWidgets(QString()); ++} ++ ++////////////////////////////////////////////////////////////////////////////////// ++// Move picture to nearest picture procedure. ++////////////////////////////////////////////////////////////////////////////////// ++ ++struct Result_moveMonitorPictureToNearest { ++ bool ok = false; ++ bool outside = false; ++ QVector2D vector; ++}; ++ ++static Result_moveMonitorPictureToNearest compareTwoMonitors(MonitorPicture* monitorPicture1, ++ MonitorPicture* monitorPicture2) ++{ ++ Result_moveMonitorPictureToNearest result; ++ QVector2D offsetVector(0, 0); ++ QRectF extendedAreaRect; ++ QRectF monitorPicture1Rect( ++ monitorPicture1->x() + monitorPicture1->originX, ++ monitorPicture1->y() + monitorPicture1->originY, ++ monitorPicture1->rect().width(), ++ monitorPicture1->rect().height()); ++ QRectF monitorPicture2Rect( ++ monitorPicture2->x() + monitorPicture2->originX, ++ monitorPicture2->y() + monitorPicture2->originY, ++ monitorPicture2->rect().width(), ++ monitorPicture2->rect().height()); ++ ++ if(monitorPicture1Rect.intersects(monitorPicture2Rect)) { ++ result.ok = true; ++ return result; ++ } ++ ++ result.outside = true; ++ result.ok = false; ++ ++ extendedAreaRect = QRectF( ++ std::min(monitorPicture2Rect.x(), monitorPicture1Rect.x()) - monitorPicture2Rect.width(), ++ monitorPicture2Rect.y(), ++ std::max(monitorPicture2Rect.x(), monitorPicture1Rect.x()) + 2*monitorPicture2Rect.width(), ++ monitorPicture2Rect.height()); ++ ++ //qDebug() << "\nextendedAreaRect: " << extendedAreaRect; ++ //qDebug() << "monitorPicture1Rect: " << monitorPicture1Rect << monitorPicture1->rect().width() << monitorPicture1->rect().height(); ++ //qDebug() << "monitorPicture2Rect: " << monitorPicture2Rect; ++ ++ if(extendedAreaRect.intersects(monitorPicture1Rect)) { ++ // monitorPicture1 left ++ offsetVector = QVector2D(monitorPicture2Rect.right() - monitorPicture1Rect.left(), 0); ++ result.vector = offsetVector; ++ ++ // monitorPicture1 right ++ offsetVector = QVector2D(monitorPicture2Rect.left() - monitorPicture1Rect.right(), 0); ++ if(result.vector.length() > offsetVector.length()) ++ result.vector = offsetVector; ++ ++ float y2 = monitorPicture2Rect.top(); ++ float y1 = monitorPicture1Rect.top(); ++ float delta = monitorPicture2Rect.height() * 0.1; ++ if(y2 < y1 && y1 < (y2+delta)) ++ result.vector.setY(y2 - y1); ++ else { ++ y2 = monitorPicture2Rect.bottom(); ++ y1 = monitorPicture1Rect.bottom(); ++ if((y2 - delta) < y1 && y1 < y2) ++ result.vector.setY(y2 - y1); ++ } ++ ++ result.outside = false; ++ } ++ ++ extendedAreaRect = QRectF( ++ monitorPicture2Rect.x(), ++ std::min(monitorPicture2Rect.y(), monitorPicture1Rect.y()) - monitorPicture2Rect.height(), ++ monitorPicture2Rect.width(), ++ std::max(monitorPicture2Rect.y(), monitorPicture1Rect.y()) + 2*monitorPicture2Rect.height() ++ ); ++ ++ if(extendedAreaRect.intersects(monitorPicture1Rect)) { ++ // monitorPicture1 top ++ offsetVector = QVector2D(0, monitorPicture2Rect.bottom() - monitorPicture1Rect.top()); ++ result.vector = offsetVector; ++ ++ // monitorPicture1 bottom ++ offsetVector = QVector2D(0, monitorPicture2Rect.top() - monitorPicture1Rect.bottom()); ++ if(result.vector.length() > offsetVector.length()) ++ result.vector = offsetVector; ++ ++ float x2 = monitorPicture2Rect.left(); ++ float x1 = monitorPicture1Rect.left(); ++ float delta = monitorPicture2Rect.width() * 0.1; ++ if(x2 < x1 && x1 < (x2+delta)) ++ result.vector.setX(x2 - x1); ++ else { ++ x2 = monitorPicture2Rect.right(); ++ x1 = monitorPicture1Rect.right(); ++ if((x2 - delta) < x1 && x1 < x2) ++ result.vector.setX(x2 - x1); ++ } ++ ++ result.outside = false; ++ } ++ ++ return result; ++} ++ ++ ++void MonitorPictureDialog::moveMonitorPictureToNearest(MonitorPicture* monitorPicture) ++{ ++ if (!ui.magneticCheckBox->isChecked()) ++ return; ++ ++ // Float to int ++ monitorPicture->setX(static_cast<qreal>(std::round(monitorPicture->x()))); ++ monitorPicture->setY(static_cast<qreal>(std::round(monitorPicture->y()))); ++ ++ ++ QVector2D vector(0, 0); ++ for (MonitorPicture *picture : std::as_const(pictures)) { ++ if (picture == monitorPicture) ++ continue; ++ ++ // Float to int. The positions of the Monitors must be set with pixels. ++ // QGraphicsView uses float to store x and y. Then, positions as (800.5, 600.3) are stored. ++ // x and y have to be translated from float to int in order to store pixels position: ++ picture->setX(static_cast<qreal>(std::round(picture->x()))); ++ picture->setY(static_cast<qreal>(std::round(picture->y()))); ++ ++ Result_moveMonitorPictureToNearest result = compareTwoMonitors(monitorPicture, picture); ++ if (result.ok) ++ return; ++ else if (! result.outside && (result.vector.length() < vector.length() || vector.length() == 0.0)) ++ vector = result.vector; ++ } ++ ++ int x = monitorPicture->x(); ++ int y = monitorPicture->y(); ++ monitorPicture->setX(x + vector.x()); ++ monitorPicture->setY(y + vector.y()); ++} +diff '--color=auto' -Nur a/lxqt-config-monitor/savesettings.cpp b/lxqt-config-monitor/savesettings.cpp +--- a/lxqt-config-monitor/savesettings.cpp 2025-04-17 10:06:55.000000000 +0100 ++++ b/lxqt-config-monitor/savesettings.cpp 2025-05-01 02:30:30.147317761 +0100 +@@ -33,7 +33,7 @@ + + ui.setupUi(this); + +- QSize size(128, 64); ++ QSize size(128,64); + ui.save->setIcon(QIcon::fromTheme("document-save")); + ui.save->setIconSize(size); + +@@ -62,9 +62,9 @@ + { + if( ui.allConfigs->currentItem() == NULL ) + return; +- QJsonObject obj = ui.allConfigs->currentItem()->data(Qt::UserRole).toJsonObject(); ++ QJsonObject obj = ui.allConfigs->currentItem()->data(Qt::UserRole).toJsonObject(); + applicationSettings->beginGroup("configMonitor"); +- QJsonArray savedConfigs = QJsonDocument::fromJson(applicationSettings->value("saved").toByteArray()).array(); ++ QJsonArray savedConfigs = QJsonDocument::fromJson(applicationSettings->value("saved").toByteArray()).array(); + for(int i=0; i<savedConfigs.size(); i++) { + const QJsonValue & v = savedConfigs[i]; + QJsonObject o = v.toObject(); +@@ -82,13 +82,13 @@ + { + if( ui.allConfigs->currentItem() == NULL ) + return; +- QJsonObject obj = ui.allConfigs->currentItem()->data(Qt::UserRole).toJsonObject(); ++ QJsonObject obj = ui.allConfigs->currentItem()->data(Qt::UserRole).toJsonObject(); + bool ok; + QString configName = QInputDialog::getText(this, tr("Name"), tr("Name:"), QLineEdit::Normal, obj["name"].toString(), &ok); + if (!ok || configName.isEmpty()) + return; + applicationSettings->beginGroup("configMonitor"); +- QJsonArray savedConfigs = QJsonDocument::fromJson(applicationSettings->value("saved").toByteArray()).array(); ++ QJsonArray savedConfigs = QJsonDocument::fromJson(applicationSettings->value("saved").toByteArray()).array(); + for(int i=0; i<savedConfigs.size(); i++) { + const QJsonValue & v = savedConfigs[i]; + QJsonObject o = v.toObject(); +@@ -109,7 +109,7 @@ + ui.allConfigs->clear(); + ui.hardwareCompatibleConfigs->clear(); + applicationSettings->beginGroup("configMonitor"); +- QJsonArray savedConfigs = QJsonDocument::fromJson(applicationSettings->value("saved").toByteArray()).array(); ++ QJsonArray savedConfigs = QJsonDocument::fromJson(applicationSettings->value("saved").toByteArray()).array(); + foreach (const QJsonValue & v, savedConfigs) { + QJsonObject o = v.toObject(); + QListWidgetItem *item = new QListWidgetItem(o["name"].toString(), ui.allConfigs); +diff '--color=auto' -Nur a/src/qcategorizedview/qcategorizedview.cpp b/src/qcategorizedview/qcategorizedview.cpp +--- a/src/qcategorizedview/qcategorizedview.cpp 2025-04-17 10:06:55.000000000 +0100 ++++ b/src/qcategorizedview/qcategorizedview.cpp 2025-05-01 02:30:30.147317761 +0100 +@@ -443,7 +443,7 @@ + QModelIndex prevIndex = proxyModel->index(index.row() - 1, q->modelColumn(), q->rootIndex()); + QRect prevRect = q->visualRect(prevIndex); + prevRect = mapFromViewport(prevRect); +- if ((prevRect.bottomRight().x() + 1) + currSize.width() - blockPos.x() + q->spacing() > viewportW) { ++ if ((prevRect.bottomRight().x() + 1) + currSize.width() - blockPos.x() + q->spacing() > viewportW) { + // we have to check the whole previous row, and see which one was the + // highest. + Q_FOREVER { diff --git a/lxqt-base/lxqt-config/files/revert1-c66eb66b58328beb1cac4b3576f30bb68001021c.patch b/lxqt-base/lxqt-config/files/revert1-c66eb66b58328beb1cac4b3576f30bb68001021c.patch new file mode 100644 index 00000000..b56428e9 --- /dev/null +++ b/lxqt-base/lxqt-config/files/revert1-c66eb66b58328beb1cac4b3576f30bb68001021c.patch @@ -0,0 +1,161 @@ +diff '--color=auto' -Nur a/lxqt-config-appearance/styleconfig.cpp b/lxqt-config-appearance/styleconfig.cpp +--- a/lxqt-config-appearance/styleconfig.cpp 2025-04-17 10:06:55.000000000 +0100 ++++ b/lxqt-config-appearance/styleconfig.cpp 2025-05-01 02:24:05.123354907 +0100 +@@ -54,7 +54,6 @@ + + connect(ui->qtComboBox, QOverload<int>::of(&QComboBox::activated), this, &StyleConfig::settingsChanged); + connect(ui->toolButtonStyle, QOverload<int>::of(&QComboBox::activated), this, &StyleConfig::settingsChanged); +- connect(ui->toolBarIconSize, QOverload<int>::of(&QComboBox::activated), this, &StyleConfig::settingsChanged); + connect(ui->singleClickActivate, &QAbstractButton::clicked, this, &StyleConfig::settingsChanged); + + connect(ui->winColorLabel, &ColorLabel::colorChanged, this, &StyleConfig::settingsChanged); +@@ -110,33 +109,6 @@ + val = Qt::ToolButtonTextBesideIcon; + ui->toolButtonStyle->setCurrentIndex(val); + +- // toolbar icon size +- int index = mSettings->value(QLatin1String("tool_bar_icon_size")).toInt(); +- if (index < 16) // consult the active Qt style +- index = style()->pixelMetric(QStyle::PM_ToolBarIconSize); +- switch (index) +- { +- case 16: +- index = 0; +- break; +- case 22: +- index = 1; +- break; +- case 24: +- index = 2; +- break; +- case 32: +- index = 3; +- break; +- case 48: +- index = 4; +- break; +- default: +- index = 2; +- break; +- } +- ui->toolBarIconSize->setCurrentIndex(index); +- + // activate item views with single click + ui->singleClickActivate->setChecked( mSettings->value(QStringLiteral("single_click_activate"), false).toBool()); + +@@ -291,37 +263,6 @@ + mSettings->sync(); + emit updateOtherSettings(); + } +- +- // toolbar icon size +- index = ui->toolBarIconSize->currentIndex(); +- switch (index) +- { +- case 0: +- index = 16; +- break; +- case 1: +- index = 22; +- break; +- case 2: +- index = 24; +- break; +- case 3: +- index = 32; +- break; +- case 4: +- index = 48; +- break; +- default: +- index = 24; +- break; +- } +- if(index != mSettings->value(QLatin1String("tool_bar_icon_size")).toInt()) +- { +- mSettings->setValue(QStringLiteral("tool_bar_icon_size"), index); +- // TODO: Do we want to apply it to GTK somehow? +- /*mSettings->sync(); +- emit updateOtherSettings();*/ +- } + } + + void StyleConfig::savePalette() +diff '--color=auto' -Nur a/lxqt-config-appearance/styleconfig.ui b/lxqt-config-appearance/styleconfig.ui +--- a/lxqt-config-appearance/styleconfig.ui 2025-04-17 10:06:55.000000000 +0100 ++++ b/lxqt-config-appearance/styleconfig.ui 2025-05-01 02:24:05.123354907 +0100 +@@ -280,9 +280,6 @@ + </item> + <item row="3" column="0"> + <widget class="QLabel" name="label_2"> +- <property name="toolTip"> +- <string>May be overridden by Qt style or app</string> +- </property> + <property name="text"> + <string>Toolbar button style:</string> + </property> +@@ -290,9 +287,6 @@ + </item> + <item row="3" column="1"> + <widget class="QComboBox" name="toolButtonStyle"> +- <property name="toolTip"> +- <string>May be overridden by Qt style or app</string> +- </property> + <item> + <property name="text"> + <string>Only display the icon</string> +@@ -320,53 +314,8 @@ + </item> + </widget> + </item> +- <item row="4" column="0"> +- <widget class="QLabel" name="label_15"> +- <property name="toolTip"> +- <string>May be overridden by Qt style or app</string> +- </property> +- <property name="text"> +- <string>Toolbar icon size:</string> +- </property> +- </widget> +- </item> +- <item row="4" column="1"> +- <widget class="QComboBox" name="toolBarIconSize"> +- <property name="toolTip"> +- <string>May be overridden by Qt style or app</string> +- </property> +- <item> +- <property name="text"> +- <string>16</string> +- </property> +- </item> +- <item> +- <property name="text"> +- <string>22</string> +- </property> +- </item> +- <item> +- <property name="text"> +- <string>24</string> +- </property> +- </item> +- <item> +- <property name="text"> +- <string>32</string> +- </property> +- </item> +- <item> +- <property name="text"> +- <string>48</string> +- </property> +- </item> +- </widget> +- </item> +- <item row="5" column="0" colspan="2"> ++ <item row="4" column="0" colspan="2"> + <widget class="QCheckBox" name="singleClickActivate"> +- <property name="toolTip"> +- <string>May be overridden by Qt style or app</string> +- </property> + <property name="text"> + <string>Activate item on single click</string> + </property> diff --git a/lxqt-base/lxqt-config/files/revert-2aff948ea19508317c185d87bc5f5e20fe64a30f.patch b/lxqt-base/lxqt-config/files/revert2-2aff948ea19508317c185d87bc5f5e20fe64a30f.patch index f49e98a2..f49e98a2 100644 --- a/lxqt-base/lxqt-config/files/revert-2aff948ea19508317c185d87bc5f5e20fe64a30f.patch +++ b/lxqt-base/lxqt-config/files/revert2-2aff948ea19508317c185d87bc5f5e20fe64a30f.patch |