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:
15
core/app.py
15
core/app.py
@@ -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.
|
||||
|
||||
@@ -12,7 +12,8 @@ from hscommon.notify import Listener
|
||||
class GUIObject(Listener):
|
||||
def __init__(self, view, app):
|
||||
Listener.__init__(self, app)
|
||||
self.view = view
|
||||
if view is not None:
|
||||
self.view = view
|
||||
self.app = app
|
||||
|
||||
def directories_changed(self):
|
||||
|
||||
@@ -26,12 +26,12 @@ class DetailsPanel(GUIObject):
|
||||
else:
|
||||
dupe = None
|
||||
group = None
|
||||
l1 = self.app.get_display_info(dupe, group, False)
|
||||
data1 = self.app.get_display_info(dupe, group, False)
|
||||
# we don't want the two sides of the table to display the stats for the same file
|
||||
ref = group.ref if group is not None and group.ref is not dupe else None
|
||||
l2 = self.app.get_display_info(ref, group, False)
|
||||
names = [c.display for c in self.app.COLUMNS]
|
||||
self._table = list(zip(names, l1, l2))
|
||||
data2 = self.app.get_display_info(ref, group, False)
|
||||
columns = self.app.result_table.COLUMNS[1:] # first column is the 'marked' column
|
||||
self._table = [(c.display, data1[c.name], data2[c.name]) for c in columns]
|
||||
|
||||
#--- Public
|
||||
def row_count(self):
|
||||
|
||||
@@ -52,14 +52,13 @@ class DupeRow(Row):
|
||||
|
||||
|
||||
class ResultTable(GUIObject, GUITable):
|
||||
def __init__(self, view, app):
|
||||
GUIObject.__init__(self, view, app)
|
||||
def __init__(self, app):
|
||||
GUIObject.__init__(self, None, app)
|
||||
GUITable.__init__(self)
|
||||
self.COLUMNS = app.COLUMNS
|
||||
self.columns = Columns(self, prefaccess=app, savename='ResultTable')
|
||||
self._power_marker = False
|
||||
self._delta_values = False
|
||||
self._sort_descriptors = (0, True)
|
||||
self._sort_descriptors = ('name', True)
|
||||
|
||||
#--- Override
|
||||
def connect(self):
|
||||
|
||||
Reference in New Issue
Block a user