mirror of
https://github.com/olivierkes/manuskript.git
synced 2024-09-29 08:51:14 +13:00
86 lines
No EOL
2.9 KiB
Python
86 lines
No EOL
2.9 KiB
Python
#!/usr/bin/env python
|
|
#--!-- coding: utf8 --!--
|
|
|
|
|
|
|
|
|
|
from qt import *
|
|
from enums import *
|
|
from functions import *
|
|
from ui.views.dndView import *
|
|
from ui.views.outlineBasics import *
|
|
from ui.views.treeDelegates import *
|
|
|
|
class treeView(QTreeView, dndView, outlineBasics):
|
|
|
|
def __init__(self, parent=None):
|
|
QTreeView.__init__(self, parent)
|
|
dndView.__init__(self, parent)
|
|
outlineBasics.__init__(self, parent)
|
|
|
|
def setModel(self, model):
|
|
QTreeView.setModel(self, model)
|
|
|
|
# Hiding columns
|
|
for c in range(1, self.model().columnCount()):
|
|
self.hideColumn(c)
|
|
|
|
# Setting delegate
|
|
self.titleDelegate = treeTitleDelegate()
|
|
self.setItemDelegateForColumn(Outline.title.value, self.titleDelegate)
|
|
|
|
def makePopupMenu(self):
|
|
menu = outlineBasics.makePopupMenu(self)
|
|
first = menu.actions()[0]
|
|
|
|
|
|
if len(self.selectedIndexes()) != 0:
|
|
index = self.currentIndex()
|
|
item = index.internalPointer()
|
|
self.actExpand = QAction(self.tr("Expand {}").format(item.title()), menu)
|
|
self.actExpand.triggered.connect(self.expandCurrentIndex)
|
|
menu.insertAction(first, self.actExpand)
|
|
|
|
self.actCollapse = QAction(self.tr("Collapse {}").format(item.title()), menu)
|
|
self.actCollapse.triggered.connect(self.collapseCurrentIndex)
|
|
menu.insertAction(first, self.actCollapse)
|
|
|
|
menu.insertSeparator(first)
|
|
|
|
self.actExpandAll = QAction(self.tr("Expand All"), menu)
|
|
self.actExpandAll.triggered.connect(self.expandAll)
|
|
menu.insertAction(first, self.actExpandAll)
|
|
|
|
self.actCollapseAll = QAction(self.tr("Collapse All"), menu)
|
|
self.actCollapseAll.triggered.connect(self.collapseAll)
|
|
menu.insertAction(first, self.actCollapseAll)
|
|
|
|
menu.insertSeparator(first)
|
|
|
|
return menu
|
|
|
|
def expandCurrentIndex(self, index=None):
|
|
if index is None or type(index) == bool:
|
|
index = self.currentIndex()
|
|
|
|
self.expand(index)
|
|
for i in range(self.model().rowCount(index)):
|
|
idx = self.model().index(i, 0, index)
|
|
self.expandCurrentIndex(index=idx)
|
|
|
|
def collapseCurrentIndex(self, index=None):
|
|
if index is None or type(index) == bool:
|
|
index = self.currentIndex()
|
|
|
|
self.collapse(index)
|
|
for i in range(self.model().rowCount(index)):
|
|
idx = self.model().index(i, 0, index)
|
|
self.collapseCurrentIndex(index=idx)
|
|
|
|
def dragMoveEvent(self, event):
|
|
dndView.dragMoveEvent(self, event)
|
|
QTreeView.dragMoveEvent(self, event)
|
|
|
|
def mouseReleaseEvent(self, event):
|
|
QTreeView.mouseReleaseEvent(self, event)
|
|
outlineBasics.mouseReleaseEvent(self, event) |