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,20 @@ 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 geometry = screen->availableSize ();
270
+ const QSize min { 800 , 600 };
271
+ const QSize currentMin { static_cast <int >(geometry.width () * 0.75 ), static_cast <int >(geometry.height () * 0.75 ) };
272
+ if (currentMin.width () < min.width () || currentMin.height () < min.height ()) {
273
+ return currentMin;
274
+ }
275
+ return min;
276
+ }
277
+
278
+ QSize SettingsDialog::sizeHintForChild () const
279
+ {
280
+ auto size = ocApp ()->gui ()->settingsDialog ()->size ();
281
+ return { static_cast <int >(size.width () * 0.9 ), static_cast <int >(size.height () * 0.9 ) };
271
282
}
272
283
273
284
QWidget* SettingsDialog::currentPage ()
0 commit comments