From c4c0fbe66b87236701b08c5cc01b48639a51ee1c Mon Sep 17 00:00:00 2001 From: Broque Thomas Date: Sat, 12 Jul 2025 20:59:43 -0700 Subject: [PATCH] fix --- .../__pycache__/downloads.cpython-310.pyc | Bin 174032 -> 173646 bytes .../__pycache__/downloads.cpython-312.pyc | Bin 319970 -> 319115 bytes ui/pages/downloads.py | 27 ++++-------------- 3 files changed, 6 insertions(+), 21 deletions(-) diff --git a/ui/pages/__pycache__/downloads.cpython-310.pyc b/ui/pages/__pycache__/downloads.cpython-310.pyc index a55e49fdaed986a3e387fd1a2264a8ef385310d1..e4c3af5aad54f7bbd6c6ef156c95f83920ff22fc 100644 GIT binary patch delta 6159 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 m@4^4c_Efvg?%;o`qG9~)q39i$4$I{*%Z6 diff --git a/ui/pages/__pycache__/downloads.cpython-312.pyc b/ui/pages/__pycache__/downloads.cpython-312.pyc index f36aad1c79ef8a0d6518527eeda57965ec8f1634..8c266851e39e53deefe5efa4e2217e8804315e01 100644 GIT binary patch delta 6574 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 0: - first_result = sorted_results[0] - sort_value = None - if self.current_sort == "quality": - sort_value = self._sort_by_quality(first_result) - elif self.current_sort == "size": - sort_value = self._sort_by_size(first_result) - elif self.current_sort == "name": - sort_value = self._sort_by_name(first_result) - print(f"DEBUG: First result after sorting: {sort_value}") - return sorted_results def _sort_by_relevance(self, result): @@ -4024,7 +4009,6 @@ class DownloadsPage(QWidget): freshness_score = self._calculate_freshness_score(result) score += freshness_score * 0.05 - print(f"DEBUG: Relevance score for {getattr(result, 'filename', getattr(result, 'album_title', 'Unknown'))}: {score:.3f}") return score def _calculate_search_match_score(self, result, query_terms): @@ -4173,7 +4157,6 @@ class DownloadsPage(QWidget): size = result.total_size elif hasattr(result, 'size'): # TrackResult size = result.size - print(f"DEBUG: Size sort - {getattr(result, 'filename', getattr(result, 'album_title', 'Unknown'))}: {size}") return size def _sort_by_name(self, result): @@ -4183,7 +4166,6 @@ class DownloadsPage(QWidget): name = result.album_title.lower() elif hasattr(result, 'filename'): # TrackResult name = result.filename.lower() - print(f"DEBUG: Name sort - {name}") return name def _sort_by_uploader(self, result): @@ -4260,14 +4242,13 @@ class DownloadsPage(QWidget): # Apply sorting to filtered results sorted_results = self.sort_results(filtered_results) - print(f"DEBUG: Filtered {len(filtered_results)} -> Sorted {len(sorted_results)} results") - # Update the filtered results cache for pagination self.current_filtered_results = sorted_results # Clear current display self.clear_search_results() self.displayed_results = 0 + self.currently_expanded_item = None # Reset expanded state when applying filters # Show sorted results (respecting pagination) remaining_slots = self.results_per_page @@ -4964,7 +4945,11 @@ class DownloadsPage(QWidget): """Handle accordion-style expansion where only one item can be expanded at a time""" # If there's a currently expanded item and it's not the requesting item, collapse it if self.currently_expanded_item and self.currently_expanded_item != requesting_item: - self.currently_expanded_item.set_expanded(False, animate=True) + try: + self.currently_expanded_item.set_expanded(False, animate=True) + except RuntimeError: + # Widget has been deleted, just clear the reference + self.currently_expanded_item = None # Toggle the requesting item new_expanded_state = not requesting_item.is_expanded