Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package kconfig for openSUSE:Factory checked 
in at 2022-10-11 17:59:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kconfig (Old)
 and      /work/SRC/openSUSE:Factory/.kconfig.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kconfig"

Tue Oct 11 17:59:41 2022 rev:111 rq:1008979 version:5.99.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/kconfig/kconfig.changes  2022-09-13 
15:09:53.344727059 +0200
+++ /work/SRC/openSUSE:Factory/.kconfig.new.2275/kconfig.changes        
2022-10-11 18:01:18.605673582 +0200
@@ -1,0 +2,14 @@
+Sat Oct  1 15:55:33 UTC 2022 - Christophe Giboudeaux <[email protected]>
+
+- Update to 5.99.0
+  * New feature release
+  * For more details please see:
+  * https://kde.org/announcements/frameworks/5/5.99.0
+- Changes since 5.98.0:
+  * Only warn about a file being inaccessible if we know which file it is
+  * Add Qt6 windows CI support
+  * Fix size and position restoration on multimonitor setups (kde#427875)
+  * Warn when accessing an inaccessible config file
+  * Fix minValue/maxValue for KConfigCompilerSignallingItem
+
+-------------------------------------------------------------------

Old:
----
  kconfig-5.98.0.tar.xz
  kconfig-5.98.0.tar.xz.sig

New:
----
  kconfig-5.99.0.tar.xz
  kconfig-5.99.0.tar.xz.sig

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kconfig.spec ++++++
--- /var/tmp/diff_new_pack.y8iR2d/_old  2022-10-11 18:01:19.069674332 +0200
+++ /var/tmp/diff_new_pack.y8iR2d/_new  2022-10-11 18:01:19.073674338 +0200
@@ -17,14 +17,14 @@
 
 
 %define sonum   5
-%define _tar_path 5.98
+%define _tar_path 5.99
 # Full KF5 version (e.g. 5.33.0)
 %{!?_kf5_version: %global _kf5_version %{version}}
 # Last major and minor KF5 version (e.g. 5.33)
 %{!?_kf5_bugfix_version: %define _kf5_bugfix_version %(echo %{_kf5_version} | 
awk -F. '{print $1"."$2}')}
 %bcond_without released
 Name:           kconfig
-Version:        5.98.0
+Version:        5.99.0
 Release:        0
 Summary:        Advanced configuration system
 License:        LGPL-2.1-or-later AND GPL-2.0-or-later
@@ -43,11 +43,9 @@
 BuildRequires:  cmake(Qt5Core) >= 5.15.0
 BuildRequires:  cmake(Qt5DBus) >= 5.15.0
 BuildRequires:  cmake(Qt5Gui) >= 5.15.0
+BuildRequires:  cmake(Qt5LinguistTools) >= 5.15.0
 BuildRequires:  cmake(Qt5Qml) >= 5.15.0
 BuildRequires:  cmake(Qt5Xml) >= 5.15.0
-%if %{with released}
-BuildRequires:  cmake(Qt5LinguistTools) >= 5.15.0
-%endif
 
 %description
 KConfig provides an advanced configuration system. It is made of three parts:
@@ -152,11 +150,10 @@
 
 %install
 %kf5_makeinstall -C build
+
 %fdupes %{buildroot}
 
-%if %{with released}
-%find_lang %{name}5 --with-qt --without-mo
-%endif
+%find_lang kconfig5 --with-qt --without-mo
 
 %post -n libKF5ConfigCore%{sonum} -p /sbin/ldconfig
 %postun -n libKF5ConfigCore%{sonum} -p /sbin/ldconfig
@@ -165,9 +162,7 @@
 %post -n libKF5ConfigQml%{sonum} -p /sbin/ldconfig
 %postun -n libKF5ConfigQml%{sonum} -p /sbin/ldconfig
 
-%if %{with released}
-%files -n libKF5ConfigCore%{sonum}-lang -f %{name}5.lang
-%endif
+%files -n libKF5ConfigCore%{sonum}-lang -f kconfig5.lang
 
 %files -n libKF5ConfigCore%{sonum}
 %license LICENSES/*


++++++ kconfig-5.98.0.tar.xz -> kconfig-5.99.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-5.98.0/.gitlab-ci.yml 
new/kconfig-5.99.0/.gitlab-ci.yml
--- old/kconfig-5.98.0/.gitlab-ci.yml   2022-09-05 14:02:44.000000000 +0200
+++ new/kconfig-5.99.0/.gitlab-ci.yml   2022-10-01 16:13:21.000000000 +0200
@@ -9,3 +9,4 @@
   - 
https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/android-qt6.yml
   - 
https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/windows.yml
   - 
https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/freebsd-qt6.yml
+  - 
https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/windows-qt6.yml
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-5.98.0/CMakeLists.txt 
new/kconfig-5.99.0/CMakeLists.txt
--- old/kconfig-5.98.0/CMakeLists.txt   2022-09-05 14:02:44.000000000 +0200
+++ new/kconfig-5.99.0/CMakeLists.txt   2022-10-01 16:13:21.000000000 +0200
@@ -1,10 +1,10 @@
 cmake_minimum_required(VERSION 3.16)
 
-set(KF_VERSION "5.98.0") # handled by release scripts
+set(KF_VERSION "5.99.0") # handled by release scripts
 project(KConfig VERSION ${KF_VERSION})
 
 include(FeatureSummary)
-find_package(ECM 5.98.0  NO_MODULE)
+find_package(ECM 5.99.0  NO_MODULE)
 set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake 
Modules." URL "https://commits.kde.org/extra-cmake-modules";)
 feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND 
FATAL_ON_MISSING_REQUIRED_PACKAGES)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-5.98.0/docs/DESIGN.kconfig 
new/kconfig-5.99.0/docs/DESIGN.kconfig
--- old/kconfig-5.98.0/docs/DESIGN.kconfig      2022-09-05 14:02:44.000000000 
+0200
+++ new/kconfig-5.99.0/docs/DESIGN.kconfig      2022-10-01 16:13:21.000000000 
+0200
@@ -115,7 +115,7 @@
   2) In the settings dialog when reading the setting
   3) In the settings dialog when selecting "Use defaults".
 
-* Provide type-information about config entries to facilate "KConfEdit" like 
+* Provide type-information about config entries to facilitate "KConfEdit" like 
 tools. Ideally type-information also includes range-information; this is even
 mandatory if enums become an explicit type.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-5.98.0/po/is/kconfig5_qt.po 
new/kconfig-5.99.0/po/is/kconfig5_qt.po
--- old/kconfig-5.98.0/po/is/kconfig5_qt.po     2022-09-05 14:02:44.000000000 
+0200
+++ new/kconfig-5.99.0/po/is/kconfig5_qt.po     2022-10-01 16:13:21.000000000 
+0200
@@ -9,7 +9,7 @@
 "Project-Id-Version: kwriteconfig\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n";
 "POT-Creation-Date: 2014-04-11 02:17+0000\n"
-"PO-Revision-Date: 2022-07-07 18:44+0000\n"
+"PO-Revision-Date: 2022-09-22 12:25+0000\n"
 "Last-Translator: Sveinn ?? Felli <[email protected]>\n"
 "Language-Team: Icelandic\n"
 "Language: is\n"
@@ -17,7 +17,7 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Lokalize 19.12.3\n"
+"X-Generator: Lokalize 21.12.3\n"
 "X-Qt-Contexts: true\n"
 
 #: core/kconfig.cpp:965
@@ -505,14 +505,13 @@
 msgstr "Nota <skr??> ?? sta?? v????v??rra stillinga"
 
 #: kreadconfig/kreadconfig.cpp:49 kreadconfig/kwriteconfig.cpp:28
-#, fuzzy
-#| msgctxt "main|"
-#| msgid "Group to look in. Use repeatedly for nested groups."
 msgctxt "main|"
 msgid ""
 "Group to look in. Use \"<default>\" for the root group, or use repeatedly "
 "for nested groups."
-msgstr "H??pur sem leita ?? ??. Nota endurteki?? fyrir falda??a h??pa."
+msgstr ""
+"H??pur sem leita ?? ??. Nota??u \"<default>\" fyrir r??tarh??pinn, e??a 
endurteki?? "
+"fyrir falda??a h??pa."
 
 #: kreadconfig/kreadconfig.cpp:52 kreadconfig/kwriteconfig.cpp:31
 msgctxt "main|"
@@ -532,7 +531,7 @@
 #: kreadconfig/kreadconfig.cpp:84 kreadconfig/kwriteconfig.cpp:69
 msgctxt "main|"
 msgid "Group name cannot be empty, use \"<default>\" for the root group"
-msgstr ""
+msgstr "Heiti h??ps m?? ekki vera t??mt, nota??u \"<default>\" fyrir 
r??tarh??pinn"
 
 #: kreadconfig/kwriteconfig.cpp:34
 msgctxt "main|"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-5.98.0/po/zh_CN/kconfig5_qt.po 
new/kconfig-5.99.0/po/zh_CN/kconfig5_qt.po
--- old/kconfig-5.98.0/po/zh_CN/kconfig5_qt.po  2022-09-05 14:02:44.000000000 
+0200
+++ new/kconfig-5.99.0/po/zh_CN/kconfig5_qt.po  2022-10-01 16:13:21.000000000 
+0200
@@ -1,7 +1,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: kdeorg\n"
-"PO-Revision-Date: 2022-08-20 14:17\n"
+"PO-Revision-Date: 2022-09-20 01:55\n"
 "Language-Team: Chinese Simplified\n"
 "Language: zh_CN\n"
 "MIME-Version: 1.0\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-5.98.0/src/core/CMakeLists.txt 
new/kconfig-5.99.0/src/core/CMakeLists.txt
--- old/kconfig-5.98.0/src/core/CMakeLists.txt  2022-09-05 14:02:44.000000000 
+0200
+++ new/kconfig-5.99.0/src/core/CMakeLists.txt  2022-10-01 16:13:21.000000000 
+0200
@@ -72,7 +72,7 @@
   REQUIRED_HEADERS KConfigCore_HEADERS
 )
 
-install(TARGETS KF5ConfigCore EXPORT KF5ConfigTargets 
${KF5_INSTALL_TARGETS_DEFAULT_ARGS})
+install(TARGETS KF5ConfigCore EXPORT KF5ConfigTargets 
${KF_INSTALL_TARGETS_DEFAULT_ARGS})
 
 install(FILES
   ${CMAKE_CURRENT_BINARY_DIR}/kconfigcore_export.h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-5.98.0/src/core/kconfiggroup.cpp 
new/kconfig-5.99.0/src/core/kconfiggroup.cpp
--- old/kconfig-5.98.0/src/core/kconfiggroup.cpp        2022-09-05 
14:02:44.000000000 +0200
+++ new/kconfig-5.99.0/src/core/kconfiggroup.cpp        2022-10-01 
16:13:21.000000000 +0200
@@ -41,6 +41,9 @@
         , bImmutable(isImmutable)
         , bConst(isConst)
     {
+        if (Q_UNLIKELY(!mOwner->name().isEmpty() && mOwner->accessMode() == 
KConfigBase::NoAccess)) {
+            qCWarning(KCONFIG_CORE_LOG) << "Created a KConfigGroup on an 
inaccessible config location" << mOwner->name() << name;
+        }
     }
 
     KConfigGroupPrivate(const KSharedConfigPtr &owner, const QByteArray &name)
@@ -50,6 +53,9 @@
         , bImmutable(name.isEmpty() ? owner->isImmutable() : 
owner->isGroupImmutable(name))
         , bConst(false)
     {
+        if (Q_UNLIKELY(!mOwner->name().isEmpty() && mOwner->accessMode() == 
KConfigBase::NoAccess)) {
+            qCWarning(KCONFIG_CORE_LOG) << "Created a KConfigGroup on an 
inaccessible config location" << mOwner->name() << name;
+        }
     }
 
     KConfigGroupPrivate(KConfigGroup *parent, bool isImmutable, bool isConst, 
const QByteArray &name)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-5.98.0/src/core/kcoreconfigskeleton.cpp 
new/kconfig-5.99.0/src/core/kcoreconfigskeleton.cpp
--- old/kconfig-5.98.0/src/core/kcoreconfigskeleton.cpp 2022-09-05 
14:02:44.000000000 +0200
+++ new/kconfig-5.99.0/src/core/kcoreconfigskeleton.cpp 2022-10-01 
16:13:21.000000000 +0200
@@ -1520,6 +1520,16 @@
     return mItem->property();
 }
 
+QVariant KConfigCompilerSignallingItem::minValue() const
+{
+    return mItem->minValue();
+}
+
+QVariant KConfigCompilerSignallingItem::maxValue() const
+{
+    return mItem->maxValue();
+}
+
 void KConfigCompilerSignallingItem::readConfig(KConfig *c)
 {
     QVariant oldValue = mItem->property();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-5.98.0/src/core/kcoreconfigskeleton.h 
new/kconfig-5.99.0/src/core/kcoreconfigskeleton.h
--- old/kconfig-5.98.0/src/core/kcoreconfigskeleton.h   2022-09-05 
14:02:44.000000000 +0200
+++ new/kconfig-5.99.0/src/core/kcoreconfigskeleton.h   2022-10-01 
16:13:21.000000000 +0200
@@ -458,6 +458,8 @@
     void setProperty(const QVariant &p) override;
     bool isEqual(const QVariant &p) const override;
     QVariant property() const override;
+    QVariant minValue() const override;
+    QVariant maxValue() const override;
     void setDefault() override;
     void swapDefault() override;
     // KF6 TODO - fix this
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-5.98.0/src/gui/CMakeLists.txt 
new/kconfig-5.99.0/src/gui/CMakeLists.txt
--- old/kconfig-5.98.0/src/gui/CMakeLists.txt   2022-09-05 14:02:44.000000000 
+0200
+++ new/kconfig-5.99.0/src/gui/CMakeLists.txt   2022-10-01 16:13:21.000000000 
+0200
@@ -54,7 +54,7 @@
    REQUIRED_HEADERS KConfigGui_HEADERS
 )
 
-install(TARGETS KF5ConfigGui EXPORT KF5ConfigTargets 
${KF5_INSTALL_TARGETS_DEFAULT_ARGS})
+install(TARGETS KF5ConfigGui EXPORT KF5ConfigTargets 
${KF_INSTALL_TARGETS_DEFAULT_ARGS})
 
 install(FILES
   ${CMAKE_CURRENT_BINARY_DIR}/kconfiggui_export.h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-5.98.0/src/gui/kwindowconfig.cpp 
new/kconfig-5.99.0/src/gui/kwindowconfig.cpp
--- old/kconfig-5.98.0/src/gui/kwindowconfig.cpp        2022-09-05 
14:02:44.000000000 +0200
+++ new/kconfig-5.99.0/src/gui/kwindowconfig.cpp        2022-10-01 
16:13:21.000000000 +0200
@@ -6,6 +6,7 @@
 */
 
 #include "kwindowconfig.h"
+#include "ksharedconfig.h"
 
 #include <QGuiApplication>
 #include <QScreen>
@@ -32,39 +33,60 @@
     return names.join(QLatin1Char(' '));
 }
 
+// Convenience function to return screen by its name from window screen 
siblings
+// returns current window screen if not found
+static QScreen *findScreenByName(const QWindow *window, const QString 
screenName)
+{
+    if (screenName == window->screen()->name()) {
+        return window->screen();
+    }
+    for (QScreen *s : window->screen()->virtualSiblings()) {
+        if (s->name() == screenName) {
+            return s;
+        }
+    }
+    return window->screen();
+}
+
 // Convenience function to get an appropriate config file key under which to
 // save window size, position, or maximization information.
-static QString configFileString(const QRect &desk, const QString &key)
+static QString configFileString(const QScreen *screen, const QString &key)
 {
     // We include resolution data to also save data on a per-resolution basis
-    const QString returnString = QStringLiteral("%1 %2 
%3x%4").arg(allConnectedScreens(), key, QString::number(desk.width()), 
QString::number(desk.height()));
+    const QString returnString =
+        QStringLiteral("%1 %2 %3x%4 %5")
+            .arg(allConnectedScreens(), key, 
QString::number(screen->geometry().width()), 
QString::number(screen->geometry().height()), screen->name());
     return returnString;
 }
 
 // Convenience function for "window is maximized" string
-static QString screenMaximizedString(const QRect &desk)
+static QString screenMaximizedString(const QScreen *screen)
 {
-    return configFileString(desk, QStringLiteral("Window-Maximized"));
+    return configFileString(screen, QStringLiteral("Window-Maximized"));
 }
 // Convenience function for window width string
-static QString windowWidthString(const QRect &desk)
+static QString windowWidthString(const QScreen *screen)
 {
-    return configFileString(desk, QStringLiteral("Width"));
+    return configFileString(screen, QStringLiteral("Width"));
 }
 // Convenience function for window height string
-static QString windowHeightString(const QRect &desk)
+static QString windowHeightString(const QScreen *screen)
 {
-    return configFileString(desk, QStringLiteral("Height"));
+    return configFileString(screen, QStringLiteral("Height"));
 }
 // Convenience function for window X position string
-static QString windowXPositionString(const QRect &desk)
+static QString windowXPositionString(const QScreen *screen)
 {
-    return configFileString(desk, QStringLiteral("XPosition"));
+    return configFileString(screen, QStringLiteral("XPosition"));
 }
 // Convenience function for window Y position string
-static QString windowYPositionString(const QRect &desk)
+static QString windowYPositionString(const QScreen *screen)
 {
-    return configFileString(desk, QStringLiteral("YPosition"));
+    return configFileString(screen, QStringLiteral("YPosition"));
+}
+static QString windowScreenPositionString()
+{
+    return QStringLiteral("%1").arg(allConnectedScreens());
 }
 
 void KWindowConfig::saveWindowSize(const QWindow *window, KConfigGroup 
&config, KConfigGroup::WriteConfigFlags options)
@@ -73,7 +95,7 @@
     if (!window || !window->screen()) {
         return;
     }
-    const QRect desk = window->screen()->geometry();
+    const QScreen *screen = window->screen();
 
     const QSize sizeToSave = window->size();
     const bool isMaximized = window->windowState() & Qt::WindowMaximized;
@@ -83,18 +105,18 @@
         const QSize 
defaultSize(window->property(s_initialSizePropertyName).toSize());
         const QSize 
defaultScreenSize(window->property(s_initialScreenSizePropertyName).toSize());
         const bool sizeValid = defaultSize.isValid() && 
defaultScreenSize.isValid();
-        if (!sizeValid || (sizeValid && (defaultSize != sizeToSave || 
defaultScreenSize != desk.size()))) {
-            config.writeEntry(windowWidthString(desk), sizeToSave.width(), 
options);
-            config.writeEntry(windowHeightString(desk), sizeToSave.height(), 
options);
+        if (!sizeValid || (sizeValid && (defaultSize != sizeToSave || 
defaultScreenSize != screen->geometry().size()))) {
+            config.writeEntry(windowWidthString(screen), sizeToSave.width(), 
options);
+            config.writeEntry(windowHeightString(screen), sizeToSave.height(), 
options);
             // Don't keep the maximized string in the file since the window is
             // no longer maximized at this point
-            config.deleteEntry(screenMaximizedString(desk));
+            config.deleteEntry(screenMaximizedString(screen));
         }
     }
-    if ((isMaximized == false) && 
!config.hasDefault(screenMaximizedString(desk))) {
-        config.revertToDefault(screenMaximizedString(desk));
+    if ((isMaximized == false) && 
!config.hasDefault(screenMaximizedString(screen))) {
+        config.revertToDefault(screenMaximizedString(screen));
     } else {
-        config.writeEntry(screenMaximizedString(desk), isMaximized, options);
+        config.writeEntry(screenMaximizedString(screen), isMaximized, options);
     }
 }
 
@@ -104,25 +126,26 @@
         return;
     }
 
-    const QRect desk = window->screen()->geometry();
+    const QString screenName = config.readEntry(windowScreenPositionString(), 
window->screen()->name());
+    const QScreen *screen = findScreenByName(window, screenName);
 
     // Fall back to non-per-screen-arrangement info if it's available but
     // per-screen-arrangement information is not
     // TODO: Remove in KF6 or maybe even KF5.80 or something. It really only 
needs
     // to be here to transition existing users once they upgrade from 5.73 -> 
5.74
-    const int fallbackWidth = config.readEntry(QStringLiteral("Width 
%1").arg(desk.width()), window->size().width());
-    const int fallbackHeight = config.readEntry(QStringLiteral("Height 
%1").arg(desk.height()), window->size().height());
+    const int fallbackWidth = config.readEntry(QStringLiteral("Width 
%1").arg(screen->geometry().width()), window->size().width());
+    const int fallbackHeight = config.readEntry(QStringLiteral("Height 
%1").arg(screen->geometry().height()), window->size().height());
 
-    const int width = config.readEntry(windowWidthString(desk), fallbackWidth);
-    const int height = config.readEntry(windowHeightString(desk), 
fallbackHeight);
-    const bool isMaximized = config.readEntry(configFileString(desk, 
QStringLiteral("Window-Maximized")), false);
+    const int width = config.readEntry(windowWidthString(screen), 
fallbackWidth);
+    const int height = config.readEntry(windowHeightString(screen), 
fallbackHeight);
+    const bool isMaximized = config.readEntry(configFileString(screen, 
QStringLiteral("Window-Maximized")), false);
 
     // Check default size
     const QSize 
defaultSize(window->property(s_initialSizePropertyName).toSize());
     const QSize 
defaultScreenSize(window->property(s_initialScreenSizePropertyName).toSize());
     if (!defaultSize.isValid() || !defaultScreenSize.isValid()) {
         window->setProperty(s_initialSizePropertyName, window->size());
-        window->setProperty(s_initialScreenSizePropertyName, desk.size());
+        window->setProperty(s_initialScreenSizePropertyName, 
screen->geometry().size());
     }
 
     // If window is maximized set maximized state and in all case set the size
@@ -146,9 +169,10 @@
         return;
     }
 
-    const QRect desk = window->screen()->geometry();
-    config.writeEntry(windowXPositionString(desk), window->x(), options);
-    config.writeEntry(windowYPositionString(desk), window->y(), options);
+    const QScreen *screen = window->screen();
+    config.writeEntry(windowXPositionString(screen), window->x(), options);
+    config.writeEntry(windowYPositionString(screen), window->y(), options);
+    config.writeEntry(windowScreenPositionString(), screen->name(), options);
 }
 
 void KWindowConfig::restoreWindowPosition(QWindow *window, const KConfigGroup 
&config)
@@ -159,8 +183,8 @@
         return;
     }
 
-    const QRect desk = window->screen()->geometry();
-    const bool isMaximized = config.readEntry(configFileString(desk, 
QStringLiteral("Window-Maximized")), false);
+    const QScreen *screen = window->screen();
+    const bool isMaximized = config.readEntry(configFileString(screen, 
QStringLiteral("Window-Maximized")), false);
 
     // Don't need to restore position if the window was maximized
     if (isMaximized) {
@@ -168,14 +192,28 @@
         return;
     }
 
+    // Move window to proper screen
+    const QString screenName = config.readEntry(windowScreenPositionString(), 
screen->name());
+    if (screenName != screen->name()) {
+        QScreen *screenConf = findScreenByName(window, screenName);
+        window->setScreen(screenConf);
+        restoreWindowScreenPosition(window, screenConf, config);
+        return;
+    }
+    restoreWindowScreenPosition(window, screen, config);
+}
+
+void KWindowConfig::restoreWindowScreenPosition(QWindow *window, const QScreen 
*screen, const KConfigGroup &config)
+{
+    const QRect desk = window->screen()->geometry();
     // Fall back to non-per-resolution info if it's available but
     // per-resolution information is not
     // TODO: Remove in KF6 or maybe even KF5.85 or something. It really only 
needs
     // to be here to transition existing users once they upgrade from 5.78 -> 
5.79
     const int fallbackXPosition = config.readEntry(QStringLiteral("%1 
XPosition %2").arg(allConnectedScreens(), QString::number(desk.width())), -1);
     const int fallbackYPosition = config.readEntry(QStringLiteral("%1 
YPosition %2").arg(allConnectedScreens(), QString::number(desk.height())), -1);
-    const int xPos = config.readEntry(windowXPositionString(desk), 
fallbackXPosition);
-    const int yPos = config.readEntry(windowYPositionString(desk), 
fallbackYPosition);
+    const int xPos = config.readEntry(windowXPositionString(screen), 
fallbackXPosition);
+    const int yPos = config.readEntry(windowYPositionString(screen), 
fallbackYPosition);
 
     if (xPos == -1 || yPos == -1) {
         return;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-5.98.0/src/gui/kwindowconfig.h 
new/kconfig-5.99.0/src/gui/kwindowconfig.h
--- old/kconfig-5.98.0/src/gui/kwindowconfig.h  2022-09-05 14:02:44.000000000 
+0200
+++ new/kconfig-5.99.0/src/gui/kwindowconfig.h  2022-10-01 16:13:21.000000000 
+0200
@@ -12,6 +12,7 @@
 #include <kconfiggui_export.h>
 
 class QWindow;
+class QScreen;
 
 /**
  * Save and load window sizes into a config
@@ -71,7 +72,7 @@
 KCONFIGGUI_EXPORT void saveWindowPosition(const QWindow *window, KConfigGroup 
&config, KConfigGroup::WriteConfigFlags options = KConfigGroup::Normal);
 
 /**
- * Restores the window's position from the configuration.
+ * Restores the window's screen position from the configuration and calls 
restoreWindowScreenPosition.
  * This function has no effect on Wayland, where the compositor is responsible
  * for window positioning.
  *
@@ -82,5 +83,19 @@
  * @since 5.74
  */
 KCONFIGGUI_EXPORT void restoreWindowPosition(QWindow *window, const 
KConfigGroup &config);
+
+/**
+ * Restores the window's position on provided screen from the configuration.
+ * This function has no effect on Wayland, where the compositor is responsible
+ * for window positioning.
+ *
+ * @note the group must be set before calling
+ *
+ * @param window The window whose position to restore.
+ * @param screen Screen on which window should be placed.
+ * @param config The config group to read from.
+ * @since 5.99
+ */
+KCONFIGGUI_EXPORT void restoreWindowScreenPosition(QWindow *window, const 
QScreen *screen, const KConfigGroup &config);
 }
 #endif // KWINDOWCONFIG_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-5.98.0/src/kreadconfig/CMakeLists.txt 
new/kconfig-5.99.0/src/kreadconfig/CMakeLists.txt
--- old/kconfig-5.98.0/src/kreadconfig/CMakeLists.txt   2022-09-05 
14:02:44.000000000 +0200
+++ new/kconfig-5.99.0/src/kreadconfig/CMakeLists.txt   2022-10-01 
16:13:21.000000000 +0200
@@ -3,7 +3,7 @@
 
 target_link_libraries(kreadconfig5 KF5::ConfigCore)
 
-install(TARGETS kreadconfig5 ${KF5_INSTALL_TARGETS_DEFAULT_ARGS})
+install(TARGETS kreadconfig5 ${KF_INSTALL_TARGETS_DEFAULT_ARGS})
 
 ########### next target ###############
 
@@ -12,4 +12,4 @@
 
 target_link_libraries(kwriteconfig5 KF5::ConfigCore)
 
-install(TARGETS kwriteconfig5 ${KF5_INSTALL_TARGETS_DEFAULT_ARGS})
+install(TARGETS kwriteconfig5 ${KF_INSTALL_TARGETS_DEFAULT_ARGS})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kconfig-5.98.0/src/qml/CMakeLists.txt 
new/kconfig-5.99.0/src/qml/CMakeLists.txt
--- old/kconfig-5.98.0/src/qml/CMakeLists.txt   2022-09-05 14:02:44.000000000 
+0200
+++ new/kconfig-5.99.0/src/qml/CMakeLists.txt   2022-10-01 16:13:21.000000000 
+0200
@@ -32,7 +32,7 @@
 target_include_directories(KF5ConfigQml
     INTERFACE 
"$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR_KF}/KConfig;${KDE_INSTALL_INCLUDEDIR_KF}/KConfigQml>")
 
-install(TARGETS KF5ConfigQml EXPORT KF5ConfigTargets 
${KF5_INSTALL_TARGETS_DEFAULT_ARGS})
+install(TARGETS KF5ConfigQml EXPORT KF5ConfigTargets 
${KF_INSTALL_TARGETS_DEFAULT_ARGS})
 install(FILES
   ${CMAKE_CURRENT_BINARY_DIR}/kconfigqml_export.h
   ${KConfigQml_HEADERS}

Reply via email to