Fixed a few issues with loading and saving of outline settings, and fixed zen mode

This commit is contained in:
Veronica K. B. Olsen
2020-02-27 21:54:26 +01:00
parent 717e4aba78
commit fdda0ddc74
2 changed files with 40 additions and 15 deletions
+33 -13
View File
@@ -21,7 +21,7 @@ from PyQt5.QtWidgets import (
QWidget, QVBoxLayout, QTreeWidget, QTreeWidgetItem QWidget, QVBoxLayout, QTreeWidget, QTreeWidgetItem
) )
from nw.constants import nwItemLayout, nwKeyWords, nwLabels, nwFiles from nw.constants import nwKeyWords, nwLabels
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@@ -76,9 +76,7 @@ class GuiProjectOutline(QWidget):
self.theIndex = self.theParent.theIndex self.theIndex = self.theParent.theIndex
self.optState = self.theProject.optState self.optState = self.theProject.optState
self.showWords = True self.firstView = True
self.showSynopsis = True
self.showFilePath = False
self.outerBox = QVBoxLayout() self.outerBox = QVBoxLayout()
self.mainTree = QTreeWidget() self.mainTree = QTreeWidget()
@@ -103,7 +101,35 @@ class GuiProjectOutline(QWidget):
return return
def saveHeaderState(self): def refreshTree(self):
"""Called whenever the Outline tab is activated and controls
what data to load, and if necessary, force a rebuild of the
tree.
"""
if self.firstView:
self._loadHeaderState()
self._populateTree()
self.firstView = False
return
def closeOutline(self):
"""Called before a project is closed.
"""
self._saveHeaderState()
self.mainTree.clear()
self.firstView = True
return
##
# Internal Functions
##
def _saveHeaderState(self):
colW = [] colW = []
for iCol in range(self.mainTree.columnCount()): for iCol in range(self.mainTree.columnCount()):
@@ -114,7 +140,7 @@ class GuiProjectOutline(QWidget):
self.optState.saveSettings() self.optState.saveSettings()
return return
def loadHeaderState(self): def _loadHeaderState(self):
treeCols = self.optState.getValue("GuiProjectOutline", "headState", {}) treeCols = self.optState.getValue("GuiProjectOutline", "headState", {})
@@ -133,9 +159,7 @@ class GuiProjectOutline(QWidget):
return return
def populateTree(self): def _populateTree(self):
self.loadHeaderState()
theLabels = [] theLabels = []
for i, n in enumerate(self.treeCols["order"]): for i, n in enumerate(self.treeCols["order"]):
@@ -213,10 +237,6 @@ class GuiProjectOutline(QWidget):
return return
##
# Internal Functions
##
def _createTreeItem(self, tHandle, sTitle): def _createTreeItem(self, tHandle, sTitle):
nwItem = self.theProject.getItem(tHandle) nwItem = self.theProject.getItem(tHandle)
+7 -2
View File
@@ -307,6 +307,7 @@ class GuiMain(QMainWindow):
if saveOK: if saveOK:
self.closeDocument() self.closeDocument()
self.projView.closeOutline()
self.theProject.closeProject() self.theProject.closeProject()
self.theIndex.clearIndex() self.theIndex.clearIndex()
self.clearGUI() self.clearGUI()
@@ -329,6 +330,9 @@ class GuiMain(QMainWindow):
if not self.closeProject(): if not self.closeProject():
return False return False
# Switch main tab to editor view
self.tabWidget.setCurrentWidget(self.splitView)
# Try to open the project # Try to open the project
if not self.theProject.openProject(projFile): if not self.theProject.openProject(projFile):
if self.theProject.lockedBy is not None: if self.theProject.lockedBy is not None:
@@ -773,7 +777,6 @@ class GuiMain(QMainWindow):
logger.info("Exiting %s" % nw.__package__) logger.info("Exiting %s" % nw.__package__)
if self.hasProject: if self.hasProject:
self.projView.saveHeaderState()
self.closeProject(True) self.closeProject(True)
self.mainConf.setTreeColWidths(self.treeView.getColumnSizes()) self.mainConf.setTreeColWidths(self.treeView.getColumnSizes())
@@ -824,6 +827,7 @@ class GuiMain(QMainWindow):
self.isZenMode = not self.isZenMode self.isZenMode = not self.isZenMode
if self.isZenMode: if self.isZenMode:
logger.debug("Activating Zen mode") logger.debug("Activating Zen mode")
self.tabWidget.setCurrentWidget(self.splitView)
else: else:
logger.debug("Deactivating Zen mode") logger.debug("Deactivating Zen mode")
@@ -831,6 +835,7 @@ class GuiMain(QMainWindow):
self.treePane.setVisible(isVisible) self.treePane.setVisible(isVisible)
self.statusBar.setVisible(isVisible) self.statusBar.setVisible(isVisible)
self.mainMenu.setVisible(isVisible) self.mainMenu.setVisible(isVisible)
self.tabWidget.tabBar().setVisible(isVisible)
if self.viewPane.isVisible(): if self.viewPane.isVisible():
self.viewPane.setVisible(False) self.viewPane.setVisible(False)
@@ -995,7 +1000,7 @@ class GuiMain(QMainWindow):
elif tabIndex == self.idxTabProj: elif tabIndex == self.idxTabProj:
logger.verbose("Project outline tab activated") logger.verbose("Project outline tab activated")
if self.hasProject: if self.hasProject:
self.projView.populateTree() self.projView.refreshTree()
return return
# END Class GuiMain # END Class GuiMain