diff options
Diffstat (limited to 'examples/xml/dombookmarks/dombookmarks.py')
-rw-r--r-- | examples/xml/dombookmarks/dombookmarks.py | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/examples/xml/dombookmarks/dombookmarks.py b/examples/xml/dombookmarks/dombookmarks.py index f5afdeef8..f02251849 100644 --- a/examples/xml/dombookmarks/dombookmarks.py +++ b/examples/xml/dombookmarks/dombookmarks.py @@ -7,7 +7,7 @@ from __future__ import annotations import sys -from PySide6.QtCore import QDir, QFile, Qt, QTextStream +from PySide6.QtCore import QDir, QFile, QObject, Qt, QTextStream from PySide6.QtGui import QAction, QIcon, QKeySequence from PySide6.QtWidgets import (QApplication, QFileDialog, QHeaderView, QMainWindow, QMessageBox, QStyle, QTreeWidget, @@ -93,6 +93,7 @@ class XbelTree(QTreeWidget): def __init__(self, parent=None): super().__init__(parent) + self._update_conn_id = None self.header().setSectionResizeMode(QHeaderView.ResizeMode.Stretch) self.setHeaderLabels(("Title", "Location")) @@ -111,11 +112,12 @@ class XbelTree(QTreeWidget): self._bookmark_icon.addPixmap(style.standardPixmap(QStyle.StandardPixmap.SP_FileIcon)) def read(self, device): - ok, errorStr, errorLine, errorColumn = self._dom_document.setContent(device, True) - if not ok: + result = self._dom_document.setContent(device, + QDomDocument.ParseOption.UseNamespaceProcessing) + if not result: QMessageBox.information(self.window(), "DOM Bookmarks", - f"Parse error at line {errorLine}, " - f"column {errorColumn}:\n{errorStr}") + f"Parse error at line {result.errorLine}, " + f"column {result.errorColumn}:\n{result.errorMessage}") return False root = self._dom_document.documentElement() @@ -131,17 +133,15 @@ class XbelTree(QTreeWidget): self.clear() # It might not be connected. - try: - self.itemChanged.disconnect(self.update_dom_element) - except RuntimeError: - pass + if self._update_conn_id: + QObject.disconnect(self._update_conn_id) child = root.firstChildElement('folder') while not child.isNull(): self.parse_folder_element(child) child = child.nextSiblingElement('folder') - self.itemChanged.connect(self.update_dom_element) + self._update_conn_id = self.itemChanged.connect(self.update_dom_element) return True |