mirror of
https://github.com/arsenetar/dupeguru.git
synced 2026-01-22 06:37:17 +00:00
Add windows position handling at open, fix #653
- Move offscreen windows back on screen - Restore maximized state without impacting resored size - Fullscreen comes back on primary screen, needs further work to support restore on other screens
This commit is contained in:
@@ -9,6 +9,7 @@
|
||||
from PyQt5.QtCore import Qt
|
||||
from PyQt5.QtWidgets import QDockWidget, QWidget
|
||||
|
||||
from qtlib.util import move_to_screen_center
|
||||
from .details_table import DetailsModel
|
||||
from hscommon.plat import ISLINUX
|
||||
|
||||
@@ -73,3 +74,9 @@ class DetailsDialog(QDockWidget):
|
||||
def refresh(self):
|
||||
self.tableModel.beginResetModel()
|
||||
self.tableModel.endResetModel()
|
||||
|
||||
def showEvent(self, event):
|
||||
if self._wasDocked is False:
|
||||
# have to do this here as the frameGeometry is not correct until shown
|
||||
move_to_screen_center(self)
|
||||
super().showEvent(event)
|
||||
|
||||
@@ -32,7 +32,7 @@ from PyQt5.QtGui import QPixmap, QIcon
|
||||
|
||||
from hscommon.trans import trget
|
||||
from hscommon.plat import ISLINUX
|
||||
from qtlib.util import horizontal_wrap
|
||||
from qtlib.util import horizontal_wrap, move_to_screen_center
|
||||
from qtlib.preferences import get_langnames
|
||||
from enum import Flag, auto
|
||||
|
||||
@@ -369,6 +369,11 @@ use the modifier key to drag the floating window around"
|
||||
section_to_update = Sections.DISPLAY
|
||||
self.resetToDefaults(section_to_update)
|
||||
|
||||
def showEvent(self, event):
|
||||
# have to do this here as the frameGeometry is not correct until shown
|
||||
move_to_screen_center(self)
|
||||
super().showEvent(event)
|
||||
|
||||
|
||||
class ColorPickerButton(QPushButton):
|
||||
def __init__(self, parent):
|
||||
|
||||
@@ -19,6 +19,7 @@ from PyQt5.QtWidgets import (
|
||||
QAbstractItemView,
|
||||
)
|
||||
|
||||
from qtlib.util import move_to_screen_center
|
||||
from hscommon.trans import trget
|
||||
from .problem_table import ProblemTable
|
||||
|
||||
@@ -70,3 +71,8 @@ class ProblemDialog(QDialog):
|
||||
self.closeButton.setDefault(True)
|
||||
self.horizontalLayout.addWidget(self.closeButton)
|
||||
self.verticalLayout.addLayout(self.horizontalLayout)
|
||||
|
||||
def showEvent(self, event):
|
||||
# have to do this here as the frameGeometry is not correct until shown
|
||||
move_to_screen_center(self)
|
||||
super().showEvent(event)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
# which should be included with this package. The terms are also available at
|
||||
# http://www.gnu.org/licenses/gpl-3.0.html
|
||||
|
||||
from PyQt5.QtCore import QRect, pyqtSlot, Qt
|
||||
from PyQt5.QtCore import QRect, pyqtSlot, Qt, QEvent
|
||||
from PyQt5.QtWidgets import (
|
||||
QWidget,
|
||||
QVBoxLayout,
|
||||
@@ -77,8 +77,8 @@ class TabWindow(QMainWindow):
|
||||
def restoreGeometry(self):
|
||||
if self.app.prefs.mainWindowRect is not None:
|
||||
self.setGeometry(self.app.prefs.mainWindowRect)
|
||||
else:
|
||||
move_to_screen_center(self)
|
||||
if self.app.prefs.mainWindowIsMaximized:
|
||||
self.showMaximized()
|
||||
|
||||
def _setupMenu(self):
|
||||
"""Setup the menubar boiler plates which will be filled by the underlying
|
||||
@@ -211,7 +211,19 @@ class TabWindow(QMainWindow):
|
||||
# QTabWidget will assign its geometry after restoring it
|
||||
prefs = self.app.prefs
|
||||
prefs.mainWindowIsMaximized = self.isMaximized()
|
||||
prefs.mainWindowRect = self.geometry()
|
||||
if not self.isMaximized():
|
||||
prefs.mainWindowRect = self.geometry()
|
||||
|
||||
def showEvent(self, event):
|
||||
if not self.isMaximized():
|
||||
# have to do this here as the frameGeometry is not correct until shown
|
||||
move_to_screen_center(self)
|
||||
super().showEvent(event)
|
||||
|
||||
def changeEvent(self, event):
|
||||
if event.type() == QEvent.Type.WindowStateChange and not self.isMaximized():
|
||||
move_to_screen_center(self)
|
||||
super().changeEvent(event)
|
||||
|
||||
def closeEvent(self, close_event):
|
||||
# Force closing of our tabbed widgets in reverse order so that the
|
||||
|
||||
Reference in New Issue
Block a user