Added document tree and log widgets
This commit is contained in:
37
src/bedit_gui/controllers/window_state_controller.py
Normal file
37
src/bedit_gui/controllers/window_state_controller.py
Normal file
@@ -0,0 +1,37 @@
|
||||
from PySide6.QtCore import QObject, QSettings, QByteArray
|
||||
from PySide6.QtWidgets import QApplication
|
||||
|
||||
from bedit_gui.views.main_window import MainWindow
|
||||
|
||||
|
||||
class WindowStateController(QObject):
|
||||
def __init__(self,app: QApplication,window: MainWindow) -> None:
|
||||
super().__init__(window)
|
||||
|
||||
self.window = window
|
||||
self.settings = QSettings()
|
||||
|
||||
# Capture the layout created by Designer.
|
||||
self._default_geometry = QByteArray(window.saveGeometry())
|
||||
self._default_state = QByteArray(window.saveState())
|
||||
|
||||
app.aboutToQuit.connect(self.save)
|
||||
window.ui.actionReset_Layout.triggered.connect(self.reset)
|
||||
|
||||
def restore(self) -> None:
|
||||
if self.settings.contains("main_window/geometry"):
|
||||
self.window.restoreGeometry(self.settings.value("main_window/geometry"))
|
||||
|
||||
if self.settings.contains("main_window/state"):
|
||||
self.window.restoreState(self.settings.value("main_window/state"))
|
||||
|
||||
def save(self) -> None:
|
||||
self.settings.setValue("main_window/geometry",self.window.saveGeometry())
|
||||
self.settings.setValue("main_window/state",self.window.saveState())
|
||||
|
||||
def reset(self) -> None:
|
||||
self.settings.remove("main_window/geometry")
|
||||
self.settings.remove("main_window/state")
|
||||
self.window.restoreGeometry(self._default_geometry)
|
||||
self.window.restoreState(self._default_state)
|
||||
self.window.showMaximized()
|
||||
Reference in New Issue
Block a user