Fixes some issues with the custom ^Colbar, though behaviour is not perfect

This commit is contained in:
Olivier Keshavjee 2016-02-28 13:54:11 +01:00
parent 2387138bd6
commit 647563df6e
4 changed files with 58 additions and 17 deletions

View file

@ -322,6 +322,8 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.mainEditor.setFolderView(settings.folderView)
self.mainEditor.updateFolderViewButtons(settings.folderView)
self.tabMain.setCurrentIndex(settings.lastTab)
# We force to emit even if it opens on the current tab
self.tabMain.currentChanged.emit(settings.lastTab)
self.mainEditor.updateCorkBackground()
# Set autosave
@ -406,6 +408,16 @@ class MainWindow(QMainWindow, Ui_MainWindow):
if sttgns.contains("revisionsState"):
state = [False if v == "false" else True for v in sttgns.value("revisionsState")]
self.redacMetadata.revisions.restoreState(state)
if sttgns.contains("splitterRedacH"):
self.splitterRedacH.restoreState(sttgns.value("splitterRedacH"))
if sttgns.contains("splitterRedacV"):
self.splitterRedacV.restoreState(sttgns.value("splitterRedacV"))
if sttgns.contains("toolbar"):
# self.toolbar is not initialized yet, so we just store balue
self._toolbarState = sttgns.value("toolbar")
else:
self._toolbarState = ""
def closeEvent(self, event):
# Save State and geometry and other things
@ -413,8 +425,10 @@ class MainWindow(QMainWindow, Ui_MainWindow):
sttgns.setValue("geometry", self.saveGeometry())
sttgns.setValue("windowState", self.saveState())
sttgns.setValue("metadataState", self.redacMetadata.saveState())
sttgns.setValue("metadataState", self.redacMetadata.saveState())
sttgns.setValue("revisionsState", self.redacMetadata.revisions.saveState())
sttgns.setValue("splitterRedacH", self.splitterRedacH.saveState())
sttgns.setValue("splitterRedacV", self.splitterRedacV.saveState())
sttgns.setValue("toolbar", self.toolbar.saveState())
# Specific settings to save before quitting
settings.lastTab = self.tabMain.currentIndex()
@ -801,6 +815,8 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.toolbar.addCustomWidget(self.tr("Project tree"), self.treeRedacWidget, self.TabRedac)
self.toolbar.addCustomWidget(self.tr("Metadata"), self.redacMetadata, self.TabRedac)
self.toolbar.addCustomWidget(self.tr("Story line"), self.storylineView, self.TabRedac)
if self._toolbarState:
self.toolbar.restoreState(self._toolbarState)
# Custom "tab" bar on the left
self.lstTabs.setIconSize(QSize(48, 48))

View file

@ -69,6 +69,7 @@ class collapsibleDockWidgets(QToolBar):
# widget.installEventFilter(self)
b = verticalButton(self)
b.setDefaultAction(a)
#b.setChecked(widget.isVisible())
a2 = self.addWidget(b)
self.otherWidgets.append((b, a2, widget, group))
@ -87,6 +88,22 @@ class collapsibleDockWidgets(QToolBar):
else:
action.setVisible(True)
def saveState(self):
# We just need to save states of the custom widgets.
state = []
for btn, act, w, grp in self.otherWidgets:
state.append(
(grp, btn.text(), btn.isChecked())
)
return state
def restoreState(self, state):
for group, title, status in state:
for btn, act, widget, grp in self.otherWidgets:
if group == grp and title == btn.text():
btn.setChecked(status)
widget.setVisible(status)
class verticalButton(QToolButton):
def __init__(self, parent):

View file

@ -2,7 +2,7 @@
# Form implementation generated from reading ui file 'manuskript/ui/mainWindow.ui'
#
# Created: Sun Feb 28 09:13:29 2016
# Created: Sun Feb 28 13:22:17 2016
# by: PyQt5 UI code generator 5.2.1
#
# WARNING! All changes made in this file will be lost!
@ -871,9 +871,11 @@ class Ui_MainWindow(object):
self.verticalLayout_15.setObjectName("verticalLayout_15")
self.splitterRedacV = QtWidgets.QSplitter(self.lytTabRedac)
self.splitterRedacV.setOrientation(QtCore.Qt.Vertical)
self.splitterRedacV.setChildrenCollapsible(False)
self.splitterRedacV.setObjectName("splitterRedacV")
self.splitterRedacH = QtWidgets.QSplitter(self.splitterRedacV)
self.splitterRedacH.setOrientation(QtCore.Qt.Horizontal)
self.splitterRedacH.setChildrenCollapsible(False)
self.splitterRedacH.setObjectName("splitterRedacH")
self.treeRedacWidget = QtWidgets.QWidget(self.splitterRedacH)
self.treeRedacWidget.setObjectName("treeRedacWidget")
@ -994,7 +996,7 @@ class Ui_MainWindow(object):
self.horizontalLayout_2.addWidget(self.stack)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 1112, 30))
self.menubar.setGeometry(QtCore.QRect(0, 0, 1112, 20))
self.menubar.setObjectName("menubar")
self.menuFile = QtWidgets.QMenu(self.menubar)
self.menuFile.setObjectName("menuFile")
@ -1301,18 +1303,18 @@ class Ui_MainWindow(object):
self.actCompile.setShortcut(_translate("MainWindow", "F6"))
self.actToolFrequency.setText(_translate("MainWindow", "&Frequency Analyzer"))
from manuskript.ui.views.plotTreeView import plotTreeView
from manuskript.ui.views.storylineView import storylineView
from manuskript.ui.views.basicItemView import basicItemView
from manuskript.ui.views.treeView import treeView
from manuskript.ui.views.outlineView import outlineView
from manuskript.ui.search import search
from manuskript.ui.sldImportance import sldImportance
from manuskript.ui.views.textEditCompleter import textEditCompleter
from manuskript.ui.views.metadataView import metadataView
from manuskript.ui.views.persoTreeView import persoTreeView
from manuskript.ui.cheatSheet import cheatSheet
from manuskript.ui.welcome import welcome
from manuskript.ui.editors.mainEditor import mainEditor
from manuskript.ui.views.lineEditView import lineEditView
from manuskript.ui.cheatSheet import cheatSheet
from manuskript.ui.editors.mainEditor import mainEditor
from manuskript.ui.views.outlineView import outlineView
from manuskript.ui.views.treeView import treeView
from manuskript.ui.views.textEditView import textEditView
from manuskript.ui.views.storylineView import storylineView
from manuskript.ui.views.persoTreeView import persoTreeView
from manuskript.ui.views.plotTreeView import plotTreeView
from manuskript.ui.search import search
from manuskript.ui.views.basicItemView import basicItemView
from manuskript.ui.welcome import welcome
from manuskript.ui.views.textEditCompleter import textEditCompleter
from manuskript.ui.sldImportance import sldImportance
from manuskript.ui.views.metadataView import metadataView

View file

@ -1774,10 +1774,16 @@
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="childrenCollapsible">
<bool>false</bool>
</property>
<widget class="QSplitter" name="splitterRedacH">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="childrenCollapsible">
<bool>false</bool>
</property>
<widget class="QWidget" name="treeRedacWidget" native="true">
<layout class="QVBoxLayout" name="verticalLayout_30">
<property name="leftMargin">
@ -1973,7 +1979,7 @@
<x>0</x>
<y>0</y>
<width>1112</width>
<height>30</height>
<height>20</height>
</rect>
</property>
<widget class="QMenu" name="menuFile">