mirror of
https://github.com/arsenetar/dupeguru.git
synced 2025-03-10 05:34:36 +00:00
Under Qt, added a 'marked' column thus uncoupling the marked' attribute from the 'filename' column.
Also, added the ability to sort by 'marked' status.
This commit is contained in:
parent
771f22f208
commit
6ee56dc55c
@ -139,6 +139,8 @@ class DupeGuru(RegistrableApplication, Broadcaster):
|
|||||||
return m.percentage
|
return m.percentage
|
||||||
if key == 'dupe_count':
|
if key == 'dupe_count':
|
||||||
return 0
|
return 0
|
||||||
|
if key == 'marked':
|
||||||
|
return self.results.is_marked(dupe)
|
||||||
r = cmp_value(dupe, key)
|
r = cmp_value(dupe, key)
|
||||||
if delta and (key in self.result_table.DELTA_COLUMNS):
|
if delta and (key in self.result_table.DELTA_COLUMNS):
|
||||||
r -= cmp_value(get_group().ref, key)
|
r -= cmp_value(get_group().ref, key)
|
||||||
@ -149,6 +151,8 @@ class DupeGuru(RegistrableApplication, Broadcaster):
|
|||||||
return group.percentage
|
return group.percentage
|
||||||
if key == 'dupe_count':
|
if key == 'dupe_count':
|
||||||
return len(group)
|
return len(group)
|
||||||
|
if key == 'marked':
|
||||||
|
return len([dupe for dupe in group.dupes if self.results.is_marked(dupe)])
|
||||||
return cmp_value(group.ref, key)
|
return cmp_value(group.ref, key)
|
||||||
|
|
||||||
def _do_delete(self, j, replace_with_hardlinks):
|
def _do_delete(self, j, replace_with_hardlinks):
|
||||||
|
@ -15,17 +15,19 @@ class ResultsModel(Table):
|
|||||||
def __init__(self, app, view):
|
def __init__(self, app, view):
|
||||||
model = app.model.result_table
|
model = app.model.result_table
|
||||||
Table.__init__(self, model, view)
|
Table.__init__(self, model, view)
|
||||||
|
view.horizontalHeader().setSortIndicator(1, Qt.AscendingOrder)
|
||||||
|
|
||||||
app.prefsChanged.connect(self.appPrefsChanged)
|
app.prefsChanged.connect(self.appPrefsChanged)
|
||||||
app.willSavePrefs.connect(self.appWillSavePrefs)
|
app.willSavePrefs.connect(self.appWillSavePrefs)
|
||||||
|
|
||||||
def _getData(self, row, column, role):
|
def _getData(self, row, column, role):
|
||||||
|
if column.name == 'marked':
|
||||||
|
if role == Qt.CheckStateRole and row.markable:
|
||||||
|
return Qt.Checked if row.marked else Qt.Unchecked
|
||||||
|
return None
|
||||||
if role == Qt.DisplayRole:
|
if role == Qt.DisplayRole:
|
||||||
data = row.data_delta if self.model.delta_values else row.data
|
data = row.data_delta if self.model.delta_values else row.data
|
||||||
return data[column.name]
|
return data[column.name]
|
||||||
elif role == Qt.CheckStateRole:
|
|
||||||
if column.name == 'name' and row.markable:
|
|
||||||
return Qt.Checked if row.marked else Qt.Unchecked
|
|
||||||
elif role == Qt.ForegroundRole:
|
elif role == Qt.ForegroundRole:
|
||||||
if row.isref:
|
if row.isref:
|
||||||
return QBrush(Qt.blue)
|
return QBrush(Qt.blue)
|
||||||
@ -43,7 +45,7 @@ class ResultsModel(Table):
|
|||||||
|
|
||||||
def _getFlags(self, row, column):
|
def _getFlags(self, row, column):
|
||||||
flags = Qt.ItemIsEnabled | Qt.ItemIsSelectable
|
flags = Qt.ItemIsEnabled | Qt.ItemIsSelectable
|
||||||
if column.name == 'name':
|
if column.name == 'marked':
|
||||||
flags |= Qt.ItemIsEditable
|
flags |= Qt.ItemIsEditable
|
||||||
if row.markable:
|
if row.markable:
|
||||||
flags |= Qt.ItemIsUserCheckable
|
flags |= Qt.ItemIsUserCheckable
|
||||||
@ -51,8 +53,8 @@ class ResultsModel(Table):
|
|||||||
|
|
||||||
def _setData(self, row, column, value, role):
|
def _setData(self, row, column, value, role):
|
||||||
if role == Qt.CheckStateRole:
|
if role == Qt.CheckStateRole:
|
||||||
if column.name == 'name':
|
if column.name == 'marked':
|
||||||
self.model.app.mark_dupe(row._dupe, bool(value))
|
row.marked = bool(value)
|
||||||
return True
|
return True
|
||||||
elif role == Qt.EditRole:
|
elif role == Qt.EditRole:
|
||||||
if column.name == 'name':
|
if column.name == 'name':
|
||||||
|
@ -7,13 +7,10 @@
|
|||||||
|
|
||||||
from qtlib.column import Column
|
from qtlib.column import Column
|
||||||
from ..base.results_model import ResultsModel as ResultsModelBase
|
from ..base.results_model import ResultsModel as ResultsModelBase
|
||||||
from core_me.result_table import ResultTable
|
|
||||||
|
|
||||||
# Little hack to remove the 'marked' column which isn't there in the Qt GUI.
|
|
||||||
del ResultTable.COLUMNS[0]
|
|
||||||
|
|
||||||
class ResultsModel(ResultsModelBase):
|
class ResultsModel(ResultsModelBase):
|
||||||
COLUMNS = [
|
COLUMNS = [
|
||||||
|
Column('marked', defaultWidth=30),
|
||||||
Column('name', defaultWidth=200),
|
Column('name', defaultWidth=200),
|
||||||
Column('folder_path', defaultWidth=180),
|
Column('folder_path', defaultWidth=180),
|
||||||
Column('size', defaultWidth=60),
|
Column('size', defaultWidth=60),
|
||||||
|
@ -7,13 +7,10 @@
|
|||||||
|
|
||||||
from qtlib.column import Column
|
from qtlib.column import Column
|
||||||
from ..base.results_model import ResultsModel as ResultsModelBase
|
from ..base.results_model import ResultsModel as ResultsModelBase
|
||||||
from core_pe.result_table import ResultTable
|
|
||||||
|
|
||||||
# Little hack to remove the 'marked' column which isn't there in the Qt GUI.
|
|
||||||
del ResultTable.COLUMNS[0]
|
|
||||||
|
|
||||||
class ResultsModel(ResultsModelBase):
|
class ResultsModel(ResultsModelBase):
|
||||||
COLUMNS = [
|
COLUMNS = [
|
||||||
|
Column('marked', defaultWidth=30),
|
||||||
Column('name', defaultWidth=200),
|
Column('name', defaultWidth=200),
|
||||||
Column('folder_path', defaultWidth=180),
|
Column('folder_path', defaultWidth=180),
|
||||||
Column('size', defaultWidth=60),
|
Column('size', defaultWidth=60),
|
||||||
|
@ -7,13 +7,10 @@
|
|||||||
|
|
||||||
from qtlib.column import Column
|
from qtlib.column import Column
|
||||||
from ..base.results_model import ResultsModel as ResultsModelBase
|
from ..base.results_model import ResultsModel as ResultsModelBase
|
||||||
from core_se.result_table import ResultTable
|
|
||||||
|
|
||||||
# Little hack to remove the 'marked' column which isn't there in the Qt GUI.
|
|
||||||
del ResultTable.COLUMNS[0]
|
|
||||||
|
|
||||||
class ResultsModel(ResultsModelBase):
|
class ResultsModel(ResultsModelBase):
|
||||||
COLUMNS = [
|
COLUMNS = [
|
||||||
|
Column('marked', defaultWidth=30),
|
||||||
Column('name', defaultWidth=200),
|
Column('name', defaultWidth=200),
|
||||||
Column('folder_path', defaultWidth=180),
|
Column('folder_path', defaultWidth=180),
|
||||||
Column('size', defaultWidth=60),
|
Column('size', defaultWidth=60),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user