|
|
@@ -1,5 +1,5 @@
|
|
|
'''
|
|
|
-
|
|
|
+@author: olivier.massot
|
|
|
'''
|
|
|
|
|
|
from PyQt5 import uic
|
|
|
@@ -13,6 +13,7 @@ from PyQt5.Qt import Qt, QEvent, QGraphicsScene, QPointF, QFileDialog, \
|
|
|
from PyQt5.QtWidgets import QMainWindow, QGraphicsView
|
|
|
from path import Path
|
|
|
|
|
|
+from core import ModuleObject
|
|
|
import core
|
|
|
|
|
|
|
|
|
@@ -290,6 +291,8 @@ class Viewer(QMainWindow):
|
|
|
self.ui.btn_table_view.clicked.connect(self.switch_table_view)
|
|
|
self.ui.searchBoxDeps.textChanged.connect(self.filterTblDeps)
|
|
|
self.ui.searchBoxRefs.textChanged.connect(self.filterTblRefs)
|
|
|
+ self.ui.btnSearchTree.clicked.connect(self.searchTree)
|
|
|
+ self.ui.searchBoxTree.returnPressed.connect(self.searchTree)
|
|
|
|
|
|
self._title = "<unknown>"
|
|
|
|
|
|
@@ -532,6 +535,23 @@ class Viewer(QMainWindow):
|
|
|
content = "{}{}".format(self.ui.tblRefs.item(row, 0).text(), self.ui.tblRefs.item(row, 1).text())
|
|
|
self.ui.tblRefs.setRowHidden(row, filterStr.lower() not in content.lower())
|
|
|
|
|
|
+ def searchTree(self):
|
|
|
+ filterStr = self.ui.searchBoxTree.text()
|
|
|
+ if not filterStr:
|
|
|
+ return
|
|
|
+
|
|
|
+ items = self.ui.treeWidget.findItems(filterStr, Qt.MatchContains | Qt.MatchRecursive, 1)
|
|
|
+ if not items:
|
|
|
+ QMessageBox.warning(self, "Recherche", "Aucun résultat pour '{}'".format(filterStr))
|
|
|
+
|
|
|
+ try:
|
|
|
+ start = items.index(self.ui.treeWidget.currentItem()) + 1
|
|
|
+ except ValueError:
|
|
|
+ start = 0
|
|
|
+ match = (items[start:] + items[:start])[0]
|
|
|
+ self.ui.treeWidget.setCurrentItem(match)
|
|
|
+ self.ui.treeWidget.scrollTo(self.ui.treeWidget.indexFromItem(match, 1))
|
|
|
+
|
|
|
def edit_selected_item(self):
|
|
|
index = self.ui.treeWidget.currentItem().data(2, 0)
|
|
|
obj = core.Analyse.objects[index]
|
|
|
@@ -578,6 +598,7 @@ class DetailsDialog(QDialog):
|
|
|
self.ui.btn_edit.clicked.connect(self.edit_mention)
|
|
|
self.ui.btn_del.clicked.connect(self.del_mention)
|
|
|
self.ui.btn_ok.clicked.connect(self.ok)
|
|
|
+ self.ui.btn_cancel.clicked.connect(self.ok)
|
|
|
|
|
|
self.ui.lbl_title.setText("{}: {}".format(self.obj.type_, self.obj.name_))
|
|
|
|
|
|
@@ -611,7 +632,7 @@ class DetailsDialog(QDialog):
|
|
|
item = QTableWidgetItem("{}".format(mention.obj.type_))
|
|
|
self.ui.tbl_mentions.setItem(index, 2, item)
|
|
|
|
|
|
- item = QTableWidgetItem("{}".format(mention.objname))
|
|
|
+ item = QTableWidgetItem("{}".format(mention.objname) if mention.obj.type_ != "Module" else "{}.{}".format(mention.obj.name_, mention.objname))
|
|
|
self.ui.tbl_mentions.setItem(index, 3, item)
|
|
|
|
|
|
item = QTableWidgetItem("{}".format(mention.quote))
|
|
|
@@ -688,6 +709,9 @@ class DetailsDialog(QDialog):
|
|
|
def ok(self):
|
|
|
self.done(1)
|
|
|
|
|
|
+ def cancel(self):
|
|
|
+ self.done(0)
|
|
|
+
|
|
|
def keyPressEvent(self, e):
|
|
|
if e.key() == Qt.Key_Delete:
|
|
|
if self.ui.tbl_mentions.currentRow() < 0:
|
|
|
@@ -737,4 +761,4 @@ class ObjectSelectorDialog(QDialog):
|
|
|
def done(self, status):
|
|
|
if not status:
|
|
|
self.obj = None
|
|
|
- super(ObjectSelectorDialog, self).done(status)
|
|
|
+ super(ObjectSelectorDialog, self).done(status)
|