|
@@ -8,7 +8,7 @@ from PyQt5.Qt import Qt, QEvent, QGraphicsScene, QPointF, QFileDialog, \
|
|
|
QGraphicsTextItem, QGraphicsItem, QGraphicsRectItem, \
|
|
QGraphicsTextItem, QGraphicsItem, QGraphicsRectItem, \
|
|
|
QBrush, QColor, QGraphicsLineItem, QLineF, \
|
|
QBrush, QColor, QGraphicsLineItem, QLineF, \
|
|
|
QPen, QPainter, QSvgGenerator, QSize, QRect, QGraphicsItemGroup, \
|
|
QPen, QPainter, QSvgGenerator, QSize, QRect, QGraphicsItemGroup, \
|
|
|
- QGraphicsColorizeEffect, QFont, QDialog
|
|
|
|
|
|
|
+ QGraphicsColorizeEffect, QFont, QDialog, QTableWidgetItem
|
|
|
from PyQt5.QtWidgets import QMainWindow, QGraphicsView
|
|
from PyQt5.QtWidgets import QMainWindow, QGraphicsView
|
|
|
from path import Path
|
|
from path import Path
|
|
|
|
|
|
|
@@ -278,6 +278,7 @@ class Viewer(QMainWindow):
|
|
|
self.ui.btn_zoom_view.clicked.connect(self.fit_in_view)
|
|
self.ui.btn_zoom_view.clicked.connect(self.fit_in_view)
|
|
|
self.ui.btn_svg.clicked.connect(self.to_png)
|
|
self.ui.btn_svg.clicked.connect(self.to_png)
|
|
|
self.ui.treeWidget.itemClicked.connect(self.treeItemSelected)
|
|
self.ui.treeWidget.itemClicked.connect(self.treeItemSelected)
|
|
|
|
|
+ self.ui.btn_edit_item.clicked.connect(self.edit_selected_item)
|
|
|
|
|
|
|
|
self._title = "<unknown>"
|
|
self._title = "<unknown>"
|
|
|
|
|
|
|
@@ -448,9 +449,23 @@ class Viewer(QMainWindow):
|
|
|
def treeItemSelected(self, item):
|
|
def treeItemSelected(self, item):
|
|
|
index = item.data(1, 0)
|
|
index = item.data(1, 0)
|
|
|
if index is None:
|
|
if index is None:
|
|
|
|
|
+ self.ui.btn_edit_item.setEnabled(False)
|
|
|
return
|
|
return
|
|
|
obj = core.Analyse.objects[index]
|
|
obj = core.Analyse.objects[index]
|
|
|
self.maj_scene_with(obj)
|
|
self.maj_scene_with(obj)
|
|
|
|
|
+ self.ui.btn_edit_item.setEnabled(True)
|
|
|
|
|
+
|
|
|
|
|
+ def edit_selected_item(self):
|
|
|
|
|
+ index = self.ui.treeWidget.currentItem().data(1, 0)
|
|
|
|
|
+
|
|
|
|
|
+ obj = core.Analyse.objects[index]
|
|
|
|
|
+
|
|
|
|
|
+ dlg = DetailsDialog(obj, self)
|
|
|
|
|
+
|
|
|
|
|
+ dlg.show()
|
|
|
|
|
+ r = dlg.exec_()
|
|
|
|
|
+ if r:
|
|
|
|
|
+ pass
|
|
|
|
|
|
|
|
def test(self):
|
|
def test(self):
|
|
|
self.run(Path(__file__).parent / r"test\source")
|
|
self.run(Path(__file__).parent / r"test\source")
|
|
@@ -464,16 +479,76 @@ class Viewer(QMainWindow):
|
|
|
if e.key() == Qt.Key_Control:
|
|
if e.key() == Qt.Key_Control:
|
|
|
self.ui.view.setDragMode(QGraphicsView.RubberBandDrag)
|
|
self.ui.view.setDragMode(QGraphicsView.RubberBandDrag)
|
|
|
|
|
|
|
|
-class Details(QDialog):
|
|
|
|
|
|
|
+class DetailsDialog(QDialog):
|
|
|
|
|
|
|
|
- def __init__(self, access_object, parent=None):
|
|
|
|
|
- self.access_object = access_object
|
|
|
|
|
- super (Details, self).__init__(parent)
|
|
|
|
|
|
|
+ def __init__(self, obj, parent=None):
|
|
|
|
|
+ self.obj = obj
|
|
|
|
|
+ super (DetailsDialog, self).__init__(parent)
|
|
|
self.createWidgets()
|
|
self.createWidgets()
|
|
|
|
|
|
|
|
def createWidgets(self):
|
|
def createWidgets(self):
|
|
|
self.ui = Ui_details()
|
|
self.ui = Ui_details()
|
|
|
self.ui.setupUi(self)
|
|
self.ui.setupUi(self)
|
|
|
|
|
|
|
|
|
|
+ self.ui.tbl_mentions.itemClicked.connect(self.itemClicked)
|
|
|
|
|
+ self.ui.btn_add.clicked.connect(self.add_mention)
|
|
|
|
|
+ self.ui.btn_edit.clicked.connect(self.edit_mention)
|
|
|
|
|
+ self.ui.btn_del.clicked.connect(self.del_mention)
|
|
|
|
|
+
|
|
|
|
|
+ self.ui.lbl_title.setText("{}: {}".format(self.obj.type_, self.obj.name_))
|
|
|
|
|
+
|
|
|
|
|
+ self.ui.tbl_mentions.hideColumn(0)
|
|
|
|
|
+ self.ui.tbl_mentions.setColumnWidth(1, 50)
|
|
|
|
|
+ self.ui.tbl_mentions.setColumnWidth(2, 200)
|
|
|
|
|
+ self.ui.tbl_mentions.setColumnWidth(3, 70)
|
|
|
|
|
+
|
|
|
|
|
+ self.load_table()
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ def load_table(self):
|
|
|
|
|
+ self.ui.tbl_mentions.setSortingEnabled(False)
|
|
|
|
|
+ self.ui.tbl_mentions.clearContents()
|
|
|
|
|
+ self.ui.tbl_mentions.setRowCount(len(self.obj.mentions))
|
|
|
|
|
+
|
|
|
|
|
+ for index, mention in enumerate(self.obj.mentions):
|
|
|
|
|
+
|
|
|
|
|
+ item = QTableWidgetItem("")
|
|
|
|
|
+ item.setData(0, index)
|
|
|
|
|
+ self.ui.tbl_mentions.setItem(index, 0, item)
|
|
|
|
|
+
|
|
|
|
|
+ item = QTableWidgetItem("{}".format(mention.line))
|
|
|
|
|
+ self.ui.tbl_mentions.setItem(index, 1, item)
|
|
|
|
|
+
|
|
|
|
|
+ item = QTableWidgetItem("{}".format(mention.objname))
|
|
|
|
|
+ self.ui.tbl_mentions.setItem(index, 2, item)
|
|
|
|
|
+
|
|
|
|
|
+ item = QTableWidgetItem("{}".format(mention.obj.type_))
|
|
|
|
|
+ self.ui.tbl_mentions.setItem(index, 3, item)
|
|
|
|
|
+
|
|
|
|
|
+ item = QTableWidgetItem("{}".format(mention.quote))
|
|
|
|
|
+ item.setFont(QFont("Consolas", 8))
|
|
|
|
|
+ self.ui.tbl_mentions.setItem(index, 4, item)
|
|
|
|
|
+
|
|
|
|
|
+ self.ui.tbl_mentions.setSortingEnabled(True)
|
|
|
|
|
+
|
|
|
|
|
+ def itemClicked(self):
|
|
|
|
|
+ self.ui.btn_edit.setEnabled(True)
|
|
|
|
|
+ self.ui.btn_del.setEnabled(True)
|
|
|
|
|
+
|
|
|
|
|
+ def add_mention(self):
|
|
|
|
|
+ pass
|
|
|
|
|
+
|
|
|
|
|
+ def selected_index(self):
|
|
|
|
|
+ return self.ui.tbl_mentions.item(self.ui.tbl_mentions.currentRow(), 0).data(0)
|
|
|
|
|
+
|
|
|
|
|
+ def edit_mention(self):
|
|
|
|
|
+ pass
|
|
|
|
|
+
|
|
|
|
|
+ def del_mention(self):
|
|
|
|
|
+ index = self.selected_index()
|
|
|
|
|
+ if not QMessageBox.question(self, "Confirmation", "Etes-vous sûr de vouloir supprimer la référence sélectionnée?") == QMessageBox.Yes:
|
|
|
|
|
+ return
|
|
|
|
|
+ del self.obj.mentions[index]
|
|
|
|
|
+ self.load_table()
|
|
|
|
|
|
|
|
|
|
|