mirror of
https://github.com/olivierkes/manuskript.git
synced 2024-05-18 20:02:32 +12:00
Corrects a few bug, tweaks a thing or two
This commit is contained in:
parent
3dc5217554
commit
21de78c27b
|
@ -49,6 +49,11 @@ class outlineModel(QAbstractItemModel):
|
|||
col = column
|
||||
return self.createIndex(row, col, item)
|
||||
|
||||
def ID(self, index):
|
||||
if index.isValid():
|
||||
item = index.internalPointer()
|
||||
return item.ID()
|
||||
|
||||
def getIndexByID(self, ID):
|
||||
"Returns the index of item whose ID is ``ID``. If none, returns QModelIndex()."
|
||||
def search(item):
|
||||
|
@ -240,12 +245,19 @@ class outlineModel(QAbstractItemModel):
|
|||
items = []
|
||||
for child in root:
|
||||
if child.tag == "outlineItem":
|
||||
items.append(outlineItem(xml=ET.tostring(child)))
|
||||
item = outlineItem(xml=ET.tostring(child))
|
||||
items.append(item)
|
||||
|
||||
if not items:
|
||||
return False
|
||||
|
||||
return self.insertItems(items, beginRow, parent)
|
||||
r = self.insertItems(items, beginRow, parent)
|
||||
|
||||
if action == Qt.CopyAction:
|
||||
for item in items:
|
||||
item.getUniqueID()
|
||||
|
||||
return r
|
||||
|
||||
################# ADDING AND REMOVING #################
|
||||
|
||||
|
@ -362,7 +374,7 @@ class outlineModel(QAbstractItemModel):
|
|||
path = path.split(",")
|
||||
item = self.rootItem
|
||||
for p in path:
|
||||
if p != "":
|
||||
if p != "" and int(p) < item.childCount():
|
||||
item = item.child(int(p))
|
||||
return self.indexFromItem(item)
|
||||
|
||||
|
@ -577,6 +589,7 @@ class outlineItem():
|
|||
|
||||
def removeChild(self, row):
|
||||
self.childItems.pop(row)
|
||||
self.updateWordCount()
|
||||
|
||||
def parent(self):
|
||||
return self._parent
|
||||
|
|
|
@ -42,6 +42,33 @@ def infoForRef(ref):
|
|||
else:
|
||||
return qApp.translate("references", "Unknown reference: {}.").format(ref)
|
||||
|
||||
def tooltipForRef(ref):
|
||||
match = re.fullmatch("::(\w):(\d+?)::", ref)
|
||||
if match:
|
||||
_type = match.group(1)
|
||||
_ref = match.group(2)
|
||||
|
||||
if _type == "T":
|
||||
m = mainWindow().mdlOutline
|
||||
idx = m.getIndexByID(_ref)
|
||||
|
||||
if not idx.isValid():
|
||||
return qApp.translate("references", "Unknown reference: {}.").format(ref)
|
||||
|
||||
item = idx.internalPointer()
|
||||
|
||||
tooltip = qApp.translate("references", "Text: <b>{}</b>").format(item.title())
|
||||
tooltip += "<br><i>{}</i>".format(item.path())
|
||||
|
||||
return tooltip
|
||||
|
||||
elif _type == "C":
|
||||
m = mainWindow().mdlPersos
|
||||
name = m.item(int(_ref), Perso.name.value).text()
|
||||
return qApp.translate("references", "Character: <b>{}</b>").format(name)
|
||||
|
||||
else:
|
||||
return qApp.translate("references", "Unknown reference: {}.").format(ref)
|
||||
|
||||
def openReference(ref):
|
||||
match = re.fullmatch("::(\w):(\d+?)::", ref)
|
||||
|
|
|
@ -24,6 +24,14 @@ class completer(QWidget, Ui_completer):
|
|||
self.outlineModel = mainWindow().mdlOutline
|
||||
self.persoModel = mainWindow().mdlPersos
|
||||
|
||||
self.populateTimer = QTimer(self)
|
||||
self.populateTimer.setSingleShot(True)
|
||||
self.populateTimer.setInterval(500)
|
||||
self.populateTimer.timeout.connect(self.populate)
|
||||
self.populateTimer.stop()
|
||||
self.outlineModel.dataChanged.connect(self.populateTimer.start)
|
||||
self.persoModel.dataChanged.connect(self.populateTimer.start)
|
||||
|
||||
self.data = {}
|
||||
|
||||
self.populate()
|
||||
|
|
|
@ -20,11 +20,11 @@ class outlineBasics(QAbstractItemView):
|
|||
return sel
|
||||
|
||||
def mouseReleaseEvent(self, event):
|
||||
|
||||
if event.button() == Qt.RightButton:
|
||||
|
||||
self.menu = self.makePopupMenu()
|
||||
self.menu.popup(event.globalPos())
|
||||
else:
|
||||
QAbstractItemView.mouseReleaseEvent(self, event)
|
||||
|
||||
def makePopupMenu(self):
|
||||
index = self.currentIndex()
|
||||
|
|
|
@ -123,7 +123,7 @@ class textEditCompleter(textEditView):
|
|||
if ref:
|
||||
if not qApp.overrideCursor():
|
||||
qApp.setOverrideCursor(Qt.PointingHandCursor)
|
||||
QToolTip.showText(self.mapToGlobal(event.pos()), infoForRef(ref))
|
||||
QToolTip.showText(self.mapToGlobal(event.pos()), tooltipForRef(ref))
|
||||
|
||||
def mouseReleaseEvent(self, event):
|
||||
textEditView.mouseReleaseEvent(self, event)
|
||||
|
@ -147,7 +147,6 @@ class textEditCompleter(textEditView):
|
|||
cursor.setPosition(txt.start())
|
||||
r = self.cursorRect(cursor)
|
||||
r.setWidth(fm.width(txt.group(0)))
|
||||
r = r.adjusted(-2, -2, 2, 2)
|
||||
refs.append(r)
|
||||
self.refRects = refs
|
||||
|
||||
|
|
|
@ -57,9 +57,9 @@ class treeView(QTreeView, dndView, outlineBasics):
|
|||
menu.insertSeparator(first)
|
||||
|
||||
# Expand /collapse item
|
||||
if len(self.selectedIndexes()) != 0:
|
||||
index = self.currentIndex()
|
||||
item = index.internalPointer()
|
||||
if mouseIndex.isValid():
|
||||
#index = self.currentIndex()
|
||||
item = mouseIndex.internalPointer()
|
||||
self.actExpand = QAction(self.tr("Expand {}").format(item.title()), menu)
|
||||
self.actExpand.triggered.connect(self.expandCurrentIndex)
|
||||
menu.insertAction(first, self.actExpand)
|
||||
|
@ -88,7 +88,7 @@ class treeView(QTreeView, dndView, outlineBasics):
|
|||
|
||||
def expandCurrentIndex(self, index=None):
|
||||
if index is None or type(index) == bool:
|
||||
index = self.currentIndex()
|
||||
index = self._indexesToOpen[0] #self.currentIndex()
|
||||
|
||||
self.expand(index)
|
||||
for i in range(self.model().rowCount(index)):
|
||||
|
@ -97,7 +97,7 @@ class treeView(QTreeView, dndView, outlineBasics):
|
|||
|
||||
def collapseCurrentIndex(self, index=None):
|
||||
if index is None or type(index) == bool:
|
||||
index = self.currentIndex()
|
||||
index = self._indexesToOpen[0] #self.currentIndex()
|
||||
|
||||
self.collapse(index)
|
||||
for i in range(self.model().rowCount(index)):
|
||||
|
@ -114,8 +114,4 @@ class treeView(QTreeView, dndView, outlineBasics):
|
|||
# on right click
|
||||
pass
|
||||
else:
|
||||
QTreeView.mousePressEvent(self, event)
|
||||
|
||||
def mouseReleaseEvent(self, event):
|
||||
QTreeView.mouseReleaseEvent(self, event)
|
||||
outlineBasics.mouseReleaseEvent(self, event)
|
||||
QTreeView.mousePressEvent(self, event)
|
Loading…
Reference in a new issue