[mainwindow] store toolbar location, forbid a floating tb

This commit is contained in:
Jan Grewe 2021-09-02 16:05:14 +02:00
parent 1e0b89c576
commit ca2a7897ba

View File

@ -4,6 +4,7 @@ from PyQt5.QtGui import QKeySequence, QIcon
from PyQt5.QtCore import QSize, QSettings, Qt from PyQt5.QtCore import QSize, QSettings, Qt
from nixview.util.file_handler import FileHandler, NodeType from nixview.util.file_handler import FileHandler, NodeType
import nixview.info as info
import nixview.constants as cnst import nixview.constants as cnst
import nixview.communicator as comm import nixview.communicator as comm
from nixview.ui.centralwidget import CentralWidget from nixview.ui.centralwidget import CentralWidget
@ -97,6 +98,7 @@ class NixView(QMainWindow):
self._toolbar = QToolBar("My main toolbar") self._toolbar = QToolBar("My main toolbar")
#self._toolbar.setStyleSheet("QToolButton:!hover {background-color:none}") #self._toolbar.setStyleSheet("QToolButton:!hover {background-color:none}")
self._toolbar.setAllowedAreas(Qt.LeftToolBarArea | Qt.TopToolBarArea) self._toolbar.setAllowedAreas(Qt.LeftToolBarArea | Qt.TopToolBarArea)
self._toolbar.setFloatable(False)
self._toolbar.setIconSize(QSize(32, 32)) self._toolbar.setIconSize(QSize(32, 32))
self._toolbar.addAction(self._file_open_action) self._toolbar.addAction(self._file_open_action)
@ -112,7 +114,18 @@ class NixView(QMainWindow):
self._toolbar.addSeparator() self._toolbar.addSeparator()
self._toolbar.addAction(self._quit_action) 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): def create_menu(self):
menu = self.menuBar() menu = self.menuBar()
@ -132,7 +145,7 @@ class NixView(QMainWindow):
self.setMenuBar(menu) self.setMenuBar(menu)
def _update_recent_files(self, filename): 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) recent_file_max_count = settings.value(cnst.settings_recent_file_max_count_key, 10, type=int)
filenames = settings.value(cnst.settings_recent_files_key, []) filenames = settings.value(cnst.settings_recent_files_key, [])
new_filenames = [filename] new_filenames = [filename]
@ -168,7 +181,7 @@ class NixView(QMainWindow):
def on_quit(self, s): def on_quit(self, s):
self._file_handler.close() self._file_handler.close()
sys.exit() self.close()
def on_item_plot(self, s): def on_item_plot(self, s):
if self._current_item is not None: if self._current_item is not None: