From ca2a7897bada48d5dce03425880758d222808416 Mon Sep 17 00:00:00 2001 From: Jan Grewe Date: Thu, 2 Sep 2021 16:05:14 +0200 Subject: [PATCH] [mainwindow] store toolbar location, forbid a floating tb --- nixview/ui/mainwindow.py | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/nixview/ui/mainwindow.py b/nixview/ui/mainwindow.py index efe3e27..0e6174c 100644 --- a/nixview/ui/mainwindow.py +++ b/nixview/ui/mainwindow.py @@ -4,6 +4,7 @@ from PyQt5.QtGui import QKeySequence, QIcon from PyQt5.QtCore import QSize, QSettings, Qt from nixview.util.file_handler import FileHandler, NodeType +import nixview.info as info import nixview.constants as cnst import nixview.communicator as comm from nixview.ui.centralwidget import CentralWidget @@ -97,6 +98,7 @@ class NixView(QMainWindow): self._toolbar = QToolBar("My main toolbar") #self._toolbar.setStyleSheet("QToolButton:!hover {background-color:none}") self._toolbar.setAllowedAreas(Qt.LeftToolBarArea | Qt.TopToolBarArea) + self._toolbar.setFloatable(False) self._toolbar.setIconSize(QSize(32, 32)) self._toolbar.addAction(self._file_open_action) @@ -112,7 +114,18 @@ class NixView(QMainWindow): self._toolbar.addSeparator() self._toolbar.addAction(self._quit_action) - self.addToolBar(Qt.LeftToolBarArea, self._toolbar) + settings = QSettings(info.ORGANIZATION, info.NAME) + tb_orientation = settings.value("app/toolbar_area", "left") + self.addToolBar(Qt.LeftToolBarArea if tb_orientation == "left" else Qt.TopToolBarArea, self._toolbar) + self._toolbar.topLevelChanged.connect(self.tb_changed) + del settings + + def tb_changed(self, sig): + if not sig: + settings = QSettings(info.ORGANIZATION, info.NAME) + value = "left" if self.toolBarArea(self._toolbar) == Qt.LeftToolBarArea else "top" + settings.setValue("app/toolbar_area", value) + del settings def create_menu(self): menu = self.menuBar() @@ -132,7 +145,7 @@ class NixView(QMainWindow): self.setMenuBar(menu) def _update_recent_files(self, filename): - settings = QSettings(cnst.organization, cnst.application) + settings = QSettings(info.ORGANIZATION, info.NAME) recent_file_max_count = settings.value(cnst.settings_recent_file_max_count_key, 10, type=int) filenames = settings.value(cnst.settings_recent_files_key, []) new_filenames = [filename] @@ -168,7 +181,7 @@ class NixView(QMainWindow): def on_quit(self, s): self._file_handler.close() - sys.exit() + self.close() def on_item_plot(self, s): if self._current_item is not None: