diff libgui/src/octave-dock-widget.cc @ 30690:e2c8c852399e

replace use of depreciated QDesktopWidget in GUI * gui-utils.cc: include QApplication, QRect and QScreen; (get_screen_geometry): return QRect with geometry of primary screen; (adjust_to_screen): adjust given QRect to be completely on the screen that contains the largest part of the QRect, use a default geometry if no part is on an available screen * gui-utils.h: include QRect; new function get_screen_geometry and adjust_to_screen * community-news.cc: do not include QDesktopWidget, but gui-utils.h; (get_screen_geometry); move function to gui-utils.cc; * community-news.h: move get_screen_geometry to gui-utils.h * find-dialog.cc: do not include QDesktopWidget, but gui-utils.h; (restore_settings): use new function adjust_to_screen * main-window.cc: do not include QDesktopWidget, but gui-utils.h; (get_screen_geometry: move function to gui-utils.cc * main-window.h: move function get_screen_geometry to gui.utils.h; * octave-dock-widget.cc: do not include QDesktopWidget, but gui-utils.h QScreen and QWindow; (handle_settings): use adjust_to_screen and QGuiApplication->primaryScreen * release-notes.cc: do not include QDesktopWidget, but gui-utils.h and QScreen; (get_screen_geometry): move to gui-utils.cc; * release-notes.h: move get:screen_geometry to gui-utils.h * terminal-dock-widget.cc: do not include QDesktopWidget but QScreen; (terminal_dock_widget): use QGuiApplication->primaryScreen instead of QDesktopWidget->screenGeometry * welcome-wizard.cc: remove include of QDesktopWidget
author Torsten Lilge <ttl-octave@mailbox.org>
date Sun, 30 Jan 2022 16:41:44 +0100
parents 171414e74e9b
children 36dc11ee220d
line wrap: on
line diff
--- a/libgui/src/octave-dock-widget.cc	Tue Jan 25 17:07:18 2022 +0100
+++ b/libgui/src/octave-dock-widget.cc	Sun Jan 30 16:41:44 2022 +0100
@@ -29,18 +29,20 @@
 
 #include <QAction>
 #include <QApplication>
-#include <QDesktopWidget>
 #include <QHBoxLayout>
 #include <QLabel>
+#include <QScreen>
 #include <QStyle>
 #include <QToolBar>
 #include <QMenuBar>
+#include <QWindow>
 
 #include "gui-preferences-dw.h"
 #include "gui-preferences-global.h"
 #include "gui-preferences-mw.h"
 #include "gui-preferences-sc.h"
 #include "gui-settings.h"
+#include "gui-utils.h"
 #include "main-window.h"
 #include "octave-dock-widget.h"
 #include "octave-qobject.h"
@@ -513,12 +515,8 @@
       m_icon_color_active = "";
 
 
-    QWidget *ref_widget = m_main_window;
-    if (! ref_widget)
-      ref_widget = this;
-
     int x, y, w, h;
-    QApplication::desktop ()->availableGeometry (ref_widget).getRect (&x, &y, &w, &h);
+    QGuiApplication::primaryScreen ()->availableGeometry ().getRect (&x, &y, &w, &h);
     QRect default_floating_size = QRect (x+16, y+32, w/3, h/2);
 
     QRect default_dock_size;
@@ -538,11 +536,7 @@
       = settings->value (dw_float_geometry.key.arg (objectName ()),
                          default_floating_size).toRect ();
 
-    QWidget dummy;
-    dummy.setGeometry (m_recent_float_geom);
-
-    if (QApplication::desktop ()->screenNumber (&dummy) == -1)
-      m_recent_float_geom = default_floating_size;
+    adjust_to_screen (m_recent_float_geom, default_floating_size);
 
     // The following is required for ensure smooth transition from old
     // saveGeomety to new QRect setting (see comment for restoring size