30
30
#include " protocolwidget.h"
31
31
#include " owncloudsetupwizard.h"
32
32
33
+ #include < QImage>
33
34
#include < QLabel>
34
- #include < QStandardItemModel>
35
- #include < QStackedWidget>
35
+ #include < QLayout>
36
+ #include < QMessageBox>
37
+ #include < QPainter>
38
+ #include < QPainterPath>
39
+ #include < QPixmap>
36
40
#include < QPushButton>
41
+ #include < QScreen>
37
42
#include < QSettings>
43
+ #include < QStackedWidget>
44
+ #include < QStandardItemModel>
38
45
#include < QToolBar>
39
46
#include < QToolButton>
40
- #include < QLayout>
41
47
#include < QVBoxLayout>
42
- #include < QPixmap>
43
- #include < QImage>
44
48
#include < QWidgetAction>
45
- #include < QPainter>
46
- #include < QPainterPath>
47
- #include < QMessageBox>
49
+ #include < QWindow>
48
50
49
51
#ifdef Q_OS_MAC
50
52
#include " settingsdialog_mac.h"
@@ -250,11 +252,7 @@ SettingsDialog::SettingsDialog(ownCloudGui *gui, QWidget *parent)
250
252
customizeStyle ();
251
253
252
254
cfg.restoreGeometry (this );
253
- if (size ().width () < minimumSizeHint ().width () || size ().height () < minimumSizeHint ().height ())
254
- {
255
- resize (minimumSizeHint ());
256
- }
257
-
255
+ setMinimumSize (minimumSizeHint ());
258
256
#ifdef Q_OS_MAC
259
257
setActivationPolicy (ActivationPolicy::Accessory);
260
258
#endif
@@ -267,7 +265,18 @@ SettingsDialog::~SettingsDialog()
267
265
268
266
QSize SettingsDialog::minimumSizeHint () const
269
267
{
270
- return {800 , 500 };
268
+ const auto screen = windowHandle () ? windowHandle ()->screen () : QApplication::screenAt (QCursor::pos ());
269
+ const auto availableSize = screen->availableSize ();
270
+ const QSize min { 800 , 600 };
271
+ if (!availableSize.isValid ()) {
272
+ return min;
273
+ }
274
+ return min.boundedTo (availableSize * 0.75 );
275
+ }
276
+
277
+ QSize SettingsDialog::sizeHintForChild () const
278
+ {
279
+ return ocApp ()->gui ()->settingsDialog ()->size () * 0.9 ;
271
280
}
272
281
273
282
QWidget* SettingsDialog::currentPage ()
0 commit comments