From 72d958271eb677a7d46ea7576c0c848cad045375 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 9 Oct 2024 09:38:26 +0530 Subject: [PATCH] DRYer --- src/calibre/gui2/tts/config.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/calibre/gui2/tts/config.py b/src/calibre/gui2/tts/config.py index 199edb6ce9..0fd40afe1f 100644 --- a/src/calibre/gui2/tts/config.py +++ b/src/calibre/gui2/tts/config.py @@ -173,7 +173,7 @@ class Voices(QTreeWidget): self.itemChanged.connect(self.item_changed) def item_changed(self, item: QTreeWidgetItem, column: int): - if column == 0 and item.parent() is not self.invisibleRootItem() and not self.ignore_item_changes: + if column == 0 and self.is_voice_item(item) and not self.ignore_item_changes: if item.checkState(0) == Qt.CheckState.Checked: p = item.parent() if p is not None: @@ -183,9 +183,12 @@ class Voices(QTreeWidget): child.setCheckState(0, Qt.CheckState.Unchecked) self.ignore_item_changes = False + def is_voice_item(self, item): + return item is not None and isinstance(item.data(0, Qt.ItemDataRole.UserRole), Voice) + def mousePressEvent(self, event): item = self.itemAt(event.pos()) - if self.for_embedding and item and item.parent() is not self.invisibleRootItem(): + if self.for_embedding and self.is_voice_item(item): rect = self.visualItemRect(item) x = event.pos().x() - (rect.x() + self.frameWidth()) option = QStyleOptionViewItem() @@ -280,7 +283,7 @@ class Voices(QTreeWidget): def refresh_current_item(self) -> None: ci = self.currentItem() - if ci is not None and ci.parent() is not self.invisibleRootItem(): + if self.is_voice_item(ci): self.set_item_downloaded_state(ci)