[libraries/ktextaddons/2.1] textaddonswidgets: Add loaddialogsizeutils, allow to load default value when scale is != 100

Laurent Montel <[email protected]>
Newsgroups gmane.comp.kde.cvs
Message-ID <[email protected]>
Git commit 509245edb19d9a41ba133d45d34cfb7eea1dd08a by Laurent Montel.
Committed on 31/07/2026 at 11:22.
Pushed by mlaurent into branch '2.1'.

Add loaddialogsizeutils, allow to load default value when scale is != 100

(cherry picked from commit d5df8f2d9ab0016e9985ee88dc6df9239d10b28a)

M  +3    -0    textaddonswidgets/CMakeLists.txt
A  +25   -0    textaddonswidgets/misc/loaddialogsizeutils.cpp     [License: LGPL(v2.0+)]
A  +12   -0    textaddonswidgets/misc/loaddialogsizeutils.h     [License: LGPL(v2.0+)]

https://invent.kde.org/libraries/ktextaddons/-/commit/509245edb19d9a41ba133d45d34cfb7eea1dd08a

diff --git a/textaddonswidgets/CMakeLists.txt b/textaddonswidgets/CMakeLists.txt
index 759ccec82..f569b95b7 100644
--- a/textaddonswidgets/CMakeLists.txt
+++ b/textaddonswidgets/CMakeLists.txt
@@ -103,6 +103,8 @@ target_sources(
         model/sortfilterproxymodelbase.cpp
         layout/textaddonswidgetflowlayout.h
         layout/textaddonswidgetflowlayout.cpp
+        misc/loaddialogsizeutils.h
+        misc/loaddialogsizeutils.cpp
 )
 
 target_sources(
@@ -273,6 +275,7 @@ ecm_generate_headers(TextAddonsWidgets_Camelcasemisc_HEADERS
     OpenFileJob
     SaveFileUtils
     ExecutableUtils
+    LoadDialogSizeUtils
     REQUIRED_HEADERS TextAddonsWidgets_misc_HEADERS
     PREFIX TextAddonsWidgets
     RELATIVE misc
diff --git a/textaddonswidgets/misc/loaddialogsizeutils.cpp b/textaddonswidgets/misc/loaddialogsizeutils.cpp
new file mode 100644
index 000000000..642a62997
--- /dev/null
+++ b/textaddonswidgets/misc/loaddialogsizeutils.cpp
@@ -0,0 +1,25 @@
+/*
+   SPDX-FileCopyrightText: 2026 Laurent Montel <[email protected]>
+
+   SPDX-License-Identifier: LGPL-2.0-or-later
+*/
+#include "loaddialogsizeutils.h"
+#include "textaddonswidgets_debug.h"
+#include <KConfigGroup>
+#include <KSharedConfig>
+#include <KWindowConfig>
+#include <QScreen>
+#include <QWindow>
+
+void TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(QWidget *w, const QString &key, int width, int height)
+{
+    if (!w || !w->windowHandle()) {
+        qCWarning(TEXTADDONSWIDGETS_LOG) << "widget is not define or windowHandle not defined. It's a bug";
+        return;
+    }
+    const qreal scaleFactor = w->windowHandle()->screen()->devicePixelRatio();
+    w->windowHandle()->resize(QSize(width * scaleFactor, height * scaleFactor));
+    const KConfigGroup group(KSharedConfig::openStateConfig(), key);
+    KWindowConfig::restoreWindowSize(w->windowHandle(), group);
+    w->resize(w->windowHandle()->size()); // workaround for QTBUG-40584
+}
diff --git a/textaddonswidgets/misc/loaddialogsizeutils.h b/textaddonswidgets/misc/loaddialogsizeutils.h
new file mode 100644
index 000000000..3a271ec6d
--- /dev/null
+++ b/textaddonswidgets/misc/loaddialogsizeutils.h
@@ -0,0 +1,12 @@
+/*
+   SPDX-FileCopyrightText: 2026 Laurent Montel <[email protected]>
+
+   SPDX-License-Identifier: LGPL-2.0-or-later
+*/
+#pragma once
+#include "textaddonswidgets_export.h"
+#include <QWidget>
+namespace TextAddonsWidgets::LoadDialogSizeUtils
+{
+void TEXTADDONSWIDGETS_EXPORT loadDialogSizeScaled(QWidget *w, const QString &key, int width, int height);
+};
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.