From 366e9cf6e89f7caca3b9860ac0676c7f5f97cd24 Mon Sep 17 00:00:00 2001 From: Mizaki Date: Wed, 13 Sep 2023 21:35:52 +0100 Subject: [PATCH] Move update into own function. Add title missing to trigger issue update. --- comictaggerlib/issueselectionwindow.py | 77 +++++++++------------- comictaggerlib/seriesselectionwindow.py | 87 +++++++++---------------- 2 files changed, 62 insertions(+), 102 deletions(-) diff --git a/comictaggerlib/issueselectionwindow.py b/comictaggerlib/issueselectionwindow.py index 2d7f201..4bf821c 100644 --- a/comictaggerlib/issueselectionwindow.py +++ b/comictaggerlib/issueselectionwindow.py @@ -160,31 +160,10 @@ class IssueSelectionWindow(QtWidgets.QDialog): for row, issue in enumerate(self.issue_list.values()): self.twList.insertRow(row) + for i in range(3): + self.twList.setItem(row, i, QtWidgets.QTableWidgetItem()) - item_text = issue.issue or "" - item = IssueNumberTableWidgetItem(item_text) - item.setData(QtCore.Qt.ItemDataRole.ToolTipRole, item_text) - item.setData(QtCore.Qt.ItemDataRole.UserRole, issue.issue_id) - item.setData(QtCore.Qt.ItemDataRole.DisplayRole, item_text) - item.setFlags(QtCore.Qt.ItemFlag.ItemIsSelectable | QtCore.Qt.ItemFlag.ItemIsEnabled) - self.twList.setItem(row, 0, item) - - item_text = "" - if issue.year is not None: - item_text += f"-{issue.year:04}" - if issue.month is not None: - item_text += f"-{issue.month:02}" - - qtw_item = QtWidgets.QTableWidgetItem(item_text.strip("-")) - qtw_item.setData(QtCore.Qt.ItemDataRole.ToolTipRole, item_text) - qtw_item.setFlags(QtCore.Qt.ItemFlag.ItemIsSelectable | QtCore.Qt.ItemFlag.ItemIsEnabled) - self.twList.setItem(row, 1, qtw_item) - - item_text = issue.title or "" - qtw_item = QtWidgets.QTableWidgetItem(item_text) - qtw_item.setData(QtCore.Qt.ItemDataRole.ToolTipRole, item_text) - qtw_item.setFlags(QtCore.Qt.ItemFlag.ItemIsSelectable | QtCore.Qt.ItemFlag.ItemIsEnabled) - self.twList.setItem(row, 2, qtw_item) + self.update_row(row, issue) if IssueString(issue.issue).as_string().casefold() == IssueString(self.issue_number).as_string().casefold(): self.initial_id = issue.issue_id or "" @@ -204,6 +183,31 @@ class IssueSelectionWindow(QtWidgets.QDialog): html = text widget.setHtml(html, QtCore.QUrl(self.talker.website)) + def update_row(self, row: int, issue: GenericMetadata) -> None: + item_text = issue.issue or "" + item = self.twList.item(row, 0) + item.setText(item_text) + item.setData(QtCore.Qt.ItemDataRole.ToolTipRole, item_text) + item.setData(QtCore.Qt.ItemDataRole.UserRole, issue.issue_id) + item.setData(QtCore.Qt.ItemDataRole.DisplayRole, item_text) + + item_text = "" + if issue.year is not None: + item_text += f"-{issue.year:04}" + if issue.month is not None: + item_text += f"-{issue.month:02}" + + qtw_item = self.twList.item(row, 1) + qtw_item.setText(item_text.strip("-")) + qtw_item.setData(QtCore.Qt.ItemDataRole.ToolTipRole, item_text) + qtw_item.setFlags(QtCore.Qt.ItemFlag.ItemIsSelectable | QtCore.Qt.ItemFlag.ItemIsEnabled) + + item_text = issue.title or "" + qtw_item = self.twList.item(row, 2) + qtw_item.setText(item_text) + qtw_item.setData(QtCore.Qt.ItemDataRole.ToolTipRole, item_text) + qtw_item.setFlags(QtCore.Qt.ItemFlag.ItemIsSelectable | QtCore.Qt.ItemFlag.ItemIsEnabled) + def current_item_changed(self, curr: QtCore.QModelIndex | None, prev: QtCore.QModelIndex | None) -> None: if curr is None: return @@ -215,7 +219,7 @@ class IssueSelectionWindow(QtWidgets.QDialog): # list selection was changed, update the issue cover issue = self.issue_list[self.issue_id] - if not (issue.issue and issue.year and issue.month and issue.cover_image): + if not (issue.issue and issue.year and issue.month and issue.cover_image and issue.title): QtWidgets.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.CursorShape.WaitCursor)) try: issue = self.talker.fetch_comic_data(issue_id=self.issue_id) @@ -231,25 +235,4 @@ class IssueSelectionWindow(QtWidgets.QDialog): self.set_description(self.teDescription, issue.description) # Update current record information - item_text = issue.issue or "" - item = IssueNumberTableWidgetItem(item_text) - item.setData(QtCore.Qt.ItemDataRole.ToolTipRole, item_text) - item.setData(QtCore.Qt.ItemDataRole.DisplayRole, item_text) - self.twList.setItem(row, 0, item) - - item_text = "" - if issue.year is not None: - item_text += f"-{issue.year:04}" - if issue.month is not None: - item_text += f"-{issue.month:02}" - - qtw_item = QtWidgets.QTableWidgetItem(item_text.strip("-")) - qtw_item.setData(QtCore.Qt.ItemDataRole.ToolTipRole, item_text) - qtw_item.setFlags(QtCore.Qt.ItemFlag.ItemIsSelectable | QtCore.Qt.ItemFlag.ItemIsEnabled) - self.twList.setItem(row, 1, qtw_item) - - item_text = issue.title or "" - qtw_item = QtWidgets.QTableWidgetItem(item_text) - qtw_item.setData(QtCore.Qt.ItemDataRole.ToolTipRole, item_text) - qtw_item.setFlags(QtCore.Qt.ItemFlag.ItemIsSelectable | QtCore.Qt.ItemFlag.ItemIsEnabled) - self.twList.setItem(row, 2, qtw_item) + self.update_row(row, issue) diff --git a/comictaggerlib/seriesselectionwindow.py b/comictaggerlib/seriesselectionwindow.py index 1a489af..cce91f8 100644 --- a/comictaggerlib/seriesselectionwindow.py +++ b/comictaggerlib/seriesselectionwindow.py @@ -481,36 +481,10 @@ class SeriesSelectionWindow(QtWidgets.QDialog): for row, series in enumerate(self.series_list.values()): self.twList.insertRow(row) + for i in range(4): + self.twList.setItem(row, i, QtWidgets.QTableWidgetItem()) - item_text = series.name - item = QtWidgets.QTableWidgetItem(item_text) - item.setData(QtCore.Qt.ItemDataRole.ToolTipRole, item_text) - item.setData(QtCore.Qt.ItemDataRole.UserRole, series.id) - item.setFlags(QtCore.Qt.ItemFlag.ItemIsSelectable | QtCore.Qt.ItemFlag.ItemIsEnabled) - self.twList.setItem(row, 0, item) - - if series.start_year is not None: - item_text = f"{series.start_year:04}" - item = QtWidgets.QTableWidgetItem(item_text) - item.setData(QtCore.Qt.ItemDataRole.ToolTipRole, item_text) - item.setData(QtCore.Qt.ItemDataRole.DisplayRole, series.start_year) - item.setFlags(QtCore.Qt.ItemFlag.ItemIsSelectable | QtCore.Qt.ItemFlag.ItemIsEnabled) - self.twList.setItem(row, 1, item) - - if series.count_of_issues is not None: - item_text = f"{series.count_of_issues:04}" - item = QtWidgets.QTableWidgetItem(item_text) - item.setData(QtCore.Qt.ItemDataRole.ToolTipRole, item_text) - item.setData(QtCore.Qt.ItemDataRole.DisplayRole, series.count_of_issues) - item.setFlags(QtCore.Qt.ItemFlag.ItemIsSelectable | QtCore.Qt.ItemFlag.ItemIsEnabled) - self.twList.setItem(row, 2, item) - - if series.publisher is not None: - item_text = series.publisher - item.setData(QtCore.Qt.ItemDataRole.ToolTipRole, item_text) - item = QtWidgets.QTableWidgetItem(item_text) - item.setFlags(QtCore.Qt.ItemFlag.ItemIsSelectable | QtCore.Qt.ItemFlag.ItemIsEnabled) - self.twList.setItem(row, 3, item) + self.update_row(row, series) self.twList.setSortingEnabled(True) self.twList.selectRow(0) @@ -552,6 +526,34 @@ class SeriesSelectionWindow(QtWidgets.QDialog): html = text widget.setHtml(html, QUrl(self.talker.website)) + def update_row(self, row: int, series: ComicSeries) -> None: + item_text = series.name + item = self.twList.item(row, 0) + item.setText(item_text) + item.setData(QtCore.Qt.ItemDataRole.ToolTipRole, item_text) + item.setData(QtCore.Qt.ItemDataRole.UserRole, series.id) + item.setFlags(QtCore.Qt.ItemFlag.ItemIsSelectable | QtCore.Qt.ItemFlag.ItemIsEnabled) + + item_text = str(series.start_year) + item = self.twList.item(row, 1) + item.setText(item_text) + item.setData(QtCore.Qt.ItemDataRole.ToolTipRole, item_text) + item.setFlags(QtCore.Qt.ItemFlag.ItemIsSelectable | QtCore.Qt.ItemFlag.ItemIsEnabled) + + item_text = str(series.count_of_issues) + item = self.twList.item(row, 2) + item.setText(item_text) + item.setData(QtCore.Qt.ItemDataRole.ToolTipRole, item_text) + item.setData(QtCore.Qt.ItemDataRole.DisplayRole, series.count_of_issues) + item.setFlags(QtCore.Qt.ItemFlag.ItemIsSelectable | QtCore.Qt.ItemFlag.ItemIsEnabled) + + if series.publisher is not None: + item_text = series.publisher + item = self.twList.item(row, 3) + item.setText(item_text) + item.setData(QtCore.Qt.ItemDataRole.ToolTipRole, item_text) + item.setFlags(QtCore.Qt.ItemFlag.ItemIsSelectable | QtCore.Qt.ItemFlag.ItemIsEnabled) + def current_item_changed(self, curr: QtCore.QModelIndex | None, prev: QtCore.QModelIndex | None) -> None: if curr is None: return @@ -586,29 +588,4 @@ class SeriesSelectionWindow(QtWidgets.QDialog): self.imageWidget.set_url(series.image_url) # Update current record information - row = curr.row() - item_text = series.name - item = QtWidgets.QTableWidgetItem(item_text) - item.setData(QtCore.Qt.ItemDataRole.ToolTipRole, item_text) - item.setData(QtCore.Qt.ItemDataRole.UserRole, series.id) - self.twList.setItem(row, 0, item) - - if series.start_year is not None: - item_text = f"{series.start_year:04}" - item = QtWidgets.QTableWidgetItem(item_text) - item.setData(QtCore.Qt.ItemDataRole.ToolTipRole, item_text) - item.setData(QtCore.Qt.ItemDataRole.DisplayRole, series.start_year) - self.twList.setItem(row, 1, item) - - if series.count_of_issues is not None: - item_text = f"{series.count_of_issues:04}" - item = QtWidgets.QTableWidgetItem(item_text) - item.setData(QtCore.Qt.ItemDataRole.ToolTipRole, item_text) - item.setData(QtCore.Qt.ItemDataRole.DisplayRole, series.count_of_issues) - self.twList.setItem(row, 2, item) - - if series.publisher is not None: - item_text = series.publisher - item.setData(QtCore.Qt.ItemDataRole.ToolTipRole, item_text) - item = QtWidgets.QTableWidgetItem(item_text) - self.twList.setItem(row, 3, item) + self.update_row(row, series)