automatically resize all dialogs which are bigger than available screen

This commit is contained in:
Martin Rotter 2024-01-24 09:28:19 +01:00
parent 579dd7d9f7
commit 17fa6e6d8d
3 changed files with 8 additions and 0 deletions

View File

@ -13,6 +13,7 @@
#include "gui/dialogs/formupdate.h"
#include "gui/feedmessageviewer.h"
#include "gui/feedsview.h"
#include "gui/guiutilities.h"
#include "gui/messagepreviewer.h"
#include "gui/messagesview.h"
#include "gui/reusable/searchlineedit.h"
@ -681,6 +682,8 @@ void FormMain::loadSize() {
resize(settings->value(GROUP(GUI), GUI::MainWindowInitialSize, size()).toSize());
move(settings->value(GROUP(GUI), GUI::MainWindowInitialPosition, screen.center() - rect().center()).toPoint());
GuiUtilities::fixTooBigDialog(*this);
if (settings->value(GROUP(GUI), SETTING(GUI::MainWindowStartsMaximized)).toBool()) {
setWindowState(windowState() | Qt::WindowState::WindowMaximized);

View File

@ -36,6 +36,10 @@ void GuiUtilities::applyDialogProperties(QWidget& widget, const QIcon& icon, con
widget.setWindowTitle(title);
}
fixTooBigDialog(widget);
}
void GuiUtilities::fixTooBigDialog(QWidget& widget) {
// We fix too big dialog size or out-of-bounds position.
auto size_widget = widget.size();
auto size_screen = widget.screen()->availableSize();

View File

@ -11,6 +11,7 @@ class GuiUtilities {
public:
static void setLabelAsNotice(QLabel& label, bool is_warning, bool set_margins = true);
static void applyDialogProperties(QWidget& widget, const QIcon& icon = QIcon(), const QString& title = QString());
static void fixTooBigDialog(QWidget& widget);
static void restoreState(QWidget* wdg, QByteArray state);
static QByteArray saveState(QWidget* wdg);