@@ -23,7 +23,7 @@ MainWindow::MainWindow(QWidget *parent)
23
23
setWindowIcon (QIcon (" :/icons/app/icon-128.png" ));
24
24
setMinimumWidth (525 );
25
25
setMinimumHeight (448 );
26
- restoreGeometry (settings. value ( " geometry " ). toByteArray () );
26
+ restoreMainWindow ( );
27
27
initThemes ();
28
28
createActions ();
29
29
createTrayIcon ();
@@ -35,6 +35,21 @@ MainWindow::MainWindow(QWidget *parent)
35
35
initAutoLock ();
36
36
}
37
37
38
+ void MainWindow::restoreMainWindow () {
39
+ if (settings.value (" geometry" ).isValid ()) {
40
+ restoreGeometry (settings.value (" geometry" ).toByteArray ());
41
+ QPoint pos = QCursor::pos ();
42
+ for (QScreen *screen : QGuiApplication::screens ()) {
43
+ QRect screenRect = screen->geometry ();
44
+ if (screenRect.contains (pos)) {
45
+ this ->move (screenRect.center () - this ->rect ().center ());
46
+ }
47
+ }
48
+ }else {
49
+ this ->resize (636 , 760 );
50
+ }
51
+ }
52
+
38
53
void MainWindow::initAutoLock () {
39
54
autoLockEventFilter = new AutoLockEventFilter (
40
55
settings.value (" autoLockDuration" , defaultAppAutoLockDuration).toInt () *
@@ -252,9 +267,10 @@ void MainWindow::tryLogOut() {
252
267
}
253
268
254
269
void MainWindow::init_settingWidget () {
270
+ int screenNumber = qApp->desktop ()->screenNumber (this );
255
271
if (settingsWidget == nullptr ) {
256
272
settingsWidget = new SettingsWidget (
257
- this , webEngine->page ()->profile ()->cachePath (),
273
+ this , screenNumber, webEngine->page ()->profile ()->cachePath (),
258
274
webEngine->page ()->profile ()->persistentStoragePath ());
259
275
settingsWidget->setWindowTitle (QApplication::applicationName () +
260
276
" | Settings" );
@@ -414,12 +430,18 @@ void MainWindow::showSettings() {
414
430
if (webEngine == nullptr ) {
415
431
QMessageBox::critical (
416
432
this , QApplication::applicationName () + " | Error" ,
417
- " Unable to initialize settings module.\n Is webengine initialized? " );
433
+ " Unable to initialize settings module.\n Webengine is not initialized. " );
418
434
return ;
419
435
}
420
436
if (!settingsWidget->isVisible ()) {
421
437
this ->updateSettingsUserAgentWidget ();
422
438
settingsWidget->refresh ();
439
+ int screenNumber = qApp->desktop ()->screenNumber (this );
440
+ QRect screenRect = QGuiApplication::screens ().at (screenNumber)->geometry ();
441
+ if (!screenRect.contains (settingsWidget->pos ())) {
442
+ settingsWidget->move (screenRect.center () -
443
+ settingsWidget->rect ().center ());
444
+ }
423
445
settingsWidget->show ();
424
446
}
425
447
}
0 commit comments