[network/ruqola] src/widgets: Add LoadDialogSizeUtils for fixing default dialog size

Laurent Montel <[email protected]>
Newsgroups gmane.comp.kde.cvs
Message-ID <[email protected]>
Git commit 1e9339ccf91b48bb6e18550b62a3088d6d69f262 by Laurent Montel.
Committed on 02/08/2026 at 06:56.
Pushed by mlaurent into branch 'master'.

Add LoadDialogSizeUtils for fixing default dialog size

M  +2    -4    src/widgets/administratordialog/administratordialog.cpp
M  +2    -4    src/widgets/administratordialog/customemoji/administratorcustomemojicreateorupdatedialog.cpp
M  +2    -4    src/widgets/administratordialog/customsounds/administratorcustomsoundscreatedialog.cpp
M  +2    -4    src/widgets/administratordialog/customuserstatus/administratorcustomuserstatuscreatedialog.cpp
M  +2    -4    src/widgets/administratordialog/moderationconsole/moderationmessageinfodialog.cpp
M  +2    -4    src/widgets/administratordialog/moderationconsole/moderationmessagesdialog.cpp
M  +2    -4    src/widgets/administratordialog/moderationconsole/moderationusersdialog.cpp
M  +2    -4    src/widgets/administratordialog/oauth/administratoroauthcreatedialog.cpp
M  +2    -4    src/widgets/administratordialog/oauth/administratoroautheditdialog.cpp
M  +2    -4    src/widgets/administratordialog/roles/userinroleeditdialog.cpp
M  +2    -4    src/widgets/administratorsettingsdialog/administratorsettingsdialog.cpp
M  +5    -4    src/widgets/applicationssettingsdialog/applicationspermissiondialog.cpp
M  +2    -4    src/widgets/applicationssettingsdialog/applicationssettingsaskapplicationdialog.cpp
M  +2    -4    src/widgets/applicationssettingsdialog/applicationssettingsdialog.cpp
M  +2    -4    src/widgets/bannerinfodialog/bannerinfodialog.cpp
M  +2    -4    src/widgets/configuredialog/configuresettingsdialog.cpp
M  +2    -4    src/widgets/configurenewserver/configureactivitiesdialog.cpp
M  +2    -4    src/widgets/configurenewserver/createnewserverdialog.cpp
M  +2    -4    src/widgets/databasedialog/exploredatabasedialog.cpp
M  +2    -4    src/widgets/dialogs/addusersinroomdialog.cpp
M  +2    -4    src/widgets/dialogs/channelinfodialog.cpp
M  +2    -4    src/widgets/dialogs/createdirectmessagesdialog.cpp
M  +2    -4    src/widgets/dialogs/createnewchanneldialog.cpp
M  +2    -4    src/widgets/dialogs/createnewdiscussiondialog.cpp
M  +2    -4    src/widgets/dialogs/createvideomessagewizard.cpp
M  +2    -4    src/widgets/dialogs/inviteusersdialog.cpp
M  +2    -4    src/widgets/dialogs/reportmessagedialog.cpp
M  +2    -4    src/widgets/dialogs/reportuserdialog.cpp
M  +2    -4    src/widgets/dialogs/searchmessagedialog.cpp
M  +2    -4    src/widgets/dialogs/showattachmentdialog.cpp
M  +2    -4    src/widgets/dialogs/showbannedusersdialog.cpp
M  +2    -4    src/widgets/dialogs/showimagedialog.cpp
M  +2    -4    src/widgets/dialogs/showmentionsmessagesdialog.cpp
M  +2    -4    src/widgets/dialogs/showpinnedmessagesdialog.cpp
M  +2    -4    src/widgets/dialogs/showreadreceiptsdialog.cpp
M  +2    -4    src/widgets/dialogs/showstarredmessagesdialog.cpp
M  +2    -4    src/widgets/dialogs/showthreadsdialog.cpp
M  +2    -4    src/widgets/dialogs/showvideodialog.cpp
M  +2    -4    src/widgets/discussions/showdiscussionsdialog.cpp
M  +2    -3    src/widgets/exploreappstranlationdialog/exploreappstranslationdialog.cpp
M  +2    -4    src/widgets/explorepermissionsdialog/explorepermissionsdialog.cpp
M  +2    -4    src/widgets/exportmessages/exportmessagesdialog.cpp
M  +2    -4    src/widgets/importexportdata/exportdata/exportdatawizard.cpp
M  +2    -4    src/widgets/importexportdata/importdata/importdatawizard.cpp
M  +2    -4    src/widgets/myaccount/myaccountconfiguredialog.cpp
M  +2    -4    src/widgets/notificationhistory/notificationhistorydialog.cpp
M  +2    -4    src/widgets/prunemessages/prunemessagesdialog.cpp
M  +2    -4    src/widgets/registeruser/registeruserdialog.cpp
M  +2    -4    src/widgets/room/debugdialog/showdebugdialog.cpp
M  +2    -4    src/widgets/room/usersinroomdialog.cpp
M  +2    -4    src/widgets/serverchecks/serverchecklistdialog.cpp
M  +2    -4    src/widgets/servererrorinfohistory/servererrorinfomessagehistorydialog.cpp
M  +2    -4    src/widgets/teams/teamchannelsdialog.cpp
M  +2    -4    src/widgets/teams/teamconverttochanneldialog.cpp
M  +2    -4    src/widgets/teams/teamsearchroomdialog.cpp
M  +2    -4    src/widgets/teams/teamselectdeletedroomdialog.cpp
M  +2    -4    src/widgets/threadwidget/threadmessagedialog.cpp

https://invent.kde.org/network/ruqola/-/commit/1e9339ccf91b48bb6e18550b62a3088d6d69f262

diff --git a/src/widgets/administratordialog/administratordialog.cpp b/src/widgets/administratordialog/administratordialog.cpp
index 9d9f38e954..c818466363 100644
--- a/src/widgets/administratordialog/administratordialog.cpp
+++ b/src/widgets/administratordialog/administratordialog.cpp
@@ -16,6 +16,7 @@ using namespace Qt::Literals::StringLiterals;
 #include <QDialogButtonBox>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 
 namespace
 {
@@ -55,10 +56,7 @@ void AdministratorDialog::initialize()
 void AdministratorDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(400, 300));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myAdministratorDialogGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myAdministratorDialogGroupName), 400, 300);
 }
 
 void AdministratorDialog::writeConfig()
diff --git a/src/widgets/administratordialog/customemoji/administratorcustomemojicreateorupdatedialog.cpp b/src/widgets/administratordialog/customemoji/administratorcustomemojicreateorupdatedialog.cpp
index de38b0c3e8..2b384f3e08 100644
--- a/src/widgets/administratordialog/customemoji/administratorcustomemojicreateorupdatedialog.cpp
+++ b/src/widgets/administratordialog/customemoji/administratorcustomemojicreateorupdatedialog.cpp
@@ -14,6 +14,7 @@
 #include <QPushButton>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 
 namespace
 {
@@ -70,10 +71,7 @@ void AdministratorCustomEmojiCreateOrUpdateDialog::setType(AdministratorCustomEm
 void AdministratorCustomEmojiCreateOrUpdateDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(800, 300));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myConfigAdministratorCustomEmojiCreateDialogGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myConfigAdministratorCustomEmojiCreateDialogGroupName), 800, 300);
 }
 
 void AdministratorCustomEmojiCreateOrUpdateDialog::writeConfig()
diff --git a/src/widgets/administratordialog/customsounds/administratorcustomsoundscreatedialog.cpp b/src/widgets/administratordialog/customsounds/administratorcustomsoundscreatedialog.cpp
index 44a0461da8..4ec736e374 100644
--- a/src/widgets/administratordialog/customsounds/administratorcustomsoundscreatedialog.cpp
+++ b/src/widgets/administratordialog/customsounds/administratorcustomsoundscreatedialog.cpp
@@ -13,6 +13,7 @@
 #include <QDialogButtonBox>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 
 namespace
 {
@@ -57,10 +58,7 @@ AdministratorCustomSoundsCreateWidget::CustomSoundInfo AdministratorCustomSounds
 void AdministratorCustomSoundsCreateDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(800, 300));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myConfigAdministratorCustomSoundsCreateDialogGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myConfigAdministratorCustomSoundsCreateDialogGroupName), 800, 300);
 }
 
 void AdministratorCustomSoundsCreateDialog::writeConfig()
diff --git a/src/widgets/administratordialog/customuserstatus/administratorcustomuserstatuscreatedialog.cpp b/src/widgets/administratordialog/customuserstatus/administratorcustomuserstatuscreatedialog.cpp
index 603ab44f3e..c460c43b4c 100644
--- a/src/widgets/administratordialog/customuserstatus/administratorcustomuserstatuscreatedialog.cpp
+++ b/src/widgets/administratordialog/customuserstatus/administratorcustomuserstatuscreatedialog.cpp
@@ -15,6 +15,7 @@ using namespace Qt::Literals::StringLiterals;
 #include <QPushButton>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 namespace
 {
 const char myConfigAdministratorCustomUserStatusCreateDialogGroupName[] = "AdministratorCustomUserStatusCreateDialog";
@@ -49,10 +50,7 @@ AdministratorCustomUserStatusCreateDialog::~AdministratorCustomUserStatusCreateD
 void AdministratorCustomUserStatusCreateDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(800, 300));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myConfigAdministratorCustomUserStatusCreateDialogGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myConfigAdministratorCustomUserStatusCreateDialogGroupName), 800, 300);
 }
 
 void AdministratorCustomUserStatusCreateDialog::writeConfig()
diff --git a/src/widgets/administratordialog/moderationconsole/moderationmessageinfodialog.cpp b/src/widgets/administratordialog/moderationconsole/moderationmessageinfodialog.cpp
index dc8c7d8e96..72b4463c12 100644
--- a/src/widgets/administratordialog/moderationconsole/moderationmessageinfodialog.cpp
+++ b/src/widgets/administratordialog/moderationconsole/moderationmessageinfodialog.cpp
@@ -15,6 +15,7 @@
 #include <QDialogButtonBox>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 
 namespace
 {
@@ -52,10 +53,7 @@ void ModerationMessageInfoDialog::setReportInfos(const ModerationReportInfos &in
 void ModerationMessageInfoDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(800, 600));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myModerationMessageInfoDialogGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myModerationMessageInfoDialogGroupName), 800, 600);
 }
 
 void ModerationMessageInfoDialog::writeConfig()
diff --git a/src/widgets/administratordialog/moderationconsole/moderationmessagesdialog.cpp b/src/widgets/administratordialog/moderationconsole/moderationmessagesdialog.cpp
index fa7d2ff23f..9e3c2d938f 100644
--- a/src/widgets/administratordialog/moderationconsole/moderationmessagesdialog.cpp
+++ b/src/widgets/administratordialog/moderationconsole/moderationmessagesdialog.cpp
@@ -17,6 +17,7 @@ using namespace Qt::Literals::StringLiterals;
 #include <QDialogButtonBox>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 
 namespace
 {
@@ -49,10 +50,7 @@ ModerationMessagesDialog::~ModerationMessagesDialog()
 void ModerationMessagesDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(800, 600));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myModerationMessagesDialogGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myModerationMessagesDialogGroupName), 800, 600);
 }
 
 void ModerationMessagesDialog::writeConfig()
diff --git a/src/widgets/administratordialog/moderationconsole/moderationusersdialog.cpp b/src/widgets/administratordialog/moderationconsole/moderationusersdialog.cpp
index f95427a2bf..3fc238545c 100644
--- a/src/widgets/administratordialog/moderationconsole/moderationusersdialog.cpp
+++ b/src/widgets/administratordialog/moderationconsole/moderationusersdialog.cpp
@@ -17,6 +17,7 @@ using namespace Qt::Literals::StringLiterals;
 #include <QDialogButtonBox>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 
 namespace
 {
@@ -53,10 +54,7 @@ void ModerationUsersDialog::setModerationReportUserInfos(const ModerationReportU
 void ModerationUsersDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(800, 600));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myModerationUsersDialogGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myModerationUsersDialogGroupName), 800, 600);
 }
 
 void ModerationUsersDialog::writeConfig()
diff --git a/src/widgets/administratordialog/oauth/administratoroauthcreatedialog.cpp b/src/widgets/administratordialog/oauth/administratoroauthcreatedialog.cpp
index 313176cb8f..911264a5fe 100644
--- a/src/widgets/administratordialog/oauth/administratoroauthcreatedialog.cpp
+++ b/src/widgets/administratordialog/oauth/administratoroauthcreatedialog.cpp
@@ -14,6 +14,7 @@
 #include <QPushButton>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 namespace
 {
 const char myConfigAdministratorOauthCreateDialogGroupName[] = "AdministratorOauthCreateDialog";
@@ -60,10 +61,7 @@ void AdministratorOauthCreateDialog::setOauthInfo(const AdministratorOauthCreate
 void AdministratorOauthCreateDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(800, 300));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myConfigAdministratorOauthCreateDialogGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myConfigAdministratorOauthCreateDialogGroupName), 800, 300);
 }
 
 void AdministratorOauthCreateDialog::writeConfig()
diff --git a/src/widgets/administratordialog/oauth/administratoroautheditdialog.cpp b/src/widgets/administratordialog/oauth/administratoroautheditdialog.cpp
index a1cbc9b841..462f55baac 100644
--- a/src/widgets/administratordialog/oauth/administratoroautheditdialog.cpp
+++ b/src/widgets/administratordialog/oauth/administratoroautheditdialog.cpp
@@ -14,6 +14,7 @@
 #include <QPushButton>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 namespace
 {
 const char myConfigAdministratorOauthEditDialogGroupName[] = "AdministratorOauthEditDialog";
@@ -61,10 +62,7 @@ void AdministratorOauthEditDialog::setOauthInfo(const AdministratorOauthEditWidg
 void AdministratorOauthEditDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(800, 300));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myConfigAdministratorOauthEditDialogGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myConfigAdministratorOauthEditDialogGroupName), 800, 300);
 }
 
 void AdministratorOauthEditDialog::writeConfig()
diff --git a/src/widgets/administratordialog/roles/userinroleeditdialog.cpp b/src/widgets/administratordialog/roles/userinroleeditdialog.cpp
index 666898cf12..fc8bbbb0c3 100644
--- a/src/widgets/administratordialog/roles/userinroleeditdialog.cpp
+++ b/src/widgets/administratordialog/roles/userinroleeditdialog.cpp
@@ -16,6 +16,7 @@
 #include <QPushButton>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 namespace
 {
 const char myUserInRoleEditDialogGroupName[] = "UserInRoleEditDialog";
@@ -67,10 +68,7 @@ void UserInRoleEditDialog::setRoleName(const QString &newRoleName)
 void UserInRoleEditDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(400, 300));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myUserInRoleEditDialogGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myUserInRoleEditDialogGroupName), 400, 300);
 }
 
 void UserInRoleEditDialog::writeConfig()
diff --git a/src/widgets/administratorsettingsdialog/administratorsettingsdialog.cpp b/src/widgets/administratorsettingsdialog/administratorsettingsdialog.cpp
index 34baa88bbd..4a6ca6929a 100644
--- a/src/widgets/administratorsettingsdialog/administratorsettingsdialog.cpp
+++ b/src/widgets/administratorsettingsdialog/administratorsettingsdialog.cpp
@@ -18,6 +18,7 @@ using namespace Qt::Literals::StringLiterals;
 #include <QDialogButtonBox>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 
 namespace
 {
@@ -57,10 +58,7 @@ void AdministratorSettingsDialog::loadSettings()
 void AdministratorSettingsDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(400, 300));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myAdministratorSettingsDialogGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myAdministratorSettingsDialogGroupName), 400, 300);
 }
 
 void AdministratorSettingsDialog::writeConfig()
diff --git a/src/widgets/applicationssettingsdialog/applicationspermissiondialog.cpp b/src/widgets/applicationssettingsdialog/applicationspermissiondialog.cpp
index 21d560491f..5ef68a7ec4 100644
--- a/src/widgets/applicationssettingsdialog/applicationspermissiondialog.cpp
+++ b/src/widgets/applicationssettingsdialog/applicationspermissiondialog.cpp
@@ -15,6 +15,7 @@ using namespace Qt::Literals::StringLiterals;
 #include <QDialogButtonBox>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 
 namespace
 {
@@ -54,10 +55,10 @@ void ApplicationsPermissionDialog::setApplicationPermission(const QString &desc)
 void ApplicationsPermissionDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(400, 300));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myApplicationsSettingsApplicationsPermissionDialogGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this,
+                                                                 QLatin1StringView(myApplicationsSettingsApplicationsPermissionDialogGroupName),
+                                                                 400,
+                                                                 300);
 }
 
 void ApplicationsPermissionDialog::writeConfig()
diff --git a/src/widgets/applicationssettingsdialog/applicationssettingsaskapplicationdialog.cpp b/src/widgets/applicationssettingsdialog/applicationssettingsaskapplicationdialog.cpp
index 61ebc2caaf..89fb290287 100644
--- a/src/widgets/applicationssettingsdialog/applicationssettingsaskapplicationdialog.cpp
+++ b/src/widgets/applicationssettingsdialog/applicationssettingsaskapplicationdialog.cpp
@@ -15,6 +15,7 @@ using namespace Qt::Literals::StringLiterals;
 #include <QPushButton>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 
 namespace
 {
@@ -52,10 +53,7 @@ ApplicationsSettingsAskApplicationDialog::~ApplicationsSettingsAskApplicationDia
 void ApplicationsSettingsAskApplicationDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(400, 300));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myApplicationsSettingsAskApplicationDialogGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myApplicationsSettingsAskApplicationDialogGroupName), 400, 300);
 }
 
 void ApplicationsSettingsAskApplicationDialog::writeConfig()
diff --git a/src/widgets/applicationssettingsdialog/applicationssettingsdialog.cpp b/src/widgets/applicationssettingsdialog/applicationssettingsdialog.cpp
index d7d0a5d0b4..d648b09daf 100644
--- a/src/widgets/applicationssettingsdialog/applicationssettingsdialog.cpp
+++ b/src/widgets/applicationssettingsdialog/applicationssettingsdialog.cpp
@@ -16,6 +16,7 @@ using namespace Qt::Literals::StringLiterals;
 #include <QDialogButtonBox>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 
 namespace
 {
@@ -59,10 +60,7 @@ void ApplicationsSettingsDialog::initialize()
 void ApplicationsSettingsDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(400, 300));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myApplicationsSettingsDialogGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myApplicationsSettingsDialogGroupName), 400, 300);
 }
 
 void ApplicationsSettingsDialog::writeConfig()
diff --git a/src/widgets/bannerinfodialog/bannerinfodialog.cpp b/src/widgets/bannerinfodialog/bannerinfodialog.cpp
index 87433eefcf..5a46dd1288 100644
--- a/src/widgets/bannerinfodialog/bannerinfodialog.cpp
+++ b/src/widgets/bannerinfodialog/bannerinfodialog.cpp
@@ -16,6 +16,7 @@ using namespace Qt::Literals::StringLiterals;
 #include <QDialogButtonBox>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 
 namespace
 {
@@ -49,10 +50,7 @@ BannerInfoDialog::~BannerInfoDialog()
 void BannerInfoDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(400, 300));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myBannerInfoDialogConfigGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myBannerInfoDialogConfigGroupName), 400, 300);
 }
 
 void BannerInfoDialog::writeConfig()
diff --git a/src/widgets/configuredialog/configuresettingsdialog.cpp b/src/widgets/configuredialog/configuresettingsdialog.cpp
index 33252ebd2b..5fd4873619 100644
--- a/src/widgets/configuredialog/configuresettingsdialog.cpp
+++ b/src/widgets/configuredialog/configuresettingsdialog.cpp
@@ -20,6 +20,7 @@
 #include <QIcon>
 #include <QPushButton>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 
 #include "config-ruqola.h"
 
@@ -137,10 +138,7 @@ ConfigureSettingsDialog::~ConfigureSettingsDialog()
 void ConfigureSettingsDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(800, 600));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myConfigGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myConfigGroupName), 800, 600);
 }
 
 void ConfigureSettingsDialog::writeConfig()
diff --git a/src/widgets/configurenewserver/configureactivitiesdialog.cpp b/src/widgets/configurenewserver/configureactivitiesdialog.cpp
index 04c2d94670..fdd8987366 100644
--- a/src/widgets/configurenewserver/configureactivitiesdialog.cpp
+++ b/src/widgets/configurenewserver/configureactivitiesdialog.cpp
@@ -15,6 +15,7 @@ using namespace Qt::Literals::StringLiterals;
 #include <QDialogButtonBox>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 
 namespace
 {
@@ -47,10 +48,7 @@ ConfigureActivitiesDialog::~ConfigureActivitiesDialog()
 void ConfigureActivitiesDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(800, 600));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myConfigConfigureActivitiesDialogGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myConfigConfigureActivitiesDialogGroupName), 800, 600);
 }
 
 void ConfigureActivitiesDialog::writeConfig()
diff --git a/src/widgets/configurenewserver/createnewserverdialog.cpp b/src/widgets/configurenewserver/createnewserverdialog.cpp
index 572fe8bb14..b57f3eac19 100644
--- a/src/widgets/configurenewserver/createnewserverdialog.cpp
+++ b/src/widgets/configurenewserver/createnewserverdialog.cpp
@@ -18,6 +18,7 @@ using namespace Qt::Literals::StringLiterals;
 #include <QPushButton>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 
 namespace
 {
@@ -81,10 +82,7 @@ void CreateNewServerDialog::setExistingAccountName(const QStringList &lst)
 void CreateNewServerDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(800, 600));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myConfigCreateNewAccountDialogGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myConfigCreateNewAccountDialogGroupName), 800, 600);
 }
 
 void CreateNewServerDialog::writeConfig()
diff --git a/src/widgets/databasedialog/exploredatabasedialog.cpp b/src/widgets/databasedialog/exploredatabasedialog.cpp
index a5a64084ee..814e20df3c 100644
--- a/src/widgets/databasedialog/exploredatabasedialog.cpp
+++ b/src/widgets/databasedialog/exploredatabasedialog.cpp
@@ -23,6 +23,7 @@
 #include <QTabWidget>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 
 using namespace Qt::Literals::StringLiterals;
 namespace
@@ -102,10 +103,7 @@ ExploreDatabaseDialog::~ExploreDatabaseDialog()
 void ExploreDatabaseDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(400, 300));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myExploreDatabaseDialogConfigGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myExploreDatabaseDialogConfigGroupName), 400, 300);
 }
 
 void ExploreDatabaseDialog::writeConfig()
diff --git a/src/widgets/dialogs/addusersinroomdialog.cpp b/src/widgets/dialogs/addusersinroomdialog.cpp
index ed74e0a393..613c96cb2f 100644
--- a/src/widgets/dialogs/addusersinroomdialog.cpp
+++ b/src/widgets/dialogs/addusersinroomdialog.cpp
@@ -15,6 +15,7 @@
 #include <QPushButton>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 namespace
 {
 const char myConfigAddUsersInRoomDialogGroupName[] = "AddUsersInRoomDialog";
@@ -60,10 +61,7 @@ QStringList AddUsersInRoomDialog::userNames() const
 void AddUsersInRoomDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(800, 300));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myConfigAddUsersInRoomDialogGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myConfigAddUsersInRoomDialogGroupName), 800, 300);
 }
 
 void AddUsersInRoomDialog::writeConfig()
diff --git a/src/widgets/dialogs/channelinfodialog.cpp b/src/widgets/dialogs/channelinfodialog.cpp
index 65226ca636..57c7ee9dbf 100644
--- a/src/widgets/dialogs/channelinfodialog.cpp
+++ b/src/widgets/dialogs/channelinfodialog.cpp
@@ -17,6 +17,7 @@
 #include <QPushButton>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 
 namespace
 {
@@ -75,10 +76,7 @@ void ChannelInfoDialog::slotRoomNameValid(bool state)
 void ChannelInfoDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(600, 400));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myConfigChannelInfoDialogGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myConfigChannelInfoDialogGroupName), 600, 400);
 }
 
 void ChannelInfoDialog::writeConfig()
diff --git a/src/widgets/dialogs/createdirectmessagesdialog.cpp b/src/widgets/dialogs/createdirectmessagesdialog.cpp
index ecaecbf36c..a289c9e295 100644
--- a/src/widgets/dialogs/createdirectmessagesdialog.cpp
+++ b/src/widgets/dialogs/createdirectmessagesdialog.cpp
@@ -18,6 +18,7 @@
 #include <QPushButton>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 
 namespace
 {
@@ -60,10 +61,7 @@ QStringList CreateDirectMessagesDialog::userNames() const
 void CreateDirectMessagesDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(800, 600));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myConfigCreateDirectMessagesDialogGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myConfigCreateDirectMessagesDialogGroupName), 800, 600);
 }
 
 void CreateDirectMessagesDialog::writeConfig()
diff --git a/src/widgets/dialogs/createnewchanneldialog.cpp b/src/widgets/dialogs/createnewchanneldialog.cpp
index 2b8ddf1ad8..eed5338088 100644
--- a/src/widgets/dialogs/createnewchanneldialog.cpp
+++ b/src/widgets/dialogs/createnewchanneldialog.cpp
@@ -14,6 +14,7 @@
 #include <QPushButton>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 
 namespace
 {
@@ -65,10 +66,7 @@ RocketChatRestApi::CreateChannelTeamInfo CreateNewChannelDialog::channelInfo(boo
 void CreateNewChannelDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(800, 600));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myCreateNewChannelDialogGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myCreateNewChannelDialogGroupName), 800, 600);
 }
 
 void CreateNewChannelDialog::writeConfig()
diff --git a/src/widgets/dialogs/createnewdiscussiondialog.cpp b/src/widgets/dialogs/createnewdiscussiondialog.cpp
index 2ac8b5632a..5594c074d7 100644
--- a/src/widgets/dialogs/createnewdiscussiondialog.cpp
+++ b/src/widgets/dialogs/createnewdiscussiondialog.cpp
@@ -16,6 +16,7 @@
 #include <QPushButton>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 
 namespace
 {
@@ -57,10 +58,7 @@ CreateNewDiscussionDialog::~CreateNewDiscussionDialog()
 void CreateNewDiscussionDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(800, 600));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myCreateNewDiscussionDialogGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myCreateNewDiscussionDialogGroupName), 800, 600);
 }
 
 void CreateNewDiscussionDialog::writeConfig()
diff --git a/src/widgets/dialogs/createvideomessagewizard.cpp b/src/widgets/dialogs/createvideomessagewizard.cpp
index ffaee91043..6dc26a8d7a 100644
--- a/src/widgets/dialogs/createvideomessagewizard.cpp
+++ b/src/widgets/dialogs/createvideomessagewizard.cpp
@@ -18,6 +18,7 @@
 #include <QPushButton>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 
 namespace
 {
@@ -69,10 +70,7 @@ CreateVideoMessageWizard::CreateVideoMessageInfo CreateVideoMessageWizard::video
 void CreateVideoMessageWizard::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(800, 600));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myConfigCreateVideoMessageWizardGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myConfigCreateVideoMessageWizardGroupName), 800, 600);
 }
 
 void CreateVideoMessageWizard::writeConfig()
diff --git a/src/widgets/dialogs/inviteusersdialog.cpp b/src/widgets/dialogs/inviteusersdialog.cpp
index f553f286f9..947845fd21 100644
--- a/src/widgets/dialogs/inviteusersdialog.cpp
+++ b/src/widgets/dialogs/inviteusersdialog.cpp
@@ -15,6 +15,7 @@
 #include <QDialogButtonBox>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 
 namespace
 {
@@ -62,10 +63,7 @@ void InviteUsersDialog::generateLink()
 void InviteUsersDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(300, 300));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myInviteUsersDialogGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myInviteUsersDialogGroupName), 300, 300);
 }
 
 void InviteUsersDialog::writeConfig()
diff --git a/src/widgets/dialogs/reportmessagedialog.cpp b/src/widgets/dialogs/reportmessagedialog.cpp
index bad2ca2fdd..0684973026 100644
--- a/src/widgets/dialogs/reportmessagedialog.cpp
+++ b/src/widgets/dialogs/reportmessagedialog.cpp
@@ -16,6 +16,7 @@
 #include <QPushButton>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 namespace
 {
 const char myReportMessageDialogGroupName[] = "ReportMessageDialog";
@@ -53,10 +54,7 @@ ReportMessageDialog::~ReportMessageDialog()
 void ReportMessageDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(400, 300));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myReportMessageDialogGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myReportMessageDialogGroupName), 400, 300);
 }
 
 void ReportMessageDialog::writeConfig()
diff --git a/src/widgets/dialogs/reportuserdialog.cpp b/src/widgets/dialogs/reportuserdialog.cpp
index eba7f1bdd0..95735ca23a 100644
--- a/src/widgets/dialogs/reportuserdialog.cpp
+++ b/src/widgets/dialogs/reportuserdialog.cpp
@@ -16,6 +16,7 @@
 #include <QPushButton>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 namespace
 {
 const char myReportUserDialogGroupName[] = "ReportUserDialog";
@@ -54,10 +55,7 @@ ReportUserDialog::~ReportUserDialog()
 void ReportUserDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(400, 300));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myReportUserDialogGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myReportUserDialogGroupName), 400, 300);
 }
 
 void ReportUserDialog::writeConfig()
diff --git a/src/widgets/dialogs/searchmessagedialog.cpp b/src/widgets/dialogs/searchmessagedialog.cpp
index bba5d3bf4b..389835089c 100644
--- a/src/widgets/dialogs/searchmessagedialog.cpp
+++ b/src/widgets/dialogs/searchmessagedialog.cpp
@@ -17,6 +17,7 @@
 #include <QDialogButtonBox>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 
 namespace
 {
@@ -55,10 +56,7 @@ void SearchMessageDialog::setRoomId(const QByteArray &roomId)
 void SearchMessageDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(800, 600));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(mySearchMessageDialogGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(mySearchMessageDialogGroupName), 800, 600);
 }
 
 void SearchMessageDialog::writeConfig()
diff --git a/src/widgets/dialogs/showattachmentdialog.cpp b/src/widgets/dialogs/showattachmentdialog.cpp
index 16cdef49b4..6a15035f64 100644
--- a/src/widgets/dialogs/showattachmentdialog.cpp
+++ b/src/widgets/dialogs/showattachmentdialog.cpp
@@ -24,6 +24,7 @@
 #include <QJsonArray>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 namespace
 {
 const char myShowAttachmentDialogGroupName[] = "ShowAttachmentDialog";
@@ -116,10 +117,7 @@ QByteArray ShowAttachmentDialog::roomId() const
 void ShowAttachmentDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(800, 600));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myShowAttachmentDialogGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myShowAttachmentDialogGroupName), 800, 600);
 }
 
 void ShowAttachmentDialog::writeConfig()
diff --git a/src/widgets/dialogs/showbannedusersdialog.cpp b/src/widgets/dialogs/showbannedusersdialog.cpp
index b690c13529..f4ae39e3c3 100644
--- a/src/widgets/dialogs/showbannedusersdialog.cpp
+++ b/src/widgets/dialogs/showbannedusersdialog.cpp
@@ -14,6 +14,7 @@
 #include <QDialogButtonBox>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 namespace
 {
 const char myShowBannedUsersDialogGroupName[] = "ShowBannedUsersDialog";
@@ -49,10 +50,7 @@ ShowBannedUsersDialog::~ShowBannedUsersDialog()
 void ShowBannedUsersDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(800, 600));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myShowBannedUsersDialogGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myShowBannedUsersDialogGroupName), 800, 600);
 }
 
 void ShowBannedUsersDialog::writeConfig()
diff --git a/src/widgets/dialogs/showimagedialog.cpp b/src/widgets/dialogs/showimagedialog.cpp
index 871c3c0d1a..652f3c5807 100644
--- a/src/widgets/dialogs/showimagedialog.cpp
+++ b/src/widgets/dialogs/showimagedialog.cpp
@@ -22,6 +22,7 @@
 #include <QToolButton>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 
 namespace
 {
@@ -104,10 +105,7 @@ void ShowImageDialog::setImageInfo(const ShowImageWidget::ImageInfo &info)
 void ShowImageDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(800, 600));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myShowImageDialogGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myShowImageDialogGroupName), 800, 600);
 }
 
 void ShowImageDialog::writeConfig()
diff --git a/src/widgets/dialogs/showmentionsmessagesdialog.cpp b/src/widgets/dialogs/showmentionsmessagesdialog.cpp
index 0bc1b0c1d8..64af8399c0 100644
--- a/src/widgets/dialogs/showmentionsmessagesdialog.cpp
+++ b/src/widgets/dialogs/showmentionsmessagesdialog.cpp
@@ -13,6 +13,7 @@ using namespace Qt::Literals::StringLiterals;
 #include <KSharedConfig>
 #include <KWindowConfig>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 namespace
 {
 const char myShowMentionsMessagesDialogGroupName[] = "ShowMentionsMessagesDialog";
@@ -33,10 +34,7 @@ ShowMentionsMessagesDialog::~ShowMentionsMessagesDialog()
 void ShowMentionsMessagesDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(800, 600));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myShowMentionsMessagesDialogGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myShowMentionsMessagesDialogGroupName), 800, 600);
 }
 
 void ShowMentionsMessagesDialog::writeConfig()
diff --git a/src/widgets/dialogs/showpinnedmessagesdialog.cpp b/src/widgets/dialogs/showpinnedmessagesdialog.cpp
index 26bb811bcd..51e60fd53d 100644
--- a/src/widgets/dialogs/showpinnedmessagesdialog.cpp
+++ b/src/widgets/dialogs/showpinnedmessagesdialog.cpp
@@ -13,6 +13,7 @@
 #include <KSharedConfig>
 #include <KWindowConfig>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 namespace
 {
 const char myShowPinnedMessagesDialogGroupName[] = "ShowPinnedMessagesDialog";
@@ -34,10 +35,7 @@ ShowPinnedMessagesDialog::~ShowPinnedMessagesDialog()
 void ShowPinnedMessagesDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(800, 600));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myShowPinnedMessagesDialogGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myShowPinnedMessagesDialogGroupName), 800, 600);
 }
 
 void ShowPinnedMessagesDialog::writeConfig()
diff --git a/src/widgets/dialogs/showreadreceiptsdialog.cpp b/src/widgets/dialogs/showreadreceiptsdialog.cpp
index f06016307b..94d5d1585a 100644
--- a/src/widgets/dialogs/showreadreceiptsdialog.cpp
+++ b/src/widgets/dialogs/showreadreceiptsdialog.cpp
@@ -14,6 +14,7 @@
 #include <QDialogButtonBox>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 namespace
 {
 const char myShowReadReceiptsDialogGroupName[] = "ShowReadReceiptsDialog";
@@ -48,10 +49,7 @@ ShowReadReceiptsDialog::~ShowReadReceiptsDialog()
 void ShowReadReceiptsDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(800, 600));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myShowReadReceiptsDialogGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myShowReadReceiptsDialogGroupName), 800, 600);
 }
 
 void ShowReadReceiptsDialog::writeConfig()
diff --git a/src/widgets/dialogs/showstarredmessagesdialog.cpp b/src/widgets/dialogs/showstarredmessagesdialog.cpp
index abb71ed5e0..a038b3a1ab 100644
--- a/src/widgets/dialogs/showstarredmessagesdialog.cpp
+++ b/src/widgets/dialogs/showstarredmessagesdialog.cpp
@@ -12,6 +12,7 @@
 #include <KSharedConfig>
 #include <KWindowConfig>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 namespace
 {
 const char myShowStarredMessagesDialogGroupName[] = "ShowStarredMessagesDialog";
@@ -33,10 +34,7 @@ ShowStarredMessagesDialog::~ShowStarredMessagesDialog()
 void ShowStarredMessagesDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(800, 600));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myShowStarredMessagesDialogGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myShowStarredMessagesDialogGroupName), 800, 600);
 }
 
 void ShowStarredMessagesDialog::writeConfig()
diff --git a/src/widgets/dialogs/showthreadsdialog.cpp b/src/widgets/dialogs/showthreadsdialog.cpp
index d0aed43aa5..736a3d1fe9 100644
--- a/src/widgets/dialogs/showthreadsdialog.cpp
+++ b/src/widgets/dialogs/showthreadsdialog.cpp
@@ -15,6 +15,7 @@
 #include <KSharedConfig>
 #include <KWindowConfig>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 
 namespace
 {
@@ -55,10 +56,7 @@ ShowThreadsDialog::~ShowThreadsDialog()
 void ShowThreadsDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(800, 600));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myShowThreadsDialogGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myShowThreadsDialogGroupName), 800, 600);
 }
 
 void ShowThreadsDialog::writeConfig()
diff --git a/src/widgets/dialogs/showvideodialog.cpp b/src/widgets/dialogs/showvideodialog.cpp
index ee3f9eb138..efd7782372 100644
--- a/src/widgets/dialogs/showvideodialog.cpp
+++ b/src/widgets/dialogs/showvideodialog.cpp
@@ -14,6 +14,7 @@
 #include <QDialogButtonBox>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 
 namespace
 {
@@ -58,10 +59,7 @@ void ShowVideoDialog::setVideoPath(const QString &videoPath)
 void ShowVideoDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(800, 600));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myShowVideoDialogGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myShowVideoDialogGroupName), 800, 600);
 }
 
 void ShowVideoDialog::writeConfig()
diff --git a/src/widgets/discussions/showdiscussionsdialog.cpp b/src/widgets/discussions/showdiscussionsdialog.cpp
index 46516088d1..88f9d1cecb 100644
--- a/src/widgets/discussions/showdiscussionsdialog.cpp
+++ b/src/widgets/discussions/showdiscussionsdialog.cpp
@@ -18,6 +18,7 @@
 #include <KLocalizedString>
 #include <KSharedConfig>
 #include <KWindowConfig>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 
 namespace
 {
@@ -53,10 +54,7 @@ ShowDiscussionsDialog::~ShowDiscussionsDialog()
 void ShowDiscussionsDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(800, 600));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myShowDiscussionsDialogGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myShowDiscussionsDialogGroupName), 800, 600);
 }
 
 void ShowDiscussionsDialog::writeConfig()
diff --git a/src/widgets/exploreappstranlationdialog/exploreappstranslationdialog.cpp b/src/widgets/exploreappstranlationdialog/exploreappstranslationdialog.cpp
index 5375bb4883..1ed522d8d7 100644
--- a/src/widgets/exploreappstranlationdialog/exploreappstranslationdialog.cpp
+++ b/src/widgets/exploreappstranlationdialog/exploreappstranslationdialog.cpp
@@ -14,6 +14,7 @@
 #include <QDialogButtonBox>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 namespace
 {
 const char myExploreAppsTranslationDialogConfigGroupName[] = "ExploreAppsTranslationDialog";
@@ -46,10 +47,8 @@ ExploreAppsTranslationDialog::~ExploreAppsTranslationDialog()
 void ExploreAppsTranslationDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(400, 300));
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myExploreAppsTranslationDialogConfigGroupName), 400, 300);
     const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myExploreAppsTranslationDialogConfigGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
     mExploreAppsTranslationWidget->restoreState(group.readEntry("HeaderView", QByteArray()));
 }
 
diff --git a/src/widgets/explorepermissionsdialog/explorepermissionsdialog.cpp b/src/widgets/explorepermissionsdialog/explorepermissionsdialog.cpp
index 7b9155cbcb..7ce34ac053 100644
--- a/src/widgets/explorepermissionsdialog/explorepermissionsdialog.cpp
+++ b/src/widgets/explorepermissionsdialog/explorepermissionsdialog.cpp
@@ -14,6 +14,7 @@
 #include <QDialogButtonBox>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 namespace
 {
 const char myExplorePermissionDialogConfigGroupName[] = "ExplorePermissionDialog";
@@ -46,10 +47,7 @@ ExplorePermissionsDialog::~ExplorePermissionsDialog()
 void ExplorePermissionsDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(400, 300));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myExplorePermissionDialogConfigGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myExplorePermissionDialogConfigGroupName), 400, 300);
 }
 
 void ExplorePermissionsDialog::writeConfig()
diff --git a/src/widgets/exportmessages/exportmessagesdialog.cpp b/src/widgets/exportmessages/exportmessagesdialog.cpp
index 87a7811c93..7cbd7603cc 100644
--- a/src/widgets/exportmessages/exportmessagesdialog.cpp
+++ b/src/widgets/exportmessages/exportmessagesdialog.cpp
@@ -15,6 +15,7 @@
 #include <QPushButton>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 namespace
 {
 const char myExportMessagesDialogConfigGroupName[] = "ExportMessagesDialog";
@@ -52,10 +53,7 @@ RocketChatRestApi::RoomsExportJob::RoomsExportInfo ExportMessagesDialog::roomExp
 void ExportMessagesDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(400, 300));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myExportMessagesDialogConfigGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myExportMessagesDialogConfigGroupName), 400, 300);
 }
 
 void ExportMessagesDialog::writeConfig()
diff --git a/src/widgets/importexportdata/exportdata/exportdatawizard.cpp b/src/widgets/importexportdata/exportdata/exportdatawizard.cpp
index 2664228f17..1d4d003a94 100644
--- a/src/widgets/importexportdata/exportdata/exportdatawizard.cpp
+++ b/src/widgets/importexportdata/exportdata/exportdatawizard.cpp
@@ -14,6 +14,7 @@
 #include <KLocalizedString>
 #include <KSharedConfig>
 #include <KWindowConfig>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 
 #include <QDirIterator>
 #include <QTimer>
@@ -53,10 +54,7 @@ ExportDataWizard::~ExportDataWizard()
 void ExportDataWizard::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(800, 600));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myConfigExportDataWizardGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myConfigExportDataWizardGroupName), 800, 600);
 }
 
 void ExportDataWizard::writeConfig()
diff --git a/src/widgets/importexportdata/importdata/importdatawizard.cpp b/src/widgets/importexportdata/importdata/importdatawizard.cpp
index c955c45f0d..f340cde8d4 100644
--- a/src/widgets/importexportdata/importdata/importdatawizard.cpp
+++ b/src/widgets/importexportdata/importdata/importdatawizard.cpp
@@ -13,6 +13,7 @@
 #include <KLocalizedString>
 #include <KSharedConfig>
 #include <KWindowConfig>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 
 #include <QUrl>
 #include <QWindow>
@@ -53,10 +54,7 @@ void ImportDataWizard::slotCurrentIdChanged(int id)
 void ImportDataWizard::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(800, 600));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myConfigImportDataWizardGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myConfigImportDataWizardGroupName), 800, 600);
 }
 
 void ImportDataWizard::writeConfig()
diff --git a/src/widgets/myaccount/myaccountconfiguredialog.cpp b/src/widgets/myaccount/myaccountconfiguredialog.cpp
index 3643da6808..8f9c0e2c27 100644
--- a/src/widgets/myaccount/myaccountconfiguredialog.cpp
+++ b/src/widgets/myaccount/myaccountconfiguredialog.cpp
@@ -16,6 +16,7 @@
 #include <QDialogButtonBox>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 namespace
 {
 const char myMyAccountConfigureDialogConfigGroupName[] = "RegisterUserDialog";
@@ -64,10 +65,7 @@ void MyAccountConfigureDialog::slotAccept()
 void MyAccountConfigureDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(400, 300));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myMyAccountConfigureDialogConfigGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myMyAccountConfigureDialogConfigGroupName), 400, 300);
 }
 
 void MyAccountConfigureDialog::writeConfig()
diff --git a/src/widgets/notificationhistory/notificationhistorydialog.cpp b/src/widgets/notificationhistory/notificationhistorydialog.cpp
index 6be966d984..4dca42e502 100644
--- a/src/widgets/notificationhistory/notificationhistorydialog.cpp
+++ b/src/widgets/notificationhistory/notificationhistorydialog.cpp
@@ -15,6 +15,7 @@
 #include <QDialogButtonBox>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 
 namespace
 {
@@ -50,10 +51,7 @@ NotificationHistoryDialog::~NotificationHistoryDialog()
 void NotificationHistoryDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(400, 300));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myNotificationHistoryDialogConfigGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myNotificationHistoryDialogConfigGroupName), 400, 300);
 }
 
 void NotificationHistoryDialog::writeConfig()
diff --git a/src/widgets/prunemessages/prunemessagesdialog.cpp b/src/widgets/prunemessages/prunemessagesdialog.cpp
index 8b436f97cc..aa79d56e64 100644
--- a/src/widgets/prunemessages/prunemessagesdialog.cpp
+++ b/src/widgets/prunemessages/prunemessagesdialog.cpp
@@ -16,6 +16,7 @@
 #include <QPushButton>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 
 namespace
 {
@@ -65,10 +66,7 @@ void PruneMessagesDialog::setRoomName(const QString &roomName)
 void PruneMessagesDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(400, 300));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myPruneMessagesDialogConfigGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myPruneMessagesDialogConfigGroupName), 400, 300);
 }
 
 void PruneMessagesDialog::writeConfig()
diff --git a/src/widgets/registeruser/registeruserdialog.cpp b/src/widgets/registeruser/registeruserdialog.cpp
index 9d7d7d754a..b8bbe6a3b1 100644
--- a/src/widgets/registeruser/registeruserdialog.cpp
+++ b/src/widgets/registeruser/registeruserdialog.cpp
@@ -15,6 +15,7 @@
 #include <QPushButton>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 
 namespace
 {
@@ -48,10 +49,7 @@ RegisterUserDialog::~RegisterUserDialog()
 void RegisterUserDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(400, 300));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myRegisterUserDialogConfigGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myRegisterUserDialogConfigGroupName), 400, 300);
 }
 
 void RegisterUserDialog::writeConfig()
diff --git a/src/widgets/room/debugdialog/showdebugdialog.cpp b/src/widgets/room/debugdialog/showdebugdialog.cpp
index 1eafc66a47..683e60e73c 100644
--- a/src/widgets/room/debugdialog/showdebugdialog.cpp
+++ b/src/widgets/room/debugdialog/showdebugdialog.cpp
@@ -12,6 +12,7 @@
 #include <QDialogButtonBox>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 namespace
 {
 const char myShowDebugDialoggGroupName[] = "ShowDebugDialog";
@@ -48,10 +49,7 @@ void ShowDebugDialog::setPlainText(const QString &text)
 void ShowDebugDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(400, 300));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myShowDebugDialoggGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myShowDebugDialoggGroupName), 400, 300);
 }
 
 void ShowDebugDialog::writeConfig()
diff --git a/src/widgets/room/usersinroomdialog.cpp b/src/widgets/room/usersinroomdialog.cpp
index e190fa87cc..bdf7686e55 100644
--- a/src/widgets/room/usersinroomdialog.cpp
+++ b/src/widgets/room/usersinroomdialog.cpp
@@ -15,6 +15,7 @@
 #include <QDialogButtonBox>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 
 using namespace Qt::Literals::StringLiterals;
 namespace
@@ -59,10 +60,7 @@ void UsersInRoomDialog::writeConfig()
 void UsersInRoomDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(800, 600));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myUsersInRoomDialogGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myUsersInRoomDialogGroupName), 800, 600);
 }
 
 #include "moc_usersinroomdialog.cpp"
diff --git a/src/widgets/serverchecks/serverchecklistdialog.cpp b/src/widgets/serverchecks/serverchecklistdialog.cpp
index be81d4fef2..2251c65084 100644
--- a/src/widgets/serverchecks/serverchecklistdialog.cpp
+++ b/src/widgets/serverchecks/serverchecklistdialog.cpp
@@ -23,6 +23,7 @@
 #include <QTreeWidget>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 
 using namespace Qt::Literals::StringLiterals;
 
@@ -184,10 +185,7 @@ void ServerCheckListDialog::slotPostResults()
 void ServerCheckListDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(500, 350));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myServerCheckListDialogConfigGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myServerCheckListDialogConfigGroupName), 500, 350);
 }
 
 void ServerCheckListDialog::writeConfig()
diff --git a/src/widgets/servererrorinfohistory/servererrorinfomessagehistorydialog.cpp b/src/widgets/servererrorinfohistory/servererrorinfomessagehistorydialog.cpp
index 652dd3abea..f2200b2b9d 100644
--- a/src/widgets/servererrorinfohistory/servererrorinfomessagehistorydialog.cpp
+++ b/src/widgets/servererrorinfohistory/servererrorinfomessagehistorydialog.cpp
@@ -14,6 +14,7 @@
 #include <QDialogButtonBox>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 
 namespace
 {
@@ -51,10 +52,7 @@ void ServerErrorInfoMessageHistoryDialog::addServerList(const QList<AccountManag
 void ServerErrorInfoMessageHistoryDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(400, 300));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myServerErrorInfoMessageHistoryDialogConfigGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myServerErrorInfoMessageHistoryDialogConfigGroupName), 400, 300);
 }
 
 void ServerErrorInfoMessageHistoryDialog::writeConfig()
diff --git a/src/widgets/teams/teamchannelsdialog.cpp b/src/widgets/teams/teamchannelsdialog.cpp
index ec30c375ab..e4e41f4116 100644
--- a/src/widgets/teams/teamchannelsdialog.cpp
+++ b/src/widgets/teams/teamchannelsdialog.cpp
@@ -14,6 +14,7 @@
 #include <QDialogButtonBox>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 namespace
 {
 const char myTeamChannelsDialogConfigGroupName[] = "TeamChannelsDialog";
@@ -50,10 +51,7 @@ void TeamChannelsDialog::setRoom(Room *room)
 void TeamChannelsDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(400, 300));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myTeamChannelsDialogConfigGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myTeamChannelsDialogConfigGroupName), 400, 300);
 }
 
 void TeamChannelsDialog::writeConfig()
diff --git a/src/widgets/teams/teamconverttochanneldialog.cpp b/src/widgets/teams/teamconverttochanneldialog.cpp
index 6da370035c..e306c4e240 100644
--- a/src/widgets/teams/teamconverttochanneldialog.cpp
+++ b/src/widgets/teams/teamconverttochanneldialog.cpp
@@ -14,6 +14,7 @@
 #include <QDialogButtonBox>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 namespace
 {
 const char myTeamConvertToChannelDialogConfigGroupName[] = "TeamConvertToChannelDialog";
@@ -61,10 +62,7 @@ void TeamConvertToChannelDialog::setTeamName(const QString &name)
 void TeamConvertToChannelDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(400, 300));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myTeamConvertToChannelDialogConfigGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myTeamConvertToChannelDialogConfigGroupName), 400, 300);
 }
 
 void TeamConvertToChannelDialog::writeConfig()
diff --git a/src/widgets/teams/teamsearchroomdialog.cpp b/src/widgets/teams/teamsearchroomdialog.cpp
index 9e8394b7c6..a87be8682c 100644
--- a/src/widgets/teams/teamsearchroomdialog.cpp
+++ b/src/widgets/teams/teamsearchroomdialog.cpp
@@ -16,6 +16,7 @@
 #include <QPushButton>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 namespace
 {
 const char myTeamSearchRoomDialogConfigGroupName[] = "TeamSearchRoomDialog";
@@ -56,10 +57,7 @@ QList<QByteArray> TeamSearchRoomDialog::roomIds() const
 void TeamSearchRoomDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(400, 300));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myTeamSearchRoomDialogConfigGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myTeamSearchRoomDialogConfigGroupName), 400, 300);
 }
 
 void TeamSearchRoomDialog::writeConfig()
diff --git a/src/widgets/teams/teamselectdeletedroomdialog.cpp b/src/widgets/teams/teamselectdeletedroomdialog.cpp
index dca7fb7a3b..39b15fd415 100644
--- a/src/widgets/teams/teamselectdeletedroomdialog.cpp
+++ b/src/widgets/teams/teamselectdeletedroomdialog.cpp
@@ -14,6 +14,7 @@
 #include <QDialogButtonBox>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 namespace
 {
 const char myTeamSelectDeletedRoomDialogConfigGroupName[] = "TeamSelectDeletedRoomDialog";
@@ -51,10 +52,7 @@ void TeamSelectDeletedRoomDialog::setTeamRooms(const QList<TeamRoom> &rooms)
 void TeamSelectDeletedRoomDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(400, 300));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myTeamSelectDeletedRoomDialogConfigGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myTeamSelectDeletedRoomDialogConfigGroupName), 400, 300);
 }
 
 void TeamSelectDeletedRoomDialog::writeConfig()
diff --git a/src/widgets/threadwidget/threadmessagedialog.cpp b/src/widgets/threadwidget/threadmessagedialog.cpp
index 670a4c0e98..c371b3bf65 100644
--- a/src/widgets/threadwidget/threadmessagedialog.cpp
+++ b/src/widgets/threadwidget/threadmessagedialog.cpp
@@ -15,6 +15,7 @@
 #include <QStyle>
 #include <QVBoxLayout>
 #include <QWindow>
+#include <TextAddonsWidgets/LoadDialogSizeUtils>
 
 namespace
 {
@@ -66,10 +67,7 @@ void ThreadMessageDialog::setThreadMessageInfo(const ThreadMessageWidget::Thread
 void ThreadMessageDialog::readConfig()
 {
     create(); // ensure a window is created
-    windowHandle()->resize(QSize(800, 300));
-    const KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myThreadMessageDialogGroupName));
-    KWindowConfig::restoreWindowSize(windowHandle(), group);
-    resize(windowHandle()->size()); // workaround for QTBUG-40584
+    TextAddonsWidgets::LoadDialogSizeUtils::loadDialogSizeScaled(this, QLatin1StringView(myThreadMessageDialogGroupName), 800, 300);
 }
 
 void ThreadMessageDialog::writeConfig()
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.