[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1109721: marked as done (unblock: kinfocenter/4:6.3.6-1)



Your message dated Tue, 22 Jul 2025 13:57:33 +0000
with message-id <E1ueDUr-00BD8A-0q@respighi.debian.org>
and subject line unblock kinfocenter
has caused the Debian Bug report #1109721,
regarding unblock: kinfocenter/4:6.3.6-1
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
1109721: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1109721
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
X-Debbugs-Cc: kinfocenter@packages.debian.org, Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
Control: affects -1 + src:kinfocenter
User: release.debian.org@packages.debian.org
Usertags: unblock

Dear Release Team,

please unblock package kinfocenter.

[ Reason ]
It contains the following changes :
* New upstream release (6.3.6).
  - Fix strange horizontal scrolling in applications view that makes no
  sense. (kde#502948)
* Backport upstream commits:
  - Fix total amount of memory in system information. [f44af69b]
  (kde#500412)
  - Make UI for energy history graph more stable. [2067b2ab] (kde#490239)

[ Tests ]
Fix for reproducible issues have been successfully tested locally. No
regression spotted.

[ Risks ]
Only contains the latest point release for the 6.3 Plasma branch and
backported commits. Further fixes can easily be backported or the
changes reverted.

[ Checklist ]
  [x] all changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in testing


Thanks !


unblock kinfocenter/4:6.3.6-1
diff -Nru kinfocenter-6.3.5/CMakeLists.txt kinfocenter-6.3.6/CMakeLists.txt
--- kinfocenter-6.3.5/CMakeLists.txt	2025-05-06 19:56:44.000000000 +0200
+++ kinfocenter-6.3.6/CMakeLists.txt	2025-07-08 13:44:06.000000000 +0200
@@ -1,7 +1,7 @@
 cmake_minimum_required(VERSION 3.16)
 
 project(kinfocenter)
-set(PROJECT_VERSION "6.3.5")
+set(PROJECT_VERSION "6.3.6")
 
 set(QT_MIN_VERSION "6.7.0")
 
diff -Nru kinfocenter-6.3.5/debian/changelog kinfocenter-6.3.6/debian/changelog
--- kinfocenter-6.3.5/debian/changelog	2025-05-21 09:43:06.000000000 +0200
+++ kinfocenter-6.3.6/debian/changelog	2025-07-15 13:57:45.000000000 +0200
@@ -1,3 +1,16 @@
+kinfocenter (4:6.3.6-1) unstable; urgency=medium
+
+  [ Aurélien COUDERC ]
+  * New upstream release (6.3.6).
+    - Fix strange horizontal scrolling in applications view that makes no
+    sense. (kde#502948)
+  * Backport upstream commits:
+    - Fix total amount of memory in system information. [f44af69b]
+    (kde#500412)
+    - Make UI for energy history graph more stable. [2067b2ab] (kde#490239)
+
+ -- Aurélien COUDERC <coucouf@debian.org>  Tue, 15 Jul 2025 13:57:45 +0200
+
 kinfocenter (4:6.3.5-1) unstable; urgency=medium
 
   [ Aurélien COUDERC ]
diff -Nru kinfocenter-6.3.5/debian/patches/series kinfocenter-6.3.6/debian/patches/series
--- kinfocenter-6.3.5/debian/patches/series	1970-01-01 01:00:00.000000000 +0100
+++ kinfocenter-6.3.6/debian/patches/series	2025-07-15 13:57:38.000000000 +0200
@@ -0,0 +1,2 @@
+upstream_f44af69b_kcms-about-distro-Add-help-property-to-Entry-show-total-amount-of-installed-memory-in-MemoryEntry.patch
+upstream_2067b2ab_kcms-energy-More-stable-UI-for-history-graph.patch
diff -Nru kinfocenter-6.3.5/debian/patches/upstream_2067b2ab_kcms-energy-More-stable-UI-for-history-graph.patch kinfocenter-6.3.6/debian/patches/upstream_2067b2ab_kcms-energy-More-stable-UI-for-history-graph.patch
--- kinfocenter-6.3.5/debian/patches/upstream_2067b2ab_kcms-energy-More-stable-UI-for-history-graph.patch	1970-01-01 01:00:00.000000000 +0100
+++ kinfocenter-6.3.6/debian/patches/upstream_2067b2ab_kcms-energy-More-stable-UI-for-history-graph.patch	2025-07-15 13:57:38.000000000 +0200
@@ -0,0 +1,144 @@
+From 2067b2abf6f22ddc5fa1b4edc75f9add0e8b5de7 Mon Sep 17 00:00:00 2001
+From: Ismael Asensio <isma.af@gmail.com>
+Date: Thu, 30 Jan 2025 21:20:32 +0100
+Subject: [PATCH] kcms/energy: More stable UI for history graph
+
+For devices that have history data available, always show the graph.
+If there are no data points for the selected time range, simply show
+a placeholder message instead of hiding it.
+
+On the other hand, always hide the graph and options for those devices
+that cannot provide a history, removing also the potentially confusing
+warning message
+
+This moves away from having an annoyingly jumping an unclear UI.
+
+BUG: 490239
+FIXED-IN: 6.4
+---
+ kcms/energy/ui/Graph.qml | 38 ++++++++++++++++++++------------------
+ kcms/energy/ui/main.qml  | 35 +++++++++++++++++------------------
+ 2 files changed, 37 insertions(+), 36 deletions(-)
+
+diff --git a/kcms/energy/ui/Graph.qml b/kcms/energy/ui/Graph.qml
+index 66f7a861..75c9224a 100644
+--- a/kcms/energy/ui/Graph.qml
++++ b/kcms/energy/ui/Graph.qml
+@@ -93,31 +93,33 @@ Canvas
+         var currentUnixTime = Date.now()
+         var xMinUnixTime = currentUnixTime - xDuration * 1000
+ 
+-        // Draw the line graph
+         c.beginPath();
+ 
+-        var index = 0
++        // Draw the line graph if we have enough points
++        if (data.length >= 2) {
++            var index = 0
+ 
+-        while ((index < data.length - 1) && (data[index].x < (xMinUnixTime / 1000))) {
+-            index++
+-        }
++            while ((index < data.length - 1) && (data[index].x < (xMinUnixTime / 1000))) {
++                index++
++            }
+ 
+-        var firstPoint = scalePoint(data[index], currentUnixTime)
+-        c.moveTo(firstPoint.x, firstPoint.y)
++            var firstPoint = scalePoint(data[index], currentUnixTime)
++            c.moveTo(firstPoint.x, firstPoint.y)
+ 
+-        var point
+-        for (var i = index + 1; i < data.length; i++) {
+-            if (data[i].x > (xMinUnixTime / 1000)) {
+-                point = scalePoint(data[i], currentUnixTime)
+-                c.lineTo(point.x, point.y)
++            var point
++            for (var i = index + 1; i < data.length; i++) {
++                if (data[i].x > (xMinUnixTime / 1000)) {
++                    point = scalePoint(data[i], currentUnixTime)
++                    c.lineTo(point.x, point.y)
++                }
+             }
++
++            c.stroke();
++            c.strokeStyle = 'rgba(0, 0, 0, 0)';
++            c.lineTo(point.x, height - yPadding);
++            c.lineTo(firstPoint.x, height - yPadding);
++            c.fill();
+         }
+-            
+-        c.stroke();
+-        c.strokeStyle = 'rgba(0, 0, 0, 0)';
+-        c.lineTo(point.x, height - yPadding);
+-        c.lineTo(firstPoint.x, height - yPadding);
+-        c.fill();
+ 
+         c.closePath()
+ 
+diff --git a/kcms/energy/ui/main.qml b/kcms/energy/ui/main.qml
+index e8670130..ba71ba77 100644
+--- a/kcms/energy/ui/main.qml
++++ b/kcms/energy/ui/main.qml
+@@ -238,18 +238,17 @@ KCM.SimpleKCM {
+             }
+         }
+ 
++        HistoryModel {
++            id: history
++            duration: timespanComboDurations[timespanCombo.currentIndex]
++            device: currentUdi
++            type: root.historyType
++        }
++
+         ColumnLayout {
+             Layout.fillWidth: true
+             spacing: Kirigami.Units.smallSpacing
+-            visible: !!currentBattery
+-
+-
+-            HistoryModel {
+-                id: history
+-                duration: timespanComboDurations[timespanCombo.currentIndex]
+-                device: currentUdi
+-                type: root.historyType
+-            }
++            visible: !!currentBattery && history.available
+ 
+             Graph {
+                 id: graph
+@@ -291,7 +290,15 @@ KCM.SimpleKCM {
+                     }
+                 }
+                 yStep: root.historyType == HistoryModel.RateType ? 10 : 20
+-                visible: history.count > 1
++            }
++
++            // Reparented to keep the item outside of a layout and the graph canvas
++            Kirigami.PlaceholderMessage {
++                parent: graph
++                anchors.centerIn: parent
++                visible: graph.data.length < 2
++                width: parent.width - (Kirigami.Units.largeSpacing * 4)
++                text: i18nc("@info:status", "No history information for this time span")
+             }
+ 
+             GridLayout {
+@@ -343,14 +350,6 @@ KCM.SimpleKCM {
+                     onClicked: history.refresh()
+                 }
+             }
+-
+-            Kirigami.InlineMessage {
+-                Layout.fillWidth: true
+-                Layout.topMargin: Kirigami.Units.smallSpacing
+-                showCloseButton: true
+-                text: i18n("This type of history is currently not available for this device.")
+-                visible: !graph.visible
+-            }
+         }
+ 
+         ColumnLayout {
+-- 
+GitLab
+
diff -Nru kinfocenter-6.3.5/debian/patches/upstream_f44af69b_kcms-about-distro-Add-help-property-to-Entry-show-total-amount-of-installed-memory-in-MemoryEntry.patch kinfocenter-6.3.6/debian/patches/upstream_f44af69b_kcms-about-distro-Add-help-property-to-Entry-show-total-amount-of-installed-memory-in-MemoryEntry.patch
--- kinfocenter-6.3.5/debian/patches/upstream_f44af69b_kcms-about-distro-Add-help-property-to-Entry-show-total-amount-of-installed-memory-in-MemoryEntry.patch	1970-01-01 01:00:00.000000000 +0100
+++ kinfocenter-6.3.6/debian/patches/upstream_f44af69b_kcms-about-distro-Add-help-property-to-Entry-show-total-amount-of-installed-memory-in-MemoryEntry.patch	2025-07-15 08:10:45.000000000 +0200
@@ -0,0 +1,294 @@
+From f44af69b07ed19d076819fe4cc84e5777747d957 Mon Sep 17 00:00:00 2001
+From: Oliver Beard <olib141@outlook.com>
+Date: Thu, 20 Feb 2025 22:43:47 +0000
+Subject: [PATCH] kcms/about-distro: Add help property to Entry & show total
+ amount of installed memory in MemoryEntry This provides additional
+ information to the user, with a new help tooltip that clarifies the displayed
+ values as is contextually appropriate. For example, if the shown message is
+ "32 GB of RAM (31.3 GB usable)", the tooltip will elucidate that some memory
+ is reserved for use by system hardware. BUG: 500412
+
+---
+ CMakeLists.txt                        |   4 +
+ kcms/about-distro/src/CMakeLists.txt  |   5 +
+ kcms/about-distro/src/Entry.cpp       |   5 +
+ kcms/about-distro/src/Entry.h         |   3 +
+ kcms/about-distro/src/MemoryEntry.cpp | 144 +++++++++++++++++++++++---
+ kcms/about-distro/src/MemoryEntry.h   |   9 +-
+ kcms/about-distro/src/ui/main.qml     |   5 +
+ 7 files changed, 157 insertions(+), 18 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 51f94078..e3005878 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -41,6 +41,10 @@ find_package(KF6 ${KF6_MIN_VERSION} REQUIRED COMPONENTS
+ find_package(PkgConfig)
+ pkg_check_modules(libdrm REQUIRED IMPORTED_TARGET libdrm)
+ 
++if(CMAKE_SYSTEM_NAME MATCHES "Linux")
++    find_package(UDev REQUIRED COMPONENTS UDev)
++endif()
++
+ ecm_find_qmlmodule(org.kde.kirigami 2.5)
+ 
+ macro(kinfocenter_add_kcm target)
+diff --git a/kcms/about-distro/src/CMakeLists.txt b/kcms/about-distro/src/CMakeLists.txt
+index 13ad8d0a..d731d81a 100644
+--- a/kcms/about-distro/src/CMakeLists.txt
++++ b/kcms/about-distro/src/CMakeLists.txt
+@@ -43,6 +43,11 @@ target_link_libraries(kcm_about-distro  PRIVATE
+     PkgConfig::libdrm
+ )
+ 
++if(UDev_FOUND)
++    target_link_libraries(kcm_about-distro PRIVATE UDev::UDev)
++    target_compile_definitions(kcm_about-distro PRIVATE UDEV_FOUND)
++endif()
++
+ cmake_path(RELATIVE_PATH KDE_INSTALL_FULL_LIBEXECDIR BASE_DIRECTORY "${KDE_INSTALL_FULL_PLUGINDIR}/plasma/kcms/" OUTPUT_VARIABLE LIBEXECDIR_FROM_KCM)
+ 
+ target_compile_options(
+diff --git a/kcms/about-distro/src/Entry.cpp b/kcms/about-distro/src/Entry.cpp
+index a4077efd..63dc71fb 100644
+--- a/kcms/about-distro/src/Entry.cpp
++++ b/kcms/about-distro/src/Entry.cpp
+@@ -82,4 +82,9 @@ Hint Entry::localizedHint(Language) const
+     return {};
+ }
+ 
++QString Entry::localizedHelp(Language) const
++{
++    return {};
++}
++
+ #include "moc_Entry.cpp"
+diff --git a/kcms/about-distro/src/Entry.h b/kcms/about-distro/src/Entry.h
+index e5c3f6f1..bc053a4f 100644
+--- a/kcms/about-distro/src/Entry.h
++++ b/kcms/about-distro/src/Entry.h
+@@ -78,6 +78,9 @@ public:
+     // Returns a hint for the user to consider when interpreting the value.
+     Q_INVOKABLE [[nodiscard]] virtual Hint localizedHint(Language language = Language::System) const;
+ 
++    // Returns a help string for the entry, shown with a ContextualHelpButton
++    Q_SCRIPTABLE [[nodiscard]] virtual QString localizedHelp(Language language = Language::System) const;
++
+ protected:
+     // Returns localized QString for the given language.
+     QString localize(const KLocalizedString &string, Language language) const;
+diff --git a/kcms/about-distro/src/MemoryEntry.cpp b/kcms/about-distro/src/MemoryEntry.cpp
+index 1baaea2a..b58b5523 100644
+--- a/kcms/about-distro/src/MemoryEntry.cpp
++++ b/kcms/about-distro/src/MemoryEntry.cpp
+@@ -9,6 +9,9 @@
+ 
+ #ifdef Q_OS_LINUX
+ #include <sys/sysinfo.h>
++#ifdef UDEV_FOUND
++#include <libudev.h>
++#endif
+ #elif defined(Q_OS_FREEBSD)
+ // clang-format off
+ #include <sys/types.h>
+@@ -21,34 +24,141 @@ MemoryEntry::MemoryEntry()
+ {
+ }
+ 
+-qlonglong MemoryEntry::calculateTotalRam()
++std::optional<qlonglong> MemoryEntry::calculateTotalRam()
++{
++#if defined(Q_OS_LINUX) && defined(UDEV_FOUND)
++    std::unique_ptr<struct udev, decltype(&udev_unref)> udev(udev_new(), &udev_unref);
++    if (!udev) {
++        return {};
++    }
++
++    std::unique_ptr<struct udev_device, decltype(&udev_device_unref)> dmi(udev_device_new_from_syspath(udev.get(), "/sys/class/dmi/id/"), &udev_device_unref);
++    if (!dmi) {
++        return {};
++    }
++
++    const char *numMemoryDevicesCStr = udev_device_get_property_value(dmi.get(), "MEMORY_ARRAY_NUM_DEVICES");
++    if (!numMemoryDevicesCStr) {
++        return {};
++    }
++
++    bool ok;
++    int numMemoryDevices = QByteArray(numMemoryDevicesCStr).toInt(&ok);
++    if (!ok) {
++        return {};
++    }
++
++    qlonglong totalBytes = 0;
++    for (int i = 0; i < numMemoryDevices; ++i) {
++        const char *memoryBytesCStr = udev_device_get_property_value(dmi.get(), QStringLiteral("MEMORY_DEVICE_%1_SIZE").arg(i).toLatin1());
++        qlonglong memoryBytes = QByteArray(memoryBytesCStr).toLongLong(&ok);
++        if (ok) {
++            totalBytes += memoryBytes;
++        }
++    }
++
++    return totalBytes;
++#endif
++
++    /*
++     * TODO: A FreeBSD impl is likely possible, but it appears that
++     *         sysctlbyname() cannot get what we want with either "hw.physmem",
++     *         "hw.usermem" or "hw.realmem".
++     *       On a system with 2 x 4 GiB memory modules installed, we would need
++     *         to return a value of 8 GiB in bytes.
++     */
++
++    return {};
++}
++
++std::optional<qlonglong> MemoryEntry::calculateAvailableRam()
+ {
+-    qlonglong ret = -1;
+ #ifdef Q_OS_LINUX
+     struct sysinfo info;
+-    if (sysinfo(&info) == 0)
+-        // manpage "sizes are given as multiples of mem_unit bytes"
+-        ret = qlonglong(info.totalram) * info.mem_unit;
++    if (sysinfo(&info) == 0) {
++        // manpage: "sizes are given as multiples of mem_unit bytes"
++        return qlonglong(info.totalram) * info.mem_unit;
++    }
+ #elif defined(Q_OS_FREEBSD)
+     /* Stuff for sysctl */
+-    size_t len;
+-
+     unsigned long memory;
+-    len = sizeof(memory);
+-    sysctlbyname("hw.physmem", &memory, &len, NULL, 0);
+-
+-    ret = memory;
++    size_t len = sizeof(memory);
++    if (sysctlbyname("hw.physmem", &memory, &len, NULL, 0) == 0) {
++        return memory;
++    }
+ #endif
+-    return ret;
++
++    return {};
+ }
+ 
+ QString MemoryEntry::localizedValue(Language language) const
+ {
+-    const qlonglong totalRam = calculateTotalRam();
+-    if (totalRam > 0) {
+-        const auto string = ki18nc("@label %1 is the formatted amount of system memory (e.g. 7,7 GiB)", "%1 of RAM")
+-                                .subs(KFormat(localeForLanguage(language)).formatByteSize(totalRam));
++    auto precisionForGiB = [](std::optional<qlonglong> bytes) -> int {
++        if (!bytes.has_value()) {
++            return 0;
++        }
++
++        constexpr qlonglong GiB = 1024 * 1024 * 1024;
++        return (bytes.value() % GiB == 0) ? 0 : 1;
++    };
++
++    const int totalRamPrecision = precisionForGiB(m_totalRam);
++    const int availableRamPrecision = precisionForGiB(m_availableRam);
++
++    if (m_totalRam.has_value() && m_availableRam.has_value()) {
++        // Both known
++        const auto string = ki18nc("@label, %1 is the total amount of installed system memory, %2 is the amount of which is usable, both expressed as 7.7 GiB",
++                                   "%1 of RAM (%2 usable)")
++                                .subs(KFormat(localeForLanguage(language)).formatByteSize(m_totalRam.value(), totalRamPrecision))
++                                .subs(KFormat(localeForLanguage(language)).formatByteSize(m_availableRam.value(), availableRamPrecision));
++        return localize(string, language);
++    }
++
++    if (m_totalRam.has_value() && !m_availableRam.has_value()) {
++        // Known total, unknown available
++        const auto string = ki18nc("@label, %1 is the amount of installed system memory expressed as 7.7 GiB", "%1 of RAM")
++                                .subs(KFormat(localeForLanguage(language)).formatByteSize(m_totalRam.value(), totalRamPrecision));
++        return localize(string, language);
++    }
++
++    if (!m_totalRam.has_value() && m_availableRam.has_value()) {
++        // Unknown total, known available
++        const auto string = ki18nc("@label, %1 is the amount of usable system memory expressed as 7.7 GiB", "%1 of usable RAM")
++                                .subs(KFormat(localeForLanguage(language)).formatByteSize(m_availableRam.value(), availableRamPrecision));
+         return localize(string, language);
+     }
+-    return localize(ki18nc("Unknown amount of RAM", "Unknown"), language);
++
++    // Both unknown
++    return localize(ki18nc("@label, Unknown amount of system memory", "Unknown"), language);
++}
++
++QString MemoryEntry::localizedHelp(Language language) const
++{
++    if (m_totalRam.has_value() && m_availableRam.has_value()) {
++        // Both known
++        return localize(ki18nc("@info:tooltip, referring to system memory or RAM",
++                               "Some memory is reserved for use by the kernel or system hardware such as integrated graphics memory."),
++                        language);
++    }
++
++    if (m_totalRam.has_value() && !m_availableRam.has_value()) {
++        // Known total, unknown available
++        return localize(
++            ki18nc("@info:tooltip, referring to system memory or RAM",
++                   "The amount of usable memory may be lower than the displayed amount because some memory is reserved for use by the kernel or system "
++                   "hardware, such as integrated graphics memory."),
++            language);
++    }
++
++    if (!m_totalRam.has_value() && m_availableRam.has_value()) {
++        // Unknown total, known available
++        return localize(
++            ki18nc("@info:tooltip, referring to system memory or RAM",
++                   "The amount of memory displayed may be lower than the installed amount because some memory is reserved for use by the kernel or system "
++                   "hardware, such as integrated graphics memory."),
++            language);
++    }
++
++    // Both unknown
++    return QString();
+ }
+diff --git a/kcms/about-distro/src/MemoryEntry.h b/kcms/about-distro/src/MemoryEntry.h
+index 43beb2e8..d0757651 100644
+--- a/kcms/about-distro/src/MemoryEntry.h
++++ b/kcms/about-distro/src/MemoryEntry.h
+@@ -12,10 +12,17 @@ class MemoryEntry : public Entry
+ {
+ public:
+     MemoryEntry();
+-    static qlonglong calculateTotalRam();
+ 
+     // Overwrite to get correct localization for the value.
+     QString localizedValue(Language language = Language::System) const final;
++    QString localizedHelp(Language language = Language::System) const final;
++
++private:
++    static std::optional<qlonglong> calculateTotalRam();
++    static std::optional<qlonglong> calculateAvailableRam();
++
++    std::optional<qlonglong> m_totalRam = calculateTotalRam();
++    std::optional<qlonglong> m_availableRam = calculateAvailableRam();
+ };
+ 
+ #endif // MEMORYENTRY_H
+diff --git a/kcms/about-distro/src/ui/main.qml b/kcms/about-distro/src/ui/main.qml
+index 80fbc2c1..e80b7fe9 100644
+--- a/kcms/about-distro/src/ui/main.qml
++++ b/kcms/about-distro/src/ui/main.qml
+@@ -167,6 +167,11 @@ KCMUtils.SimpleKCM {
+                         }
+                     }
+ 
++                    Kirigami.ContextualHelpButton {
++                        visible: toolTipText.length > 0
++                        toolTipText: entry.localizedHelp()
++                    }
++
+                     QQC2.Button {
+                         visible: hidden
+                         property var dialog: null
+-- 
+GitLab
+
diff -Nru kinfocenter-6.3.5/kcms/audio_information/ui/main.qml kinfocenter-6.3.6/kcms/audio_information/ui/main.qml
--- kinfocenter-6.3.5/kcms/audio_information/ui/main.qml	2025-05-06 19:56:44.000000000 +0200
+++ kinfocenter-6.3.6/kcms/audio_information/ui/main.qml	2025-07-08 13:44:06.000000000 +0200
@@ -11,4 +11,5 @@
 
 KInfoCenter.CommandOutputKCM {
     output: kcm.infoOutputContext
-}
\ Pas de fin de ligne à la fin du fichier
+    wrapMode: TextEdit.Wrap
+}
diff -Nru kinfocenter-6.3.5/org.kde.kinfocenter.appdata.xml kinfocenter-6.3.6/org.kde.kinfocenter.appdata.xml
--- kinfocenter-6.3.5/org.kde.kinfocenter.appdata.xml	2025-05-06 19:56:44.000000000 +0200
+++ kinfocenter-6.3.6/org.kde.kinfocenter.appdata.xml	2025-07-08 13:44:06.000000000 +0200
@@ -225,9 +225,9 @@
   </provides>
   <project_group>KDE</project_group>
   <releases>
+    <release version="6.3.6" date="2025-07-08"/>
     <release version="6.3.5" date="2025-05-06"/>
     <release version="6.3.4" date="2025-04-01"/>
     <release version="6.3.3" date="2025-03-11"/>
-    <release version="6.3.2" date="2025-02-25"/>
   </releases>
 </component>
diff -Nru kinfocenter-6.3.5/src/qml/CommandOutputKCM.qml kinfocenter-6.3.6/src/qml/CommandOutputKCM.qml
--- kinfocenter-6.3.5/src/qml/CommandOutputKCM.qml	2025-05-06 19:56:44.000000000 +0200
+++ kinfocenter-6.3.6/src/qml/CommandOutputKCM.qml	2025-07-08 13:44:06.000000000 +0200
@@ -29,6 +29,8 @@
     property int wrapMode: TextEdit.NoWrap
     property int textFormat: output.textFormat
 
+    flickable.contentWidth: wrapMode === TextEdit.NoWrap ? contentLoader.implicitWidth : undefined
+
     Clipboard { id: clipboard }
 
     Component {

--- End Message ---
--- Begin Message ---
Unblocked kinfocenter.

--- End Message ---

Reply to: