1
0
mirror of https://github.com/arsenetar/dupeguru.git synced 2026-01-22 14:41:39 +00:00

Moved column information in new edition-specific core result_table units.

This commit is contained in:
Virgil Dupras
2011-11-27 12:47:00 -05:00
parent eb83b830df
commit 7e95404903
17 changed files with 149 additions and 113 deletions

View File

@@ -65,11 +65,11 @@ def format_perc(p):
def format_dupe_count(c):
return str(c) if c else '---'
def cmp_value(dupe, column):
if column.name == 'name':
def cmp_value(dupe, attrname):
if attrname == 'name':
value = rem_file_ext(dupe.name)
else:
value = getattr(dupe, column.name, '')
value = getattr(dupe, attrname, '')
return value.lower() if isinstance(value, str) else value
class DupeGuru(RegistrableApplication, Broadcaster):
@@ -101,6 +101,7 @@ class DupeGuru(RegistrableApplication, Broadcaster):
'ignore_hardlink_matches': False,
}
self.selected_dupes = []
# subclasses must create self.result_table
#--- Virtual
def _get_display_info(self, dupe, group, delta):
@@ -276,7 +277,7 @@ class DupeGuru(RegistrableApplication, Broadcaster):
column_ids = [colid for colid in column_ids if colid.isdigit()]
column_ids = list(map(int, column_ids))
column_ids.sort()
colnames = [col.display for i, col in enumerate(self.COLUMNS) if i in column_ids]
colnames = [col.display for i, col in enumerate(self.result_table.COLUMNS) if i in column_ids]
rows = []
for group in self.results.groups:
for dupe in group:
@@ -287,13 +288,15 @@ class DupeGuru(RegistrableApplication, Broadcaster):
return export.export_to_xhtml(colnames, rows)
def get_display_info(self, dupe, group, delta=False):
def empty_data():
return {c.name: '---' for c in self.result_table.COLUMNS[1:]}
if (dupe is None) or (group is None):
return ['---'] * len(self.COLUMNS)
return empty_data()
try:
return self._get_display_info(dupe, group, delta)
except Exception as e:
logging.warning("Exception on GetDisplayInfo for %s: %s", str(dupe.path), str(e))
return ['---'] * len(self.COLUMNS)
return empty_data()
def invoke_command(self, cmd):
"""Calls command `cmd` with %d and %r placeholders replaced.