|
@@ -12,6 +12,7 @@ from PyQt5.QtGui import QIcon, QPixmap
|
|
|
from PyQt5.QtWidgets import QApplication, QTreeWidgetItem
|
|
from PyQt5.QtWidgets import QApplication, QTreeWidgetItem
|
|
|
|
|
|
|
|
from core.constants import MAIN, RSCDIR
|
|
from core.constants import MAIN, RSCDIR
|
|
|
|
|
+from core.mncheck import QgsModel
|
|
|
|
|
|
|
|
|
|
|
|
|
logger = logging.getLogger("mncheck")
|
|
logger = logging.getLogger("mncheck")
|
|
@@ -138,21 +139,55 @@ class DlgMain(QtWidgets.QDialog):
|
|
|
self.ui.tree_report.addTopLevelItem(topitem)
|
|
self.ui.tree_report.addTopLevelItem(topitem)
|
|
|
|
|
|
|
|
for err in result.errors:
|
|
for err in result.errors:
|
|
|
- treeitem = QTreeWidgetItem()
|
|
|
|
|
|
|
+ erritem = QTreeWidgetItem()
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ msg = err.message
|
|
|
|
|
+ data = None
|
|
|
|
|
|
|
|
- treeitem.setText(1, err.message)
|
|
|
|
|
if "exc_info" in err.info:
|
|
if "exc_info" in err.info:
|
|
|
- logger.debug("* %s\n%s", err.message, err.info["exc_info"])
|
|
|
|
|
- treeitem.setData(1, Qt.UserRole, err.info["exc_info"])
|
|
|
|
|
|
|
+ data = err.info["exc_info"]
|
|
|
|
|
+ logger.debug("%s", err.message, err.info["exc_info"])
|
|
|
|
|
|
|
|
- topitem.addChild(treeitem)
|
|
|
|
|
|
|
+ elif "model" in err.info:
|
|
|
|
|
+ data = err.info["model"]
|
|
|
|
|
+ msg = f"{data.layername} : {msg}"
|
|
|
|
|
+
|
|
|
|
|
+ elif "item" in err.info:
|
|
|
|
|
+ data = err.info["item"]
|
|
|
|
|
+ msg = f"{data} : {msg}"
|
|
|
|
|
+
|
|
|
|
|
+ erritem.setText(1, msg)
|
|
|
|
|
+ erritem.setData(1, Qt.UserRole, data)
|
|
|
|
|
+
|
|
|
|
|
+ topitem.addChild(erritem)
|
|
|
|
|
|
|
|
|
|
+ def tree_item_clicked(self, item, _):
|
|
|
|
|
|
|
|
|
|
+ data = item.data(1, Qt.UserRole)
|
|
|
|
|
|
|
|
- def tree_item_clicked(self, item, col):
|
|
|
|
|
|
|
+ print(type(data), data)
|
|
|
|
|
|
|
|
- data = item.data(1, Qt.UserRole)
|
|
|
|
|
|
|
+ if not data:
|
|
|
|
|
+ return
|
|
|
|
|
+
|
|
|
|
|
+ if hasattr(data, "_feature"):
|
|
|
|
|
+ self.zoom_to_feature(data.layer, data._feature)
|
|
|
|
|
+
|
|
|
|
|
+ elif hasattr(data, "layer"):
|
|
|
|
|
+ self.select_layer(data.layer)
|
|
|
|
|
+
|
|
|
|
|
+ else:
|
|
|
|
|
+ logger.error(f"Data unknown: {data}")
|
|
|
|
|
+
|
|
|
|
|
+ def select_layer(self, layer):
|
|
|
|
|
+ self.iface.setActiveLayer(layer)
|
|
|
|
|
|
|
|
|
|
+ def zoom_to_feature(self, layer, feature):
|
|
|
|
|
+ self.iface.setActiveLayer(layer)
|
|
|
|
|
+ self.iface.mapCanvas().zoomToFeatureExtent(feature.geometry().boundingBox())
|
|
|
|
|
+ layer.select(feature.id())
|
|
|
|
|
|
|
|
def show_help(self):
|
|
def show_help(self):
|
|
|
pass
|
|
pass
|