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
)
from nw.constants import nwItemLayout, nwKeyWords, nwLabels, nwFiles
from nw.constants import nwKeyWords, nwLabels
logger = logging.getLogger(__name__)
@@ -76,9 +76,7 @@ class GuiProjectOutline(QWidget):
self.theIndex = self.theParent.theIndex
self.optState = self.theProject.optState
self.showWords = True
self.showSynopsis = True
self.showFilePath = False
self.firstView = True
self.outerBox = QVBoxLayout()
self.mainTree = QTreeWidget()
@@ -103,7 +101,35 @@ class GuiProjectOutline(QWidget):
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 = []
for iCol in range(self.mainTree.columnCount()):
@@ -114,7 +140,7 @@ class GuiProjectOutline(QWidget):
self.optState.saveSettings()
return
def loadHeaderState(self):
def _loadHeaderState(self):
treeCols = self.optState.getValue("GuiProjectOutline", "headState", {})
@@ -133,9 +159,7 @@ class GuiProjectOutline(QWidget):
return
def populateTree(self):
self.loadHeaderState()
def _populateTree(self):
theLabels = []
for i, n in enumerate(self.treeCols["order"]):
@@ -213,10 +237,6 @@ class GuiProjectOutline(QWidget):
return
##
# Internal Functions
##
def _createTreeItem(self, tHandle, sTitle):
nwItem = self.theProject.getItem(tHandle)
+7 -2
View File
@@ -307,6 +307,7 @@ class GuiMain(QMainWindow):
if saveOK:
self.closeDocument()
self.projView.closeOutline()
self.theProject.closeProject()
self.theIndex.clearIndex()
self.clearGUI()
@@ -329,6 +330,9 @@ class GuiMain(QMainWindow):
if not self.closeProject():
return False
# Switch main tab to editor view
self.tabWidget.setCurrentWidget(self.splitView)
# Try to open the project
if not self.theProject.openProject(projFile):
if self.theProject.lockedBy is not None:
@@ -773,7 +777,6 @@ class GuiMain(QMainWindow):
logger.info("Exiting %s" % nw.__package__)
if self.hasProject:
self.projView.saveHeaderState()
self.closeProject(True)
self.mainConf.setTreeColWidths(self.treeView.getColumnSizes())
@@ -824,6 +827,7 @@ class GuiMain(QMainWindow):
self.isZenMode = not self.isZenMode
if self.isZenMode:
logger.debug("Activating Zen mode")
self.tabWidget.setCurrentWidget(self.splitView)
else:
logger.debug("Deactivating Zen mode")
@@ -831,6 +835,7 @@ class GuiMain(QMainWindow):
self.treePane.setVisible(isVisible)
self.statusBar.setVisible(isVisible)
self.mainMenu.setVisible(isVisible)
self.tabWidget.tabBar().setVisible(isVisible)
if self.viewPane.isVisible():
self.viewPane.setVisible(False)
@@ -995,7 +1000,7 @@ class GuiMain(QMainWindow):
elif tabIndex == self.idxTabProj:
logger.verbose("Project outline tab activated")
if self.hasProject:
self.projView.populateTree()
self.projView.refreshTree()
return
# END Class GuiMain