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}
