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_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
treeColWidth = self.mainConf.getNovelColWidths()
if len(treeColWidth) <= 3:
@@ -161,6 +165,35 @@ class GuiNovelTree(QTreeWidget):
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
##
+1 -1
View File
@@ -699,7 +699,7 @@ class GuiProjectTree(QTreeWidget):
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 suer middle clicked.
for viewing if the user middle-clicked.
"""
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.
"""
self.treeView.clearTree()
self.novelView.clearTree()
self.docEditor.clearEditor()
self.closeDocViewer()
self.statusBar.clearStatus()
@@ -878,6 +879,7 @@ class GuiMain(QMainWindow):
self.docEditor.initEditor()
self.docViewer.initViewer()
self.treeView.initTree()
self.novelView.initTree()
self.projView.initOutline()
self.projMeta.initDetails()
@@ -1381,19 +1383,19 @@ class GuiMain(QMainWindow):
def _projTabsChanged(self, tabIndex):
"""Activated when the project view tab is changed.
"""
tHandle = None
sHandle = None
if tabIndex == self.idxTreeView:
logger.verbose("Project tree tab activated")
tHandle = self.treeView.getSelectedHandle()
sHandle = self.treeView.getSelectedHandle()
elif tabIndex == self.idxNovelView:
logger.verbose("Novel tree tab activated")
if self.hasProject:
self.novelView.refreshTree()
tHandle = self.novelView.getSelectedHandle()
sHandle = self.novelView.getSelectedHandle()
self.treeMeta.updateViewBox(tHandle)
self.treeMeta.updateViewBox(sHandle)
return