mirror of
https://github.com/arsenetar/dupeguru.git
synced 2025-03-10 05:34:36 +00:00
Brought back delta values.
This commit is contained in:
parent
46836cc805
commit
a65fd7d0d0
@ -56,7 +56,6 @@ http://www.hardcoded.net/licenses/hs_license
|
||||
//Scanning options
|
||||
- (void)setMinMatchPercentage:(NSNumber *)percentage;
|
||||
- (void)setMixFileKind:(NSNumber *)mix_file_kind;
|
||||
- (void)setDisplayDeltaValues:(NSNumber *)display_delta_values;
|
||||
- (void)setEscapeFilterRegexp:(NSNumber *)escape_filter_regexp;
|
||||
- (void)setRemoveEmptyFolders:(NSNumber *)remove_empty_folders;
|
||||
- (void)setSizeThreshold:(NSInteger)size_threshold;
|
||||
|
@ -10,7 +10,10 @@ http://www.hardcoded.net/licenses/hs_license
|
||||
#import "PyOutline.h"
|
||||
|
||||
@interface PyResultTree : PyOutline
|
||||
- (BOOL)powerMarkerMode;
|
||||
- (void)setPowerMarkerMode:(BOOL)aPowerMarkerMode;
|
||||
- (BOOL)deltaValuesMode;
|
||||
- (void)setDeltaValuesMode:(BOOL)aDeltaValuesMode;
|
||||
|
||||
- (NSString *)valueForPath:(NSArray *)aPath column:(NSInteger)aColumn;
|
||||
- (BOOL)renameSelected:(NSString *)aNewName;
|
||||
|
@ -12,10 +12,14 @@ http://www.hardcoded.net/licenses/hs_license
|
||||
|
||||
@interface ResultOutline : HSOutline
|
||||
{
|
||||
NSMutableIndexSet *_deltaColumns;
|
||||
NSIndexSet *_deltaColumns;
|
||||
}
|
||||
- (PyResultTree *)py;
|
||||
- (BOOL)powerMarkerMode;
|
||||
- (void)setPowerMarkerMode:(BOOL)aPowerMarkerMode;
|
||||
- (BOOL)deltaValuesMode;
|
||||
- (void)setDeltaValuesMode:(BOOL)aDeltaValuesMode;
|
||||
- (void)setDeltaColumns:(NSIndexSet *)aDeltaColumns;
|
||||
|
||||
- (IBAction)markSelected:(id)sender;
|
||||
@end;
|
@ -18,6 +18,12 @@ http://www.hardcoded.net/licenses/hs_license
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)dealloc
|
||||
{
|
||||
[_deltaColumns release];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (PyResultTree *)py
|
||||
{
|
||||
return (PyResultTree *)py;
|
||||
@ -31,11 +37,32 @@ http://www.hardcoded.net/licenses/hs_license
|
||||
}
|
||||
|
||||
/* Public */
|
||||
- (BOOL)powerMarkerMode
|
||||
{
|
||||
return [[self py] powerMarkerMode];
|
||||
}
|
||||
|
||||
- (void)setPowerMarkerMode:(BOOL)aPowerMarkerMode
|
||||
{
|
||||
[[self py] setPowerMarkerMode:aPowerMarkerMode];
|
||||
}
|
||||
|
||||
- (BOOL)deltaValuesMode
|
||||
{
|
||||
return [[self py] deltaValuesMode];
|
||||
}
|
||||
|
||||
- (void)setDeltaValuesMode:(BOOL)aDeltaValuesMode
|
||||
{
|
||||
[[self py] setDeltaValuesMode:aDeltaValuesMode];
|
||||
}
|
||||
|
||||
- (void)setDeltaColumns:(NSIndexSet *)aDeltaColumns
|
||||
{
|
||||
[_deltaColumns release];
|
||||
_deltaColumns = [aDeltaColumns retain];
|
||||
}
|
||||
|
||||
- (IBAction)markSelected:(id)sender
|
||||
{
|
||||
[[self py] markSelected];
|
||||
@ -96,12 +123,12 @@ http://www.hardcoded.net/licenses/hs_license
|
||||
else {
|
||||
[textCell setTextColor:[NSColor blueColor]];
|
||||
}
|
||||
// if ((_displayDelta) && (_powerMode || ([node level] > 1))) {
|
||||
// NSInteger i = [[tableColumn identifier] integerValue];
|
||||
// if ([_deltaColumns containsIndex:i]) {
|
||||
// [textCell setTextColor:[NSColor orangeColor]];
|
||||
// }
|
||||
// }
|
||||
if (([self deltaValuesMode]) && ([self powerMarkerMode] || ([path length] > 1))) {
|
||||
NSInteger i = [[tableColumn identifier] integerValue];
|
||||
if ([_deltaColumns containsIndex:i]) {
|
||||
[textCell setTextColor:[NSColor orangeColor]];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@end
|
@ -27,10 +27,7 @@ http://www.hardcoded.net/licenses/hs_license
|
||||
IBOutlet NSMenu *columnsMenu;
|
||||
IBOutlet NSSearchField *filterField;
|
||||
|
||||
BOOL _powerMode;
|
||||
BOOL _displayDelta;
|
||||
NSMutableArray *_resultColumns;
|
||||
NSMutableIndexSet *_deltaColumns;
|
||||
NSWindowController *preferencesPanel;
|
||||
ResultOutline *outline;
|
||||
}
|
||||
|
@ -33,8 +33,6 @@ http://www.hardcoded.net/licenses/hs_license
|
||||
@implementation ResultWindowBase
|
||||
- (void)awakeFromNib
|
||||
{
|
||||
_displayDelta = NO;
|
||||
_powerMode = NO;
|
||||
[self window];
|
||||
preferencesPanel = [[NSWindowController alloc] initWithWindowNibName:@"Preferences"];
|
||||
outline = [[ResultOutline alloc] initWithPyParent:py view:matches];
|
||||
@ -42,7 +40,6 @@ http://www.hardcoded.net/licenses/hs_license
|
||||
[self fillColumnsMenu];
|
||||
[deltaSwitch setSelectedSegment:0];
|
||||
[pmSwitch setSelectedSegment:0];
|
||||
[py setDisplayDeltaValues:b2n(_displayDelta)];
|
||||
[matches setTarget:self];
|
||||
[matches setDoubleAction:@selector(openClicked:)];
|
||||
[self refreshStats];
|
||||
@ -116,7 +113,7 @@ http://www.hardcoded.net/licenses/hs_license
|
||||
|
||||
- (NSArray *)getSelectedPaths:(BOOL)aDupesOnly
|
||||
{
|
||||
if (_powerMode)
|
||||
if ([outline powerMarkerMode])
|
||||
aDupesOnly = NO;
|
||||
NSIndexSet *indexes = [matches selectedRowIndexes];
|
||||
NSMutableArray *nodeList = [NSMutableArray array];
|
||||
@ -171,7 +168,7 @@ http://www.hardcoded.net/licenses/hs_license
|
||||
|
||||
- (void)performPySelection:(NSArray *)aIndexPaths
|
||||
{
|
||||
if (_powerMode) {
|
||||
if ([outline powerMarkerMode]) {
|
||||
[py selectPowerMarkerNodePaths:aIndexPaths];
|
||||
}
|
||||
else {
|
||||
@ -203,15 +200,12 @@ http://www.hardcoded.net/licenses/hs_license
|
||||
|
||||
- (IBAction)changeDelta:(id)sender
|
||||
{
|
||||
_displayDelta = [deltaSwitch selectedSegment] == 1;
|
||||
[py setDisplayDeltaValues:b2n(_displayDelta)];
|
||||
[self reloadMatches];
|
||||
[outline setDeltaValuesMode:[deltaSwitch selectedSegment] == 1];
|
||||
}
|
||||
|
||||
- (IBAction)changePowerMarker:(id)sender
|
||||
{
|
||||
_powerMode = [pmSwitch selectedSegment] == 1;
|
||||
[outline setPowerMarkerMode:_powerMode];
|
||||
[outline setPowerMarkerMode:[pmSwitch selectedSegment] == 1];
|
||||
// [self outlineView:matches didClickTableColumn:nil];
|
||||
}
|
||||
|
||||
|
@ -10,10 +10,7 @@ http://www.hardcoded.net/licenses/hs_license
|
||||
#import "../base/ResultWindow.h"
|
||||
#import "DirectoryPanel.h"
|
||||
|
||||
@interface ResultWindow : ResultWindowBase
|
||||
{
|
||||
NSString *_lastAction;
|
||||
}
|
||||
@interface ResultWindow : ResultWindowBase {}
|
||||
- (IBAction)removeDeadTracks:(id)sender;
|
||||
- (IBAction)startDuplicateScan:(id)sender;
|
||||
@end
|
||||
|
@ -20,8 +20,9 @@ http://www.hardcoded.net/licenses/hs_license
|
||||
{
|
||||
[super awakeFromNib];
|
||||
[[self window] setTitle:@"dupeGuru Music Edition"];
|
||||
_deltaColumns = [[NSMutableIndexSet indexSetWithIndexesInRange:NSMakeRange(2,7)] retain];
|
||||
[_deltaColumns removeIndex:6];
|
||||
NSMutableIndexSet *deltaColumns = [[NSMutableIndexSet indexSetWithIndexesInRange:NSMakeRange(2,7)] retain];
|
||||
[deltaColumns removeIndex:6];
|
||||
[outline setDeltaColumns:deltaColumns];
|
||||
}
|
||||
|
||||
/* Actions */
|
||||
|
@ -46,7 +46,6 @@ class DupeGuru(app.DupeGuru):
|
||||
appdata = op.join(appsupport, appdata_subdir)
|
||||
app.DupeGuru.__init__(self, data_module, appdata, appid)
|
||||
self.progress = cocoa.ThreadedJobPerformer()
|
||||
self.display_delta_values = False
|
||||
|
||||
#--- Override
|
||||
@staticmethod
|
||||
@ -156,9 +155,3 @@ class DupeGuru(app.DupeGuru):
|
||||
dupes = [self.results.dupes[row] for row in rows if row in xrange(len(self.results.dupes))]
|
||||
self._select_dupes(dupes)
|
||||
|
||||
def sort_dupes(self,key,asc):
|
||||
self.results.sort_dupes(key,asc,self.display_delta_values)
|
||||
|
||||
def sort_groups(self,key,asc):
|
||||
self.results.sort_groups(key,asc)
|
||||
|
||||
|
@ -131,9 +131,6 @@ class PyDupeGuruBase(PyRegistrable):
|
||||
def setMixFileKind_(self, mix_file_kind):
|
||||
self.py.scanner.mix_file_kind = mix_file_kind
|
||||
|
||||
def setDisplayDeltaValues_(self, display_delta_values):
|
||||
self.py.display_delta_values= display_delta_values
|
||||
|
||||
def setEscapeFilterRegexp_(self, escape_filter_regexp):
|
||||
self.py.options['escape_filter_regexp'] = escape_filter_regexp
|
||||
|
||||
@ -175,10 +172,22 @@ class PyDirectoryOutline(PyOutline):
|
||||
class PyResultOutline(PyOutline):
|
||||
py_class = ResultTree
|
||||
|
||||
@signature('c@:')
|
||||
def powerMarkerMode(self):
|
||||
return self.py.power_marker
|
||||
|
||||
@signature('v@:c')
|
||||
def setPowerMarkerMode_(self, value):
|
||||
self.py.power_marker = value
|
||||
|
||||
@signature('c@:')
|
||||
def deltaValuesMode(self):
|
||||
return self.py.delta_values
|
||||
|
||||
@signature('v@:c')
|
||||
def setDeltaValuesMode_(self, value):
|
||||
self.py.delta_values = value
|
||||
|
||||
@signature('@@:@i')
|
||||
def valueForPath_column_(self, path, column):
|
||||
return self.py.get_node_value(path, column)
|
||||
|
@ -34,6 +34,7 @@ class ResultTree(GUIObject, Tree):
|
||||
GUIObject.__init__(self, view, app)
|
||||
Tree.__init__(self)
|
||||
self._power_marker = False
|
||||
self._delta_values = False
|
||||
self.connect()
|
||||
self._refresh()
|
||||
self.view.refresh()
|
||||
@ -60,16 +61,16 @@ class ResultTree(GUIObject, Tree):
|
||||
node = self.get_node(path)
|
||||
except IndexError:
|
||||
return '---'
|
||||
if self.app.display_delta_values:
|
||||
if self.delta_values:
|
||||
return node.data_delta[column]
|
||||
else:
|
||||
return node.data[column]
|
||||
|
||||
def sort(self, key, asc):
|
||||
if self.power_marker:
|
||||
self.app.sort_dupes(key, asc)
|
||||
self.app.results.sort_dupes(key, asc, self.delta_values)
|
||||
else:
|
||||
self.app.sort_groups(key, asc)
|
||||
self.app.results.sort_groups(key, asc)
|
||||
|
||||
@property
|
||||
def power_marker(self):
|
||||
@ -83,6 +84,18 @@ class ResultTree(GUIObject, Tree):
|
||||
self._refresh()
|
||||
self.view.refresh()
|
||||
|
||||
@property
|
||||
def delta_values(self):
|
||||
return self._delta_values
|
||||
|
||||
@delta_values.setter
|
||||
def delta_values(self, value):
|
||||
if value == self._delta_values:
|
||||
return
|
||||
self._delta_values = value
|
||||
self._refresh()
|
||||
self.view.refresh()
|
||||
|
||||
@Tree.selected.setter
|
||||
def selected(self, node):
|
||||
self._selected = node
|
||||
|
Loading…
x
Reference in New Issue
Block a user