✨ Able to place results to queue.

This commit is contained in:
Robert Honz
2024-05-15 06:33:46 +02:00
parent 5a013f5180
commit 79e60a0ac7
+11 -11
View File
@@ -218,30 +218,30 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
self.cb_search_type.setCurrentIndex(2) self.cb_search_type.setCurrentIndex(2)
def handle_filter_activated(self, tree: QtWidgets.QTreeView): def handle_filter_activated(self):
header = tree.header() header: FilterHeader = self.tr_results.header()
filters = [] filters = []
for i in range(header.count()): for i in range(header.count()):
text: str = header.filterText(i) text: str = header.filter_text(i)
if text: if text:
filters.append((i, text)) filters.append((i, text))
proxy = tree.model() proxy_model: HumanProxyModel = self.tr_results.model()
proxy.filters = filters proxy_model.filters = filters
def _init_tree_results(self, tree: QtWidgets.QTreeView, model: QtGui.QStandardItemModel) -> None: def _init_tree_results(self, tree: QtWidgets.QTreeView, model: QtGui.QStandardItemModel) -> None:
header = FilterHeader(tree) header: FilterHeader = FilterHeader(tree)
self.proxy_tr_results = HumanProxyModel(self) self.proxy_tr_results: HumanProxyModel = HumanProxyModel(self)
tree.setHeader(header) tree.setHeader(header)
tree.setModel(model) tree.setModel(model)
self.proxy_tr_results.setSourceModel(model) self.proxy_tr_results.setSourceModel(model)
tree.setModel(self.proxy_tr_results) tree.setModel(self.proxy_tr_results)
header.set_filter_boxes(model.columnCount()) header.set_filter_boxes(model.columnCount())
header.filter_activated.connect(lambda: self.handle_filter_activated(tree)) header.filter_activated.connect(self.handle_filter_activated)
## ## Styling
tree.sortByColumn(0, QtCore.Qt.SortOrder.AscendingOrder) tree.sortByColumn(0, QtCore.Qt.SortOrder.AscendingOrder)
tree.setColumnHidden(1, True) tree.setColumnHidden(1, True)
tree.setColumnWidth(2, 150) tree.setColumnWidth(2, 150)
@@ -802,13 +802,13 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
# TODO: Must happen in main thread. Do not thread this. # TODO: Must happen in main thread. Do not thread this.
def on_download_results(self) -> None: def on_download_results(self) -> None:
items: [QtWidgets.QTreeWidgetItem | None] = self.tr_results.selectedItems() items: [HumanProxyModel | None] = self.tr_results.selectionModel().selectedRows()
if len(items) == 0: if len(items) == 0:
logger_gui.error("Please select a row first.") logger_gui.error("Please select a row first.")
else: else:
for item in items: for item in items:
media: Track | Album | Playlist | Video | Artist = get_results_media_item(item) media: Track | Album | Playlist | Video | Artist = get_results_media_item(item, self.proxy_tr_results, self.model_tr_results)
queue_dl_item: QueueDownloadItem = self.media_to_queue_download_model(media) queue_dl_item: QueueDownloadItem = self.media_to_queue_download_model(media)
if queue_dl_item: if queue_dl_item: