From f6da128adacdf93a7d50ef0565a84501ea4d709b Mon Sep 17 00:00:00 2001 From: Gabriel Ferreira Date: Fri, 5 Jun 2020 20:03:12 -0300 Subject: [PATCH] MainPanel: add function to enable and disable sorting --- picard/ui/itemviews.py | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/picard/ui/itemviews.py b/picard/ui/itemviews.py index 8535cbdbc..1f4378b82 100644 --- a/picard/ui/itemviews.py +++ b/picard/ui/itemviews.py @@ -39,6 +39,7 @@ from collections import defaultdict +from enum import Enum from functools import partial from heapq import ( heappop, @@ -141,6 +142,11 @@ def get_match_color(similarity, basecolor): c2[2] + (c1[2] - c2[2]) * similarity) +class Panels(Enum): + CLUSTERS = 0 + ALBUMS = 1 + + class MainPanel(QtWidgets.QSplitter): options = [ @@ -172,8 +178,8 @@ class MainPanel(QtWidgets.QSplitter): self.window = window self.create_icons() self.views = [FileTreeView(window, self), AlbumTreeView(window, self)] - self.views[0].itemSelectionChanged.connect(self.update_selection_0) - self.views[1].itemSelectionChanged.connect(self.update_selection_1) + self.views[Panels.CLUSTERS.value].itemSelectionChanged.connect(self.update_selection_clusters) + self.views[Panels.ALBUMS.value].itemSelectionChanged.connect(self.update_selection_albums) self._selected_view = 0 self._ignore_selection_changes = False @@ -260,16 +266,16 @@ class MainPanel(QtWidgets.QSplitter): self.window.update_selection( [item.obj for item in self.views[i].selectedItems()]) - def update_selection_0(self): + def update_selection_clusters(self): if not self._ignore_selection_changes: self._ignore_selection_changes = True - self.update_selection(0, 1) + self.update_selection(Panels.CLUSTERS.value, Panels.ALBUMS.value) self._ignore_selection_changes = False - def update_selection_1(self): + def update_selection_albums(self): if not self._ignore_selection_changes: self._ignore_selection_changes = True - self.update_selection(1, 0) + self.update_selection(Panels.ALBUMS.value, Panels.CLUSTERS.value) self._ignore_selection_changes = False def update_current_view(self): @@ -288,6 +294,10 @@ class MainPanel(QtWidgets.QSplitter): else: self.update_current_view() + def set_sorting(self, sort=True): + self.views[Panels.CLUSTERS.value].setSortingEnabled(sort) + self.views[Panels.ALBUMS.value].setSortingEnabled(sort) + def paint_fingerprint_icon(painter, rect, icon): if not icon: