Copy the mouse press behaviour from the project tree to the novel tree

This commit is contained in:
Veronica K. B. Olsen
2020-12-20 17:18:54 +01:00
parent 2779c8e69f
commit e5ea8074d2
3 changed files with 40 additions and 5 deletions
+33
View File
@@ -77,6 +77,10 @@ class GuiNovelTree(QTreeWidget):
treeHeadItem.setToolTip(self.C_WORDS, "Word count") treeHeadItem.setToolTip(self.C_WORDS, "Word count")
treeHeadItem.setToolTip(self.C_POV, "Point-of-view character") treeHeadItem.setToolTip(self.C_POV, "Point-of-view character")
treeHeader = self.header()
treeHeader.setStretchLastSection(True)
treeHeader.setMinimumSectionSize(iPx + 6)
# Get user's column width preferences for NAME and COUNT # Get user's column width preferences for NAME and COUNT
treeColWidth = self.mainConf.getNovelColWidths() treeColWidth = self.mainConf.getNovelColWidths()
if len(treeColWidth) <= 3: if len(treeColWidth) <= 3:
@@ -161,6 +165,35 @@ class GuiNovelTree(QTreeWidget):
return None return None
##
# Events
##
def mousePressEvent(self, theEvent):
"""Overload mousePressEvent to clear selection if clicking the
mouse in a blank area of the tree view, and to load a document
for viewing if the user middle-clicked.
"""
QTreeWidget.mousePressEvent(self, theEvent)
if theEvent.button() == Qt.LeftButton:
selItem = self.indexAt(theEvent.pos())
if not selItem.isValid():
self.clearSelection()
elif theEvent.button() == Qt.MiddleButton:
selItem = self.itemAt(theEvent.pos())
if not isinstance(selItem, QTreeWidgetItem):
return
tHandle = self.getSelectedHandle()
if tHandle is None:
return
self.theParent.viewDocument(tHandle)
return
## ##
# Slots # Slots
## ##
+1 -1
View File
@@ -699,7 +699,7 @@ class GuiProjectTree(QTreeWidget):
def mousePressEvent(self, theEvent): def mousePressEvent(self, theEvent):
"""Overload mousePressEvent to clear selection if clicking the """Overload mousePressEvent to clear selection if clicking the
mouse in a blank area of the tree view, and to load a document mouse in a blank area of the tree view, and to load a document
for viewing if the suer middle clicked. for viewing if the user middle-clicked.
""" """
QTreeWidget.mousePressEvent(self, theEvent) QTreeWidget.mousePressEvent(self, theEvent)
+6 -4
View File
@@ -269,6 +269,7 @@ class GuiMain(QMainWindow):
"""Wrapper function to clear all sub-elements of the main GUI. """Wrapper function to clear all sub-elements of the main GUI.
""" """
self.treeView.clearTree() self.treeView.clearTree()
self.novelView.clearTree()
self.docEditor.clearEditor() self.docEditor.clearEditor()
self.closeDocViewer() self.closeDocViewer()
self.statusBar.clearStatus() self.statusBar.clearStatus()
@@ -878,6 +879,7 @@ class GuiMain(QMainWindow):
self.docEditor.initEditor() self.docEditor.initEditor()
self.docViewer.initViewer() self.docViewer.initViewer()
self.treeView.initTree() self.treeView.initTree()
self.novelView.initTree()
self.projView.initOutline() self.projView.initOutline()
self.projMeta.initDetails() self.projMeta.initDetails()
@@ -1381,19 +1383,19 @@ class GuiMain(QMainWindow):
def _projTabsChanged(self, tabIndex): def _projTabsChanged(self, tabIndex):
"""Activated when the project view tab is changed. """Activated when the project view tab is changed.
""" """
tHandle = None sHandle = None
if tabIndex == self.idxTreeView: if tabIndex == self.idxTreeView:
logger.verbose("Project tree tab activated") logger.verbose("Project tree tab activated")
tHandle = self.treeView.getSelectedHandle() sHandle = self.treeView.getSelectedHandle()
elif tabIndex == self.idxNovelView: elif tabIndex == self.idxNovelView:
logger.verbose("Novel tree tab activated") logger.verbose("Novel tree tab activated")
if self.hasProject: if self.hasProject:
self.novelView.refreshTree() self.novelView.refreshTree()
tHandle = self.novelView.getSelectedHandle() sHandle = self.novelView.getSelectedHandle()
self.treeMeta.updateViewBox(tHandle) self.treeMeta.updateViewBox(sHandle)
return return