diff --git a/Furious/Window/AppMainWindow.py b/Furious/Window/AppMainWindow.py index 3351c76..f2a7ee0 100644 --- a/Furious/Window/AppMainWindow.py +++ b/Furious/Window/AppMainWindow.py @@ -100,6 +100,11 @@ class AppNetworkStateManager(NetworkStateManager): class AppMainWindow(AppQMainWindow): + DEFAULT_WINDOW_SIZE_DARWIN = QtCore.QSize(1500, 780) + DEFAULT_WINDOW_SIZE = ( + QtCore.QSize(1800, 960) if PLATFORM != 'Darwin' else DEFAULT_WINDOW_SIZE_DARWIN + ) + def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) @@ -474,18 +479,23 @@ class AppMainWindow(AppQMainWindow): try: windowSize = AppSettings.get('ServerWidgetWindowSize').split(',') - self.resize(*list(int(size) for size in windowSize)) + width, height = tuple(int(size) for size in windowSize) + + if (width, height) == (640, 480): + self.resize(AppMainWindow.DEFAULT_WINDOW_SIZE) + else: + self.resize(width, height) except Exception: # Any non-exit exceptions - self.resize(1800, 960) + self.resize(AppMainWindow.DEFAULT_WINDOW_SIZE) else: try: self.restoreGeometry(AppSettings.get('AppMainWindowGeometry')) except Exception: # Any non-exit exceptions - pass + self.resize(AppMainWindow.DEFAULT_WINDOW_SIZE) try: self.restoreState(AppSettings.get('AppMainWindowState')) @@ -494,6 +504,24 @@ class AppMainWindow(AppQMainWindow): pass + if PLATFORM == 'Darwin': + APP().processEvents() + + size = self.size() + + if size == QtCore.QSize(640, 480): + logger.error( + f'detected unresolve Qt bug on macOS. ' + f'Resizing main window to default ' + f'{AppMainWindow.DEFAULT_WINDOW_SIZE.toTuple()}' + ) + self.resize(AppMainWindow.DEFAULT_WINDOW_SIZE) + else: + logger.info( + f'restore main window size on macOS success: ' + f'{size.toTuple()}' + ) + def cleanup(self): AppSettings.set('AppMainWindowGeometry', self.saveGeometry()) AppSettings.set('AppMainWindowState', self.saveState()) diff --git a/Furious/Window/UserSubsWindow.py b/Furious/Window/UserSubsWindow.py index fe45e50..75f6c47 100644 --- a/Furious/Window/UserSubsWindow.py +++ b/Furious/Window/UserSubsWindow.py @@ -180,7 +180,7 @@ class UserSubsWindow(AppQMainWindow): except Exception: # Any non-exit exceptions - self.resize(UserSubsWindow.DEFAULT_WINDOW_SIZE) + pass def cleanup(self): AppSettings.set('UserSubsWindowGeometry', self.saveGeometry())