mirror of
https://github.com/arsenetar/dupeguru.git
synced 2025-03-09 21:24:36 +00:00
[#181 state:fixed] Fixed a bug where performing actions like Mark All under a filtered environment would mark dupes even if they weren't in the filter.
This commit is contained in:
parent
a6deb04049
commit
25faa458b9
@ -51,6 +51,10 @@ class Markable:
|
||||
return False
|
||||
return self.mark_toggle(o)
|
||||
|
||||
def mark_multiple(self, objects):
|
||||
for o in objects:
|
||||
self.mark(o)
|
||||
|
||||
def mark_all(self):
|
||||
self.mark_none()
|
||||
self.__inverted = True
|
||||
@ -75,11 +79,19 @@ class Markable:
|
||||
self._did_mark(o)
|
||||
return True
|
||||
|
||||
def mark_toggle_multiple(self, objects):
|
||||
for o in objects:
|
||||
self.mark_toggle(o)
|
||||
|
||||
def unmark(self, o):
|
||||
if not self.is_marked(o):
|
||||
return False
|
||||
return self.mark_toggle(o)
|
||||
|
||||
def unmark_multiple(self, objects):
|
||||
for o in objects:
|
||||
self.unmark(o)
|
||||
|
||||
#--- Properties
|
||||
@property
|
||||
def mark_count(self):
|
||||
|
@ -23,7 +23,7 @@ from .markable import Markable
|
||||
class Results(Markable):
|
||||
#---Override
|
||||
def __init__(self, app):
|
||||
super(Results, self).__init__()
|
||||
Markable.__init__(self)
|
||||
self.__groups = []
|
||||
self.__group_of_duplicate = {}
|
||||
self.__groups_sort_descriptor = None # This is a tuple (key, asc)
|
||||
@ -59,6 +59,24 @@ class Results(Markable):
|
||||
return False
|
||||
return True
|
||||
|
||||
def mark_all(self):
|
||||
if self.__filters:
|
||||
self.mark_multiple(self.__filtered_dupes)
|
||||
else:
|
||||
Markable.mark_all(self)
|
||||
|
||||
def mark_invert(self):
|
||||
if self.__filters:
|
||||
self.mark_toggle_multiple(self.__filtered_dupes)
|
||||
else:
|
||||
Markable.mark_invert(self)
|
||||
|
||||
def mark_none(self):
|
||||
if self.__filters:
|
||||
self.unmark_multiple(self.__filtered_dupes)
|
||||
else:
|
||||
Markable.mark_none(self)
|
||||
|
||||
#---Private
|
||||
def __get_dupe_list(self):
|
||||
if self.__dupes is None:
|
||||
|
@ -715,6 +715,13 @@ class TestCaseResultsFilter:
|
||||
expected = '1 / 1 (1.00 B / 1.00 B) duplicates marked. filter: foo'
|
||||
eq_(expected, self.results.stat_line)
|
||||
|
||||
def test_mark_all_only_affects_filtered_items(self):
|
||||
# When performing actions like mark_all() and mark_none in a filtered environment, only mark
|
||||
# items that are actually in the filter.
|
||||
self.results.mark_all()
|
||||
self.results.apply_filter(None)
|
||||
eq_(self.results.mark_count, 1)
|
||||
|
||||
def test_sort_groups(self):
|
||||
self.results.apply_filter(None)
|
||||
self.results.make_ref(self.objects[1]) # to have the 1024 b obkect as ref
|
||||
|
Loading…
x
Reference in New Issue
Block a user