[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 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: