MainPanel: add function to enable and disable sorting

This commit is contained in:
Gabriel Ferreira
2020-06-05 20:03:12 -03:00
parent 499c3b0167
commit f6da128ada

View File

@@ -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: