Fixed a few issues with loading and saving of outline settings, and fixed zen mode
This commit is contained in:
+33
-13
@@ -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
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user