mirror of
https://github.com/arsenetar/dupeguru.git
synced 2026-01-22 14:41:39 +00:00
[#138 state:fixed] Pri-dialog: Fixed the Folder crit category which didn't work well and added a replacement string for empty kind crit.
This commit is contained in:
@@ -24,19 +24,11 @@ class CriterionCategory:
|
||||
def format_criterion_value(self, value):
|
||||
return value
|
||||
|
||||
#--- Public
|
||||
def sort_key(self, dupe, crit_value):
|
||||
# Use this sort key when the order in the list depends on whether or not the dupe meets the
|
||||
# criteria. If it does, we return 0 (top of the list), if it doesn't, we return 1.
|
||||
if self.extract_value(dupe) == crit_value:
|
||||
return 0
|
||||
else:
|
||||
return 1
|
||||
raise NotImplementedError()
|
||||
|
||||
def criteria_list(self):
|
||||
dupes = flatten(g[:] for g in self.results.groups)
|
||||
values = dedupe(self.extract_value(d) for d in dupes)
|
||||
return [Criterion(self, value) for value in values]
|
||||
raise NotImplementedError()
|
||||
|
||||
class Criterion:
|
||||
def __init__(self, category, value):
|
||||
@@ -52,13 +44,31 @@ class Criterion:
|
||||
return "{} ({})".format(self.category.NAME, self.display_value)
|
||||
|
||||
|
||||
class KindCategory(CriterionCategory):
|
||||
class ValueListCategory(CriterionCategory):
|
||||
def sort_key(self, dupe, crit_value):
|
||||
# Use this sort key when the order in the list depends on whether or not the dupe meets the
|
||||
# criteria. If it does, we return 0 (top of the list), if it doesn't, we return 1.
|
||||
if self.extract_value(dupe) == crit_value:
|
||||
return 0
|
||||
else:
|
||||
return 1
|
||||
|
||||
def criteria_list(self):
|
||||
dupes = flatten(g[:] for g in self.results.groups)
|
||||
values = sorted(dedupe(self.extract_value(d) for d in dupes))
|
||||
return [Criterion(self, value) for value in values]
|
||||
|
||||
|
||||
class KindCategory(ValueListCategory):
|
||||
NAME = coltr("Kind")
|
||||
|
||||
def extract_value(self, dupe):
|
||||
return dupe.extension
|
||||
value = dupe.extension
|
||||
if not value:
|
||||
value = tr("None")
|
||||
return value
|
||||
|
||||
class FolderCategory(CriterionCategory):
|
||||
class FolderCategory(ValueListCategory):
|
||||
NAME = coltr("Folder")
|
||||
|
||||
def extract_value(self, dupe):
|
||||
@@ -66,6 +76,13 @@ class FolderCategory(CriterionCategory):
|
||||
|
||||
def format_criterion_value(self, value):
|
||||
return str(value)
|
||||
|
||||
def sort_key(self, dupe, crit_value):
|
||||
value = self.extract_value(dupe)
|
||||
if value[:len(crit_value)] == crit_value:
|
||||
return 0
|
||||
else:
|
||||
return 1
|
||||
|
||||
class FilenameCategory(CriterionCategory):
|
||||
NAME = coltr("Filename")
|
||||
|
||||
Reference in New Issue
Block a user