[libraries/ktextaddons] 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 d5df8f2d9ab0016e9985ee88dc6df9239d10b28a by Laurent Montel.
Committed on 31/07/2026 at 11:20.
Pushed by mlaurent into branch 'master'.
Add loaddialogsizeutils, allow to load default value when scale is != 100
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/d5df8f2d9ab0016e9985ee88dc6df9239d10b28a
diff --git a/textaddonswidgets/CMakeLists.txt b/textaddonswidgets/CMakeLists.txt
index cf95c1273..63b7489f0 100644
--- a/textaddonswidgets/CMakeLists.txt
+++ b/textaddonswidgets/CMakeLists.txt
@@ -99,6 +99,8 @@ target_sources(
model/sortfilterproxymodelbase.cpp
layout/textaddonswidgetflowlayout.h
layout/textaddonswidgetflowlayout.cpp
+ misc/loaddialogsizeutils.h
+ misc/loaddialogsizeutils.cpp
)
target_sources(
@@ -269,6 +271,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);
+};