Added an Ignore List dialog.

This commit is contained in:
Virgil Dupras 2012-03-14 12:47:21 -04:00
parent ae16845477
commit 3fc83d6245
57 changed files with 1738 additions and 752 deletions

View File

@ -203,18 +203,19 @@ def build_cocoa_bridging_interfaces(edition):
from inter.prioritize_dialog import PyPrioritizeDialog, PrioritizeDialogView from inter.prioritize_dialog import PyPrioritizeDialog, PrioritizeDialogView
from inter.prioritize_list import PyPrioritizeList, PrioritizeListView from inter.prioritize_list import PyPrioritizeList, PrioritizeListView
from inter.problem_dialog import PyProblemDialog from inter.problem_dialog import PyProblemDialog
from inter.ignore_list_dialog import PyIgnoreListDialog, IgnoreListDialogView
from inter.result_table import PyResultTable, ResultTableView from inter.result_table import PyResultTable, ResultTableView
from inter.stats_label import PyStatsLabel, StatsLabelView from inter.stats_label import PyStatsLabel, StatsLabelView
from inter.app import PyDupeGuruBase, DupeGuruView from inter.app import PyDupeGuruBase, DupeGuruView
appmod = importlib.import_module('inter.app_{}'.format(edition)) appmod = importlib.import_module('inter.app_{}'.format(edition))
allclasses = [PyGUIObject, PyColumns, PyOutline, PySelectableList, PyTable, PyFairware, allclasses = [PyGUIObject, PyColumns, PyOutline, PySelectableList, PyTable, PyFairware,
PyDetailsPanel, PyDirectoryOutline, PyPrioritizeDialog, PyPrioritizeList, PyProblemDialog, PyDetailsPanel, PyDirectoryOutline, PyPrioritizeDialog, PyPrioritizeList, PyProblemDialog,
PyResultTable, PyStatsLabel, PyDupeGuruBase, appmod.PyDupeGuru] PyIgnoreListDialog, PyResultTable, PyStatsLabel, PyDupeGuruBase, appmod.PyDupeGuru]
for class_ in allclasses: for class_ in allclasses:
objp.o2p.generate_objc_code(class_, 'cocoa/autogen', inherit=True) objp.o2p.generate_objc_code(class_, 'cocoa/autogen', inherit=True)
allclasses = [GUIObjectView, ColumnsView, OutlineView, SelectableListView, TableView, allclasses = [GUIObjectView, ColumnsView, OutlineView, SelectableListView, TableView,
DetailsPanelView, DirectoryOutlineView, PrioritizeDialogView, PrioritizeListView, DetailsPanelView, DirectoryOutlineView, PrioritizeDialogView, PrioritizeListView,
ResultTableView, StatsLabelView, DupeGuruView] IgnoreListDialogView, ResultTableView, StatsLabelView, DupeGuruView]
clsspecs = [objp.o2p.spec_from_python_class(class_) for class_ in allclasses] clsspecs = [objp.o2p.spec_from_python_class(class_) for class_ in allclasses]
objp.p2o.generate_python_proxy_code_from_clsspec(clsspecs, 'build/CocoaViews.m') objp.p2o.generate_python_proxy_code_from_clsspec(clsspecs, 'build/CocoaViews.m')
build_cocoa_ext('CocoaViews', 'cocoa/inter', ['build/CocoaViews.m', 'build/ObjP.m']) build_cocoa_ext('CocoaViews', 'cocoa/inter', ['build/CocoaViews.m', 'build/ObjP.m'])

View File

@ -11,6 +11,7 @@ http://www.hardcoded.net/licenses/bsd_license
#import "ResultWindow.h" #import "ResultWindow.h"
#import "DetailsPanel.h" #import "DetailsPanel.h"
#import "DirectoryPanel.h" #import "DirectoryPanel.h"
#import "IgnoreListDialog.h"
#import "HSAboutBox.h" #import "HSAboutBox.h"
#import "HSRecentFiles.h" #import "HSRecentFiles.h"
@ -24,6 +25,7 @@ http://www.hardcoded.net/licenses/bsd_license
ResultWindowBase *_resultWindow; ResultWindowBase *_resultWindow;
DirectoryPanel *_directoryPanel; DirectoryPanel *_directoryPanel;
DetailsPanel *_detailsPanel; DetailsPanel *_detailsPanel;
IgnoreListDialog *_ignoreListDialog;
NSWindowController *_preferencesPanel; NSWindowController *_preferencesPanel;
HSAboutBox *_aboutBox; HSAboutBox *_aboutBox;
HSRecentFiles *_recentResults; HSRecentFiles *_recentResults;
@ -58,6 +60,7 @@ http://www.hardcoded.net/licenses/bsd_license
- (IBAction)showDirectoryWindow:(id)sender; - (IBAction)showDirectoryWindow:(id)sender;
- (IBAction)showPreferencesPanel:(id)sender; - (IBAction)showPreferencesPanel:(id)sender;
- (IBAction)showResultWindow:(id)sender; - (IBAction)showResultWindow:(id)sender;
- (IBAction)showIgnoreList:(id)sender;
- (IBAction)startScanning:(id)sender; - (IBAction)startScanning:(id)sender;
/* model --> view */ /* model --> view */

View File

@ -38,6 +38,7 @@ http://www.hardcoded.net/licenses/bsd_license
_resultWindow = [self createResultWindow]; _resultWindow = [self createResultWindow];
_directoryPanel = [self createDirectoryPanel]; _directoryPanel = [self createDirectoryPanel];
_detailsPanel = [self createDetailsPanel]; _detailsPanel = [self createDetailsPanel];
_ignoreListDialog = [[IgnoreListDialog alloc] initWithPyRef:[model ignoreListDialog]];
_aboutBox = nil; // Lazily loaded _aboutBox = nil; // Lazily loaded
_preferencesPanel = nil; // Lazily loaded _preferencesPanel = nil; // Lazily loaded
[[[self directoryPanel] window] makeKeyAndOrderFront:self]; [[[self directoryPanel] window] makeKeyAndOrderFront:self];
@ -149,6 +150,11 @@ http://www.hardcoded.net/licenses/bsd_license
[[[self resultWindow] window] makeKeyAndOrderFront:nil]; [[[self resultWindow] window] makeKeyAndOrderFront:nil];
} }
- (IBAction)showIgnoreList:(id)sender
{
[model showIgnoreList];
}
- (IBAction)startScanning:(id)sender - (IBAction)startScanning:(id)sender
{ {
[[self resultWindow] startDuplicateScan:sender]; [[self resultWindow] startDuplicateScan:sender];

View File

@ -0,0 +1,25 @@
/*
Copyright 2012 Hardcoded Software (http://www.hardcoded.net)
This software is licensed under the "BSD" License as described in the "LICENSE" file,
which should be included with this package. The terms are also available at
http://www.hardcoded.net/licenses/bsd_license
*/
#import <Cocoa/Cocoa.h>
#import "PyIgnoreListDialog.h"
#import "HSTable.h"
@interface IgnoreListDialog : NSWindowController
{
IBOutlet NSTableView *ignoreListTableView;
PyIgnoreListDialog *model;
HSTable *ignoreListTable;
}
- (id)initWithPyRef:(PyObject *)aPyRef;
- (void)initializeColumns;
- (IBAction)removeSelected:(id)sender;
- (IBAction)clear:(id)sender;
@end

View File

@ -0,0 +1,57 @@
/*
Copyright 2012 Hardcoded Software (http://www.hardcoded.net)
This software is licensed under the "BSD" License as described in the "LICENSE" file,
which should be included with this package. The terms are also available at
http://www.hardcoded.net/licenses/bsd_license
*/
#import "IgnoreListDialog.h"
#import "Utils.h"
@implementation IgnoreListDialog
- (id)initWithPyRef:(PyObject *)aPyRef
{
self = [super initWithWindowNibName:@"IgnoreListDialog"];
[self window]; //So the detailsTable is initialized.
model = [[PyIgnoreListDialog alloc] initWithModel:aPyRef];
[model bindCallback:createCallback(@"IgnoreListDialogView", self)];
ignoreListTable = [[HSTable alloc] initWithPyRef:[model ignoreListTable] tableView:ignoreListTableView];
[self initializeColumns];
return self;
}
- (void)dealloc
{
[ignoreListTable release];
[model release];
[super dealloc];
}
- (void)initializeColumns
{
HSColumnDef defs[] = {
{@"path1", 240, 40, 0, NO, nil},
{@"path2", 240, 40, 0, NO, nil},
nil
};
[[ignoreListTable columns] initializeColumns:defs];
[[ignoreListTable columns] setColumnsAsReadOnly];
}
- (IBAction)removeSelected:(id)sender
{
[model removeSelected];
}
- (IBAction)clear:(id)sender
{
[model clear];
}
/* model --> view */
- (void)show
{
[self showWindow:self];
}
@end

View File

@ -45,7 +45,6 @@ http://www.hardcoded.net/licenses/bsd_license
- (void)showProblemDialog; - (void)showProblemDialog;
/* Actions */ /* Actions */
- (IBAction)clearIgnoreList:(id)sender;
- (IBAction)changeOptions:(id)sender; - (IBAction)changeOptions:(id)sender;
- (IBAction)copyMarked:(id)sender; - (IBAction)copyMarked:(id)sender;
- (IBAction)deleteMarked:(id)sender; - (IBAction)deleteMarked:(id)sender;

View File

@ -98,11 +98,6 @@ http://www.hardcoded.net/licenses/bsd_license
} }
/* Actions */ /* Actions */
- (IBAction)clearIgnoreList:(id)sender
{
[model clearIgnoreList];
}
- (IBAction)changeOptions:(id)sender - (IBAction)changeOptions:(id)sender
{ {
NSInteger seg = [optionsSwitch selectedSegment]; NSInteger seg = [optionsSwitch selectedSegment];

View File

@ -0,0 +1,12 @@

/* Class = "NSWindow"; title = "Ignore List"; ObjectID = "1"; */
"1.title" = "Ignore List";
/* Class = "NSButtonCell"; title = "Close"; ObjectID = "19"; */
"19.title" = "Close";
/* Class = "NSButtonCell"; title = "Remove Selected"; ObjectID = "21"; */
"21.title" = "Remove Selected";
/* Class = "NSButtonCell"; title = "Clear"; ObjectID = "28"; */
"28.title" = "Clear";

View File

@ -0,0 +1,504 @@
<?xml version="1.0" encoding="UTF-8"?>
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
<data>
<int key="IBDocument.SystemTarget">1060</int>
<string key="IBDocument.SystemVersion">11D50</string>
<string key="IBDocument.InterfaceBuilderVersion">2177</string>
<string key="IBDocument.AppKitVersion">1138.32</string>
<string key="IBDocument.HIToolboxVersion">568.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="NS.object.0">2177</string>
</object>
<array key="IBDocument.IntegratedClassDependencies">
<string>NSView</string>
<string>NSTableView</string>
<string>NSScrollView</string>
<string>NSWindowTemplate</string>
<string>NSTableHeaderView</string>
<string>NSButtonCell</string>
<string>NSButton</string>
<string>NSScroller</string>
<string>NSCustomObject</string>
</array>
<array key="IBDocument.PluginDependencies">
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
</array>
<object class="NSMutableDictionary" key="IBDocument.Metadata">
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
<integer value="1" key="NS.object.0"/>
</object>
<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
<object class="NSCustomObject" id="1001">
<string key="NSClassName">IgnoreListDialog</string>
</object>
<object class="NSCustomObject" id="1003">
<string key="NSClassName">FirstResponder</string>
</object>
<object class="NSCustomObject" id="1004">
<string key="NSClassName">NSApplication</string>
</object>
<object class="NSWindowTemplate" id="359561441">
<int key="NSWindowStyleMask">11</int>
<int key="NSWindowBacking">2</int>
<string key="NSWindowRect">{{477, 306}, {574, 347}}</string>
<int key="NSWTFlags">1685585920</int>
<string key="NSWindowTitle">Ignore List</string>
<string key="NSWindowClass">NSWindow</string>
<nil key="NSViewClass"/>
<nil key="NSUserInterfaceItemIdentifier"/>
<object class="NSView" key="NSWindowView" id="976198330">
<reference key="NSNextResponder"/>
<int key="NSvFlags">256</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="NSScrollView" id="458371270">
<reference key="NSNextResponder" ref="976198330"/>
<int key="NSvFlags">274</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="NSClipView" id="831830981">
<reference key="NSNextResponder" ref="458371270"/>
<int key="NSvFlags">2304</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="NSTableView" id="252791348">
<reference key="NSNextResponder" ref="831830981"/>
<int key="NSvFlags">256</int>
<string key="NSFrameSize">{532, 211}</string>
<reference key="NSSuperview" ref="831830981"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="777677330"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTableHeaderView" key="NSHeaderView" id="903452051">
<reference key="NSNextResponder" ref="777677330"/>
<int key="NSvFlags">256</int>
<string key="NSFrameSize">{532, 17}</string>
<reference key="NSSuperview" ref="777677330"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="564034022"/>
<reference key="NSTableView" ref="252791348"/>
</object>
<object class="_NSCornerView" key="NSCornerView" id="564034022">
<reference key="NSNextResponder" ref="458371270"/>
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{224, 0}, {16, 17}}</string>
<reference key="NSSuperview" ref="458371270"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="831830981"/>
</object>
<array class="NSMutableArray" key="NSTableColumns"/>
<double key="NSIntercellSpacingWidth">3</double>
<double key="NSIntercellSpacingHeight">2</double>
<object class="NSColor" key="NSBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
</object>
<object class="NSColor" key="NSGridColor">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">gridColor</string>
<object class="NSColor" key="NSColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC41AA</bytes>
</object>
</object>
<double key="NSRowHeight">17</double>
<int key="NSTvFlags">1512046592</int>
<reference key="NSDelegate"/>
<reference key="NSDataSource"/>
<int key="NSColumnAutoresizingStyle">4</int>
<int key="NSDraggingSourceMaskForLocal">15</int>
<int key="NSDraggingSourceMaskForNonLocal">0</int>
<bool key="NSAllowsTypeSelect">NO</bool>
<int key="NSTableViewDraggingDestinationStyle">0</int>
<int key="NSTableViewGroupRowStyle">1</int>
</object>
</array>
<string key="NSFrame">{{1, 17}, {532, 249}}</string>
<reference key="NSSuperview" ref="458371270"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="252791348"/>
<reference key="NSDocView" ref="252791348"/>
<object class="NSColor" key="NSBGColor" id="765209443">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlBackgroundColor</string>
<object class="NSColor" key="NSColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
</object>
</object>
<int key="NScvFlags">4</int>
</object>
<object class="NSScroller" id="99096694">
<reference key="NSNextResponder" ref="458371270"/>
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{224, 17}, {15, 102}}</string>
<reference key="NSSuperview" ref="458371270"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="47224920"/>
<reference key="NSTarget" ref="458371270"/>
<string key="NSAction">_doScroller:</string>
<double key="NSPercent">0.99052132701421802</double>
</object>
<object class="NSScroller" id="47224920">
<reference key="NSNextResponder" ref="458371270"/>
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{1, 154}, {438, 15}}</string>
<reference key="NSSuperview" ref="458371270"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="253286088"/>
<int key="NSsFlags">1</int>
<reference key="NSTarget" ref="458371270"/>
<string key="NSAction">_doScroller:</string>
<double key="NSCurValue">1</double>
<double key="NSPercent">0.98871331828442433</double>
</object>
<object class="NSClipView" id="777677330">
<reference key="NSNextResponder" ref="458371270"/>
<int key="NSvFlags">2304</int>
<array class="NSMutableArray" key="NSSubviews">
<reference ref="903452051"/>
</array>
<string key="NSFrame">{{1, 0}, {532, 17}}</string>
<reference key="NSSuperview" ref="458371270"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="903452051"/>
<reference key="NSDocView" ref="903452051"/>
<reference key="NSBGColor" ref="765209443"/>
<int key="NScvFlags">4</int>
</object>
<reference ref="564034022"/>
</array>
<string key="NSFrame">{{20, 60}, {534, 267}}</string>
<reference key="NSSuperview" ref="976198330"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="831830981"/>
<int key="NSsFlags">133682</int>
<reference key="NSVScroller" ref="99096694"/>
<reference key="NSHScroller" ref="47224920"/>
<reference key="NSContentView" ref="831830981"/>
<reference key="NSHeaderClipView" ref="777677330"/>
<reference key="NSCornerView" ref="564034022"/>
<bytes key="NSScrollAmts">QSAAAEEgAABBmAAAQZgAAA</bytes>
</object>
<object class="NSButton" id="4380169">
<reference key="NSNextResponder" ref="976198330"/>
<int key="NSvFlags">289</int>
<string key="NSFrame">{{464, 12}, {96, 32}}</string>
<reference key="NSSuperview" ref="976198330"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="373771329">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">134217728</int>
<string key="NSContents">Close</string>
<object class="NSFont" key="NSSupport" id="680801460">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">13</double>
<int key="NSfFlags">1044</int>
</object>
<reference key="NSControlView" ref="4380169"/>
<int key="NSButtonFlags">-2038284033</int>
<int key="NSButtonFlags2">129</int>
<string key="NSAlternateContents"/>
<string type="base64-UTF8" key="NSKeyEquivalent">DQ</string>
<int key="NSPeriodicDelay">200</int>
<int key="NSPeriodicInterval">25</int>
</object>
</object>
<object class="NSButton" id="253286088">
<reference key="NSNextResponder" ref="976198330"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{14, 12}, {154, 32}}</string>
<reference key="NSSuperview" ref="976198330"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="983148229"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="671547957">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">134217728</int>
<string key="NSContents">Remove Selected</string>
<reference key="NSSupport" ref="680801460"/>
<reference key="NSControlView" ref="253286088"/>
<int key="NSButtonFlags">-2038284033</int>
<int key="NSButtonFlags2">129</int>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<int key="NSPeriodicDelay">200</int>
<int key="NSPeriodicInterval">25</int>
</object>
</object>
<object class="NSButton" id="983148229">
<reference key="NSNextResponder" ref="976198330"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{162, 12}, {154, 32}}</string>
<reference key="NSSuperview" ref="976198330"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="4380169"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="409951495">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">134217728</int>
<string key="NSContents">Clear</string>
<reference key="NSSupport" ref="680801460"/>
<reference key="NSControlView" ref="983148229"/>
<int key="NSButtonFlags">-2038284033</int>
<int key="NSButtonFlags2">129</int>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<int key="NSPeriodicDelay">200</int>
<int key="NSPeriodicInterval">25</int>
</object>
</object>
</array>
<string key="NSFrameSize">{574, 347}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="458371270"/>
</object>
<string key="NSScreenRect">{{0, 0}, {1920, 1058}}</string>
<string key="NSMaxSize">{10000000000000, 10000000000000}</string>
<bool key="NSWindowIsRestorable">YES</bool>
</object>
</array>
<object class="IBObjectContainer" key="IBDocument.Objects">
<array class="NSMutableArray" key="connectionRecords">
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">window</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="359561441"/>
</object>
<int key="connectionID">22</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">ignoreListTableView</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="252791348"/>
</object>
<int key="connectionID">30</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">removeSelected:</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="253286088"/>
</object>
<int key="connectionID">31</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">clear:</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="983148229"/>
</object>
<int key="connectionID">32</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">performClose:</string>
<reference key="source" ref="359561441"/>
<reference key="destination" ref="4380169"/>
</object>
<int key="connectionID">25</int>
</object>
</array>
<object class="IBMutableOrderedSet" key="objectRecords">
<array key="orderedObjects">
<object class="IBObjectRecord">
<int key="objectID">0</int>
<array key="object" id="0"/>
<reference key="children" ref="1000"/>
<nil key="parent"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">-2</int>
<reference key="object" ref="1001"/>
<reference key="parent" ref="0"/>
<string key="objectName">File's Owner</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-1</int>
<reference key="object" ref="1003"/>
<reference key="parent" ref="0"/>
<string key="objectName">First Responder</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-3</int>
<reference key="object" ref="1004"/>
<reference key="parent" ref="0"/>
<string key="objectName">Application</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">1</int>
<reference key="object" ref="359561441"/>
<array class="NSMutableArray" key="children">
<reference ref="976198330"/>
</array>
<reference key="parent" ref="0"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">2</int>
<reference key="object" ref="976198330"/>
<array class="NSMutableArray" key="children">
<reference ref="458371270"/>
<reference ref="4380169"/>
<reference ref="253286088"/>
<reference ref="983148229"/>
</array>
<reference key="parent" ref="359561441"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">5</int>
<reference key="object" ref="458371270"/>
<array class="NSMutableArray" key="children">
<reference ref="99096694"/>
<reference ref="47224920"/>
<reference ref="252791348"/>
<reference ref="903452051"/>
</array>
<reference key="parent" ref="976198330"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">6</int>
<reference key="object" ref="99096694"/>
<reference key="parent" ref="458371270"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">7</int>
<reference key="object" ref="47224920"/>
<reference key="parent" ref="458371270"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">8</int>
<reference key="object" ref="252791348"/>
<array class="NSMutableArray" key="children"/>
<reference key="parent" ref="458371270"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">9</int>
<reference key="object" ref="903452051"/>
<reference key="parent" ref="458371270"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">18</int>
<reference key="object" ref="4380169"/>
<array class="NSMutableArray" key="children">
<reference ref="373771329"/>
</array>
<reference key="parent" ref="976198330"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">19</int>
<reference key="object" ref="373771329"/>
<reference key="parent" ref="4380169"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">20</int>
<reference key="object" ref="253286088"/>
<array class="NSMutableArray" key="children">
<reference ref="671547957"/>
</array>
<reference key="parent" ref="976198330"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">21</int>
<reference key="object" ref="671547957"/>
<reference key="parent" ref="253286088"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">27</int>
<reference key="object" ref="983148229"/>
<array class="NSMutableArray" key="children">
<reference ref="409951495"/>
</array>
<reference key="parent" ref="976198330"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">28</int>
<reference key="object" ref="409951495"/>
<reference key="parent" ref="983148229"/>
</object>
</array>
</object>
<dictionary class="NSMutableDictionary" key="flattenedProperties">
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="-3.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="1.IBWindowTemplateEditedContentRect">{{477, 306}, {480, 309}}</string>
<boolean value="NO" key="1.NSWindowTemplate.visibleAtLaunch"/>
<string key="18.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="19.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="20.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="21.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="27.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="28.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="5.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="6.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="7.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="8.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="9.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">32</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
<object class="IBPartialClassDescription">
<string key="className">IgnoreListDialog</string>
<string key="superclassName">NSWindowController</string>
<dictionary class="NSMutableDictionary" key="actions">
<string key="clear:">id</string>
<string key="removeSelected:">id</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="actionInfosByName">
<object class="IBActionInfo" key="clear:">
<string key="name">clear:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="removeSelected:">
<string key="name">removeSelected:</string>
<string key="candidateClassName">id</string>
</object>
</dictionary>
<object class="NSMutableDictionary" key="outlets">
<string key="NS.key.0">ignoreListTableView</string>
<string key="NS.object.0">NSTableView</string>
</object>
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
<string key="NS.key.0">ignoreListTableView</string>
<object class="IBToOneOutletInfo" key="NS.object.0">
<string key="name">ignoreListTableView</string>
<string key="candidateClassName">NSTableView</string>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/IgnoreListDialog.h</string>
</object>
</object>
</array>
</object>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
<real value="1060" key="NS.object.0"/>
</object>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
<real value="1060" key="NS.object.0"/>
</object>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
<real value="4100" key="NS.object.0"/>
</object>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
</data>
</archive>

View File

@ -92,9 +92,6 @@
/* Class = "NSMenuItem"; title = "Start Duplicate Scan"; ObjectID = "926"; */ /* Class = "NSMenuItem"; title = "Start Duplicate Scan"; ObjectID = "926"; */
"926.title" = "Start Duplicate Scan"; "926.title" = "Start Duplicate Scan";
/* Class = "NSMenuItem"; title = "Clear Ignore List"; ObjectID = "927"; */
"927.title" = "Clear Ignore List";
/* Class = "NSMenuItem"; title = "Rename Selected"; ObjectID = "933"; */ /* Class = "NSMenuItem"; title = "Rename Selected"; ObjectID = "933"; */
"933.title" = "Rename Selected"; "933.title" = "Rename Selected";
@ -175,3 +172,6 @@
/* Class = "NSMenuItem"; title = "Re-Prioritize Results"; ObjectID = "1276"; */ /* Class = "NSMenuItem"; title = "Re-Prioritize Results"; ObjectID = "1276"; */
"1276.title" = "Re-Prioritize Results"; "1276.title" = "Re-Prioritize Results";
/* Class = "NSMenuItem"; title = "Ignore List"; ObjectID = "1283"; */
"1283.title" = "Ignore List";

View File

@ -2,13 +2,13 @@
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00"> <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
<data> <data>
<int key="IBDocument.SystemTarget">1060</int> <int key="IBDocument.SystemTarget">1060</int>
<string key="IBDocument.SystemVersion">11C74</string> <string key="IBDocument.SystemVersion">11D50</string>
<string key="IBDocument.InterfaceBuilderVersion">1938</string> <string key="IBDocument.InterfaceBuilderVersion">2177</string>
<string key="IBDocument.AppKitVersion">1138.23</string> <string key="IBDocument.AppKitVersion">1138.32</string>
<string key="IBDocument.HIToolboxVersion">567.00</string> <string key="IBDocument.HIToolboxVersion">568.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions"> <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="NS.object.0">1938</string> <string key="NS.object.0">2177</string>
</object> </object>
<array key="IBDocument.IntegratedClassDependencies"> <array key="IBDocument.IntegratedClassDependencies">
<string>NSMenu</string> <string>NSMenu</string>
@ -318,15 +318,6 @@
<reference key="NSOnImage" ref="34697260"/> <reference key="NSOnImage" ref="34697260"/>
<reference key="NSMixedImage" ref="201180191"/> <reference key="NSMixedImage" ref="201180191"/>
</object> </object>
<object class="NSMenuItem" id="578499792">
<reference key="NSMenu" ref="600111647"/>
<string key="NSTitle">Clear Ignore List</string>
<string key="NSKeyEquiv">G</string>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="34697260"/>
<reference key="NSMixedImage" ref="201180191"/>
</object>
<object class="NSMenuItem" id="189815600"> <object class="NSMenuItem" id="189815600">
<reference key="NSMenu" ref="600111647"/> <reference key="NSMenu" ref="600111647"/>
<bool key="NSIsDisabled">YES</bool> <bool key="NSIsDisabled">YES</bool>
@ -553,6 +544,14 @@
<reference key="NSOnImage" ref="34697260"/> <reference key="NSOnImage" ref="34697260"/>
<reference key="NSMixedImage" ref="201180191"/> <reference key="NSMixedImage" ref="201180191"/>
</object> </object>
<object class="NSMenuItem" id="361987512">
<reference key="NSMenu" ref="472719764"/>
<string key="NSTitle">Ignore List</string>
<string key="NSKeyEquiv"/>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="34697260"/>
<reference key="NSMixedImage" ref="201180191"/>
</object>
<object class="NSMenuItem" id="961037837"> <object class="NSMenuItem" id="961037837">
<reference key="NSMenu" ref="472719764"/> <reference key="NSMenu" ref="472719764"/>
<string key="NSTitle">Details Panel</string> <string key="NSTitle">Details Panel</string>
@ -773,14 +772,6 @@
</object> </object>
<int key="connectionID">1005</int> <int key="connectionID">1005</int>
</object> </object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">clearIgnoreList:</string>
<reference key="source" ref="83466988"/>
<reference key="destination" ref="578499792"/>
</object>
<int key="connectionID">1243</int>
</object>
<object class="IBConnectionRecord"> <object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection"> <object class="IBActionConnection" key="connection">
<string key="label">copyMarked:</string> <string key="label">copyMarked:</string>
@ -1061,6 +1052,14 @@
</object> </object>
<int key="connectionID">1275</int> <int key="connectionID">1275</int>
</object> </object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">showIgnoreList:</string>
<reference key="source" ref="91622651"/>
<reference key="destination" ref="361987512"/>
</object>
<int key="connectionID">1285</int>
</object>
<object class="IBConnectionRecord"> <object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection"> <object class="IBActionConnection" key="connection">
<string key="label">checkForUpdates:</string> <string key="label">checkForUpdates:</string>
@ -1142,6 +1141,7 @@
<reference ref="762484626"/> <reference ref="762484626"/>
<reference ref="937862901"/> <reference ref="937862901"/>
<reference ref="343354529"/> <reference ref="343354529"/>
<reference ref="361987512"/>
</array> </array>
<reference key="parent" ref="751320875"/> <reference key="parent" ref="751320875"/>
</object> </object>
@ -1310,7 +1310,6 @@
<reference ref="616313144"/> <reference ref="616313144"/>
<reference ref="904423169"/> <reference ref="904423169"/>
<reference ref="1035429435"/> <reference ref="1035429435"/>
<reference ref="578499792"/>
<reference ref="189815600"/> <reference ref="189815600"/>
<reference ref="564101661"/> <reference ref="564101661"/>
<reference ref="747820446"/> <reference ref="747820446"/>
@ -1375,11 +1374,6 @@
<reference key="object" ref="1035429435"/> <reference key="object" ref="1035429435"/>
<reference key="parent" ref="600111647"/> <reference key="parent" ref="600111647"/>
</object> </object>
<object class="IBObjectRecord">
<int key="objectID">927</int>
<reference key="object" ref="578499792"/>
<reference key="parent" ref="600111647"/>
</object>
<object class="IBObjectRecord"> <object class="IBObjectRecord">
<int key="objectID">928</int> <int key="objectID">928</int>
<reference key="object" ref="189815600"/> <reference key="object" ref="189815600"/>
@ -1584,6 +1578,11 @@
<reference key="object" ref="343354529"/> <reference key="object" ref="343354529"/>
<reference key="parent" ref="472719764"/> <reference key="parent" ref="472719764"/>
</object> </object>
<object class="IBObjectRecord">
<int key="objectID">1283</int>
<reference key="object" ref="361987512"/>
<reference key="parent" ref="472719764"/>
</object>
</array> </array>
</object> </object>
<dictionary class="NSMutableDictionary" key="flattenedProperties"> <dictionary class="NSMutableDictionary" key="flattenedProperties">
@ -1610,6 +1609,7 @@
<string key="1272.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="1272.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="1276.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="1276.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="1280.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="1280.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="1283.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="134.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="134.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="136.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="136.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="144.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="144.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
@ -1649,7 +1649,6 @@
<string key="922.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="922.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="924.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="924.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="926.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="926.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="927.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="928.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="928.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="933.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="933.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="947.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="947.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
@ -1669,7 +1668,7 @@
<nil key="activeLocalization"/> <nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/> <dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/> <nil key="sourceID"/>
<int key="maxID">1282</int> <int key="maxID">1285</int>
</object> </object>
<object class="IBClassDescriber" key="IBDocument.Classes"> <object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions"> <array class="NSMutableArray" key="referencedPartialClassDescriptions">
@ -1690,6 +1689,7 @@
<string key="openWebsite:">id</string> <string key="openWebsite:">id</string>
<string key="showAboutBox:">id</string> <string key="showAboutBox:">id</string>
<string key="showDirectoryWindow:">id</string> <string key="showDirectoryWindow:">id</string>
<string key="showIgnoreList:">id</string>
<string key="showPreferencesPanel:">id</string> <string key="showPreferencesPanel:">id</string>
<string key="showResultWindow:">id</string> <string key="showResultWindow:">id</string>
<string key="startScanning:">id</string> <string key="startScanning:">id</string>
@ -1715,6 +1715,10 @@
<string key="name">showDirectoryWindow:</string> <string key="name">showDirectoryWindow:</string>
<string key="candidateClassName">id</string> <string key="candidateClassName">id</string>
</object> </object>
<object class="IBActionInfo" key="showIgnoreList:">
<string key="name">showIgnoreList:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="showPreferencesPanel:"> <object class="IBActionInfo" key="showPreferencesPanel:">
<string key="name">showPreferencesPanel:</string> <string key="name">showPreferencesPanel:</string>
<string key="candidateClassName">id</string> <string key="candidateClassName">id</string>
@ -1731,7 +1735,6 @@
<dictionary class="NSMutableDictionary" key="outlets"> <dictionary class="NSMutableDictionary" key="outlets">
<string key="actionsMenu">NSMenu</string> <string key="actionsMenu">NSMenu</string>
<string key="columnsMenu">NSMenu</string> <string key="columnsMenu">NSMenu</string>
<string key="py">PyDupeGuruBase</string>
<string key="recentResultsMenu">NSMenu</string> <string key="recentResultsMenu">NSMenu</string>
</dictionary> </dictionary>
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName"> <dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
@ -1743,10 +1746,6 @@
<string key="name">columnsMenu</string> <string key="name">columnsMenu</string>
<string key="candidateClassName">NSMenu</string> <string key="candidateClassName">NSMenu</string>
</object> </object>
<object class="IBToOneOutletInfo" key="py">
<string key="name">py</string>
<string key="candidateClassName">PyDupeGuruBase</string>
</object>
<object class="IBToOneOutletInfo" key="recentResultsMenu"> <object class="IBToOneOutletInfo" key="recentResultsMenu">
<string key="name">recentResultsMenu</string> <string key="name">recentResultsMenu</string>
<string key="candidateClassName">NSMenu</string> <string key="candidateClassName">NSMenu</string>
@ -1785,25 +1784,15 @@
</object> </object>
</object> </object>
<object class="IBPartialClassDescription"> <object class="IBPartialClassDescription">
<string key="className">PrioritizeDialog</string> <string key="className">IgnoreListDialog</string>
<string key="superclassName">NSWindowController</string> <string key="superclassName">NSWindowController</string>
<dictionary class="NSMutableDictionary" key="actions"> <dictionary class="NSMutableDictionary" key="actions">
<string key="addSelected:">id</string> <string key="clear:">id</string>
<string key="cancel:">id</string>
<string key="ok:">id</string>
<string key="removeSelected:">id</string> <string key="removeSelected:">id</string>
</dictionary> </dictionary>
<dictionary class="NSMutableDictionary" key="actionInfosByName"> <dictionary class="NSMutableDictionary" key="actionInfosByName">
<object class="IBActionInfo" key="addSelected:"> <object class="IBActionInfo" key="clear:">
<string key="name">addSelected:</string> <string key="name">clear:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="cancel:">
<string key="name">cancel:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="ok:">
<string key="name">ok:</string>
<string key="candidateClassName">id</string> <string key="candidateClassName">id</string>
</object> </object>
<object class="IBActionInfo" key="removeSelected:"> <object class="IBActionInfo" key="removeSelected:">
@ -1811,28 +1800,20 @@
<string key="candidateClassName">id</string> <string key="candidateClassName">id</string>
</object> </object>
</dictionary> </dictionary>
<dictionary class="NSMutableDictionary" key="outlets"> <object class="NSMutableDictionary" key="outlets">
<string key="categoryPopUpView">NSPopUpButton</string> <string key="NS.key.0">ignoreListTableView</string>
<string key="criteriaTableView">NSTableView</string> <string key="NS.object.0">NSTableView</string>
<string key="prioritizationTableView">NSTableView</string> </object>
</dictionary> <object class="NSMutableDictionary" key="toOneOutletInfosByName">
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName"> <string key="NS.key.0">ignoreListTableView</string>
<object class="IBToOneOutletInfo" key="categoryPopUpView"> <object class="IBToOneOutletInfo" key="NS.object.0">
<string key="name">categoryPopUpView</string> <string key="name">ignoreListTableView</string>
<string key="candidateClassName">NSPopUpButton</string>
</object>
<object class="IBToOneOutletInfo" key="criteriaTableView">
<string key="name">criteriaTableView</string>
<string key="candidateClassName">NSTableView</string> <string key="candidateClassName">NSTableView</string>
</object> </object>
<object class="IBToOneOutletInfo" key="prioritizationTableView"> </object>
<string key="name">prioritizationTableView</string>
<string key="candidateClassName">NSTableView</string>
</object>
</dictionary>
<object class="IBClassDescriptionSource" key="sourceIdentifier"> <object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string> <string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/PrioritizeDialog.h</string> <string key="minorKey">./Classes/IgnoreListDialog.h</string>
</object> </object>
</object> </object>
<object class="IBPartialClassDescription"> <object class="IBPartialClassDescription">
@ -1870,7 +1851,6 @@
<string key="superclassName">NSWindowController</string> <string key="superclassName">NSWindowController</string>
<dictionary class="NSMutableDictionary" key="actions"> <dictionary class="NSMutableDictionary" key="actions">
<string key="changeOptions:">id</string> <string key="changeOptions:">id</string>
<string key="clearIgnoreList:">id</string>
<string key="copyMarked:">id</string> <string key="copyMarked:">id</string>
<string key="deleteMarked:">id</string> <string key="deleteMarked:">id</string>
<string key="exportToXHTML:">id</string> <string key="exportToXHTML:">id</string>
@ -1905,10 +1885,6 @@
<string key="name">changeOptions:</string> <string key="name">changeOptions:</string>
<string key="candidateClassName">id</string> <string key="candidateClassName">id</string>
</object> </object>
<object class="IBActionInfo" key="clearIgnoreList:">
<string key="name">clearIgnoreList:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="copyMarked:"> <object class="IBActionInfo" key="copyMarked:">
<string key="name">copyMarked:</string> <string key="name">copyMarked:</string>
<string key="candidateClassName">id</string> <string key="candidateClassName">id</string>
@ -2100,8 +2076,8 @@
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool> <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
<int key="IBDocument.defaultPropertyAccessControl">3</int> <int key="IBDocument.defaultPropertyAccessControl">3</int>
<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes"> <dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
<string key="NSMenuCheckmark">{9, 8}</string> <string key="NSMenuCheckmark">{11, 11}</string>
<string key="NSMenuMixedState">{7, 2}</string> <string key="NSMenuMixedState">{10, 3}</string>
</dictionary> </dictionary>
</data> </data>
</archive> </archive>

View File

@ -51,14 +51,14 @@ class PyDupeGuruBase(PyFairware):
def resultTable(self) -> pyref: def resultTable(self) -> pyref:
return self.model.result_table return self.model.result_table
def ignoreListDialog(self) -> pyref:
return self.model.ignore_list_dialog
#---Directories #---Directories
def addDirectory_(self, directory: str) -> int: def addDirectory_(self, directory: str) -> int:
return self.model.add_directory(directory) return self.model.add_directory(directory)
#---Results #---Results
def clearIgnoreList(self):
self.model.clear_ignore_list()
def doScan(self): def doScan(self):
self.model.start_scanning() self.model.start_scanning()
@ -129,6 +129,9 @@ class PyDupeGuruBase(PyFairware):
def invokeCustomCommand(self): def invokeCustomCommand(self):
self.model.invoke_custom_command() self.model.invoke_custom_command()
def showIgnoreList(self):
self.model.ignore_list_dialog.show()
#---Information #---Information
def resultsAreModified(self) -> bool: def resultsAreModified(self) -> bool:
return self.model.results.is_modified return self.model.results.is_modified

View File

@ -0,0 +1,20 @@
from objp.util import pyref
from cocoa.inter import PyGUIObject, GUIObjectView
class IgnoreListDialogView(GUIObjectView):
def show(self): pass
class PyIgnoreListDialog(PyGUIObject):
def ignoreListTable(self) -> pyref:
return self.model.ignore_list_table
def removeSelected(self):
self.model.remove_selected()
def clear(self):
self.model.clear()
#--- model --> view
def show(self):
self.callback.show()

View File

@ -14,6 +14,7 @@ from inter.directory_outline import PyDirectoryOutline
from inter.prioritize_dialog import PyPrioritizeDialog from inter.prioritize_dialog import PyPrioritizeDialog
from inter.prioritize_list import PyPrioritizeList from inter.prioritize_list import PyPrioritizeList
from inter.problem_dialog import PyProblemDialog from inter.problem_dialog import PyProblemDialog
from inter.ignore_list_dialog import PyIgnoreListDialog
from inter.result_table import PyResultTable from inter.result_table import PyResultTable
from inter.stats_label import PyStatsLabel from inter.stats_label import PyStatsLabel
from inter.app_me import PyDupeGuru from inter.app_me import PyDupeGuru

View File

@ -37,6 +37,17 @@
CE073F6309CAE1A3005C1D2F /* help in Resources */ = {isa = PBXBuildFile; fileRef = CE073F5409CAE1A3005C1D2F /* help */; }; CE073F6309CAE1A3005C1D2F /* help in Resources */ = {isa = PBXBuildFile; fileRef = CE073F5409CAE1A3005C1D2F /* help */; };
CE0A0C001175A1C000DCA3C6 /* HSTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CE0A0BFF1175A1C000DCA3C6 /* HSTable.m */; }; CE0A0C001175A1C000DCA3C6 /* HSTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CE0A0BFF1175A1C000DCA3C6 /* HSTable.m */; };
CE0A0C041175A1DE00DCA3C6 /* ProblemDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE0A0C021175A1DE00DCA3C6 /* ProblemDialog.m */; }; CE0A0C041175A1DE00DCA3C6 /* ProblemDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE0A0C021175A1DE00DCA3C6 /* ProblemDialog.m */; };
CE11958F1510FF700063C8AF /* PyIgnoreListDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE11958E1510FF700063C8AF /* PyIgnoreListDialog.m */; };
CE1195931510FF890063C8AF /* IgnoreListDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE1195921510FF890063C8AF /* IgnoreListDialog.m */; };
CE1195961510FFB20063C8AF /* IgnoreListDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE1195941510FFB20063C8AF /* IgnoreListDialog.xib */; };
CE11959F151100020063C8AF /* DetailsPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05330D12E5D3ED0029EF25 /* DetailsPanel.xib */; };
CE1195A0151100020063C8AF /* DirectoryPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05330F12E5D3ED0029EF25 /* DirectoryPanel.xib */; };
CE1195A1151100020063C8AF /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05331112E5D3ED0029EF25 /* MainMenu.xib */; };
CE1195A2151100020063C8AF /* ProblemDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05331312E5D3ED0029EF25 /* ProblemDialog.xib */; };
CE1195A3151100020063C8AF /* IgnoreListDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE1195941510FFB20063C8AF /* IgnoreListDialog.xib */; };
CE1195A4151100020063C8AF /* ResultWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05331512E5D3ED0029EF25 /* ResultWindow.xib */; };
CE1195A5151100020063C8AF /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05332112E5D4100029EF25 /* Preferences.xib */; };
CE1195A6151100020063C8AF /* PrioritizeDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE84C9BB1423AF200050A6AD /* PrioritizeDialog.xib */; };
CE1425890AFB718500BD5167 /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE1425880AFB718500BD5167 /* Sparkle.framework */; }; CE1425890AFB718500BD5167 /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE1425880AFB718500BD5167 /* Sparkle.framework */; };
CE14259F0AFB719300BD5167 /* Sparkle.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE1425880AFB718500BD5167 /* Sparkle.framework */; }; CE14259F0AFB719300BD5167 /* Sparkle.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE1425880AFB718500BD5167 /* Sparkle.framework */; };
CE1EAA0A12DF3E81009BA949 /* HSRecentFiles.m in Sources */ = {isa = PBXBuildFile; fileRef = CE1EAA0912DF3E81009BA949 /* HSRecentFiles.m */; }; CE1EAA0A12DF3E81009BA949 /* HSRecentFiles.m in Sources */ = {isa = PBXBuildFile; fileRef = CE1EAA0912DF3E81009BA949 /* HSRecentFiles.m */; };
@ -150,6 +161,19 @@
CE0A0BFF1175A1C000DCA3C6 /* HSTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSTable.m; sourceTree = "<group>"; }; CE0A0BFF1175A1C000DCA3C6 /* HSTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSTable.m; sourceTree = "<group>"; };
CE0A0C011175A1DE00DCA3C6 /* ProblemDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProblemDialog.h; path = ../base/ProblemDialog.h; sourceTree = SOURCE_ROOT; }; CE0A0C011175A1DE00DCA3C6 /* ProblemDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProblemDialog.h; path = ../base/ProblemDialog.h; sourceTree = SOURCE_ROOT; };
CE0A0C021175A1DE00DCA3C6 /* ProblemDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ProblemDialog.m; path = ../base/ProblemDialog.m; sourceTree = SOURCE_ROOT; }; CE0A0C021175A1DE00DCA3C6 /* ProblemDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ProblemDialog.m; path = ../base/ProblemDialog.m; sourceTree = SOURCE_ROOT; };
CE11958D1510FF700063C8AF /* PyIgnoreListDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyIgnoreListDialog.h; sourceTree = "<group>"; };
CE11958E1510FF700063C8AF /* PyIgnoreListDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyIgnoreListDialog.m; sourceTree = "<group>"; };
CE1195911510FF890063C8AF /* IgnoreListDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IgnoreListDialog.h; path = ../base/IgnoreListDialog.h; sourceTree = "<group>"; };
CE1195921510FF890063C8AF /* IgnoreListDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = IgnoreListDialog.m; path = ../base/IgnoreListDialog.m; sourceTree = "<group>"; };
CE1195951510FFB20063C8AF /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
CE119597151100020063C8AF /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
CE119598151100020063C8AF /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
CE119599151100020063C8AF /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
CE11959A151100020063C8AF /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
CE11959B151100020063C8AF /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
CE11959C151100020063C8AF /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
CE11959D151100020063C8AF /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
CE11959E151100020063C8AF /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
CE1425880AFB718500BD5167 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sparkle.framework; path = /Library/Frameworks/Sparkle.framework; sourceTree = "<absolute>"; }; CE1425880AFB718500BD5167 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sparkle.framework; path = /Library/Frameworks/Sparkle.framework; sourceTree = "<absolute>"; };
CE1EAA0812DF3E81009BA949 /* HSRecentFiles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSRecentFiles.h; path = ../../cocoalib/HSRecentFiles.h; sourceTree = SOURCE_ROOT; }; CE1EAA0812DF3E81009BA949 /* HSRecentFiles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSRecentFiles.h; path = ../../cocoalib/HSRecentFiles.h; sourceTree = SOURCE_ROOT; };
CE1EAA0912DF3E81009BA949 /* HSRecentFiles.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSRecentFiles.m; path = ../../cocoalib/HSRecentFiles.m; sourceTree = SOURCE_ROOT; }; CE1EAA0912DF3E81009BA949 /* HSRecentFiles.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSRecentFiles.m; path = ../../cocoalib/HSRecentFiles.m; sourceTree = SOURCE_ROOT; };
@ -468,6 +492,7 @@
CE05330F12E5D3ED0029EF25 /* DirectoryPanel.xib */, CE05330F12E5D3ED0029EF25 /* DirectoryPanel.xib */,
CE05331112E5D3ED0029EF25 /* MainMenu.xib */, CE05331112E5D3ED0029EF25 /* MainMenu.xib */,
CE05331312E5D3ED0029EF25 /* ProblemDialog.xib */, CE05331312E5D3ED0029EF25 /* ProblemDialog.xib */,
CE1195941510FFB20063C8AF /* IgnoreListDialog.xib */,
CE05331512E5D3ED0029EF25 /* ResultWindow.xib */, CE05331512E5D3ED0029EF25 /* ResultWindow.xib */,
CE05332112E5D4100029EF25 /* Preferences.xib */, CE05332112E5D4100029EF25 /* Preferences.xib */,
CE84C9BB1423AF200050A6AD /* PrioritizeDialog.xib */, CE84C9BB1423AF200050A6AD /* PrioritizeDialog.xib */,
@ -533,6 +558,8 @@
CE0A0C021175A1DE00DCA3C6 /* ProblemDialog.m */, CE0A0C021175A1DE00DCA3C6 /* ProblemDialog.m */,
CE515E1B0FC6C19300EC695D /* ResultWindow.h */, CE515E1B0FC6C19300EC695D /* ResultWindow.h */,
CE515E1C0FC6C19300EC695D /* ResultWindow.m */, CE515E1C0FC6C19300EC695D /* ResultWindow.m */,
CE1195911510FF890063C8AF /* IgnoreListDialog.h */,
CE1195921510FF890063C8AF /* IgnoreListDialog.m */,
CEDF07A1112493B200EE5BC0 /* StatsLabel.h */, CEDF07A1112493B200EE5BC0 /* StatsLabel.h */,
CEDF07A2112493B200EE5BC0 /* StatsLabel.m */, CEDF07A2112493B200EE5BC0 /* StatsLabel.m */,
CE84C9AC1423ADFB0050A6AD /* PrioritizeDialog.h */, CE84C9AC1423ADFB0050A6AD /* PrioritizeDialog.h */,
@ -571,6 +598,8 @@
CE9705DB14C46E7D007A28F6 /* PyPrioritizeList.m */, CE9705DB14C46E7D007A28F6 /* PyPrioritizeList.m */,
CE9705DC14C46E7D007A28F6 /* PyProblemDialog.h */, CE9705DC14C46E7D007A28F6 /* PyProblemDialog.h */,
CE9705DD14C46E7D007A28F6 /* PyProblemDialog.m */, CE9705DD14C46E7D007A28F6 /* PyProblemDialog.m */,
CE11958D1510FF700063C8AF /* PyIgnoreListDialog.h */,
CE11958E1510FF700063C8AF /* PyIgnoreListDialog.m */,
CE9705DE14C46E7D007A28F6 /* PyResultTable.h */, CE9705DE14C46E7D007A28F6 /* PyResultTable.h */,
CE9705DF14C46E7D007A28F6 /* PyResultTable.m */, CE9705DF14C46E7D007A28F6 /* PyResultTable.m */,
CE9705E014C46E7D007A28F6 /* PySelectableList.h */, CE9705E014C46E7D007A28F6 /* PySelectableList.h */,
@ -675,6 +704,15 @@
CEA14F431461ED63007F01A5 /* locale in Resources */, CEA14F431461ED63007F01A5 /* locale in Resources */,
CE9705FF14C46F60007A28F6 /* py in Resources */, CE9705FF14C46F60007A28F6 /* py in Resources */,
CE97060114C46F70007A28F6 /* dg_cocoa.py in Resources */, CE97060114C46F70007A28F6 /* dg_cocoa.py in Resources */,
CE1195961510FFB20063C8AF /* IgnoreListDialog.xib in Resources */,
CE11959F151100020063C8AF /* DetailsPanel.xib in Resources */,
CE1195A0151100020063C8AF /* DirectoryPanel.xib in Resources */,
CE1195A1151100020063C8AF /* MainMenu.xib in Resources */,
CE1195A2151100020063C8AF /* ProblemDialog.xib in Resources */,
CE1195A3151100020063C8AF /* IgnoreListDialog.xib in Resources */,
CE1195A4151100020063C8AF /* ResultWindow.xib in Resources */,
CE1195A5151100020063C8AF /* Preferences.xib in Resources */,
CE1195A6151100020063C8AF /* PrioritizeDialog.xib in Resources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@ -734,6 +772,8 @@
CE9705F514C46E7D007A28F6 /* PyStatsLabel.m in Sources */, CE9705F514C46E7D007A28F6 /* PyStatsLabel.m in Sources */,
CE9705F614C46E7D007A28F6 /* PyTable.m in Sources */, CE9705F614C46E7D007A28F6 /* PyTable.m in Sources */,
CE97060314C471F2007A28F6 /* main.m in Sources */, CE97060314C471F2007A28F6 /* main.m in Sources */,
CE11958F1510FF700063C8AF /* PyIgnoreListDialog.m in Sources */,
CE1195931510FF890063C8AF /* IgnoreListDialog.m in Sources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@ -852,6 +892,22 @@
name = Localizable.strings; name = Localizable.strings;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
CE1195941510FFB20063C8AF /* IgnoreListDialog.xib */ = {
isa = PBXVariantGroup;
children = (
CE1195951510FFB20063C8AF /* en */,
CE119597151100020063C8AF /* cs */,
CE119598151100020063C8AF /* de */,
CE119599151100020063C8AF /* fr */,
CE11959A151100020063C8AF /* hy */,
CE11959B151100020063C8AF /* it */,
CE11959C151100020063C8AF /* ru */,
CE11959D151100020063C8AF /* uk */,
CE11959E151100020063C8AF /* zh_CN */,
);
name = IgnoreListDialog.xib;
sourceTree = "<group>";
};
CE74A12512537F2E008A8DF0 /* FairwareReminder.xib */ = { CE74A12512537F2E008A8DF0 /* FairwareReminder.xib */ = {
isa = PBXVariantGroup; isa = PBXVariantGroup;
children = ( children = (

View File

@ -14,6 +14,7 @@ from inter.directory_outline import PyDirectoryOutline
from inter.prioritize_dialog import PyPrioritizeDialog from inter.prioritize_dialog import PyPrioritizeDialog
from inter.prioritize_list import PyPrioritizeList from inter.prioritize_list import PyPrioritizeList
from inter.problem_dialog import PyProblemDialog from inter.problem_dialog import PyProblemDialog
from inter.ignore_list_dialog import PyIgnoreListDialog
from inter.result_table import PyResultTable from inter.result_table import PyResultTable
from inter.stats_label import PyStatsLabel from inter.stats_label import PyStatsLabel
from inter.app_pe import PyDupeGuru from inter.app_pe import PyDupeGuru

View File

@ -8,17 +8,6 @@
/* Begin PBXBuildFile section */ /* Begin PBXBuildFile section */
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
CE03DD6C14FBD31300E998AC /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339512E5DA350029EF25 /* MainMenu.xib */; };
CE03DD6D14FBD31300E998AC /* ProblemDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339712E5DA350029EF25 /* ProblemDialog.xib */; };
CE03DD6E14FBD31300E998AC /* ResultWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339912E5DA350029EF25 /* ResultWindow.xib */; };
CE03DD6F14FBD31300E998AC /* DetailsPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE0533A312E5DA4D0029EF25 /* DetailsPanel.xib */; };
CE03DD7014FBD31300E998AC /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE0533A512E5DA4D0029EF25 /* Preferences.xib */; };
CE03DD7414FBD33600E998AC /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE0533A512E5DA4D0029EF25 /* Preferences.xib */; };
CE03DD7514FBD33600E998AC /* PrioritizeDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE7D24A71423B123002E2297 /* PrioritizeDialog.xib */; };
CE03DD7714FBD34600E998AC /* dsa_pub.pem in Resources */ = {isa = PBXBuildFile; fileRef = CE6E0F3C1054EC62008D9390 /* dsa_pub.pem */; };
CE03DD7B14FBD36600E998AC /* about.xib in Resources */ = {isa = PBXBuildFile; fileRef = CECB2AC113D867AD0081E295 /* about.xib */; };
CE03DD7C14FBD36600E998AC /* ErrorReportWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CECB2AC313D867AD0081E295 /* ErrorReportWindow.xib */; };
CE03DD7D14FBD36600E998AC /* FairwareReminder.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE1EB5FF12537FB90034AABB /* FairwareReminder.xib */; };
CE05339B12E5DA350029EF25 /* DirectoryPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339312E5DA350029EF25 /* DirectoryPanel.xib */; }; CE05339B12E5DA350029EF25 /* DirectoryPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339312E5DA350029EF25 /* DirectoryPanel.xib */; };
CE05339C12E5DA350029EF25 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339512E5DA350029EF25 /* MainMenu.xib */; }; CE05339C12E5DA350029EF25 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339512E5DA350029EF25 /* MainMenu.xib */; };
CE05339D12E5DA350029EF25 /* ProblemDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339712E5DA350029EF25 /* ProblemDialog.xib */; }; CE05339D12E5DA350029EF25 /* ProblemDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339712E5DA350029EF25 /* ProblemDialog.xib */; };
@ -61,6 +50,17 @@
CE7501AC14C477B100E2A349 /* PySelectableList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE75019914C477B100E2A349 /* PySelectableList.m */; }; CE7501AC14C477B100E2A349 /* PySelectableList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE75019914C477B100E2A349 /* PySelectableList.m */; };
CE7501AD14C477B100E2A349 /* PyStatsLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE75019B14C477B100E2A349 /* PyStatsLabel.m */; }; CE7501AD14C477B100E2A349 /* PyStatsLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE75019B14C477B100E2A349 /* PyStatsLabel.m */; };
CE7501AE14C477B100E2A349 /* PyTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CE75019D14C477B100E2A349 /* PyTable.m */; }; CE7501AE14C477B100E2A349 /* PyTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CE75019D14C477B100E2A349 /* PyTable.m */; };
CE7857971511019400174D51 /* IgnoreListDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE7857951511019400174D51 /* IgnoreListDialog.xib */; };
CE78579B151101B000174D51 /* DirectoryPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339312E5DA350029EF25 /* DirectoryPanel.xib */; };
CE78579C151101B000174D51 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339512E5DA350029EF25 /* MainMenu.xib */; };
CE78579D151101B000174D51 /* ProblemDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339712E5DA350029EF25 /* ProblemDialog.xib */; };
CE7857A1151101C900174D51 /* ResultWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339912E5DA350029EF25 /* ResultWindow.xib */; };
CE7857A2151101C900174D51 /* DetailsPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE0533A312E5DA4D0029EF25 /* DetailsPanel.xib */; };
CE7857A3151101C900174D51 /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE0533A512E5DA4D0029EF25 /* Preferences.xib */; };
CE7857A6151101DD00174D51 /* ResultWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339912E5DA350029EF25 /* ResultWindow.xib */; };
CE7857A7151101DD00174D51 /* DetailsPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE0533A312E5DA4D0029EF25 /* DetailsPanel.xib */; };
CE7857AA1511021200174D51 /* PyIgnoreListDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE7857A91511021200174D51 /* PyIgnoreListDialog.m */; };
CE7857AD1511022A00174D51 /* IgnoreListDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE7857AC1511022A00174D51 /* IgnoreListDialog.m */; };
CE7AC9191119911200D02F6C /* progress.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE7AC9161119911200D02F6C /* progress.xib */; }; CE7AC9191119911200D02F6C /* progress.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE7AC9161119911200D02F6C /* progress.xib */; };
CE7D249D1423B0BD002E2297 /* HSPopUpList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE7D249A1423B0BD002E2297 /* HSPopUpList.m */; }; CE7D249D1423B0BD002E2297 /* HSPopUpList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE7D249A1423B0BD002E2297 /* HSPopUpList.m */; };
CE7D249E1423B0BD002E2297 /* HSSelectableList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE7D249C1423B0BD002E2297 /* HSSelectableList.m */; }; CE7D249E1423B0BD002E2297 /* HSSelectableList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE7D249C1423B0BD002E2297 /* HSSelectableList.m */; };
@ -215,6 +215,19 @@
CE75019B14C477B100E2A349 /* PyStatsLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyStatsLabel.m; sourceTree = "<group>"; }; CE75019B14C477B100E2A349 /* PyStatsLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyStatsLabel.m; sourceTree = "<group>"; };
CE75019C14C477B100E2A349 /* PyTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyTable.h; sourceTree = "<group>"; }; CE75019C14C477B100E2A349 /* PyTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyTable.h; sourceTree = "<group>"; };
CE75019D14C477B100E2A349 /* PyTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyTable.m; sourceTree = "<group>"; }; CE75019D14C477B100E2A349 /* PyTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyTable.m; sourceTree = "<group>"; };
CE7857961511019400174D51 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
CE785798151101B000174D51 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
CE785799151101B000174D51 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
CE78579A151101B000174D51 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
CE78579E151101C900174D51 /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
CE78579F151101C900174D51 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
CE7857A0151101C900174D51 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
CE7857A4151101DD00174D51 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
CE7857A5151101DD00174D51 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
CE7857A81511021200174D51 /* PyIgnoreListDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyIgnoreListDialog.h; sourceTree = "<group>"; };
CE7857A91511021200174D51 /* PyIgnoreListDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyIgnoreListDialog.m; sourceTree = "<group>"; };
CE7857AB1511022A00174D51 /* IgnoreListDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IgnoreListDialog.h; path = ../base/IgnoreListDialog.h; sourceTree = "<group>"; };
CE7857AC1511022A00174D51 /* IgnoreListDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = IgnoreListDialog.m; path = ../base/IgnoreListDialog.m; sourceTree = "<group>"; };
CE78759D13CDFA7100F23771 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/DirectoryPanel.xib; sourceTree = SOURCE_ROOT; }; CE78759D13CDFA7100F23771 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/DirectoryPanel.xib; sourceTree = SOURCE_ROOT; };
CE78759F13CDFA7100F23771 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; }; CE78759F13CDFA7100F23771 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; };
CE7875A013CDFA7100F23771 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/ProblemDialog.xib; sourceTree = SOURCE_ROOT; }; CE7875A013CDFA7100F23771 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/ProblemDialog.xib; sourceTree = SOURCE_ROOT; };
@ -441,6 +454,7 @@
CE05339312E5DA350029EF25 /* DirectoryPanel.xib */, CE05339312E5DA350029EF25 /* DirectoryPanel.xib */,
CE05339512E5DA350029EF25 /* MainMenu.xib */, CE05339512E5DA350029EF25 /* MainMenu.xib */,
CE05339712E5DA350029EF25 /* ProblemDialog.xib */, CE05339712E5DA350029EF25 /* ProblemDialog.xib */,
CE7857951511019400174D51 /* IgnoreListDialog.xib */,
CE05339912E5DA350029EF25 /* ResultWindow.xib */, CE05339912E5DA350029EF25 /* ResultWindow.xib */,
CE0533A312E5DA4D0029EF25 /* DetailsPanel.xib */, CE0533A312E5DA4D0029EF25 /* DetailsPanel.xib */,
CE0533A512E5DA4D0029EF25 /* Preferences.xib */, CE0533A512E5DA4D0029EF25 /* Preferences.xib */,
@ -475,6 +489,8 @@
CE75019214C477B100E2A349 /* PyPrioritizeList.h */, CE75019214C477B100E2A349 /* PyPrioritizeList.h */,
CE75019314C477B100E2A349 /* PyPrioritizeList.m */, CE75019314C477B100E2A349 /* PyPrioritizeList.m */,
CE75019414C477B100E2A349 /* PyProblemDialog.h */, CE75019414C477B100E2A349 /* PyProblemDialog.h */,
CE7857A81511021200174D51 /* PyIgnoreListDialog.h */,
CE7857A91511021200174D51 /* PyIgnoreListDialog.m */,
CE75019514C477B100E2A349 /* PyProblemDialog.m */, CE75019514C477B100E2A349 /* PyProblemDialog.m */,
CE75019614C477B100E2A349 /* PyResultTable.h */, CE75019614C477B100E2A349 /* PyResultTable.h */,
CE75019714C477B100E2A349 /* PyResultTable.m */, CE75019714C477B100E2A349 /* PyResultTable.m */,
@ -549,6 +565,8 @@
CE9EA7701122CA0B008CD2BC /* DirectoryOutline.m */, CE9EA7701122CA0B008CD2BC /* DirectoryOutline.m */,
CE0C2ABA1177014200BC749F /* ProblemDialog.h */, CE0C2ABA1177014200BC749F /* ProblemDialog.h */,
CE0C2ABB1177014200BC749F /* ProblemDialog.m */, CE0C2ABB1177014200BC749F /* ProblemDialog.m */,
CE7857AB1511022A00174D51 /* IgnoreListDialog.h */,
CE7857AC1511022A00174D51 /* IgnoreListDialog.m */,
CE80DB880FC1951C0086DCA6 /* ResultWindow.h */, CE80DB880FC1951C0086DCA6 /* ResultWindow.h */,
CE80DB890FC1951C0086DCA6 /* ResultWindow.m */, CE80DB890FC1951C0086DCA6 /* ResultWindow.m */,
CE95865C112C516400F95FD2 /* StatsLabel.h */, CE95865C112C516400F95FD2 /* StatsLabel.h */,
@ -634,7 +652,7 @@
29B97313FDCFA39411CA2CEA /* Project object */ = { 29B97313FDCFA39411CA2CEA /* Project object */ = {
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
LastUpgradeCheck = 0420; LastUpgradeCheck = 0430;
}; };
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "dupeguru" */; buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "dupeguru" */;
compatibilityVersion = "Xcode 3.2"; compatibilityVersion = "Xcode 3.2";
@ -688,17 +706,15 @@
CE63D9D31461EDC000A8CADD /* locale in Resources */, CE63D9D31461EDC000A8CADD /* locale in Resources */,
CE75017514C4771800E2A349 /* py in Resources */, CE75017514C4771800E2A349 /* py in Resources */,
CE75017714C4772100E2A349 /* dg_cocoa.py in Resources */, CE75017714C4772100E2A349 /* dg_cocoa.py in Resources */,
CE03DD6C14FBD31300E998AC /* MainMenu.xib in Resources */, CE7857971511019400174D51 /* IgnoreListDialog.xib in Resources */,
CE03DD6D14FBD31300E998AC /* ProblemDialog.xib in Resources */, CE78579B151101B000174D51 /* DirectoryPanel.xib in Resources */,
CE03DD6E14FBD31300E998AC /* ResultWindow.xib in Resources */, CE78579C151101B000174D51 /* MainMenu.xib in Resources */,
CE03DD6F14FBD31300E998AC /* DetailsPanel.xib in Resources */, CE78579D151101B000174D51 /* ProblemDialog.xib in Resources */,
CE03DD7014FBD31300E998AC /* Preferences.xib in Resources */, CE7857A1151101C900174D51 /* ResultWindow.xib in Resources */,
CE03DD7414FBD33600E998AC /* Preferences.xib in Resources */, CE7857A2151101C900174D51 /* DetailsPanel.xib in Resources */,
CE03DD7514FBD33600E998AC /* PrioritizeDialog.xib in Resources */, CE7857A3151101C900174D51 /* Preferences.xib in Resources */,
CE03DD7714FBD34600E998AC /* dsa_pub.pem in Resources */, CE7857A6151101DD00174D51 /* ResultWindow.xib in Resources */,
CE03DD7B14FBD36600E998AC /* about.xib in Resources */, CE7857A7151101DD00174D51 /* DetailsPanel.xib in Resources */,
CE03DD7C14FBD36600E998AC /* ErrorReportWindow.xib in Resources */,
CE03DD7D14FBD36600E998AC /* FairwareReminder.xib in Resources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@ -761,6 +777,8 @@
CE7501AC14C477B100E2A349 /* PySelectableList.m in Sources */, CE7501AC14C477B100E2A349 /* PySelectableList.m in Sources */,
CE7501AD14C477B100E2A349 /* PyStatsLabel.m in Sources */, CE7501AD14C477B100E2A349 /* PyStatsLabel.m in Sources */,
CE7501AE14C477B100E2A349 /* PyTable.m in Sources */, CE7501AE14C477B100E2A349 /* PyTable.m in Sources */,
CE7857AA1511021200174D51 /* PyIgnoreListDialog.m in Sources */,
CE7857AD1511022A00174D51 /* IgnoreListDialog.m in Sources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@ -896,6 +914,22 @@
path = ../../cocoalib/xib; path = ../../cocoalib/xib;
sourceTree = SOURCE_ROOT; sourceTree = SOURCE_ROOT;
}; };
CE7857951511019400174D51 /* IgnoreListDialog.xib */ = {
isa = PBXVariantGroup;
children = (
CE7857961511019400174D51 /* en */,
CE785798151101B000174D51 /* cs */,
CE785799151101B000174D51 /* de */,
CE78579A151101B000174D51 /* fr */,
CE78579E151101C900174D51 /* hy */,
CE78579F151101C900174D51 /* it */,
CE7857A0151101C900174D51 /* ru */,
CE7857A4151101DD00174D51 /* uk */,
CE7857A5151101DD00174D51 /* zh_CN */,
);
name = IgnoreListDialog.xib;
sourceTree = "<group>";
};
CE7D24A71423B123002E2297 /* PrioritizeDialog.xib */ = { CE7D24A71423B123002E2297 /* PrioritizeDialog.xib */ = {
isa = PBXVariantGroup; isa = PBXVariantGroup;
children = ( children = (

View File

@ -14,6 +14,7 @@ from inter.directory_outline import PyDirectoryOutline
from inter.prioritize_dialog import PyPrioritizeDialog from inter.prioritize_dialog import PyPrioritizeDialog
from inter.prioritize_list import PyPrioritizeList from inter.prioritize_list import PyPrioritizeList
from inter.problem_dialog import PyProblemDialog from inter.problem_dialog import PyProblemDialog
from inter.ignore_list_dialog import PyIgnoreListDialog
from inter.result_table import PyResultTable from inter.result_table import PyResultTable
from inter.stats_label import PyStatsLabel from inter.stats_label import PyStatsLabel
from inter.app_se import PyDupeGuru from inter.app_se import PyDupeGuru

View File

@ -9,6 +9,10 @@
/* Begin PBXBuildFile section */ /* Begin PBXBuildFile section */
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
CE073F6309CAE1A3005C1D2F /* help in Resources */ = {isa = PBXBuildFile; fileRef = CE073F5409CAE1A3005C1D2F /* help */; }; CE073F6309CAE1A3005C1D2F /* help in Resources */ = {isa = PBXBuildFile; fileRef = CE073F5409CAE1A3005C1D2F /* help */; };
CE148035151100EC00CD5DAD /* ResultWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134A12E5CE4D00A36C80 /* ResultWindow.xib */; };
CE148038151100FB00CD5DAD /* ResultWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134A12E5CE4D00A36C80 /* ResultWindow.xib */; };
CE14803A1511010500CD5DAD /* ResultWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134A12E5CE4D00A36C80 /* ResultWindow.xib */; };
CE14803C1511011000CD5DAD /* ResultWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134A12E5CE4D00A36C80 /* ResultWindow.xib */; };
CE18004D14BDD837001B6329 /* Python in Frameworks */ = {isa = PBXBuildFile; fileRef = CE18004C14BDD837001B6329 /* Python */; }; CE18004D14BDD837001B6329 /* Python in Frameworks */ = {isa = PBXBuildFile; fileRef = CE18004C14BDD837001B6329 /* Python */; };
CE18004F14BDD854001B6329 /* Python in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE18004C14BDD837001B6329 /* Python */; }; CE18004F14BDD854001B6329 /* Python in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE18004C14BDD837001B6329 /* Python */; };
CE18005114BDD87B001B6329 /* py in Resources */ = {isa = PBXBuildFile; fileRef = CE18005014BDD87B001B6329 /* py */; }; CE18005114BDD87B001B6329 /* py in Resources */ = {isa = PBXBuildFile; fileRef = CE18005014BDD87B001B6329 /* py */; };
@ -20,9 +24,16 @@
CE27D3C412CCA43800859E67 /* HSAboutBox.m in Sources */ = {isa = PBXBuildFile; fileRef = CE27D3C312CCA43800859E67 /* HSAboutBox.m */; }; CE27D3C412CCA43800859E67 /* HSAboutBox.m in Sources */ = {isa = PBXBuildFile; fileRef = CE27D3C312CCA43800859E67 /* HSAboutBox.m */; };
CE31819D13D85D9B00B6D649 /* about.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE31819913D85D9B00B6D649 /* about.xib */; }; CE31819D13D85D9B00B6D649 /* about.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE31819913D85D9B00B6D649 /* about.xib */; };
CE31819E13D85D9B00B6D649 /* ErrorReportWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE31819B13D85D9B00B6D649 /* ErrorReportWindow.xib */; }; CE31819E13D85D9B00B6D649 /* ErrorReportWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE31819B13D85D9B00B6D649 /* ErrorReportWindow.xib */; };
CE3491E3151100A40030B64C /* ResultWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134A12E5CE4D00A36C80 /* ResultWindow.xib */; };
CE3491E6151100AD0030B64C /* ResultWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134A12E5CE4D00A36C80 /* ResultWindow.xib */; };
CE3491E9151100BB0030B64C /* ResultWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134A12E5CE4D00A36C80 /* ResultWindow.xib */; };
CE3491EA151100BB0030B64C /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81135612E5CE6D00A36C80 /* Preferences.xib */; };
CE381C9609914ACE003581CE /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = CE381C9409914ACE003581CE /* AppDelegate.m */; }; CE381C9609914ACE003581CE /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = CE381C9409914ACE003581CE /* AppDelegate.m */; };
CE381C9C09914ADF003581CE /* ResultWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = CE381C9A09914ADF003581CE /* ResultWindow.m */; }; CE381C9C09914ADF003581CE /* ResultWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = CE381C9A09914ADF003581CE /* ResultWindow.m */; };
CE3A3B4914BF19B8007898AB /* PyDetailsPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE3A3B4814BF19B8007898AB /* PyDetailsPanel.m */; }; CE3A3B4914BF19B8007898AB /* PyDetailsPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE3A3B4814BF19B8007898AB /* PyDetailsPanel.m */; };
CE412C0D1510ECAA00484122 /* PyIgnoreListDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE412C0C1510ECAA00484122 /* PyIgnoreListDialog.m */; };
CE412C111510ECCA00484122 /* IgnoreListDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE412C0F1510ECCA00484122 /* IgnoreListDialog.xib */; };
CE412C141510ED2E00484122 /* IgnoreListDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE412C131510ED2E00484122 /* IgnoreListDialog.m */; };
CE45579B0AE3BC2B005A9546 /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE45579A0AE3BC2B005A9546 /* Sparkle.framework */; }; CE45579B0AE3BC2B005A9546 /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE45579A0AE3BC2B005A9546 /* Sparkle.framework */; };
CE4557B40AE3BC50005A9546 /* Sparkle.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE45579A0AE3BC2B005A9546 /* Sparkle.framework */; }; CE4557B40AE3BC50005A9546 /* Sparkle.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE45579A0AE3BC2B005A9546 /* Sparkle.framework */; };
CE4746D314C09C12001A66DE /* PyProblemDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE4746D214C09C12001A66DE /* PyProblemDialog.m */; }; CE4746D314C09C12001A66DE /* PyProblemDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE4746D214C09C12001A66DE /* PyProblemDialog.m */; };
@ -129,6 +140,10 @@
CE112F5F145EF28D009C9E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../cs.lproj/about.xib; sourceTree = "<group>"; }; CE112F5F145EF28D009C9E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../cs.lproj/about.xib; sourceTree = "<group>"; };
CE112F60145EF28D009C9E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../cs.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; }; CE112F60145EF28D009C9E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../cs.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
CE112F61145EF28D009C9E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../cs.lproj/FairwareReminder.xib; sourceTree = "<group>"; }; CE112F61145EF28D009C9E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../cs.lproj/FairwareReminder.xib; sourceTree = "<group>"; };
CE148034151100EC00CD5DAD /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
CE148037151100FB00CD5DAD /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
CE1480391511010500CD5DAD /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
CE14803B1511011000CD5DAD /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
CE18004C14BDD837001B6329 /* Python */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = Python; path = ../../build/Python; sourceTree = "<group>"; }; CE18004C14BDD837001B6329 /* Python */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = Python; path = ../../build/Python; sourceTree = "<group>"; };
CE18005014BDD87B001B6329 /* py */ = {isa = PBXFileReference; lastKnownFileType = folder; name = py; path = ../../build/py; sourceTree = "<group>"; }; CE18005014BDD87B001B6329 /* py */ = {isa = PBXFileReference; lastKnownFileType = folder; name = py; path = ../../build/py; sourceTree = "<group>"; };
CE19BC6111199231007CCEB0 /* progress.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = progress.xib; sourceTree = "<group>"; }; CE19BC6111199231007CCEB0 /* progress.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = progress.xib; sourceTree = "<group>"; };
@ -149,12 +164,21 @@
CE3181A313D85DB700B6D649 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../de.lproj/about.xib; sourceTree = "<group>"; }; CE3181A313D85DB700B6D649 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../de.lproj/about.xib; sourceTree = "<group>"; };
CE3181A413D85DB700B6D649 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../de.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; }; CE3181A413D85DB700B6D649 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../de.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
CE3181A513D85DB700B6D649 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../de.lproj/FairwareReminder.xib; sourceTree = "<group>"; }; CE3181A513D85DB700B6D649 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../de.lproj/FairwareReminder.xib; sourceTree = "<group>"; };
CE3491E2151100A40030B64C /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
CE3491E5151100AD0030B64C /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
CE3491E7151100BB0030B64C /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
CE3491E8151100BB0030B64C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
CE381C9409914ACE003581CE /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = SOURCE_ROOT; }; CE381C9409914ACE003581CE /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = SOURCE_ROOT; };
CE381C9509914ACE003581CE /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = SOURCE_ROOT; }; CE381C9509914ACE003581CE /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = SOURCE_ROOT; };
CE381C9A09914ADF003581CE /* ResultWindow.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = ResultWindow.m; sourceTree = SOURCE_ROOT; }; CE381C9A09914ADF003581CE /* ResultWindow.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = ResultWindow.m; sourceTree = SOURCE_ROOT; };
CE381C9B09914ADF003581CE /* ResultWindow.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = ResultWindow.h; sourceTree = SOURCE_ROOT; }; CE381C9B09914ADF003581CE /* ResultWindow.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = ResultWindow.h; sourceTree = SOURCE_ROOT; };
CE3A3B4714BF19B8007898AB /* PyDetailsPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDetailsPanel.h; sourceTree = "<group>"; }; CE3A3B4714BF19B8007898AB /* PyDetailsPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDetailsPanel.h; sourceTree = "<group>"; };
CE3A3B4814BF19B8007898AB /* PyDetailsPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDetailsPanel.m; sourceTree = "<group>"; }; CE3A3B4814BF19B8007898AB /* PyDetailsPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDetailsPanel.m; sourceTree = "<group>"; };
CE412C0B1510ECAA00484122 /* PyIgnoreListDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyIgnoreListDialog.h; sourceTree = "<group>"; };
CE412C0C1510ECAA00484122 /* PyIgnoreListDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyIgnoreListDialog.m; sourceTree = "<group>"; };
CE412C101510ECCA00484122 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
CE412C121510ED2E00484122 /* IgnoreListDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IgnoreListDialog.h; path = ../base/IgnoreListDialog.h; sourceTree = "<group>"; };
CE412C131510ED2E00484122 /* IgnoreListDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = IgnoreListDialog.m; path = ../base/IgnoreListDialog.m; sourceTree = "<group>"; };
CE45579A0AE3BC2B005A9546 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sparkle.framework; path = /Library/Frameworks/Sparkle.framework; sourceTree = "<absolute>"; }; CE45579A0AE3BC2B005A9546 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sparkle.framework; path = /Library/Frameworks/Sparkle.framework; sourceTree = "<absolute>"; };
CE4746D114C09C12001A66DE /* PyProblemDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyProblemDialog.h; sourceTree = "<group>"; }; CE4746D114C09C12001A66DE /* PyProblemDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyProblemDialog.h; sourceTree = "<group>"; };
CE4746D214C09C12001A66DE /* PyProblemDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyProblemDialog.m; sourceTree = "<group>"; }; CE4746D214C09C12001A66DE /* PyProblemDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyProblemDialog.m; sourceTree = "<group>"; };
@ -443,6 +467,8 @@
CE548CC514BF903D00D180CB /* PyPrioritizeList.m */, CE548CC514BF903D00D180CB /* PyPrioritizeList.m */,
CE4746D114C09C12001A66DE /* PyProblemDialog.h */, CE4746D114C09C12001A66DE /* PyProblemDialog.h */,
CE4746D214C09C12001A66DE /* PyProblemDialog.m */, CE4746D214C09C12001A66DE /* PyProblemDialog.m */,
CE412C0B1510ECAA00484122 /* PyIgnoreListDialog.h */,
CE412C0C1510ECAA00484122 /* PyIgnoreListDialog.m */,
CE9FC23114C0866F005C31FD /* PyResultTable.h */, CE9FC23114C0866F005C31FD /* PyResultTable.h */,
CE9FC23214C0866F005C31FD /* PyResultTable.m */, CE9FC23214C0866F005C31FD /* PyResultTable.m */,
CE1D091614BE0C6400CA6B8C /* PyStatsLabel.h */, CE1D091614BE0C6400CA6B8C /* PyStatsLabel.h */,
@ -503,6 +529,7 @@
CE81134412E5CE4D00A36C80 /* DirectoryPanel.xib */, CE81134412E5CE4D00A36C80 /* DirectoryPanel.xib */,
CE81134612E5CE4D00A36C80 /* MainMenu.xib */, CE81134612E5CE4D00A36C80 /* MainMenu.xib */,
CE81134812E5CE4D00A36C80 /* ProblemDialog.xib */, CE81134812E5CE4D00A36C80 /* ProblemDialog.xib */,
CE412C0F1510ECCA00484122 /* IgnoreListDialog.xib */,
CE81134A12E5CE4D00A36C80 /* ResultWindow.xib */, CE81134A12E5CE4D00A36C80 /* ResultWindow.xib */,
CE81135612E5CE6D00A36C80 /* Preferences.xib */, CE81135612E5CE6D00A36C80 /* Preferences.xib */,
CE9777CF141F8CB400C13FB5 /* PrioritizeDialog.xib */, CE9777CF141F8CB400C13FB5 /* PrioritizeDialog.xib */,
@ -568,6 +595,8 @@
CEFC7FB80FC951A700CD5728 /* ResultWindow.m */, CEFC7FB80FC951A700CD5728 /* ResultWindow.m */,
CE647E541173024A006D28BA /* ProblemDialog.h */, CE647E541173024A006D28BA /* ProblemDialog.h */,
CE647E551173024A006D28BA /* ProblemDialog.m */, CE647E551173024A006D28BA /* ProblemDialog.m */,
CE412C121510ED2E00484122 /* IgnoreListDialog.h */,
CE412C131510ED2E00484122 /* IgnoreListDialog.m */,
CE9777CB141F8C2500C13FB5 /* PrioritizeDialog.h */, CE9777CB141F8C2500C13FB5 /* PrioritizeDialog.h */,
CE9777CC141F8C2500C13FB5 /* PrioritizeDialog.m */, CE9777CC141F8C2500C13FB5 /* PrioritizeDialog.m */,
CE89240614239CC30024CE4E /* PrioritizeList.h */, CE89240614239CC30024CE4E /* PrioritizeList.h */,
@ -660,6 +689,15 @@
CEA175CA1461E8E600776591 /* locale in Resources */, CEA175CA1461E8E600776591 /* locale in Resources */,
CE18005114BDD87B001B6329 /* py in Resources */, CE18005114BDD87B001B6329 /* py in Resources */,
CEA450B814BDDFD7002DAAF2 /* dg_cocoa.py in Resources */, CEA450B814BDDFD7002DAAF2 /* dg_cocoa.py in Resources */,
CE412C111510ECCA00484122 /* IgnoreListDialog.xib in Resources */,
CE3491E3151100A40030B64C /* ResultWindow.xib in Resources */,
CE3491E6151100AD0030B64C /* ResultWindow.xib in Resources */,
CE3491E9151100BB0030B64C /* ResultWindow.xib in Resources */,
CE3491EA151100BB0030B64C /* Preferences.xib in Resources */,
CE148035151100EC00CD5DAD /* ResultWindow.xib in Resources */,
CE148038151100FB00CD5DAD /* ResultWindow.xib in Resources */,
CE14803A1511010500CD5DAD /* ResultWindow.xib in Resources */,
CE14803C1511011000CD5DAD /* ResultWindow.xib in Resources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@ -718,6 +756,8 @@
CEEF2A4014C0B9050082545A /* HSSelectableList.m in Sources */, CEEF2A4014C0B9050082545A /* HSSelectableList.m in Sources */,
CEEF2A4114C0B9050082545A /* HSTable.m in Sources */, CEEF2A4114C0B9050082545A /* HSTable.m in Sources */,
CEB2AF5614C49AC800F907A9 /* main.m in Sources */, CEB2AF5614C49AC800F907A9 /* main.m in Sources */,
CE412C0D1510ECAA00484122 /* PyIgnoreListDialog.m in Sources */,
CE412C141510ED2E00484122 /* IgnoreListDialog.m in Sources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@ -756,6 +796,22 @@
name = ErrorReportWindow.xib; name = ErrorReportWindow.xib;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
CE412C0F1510ECCA00484122 /* IgnoreListDialog.xib */ = {
isa = PBXVariantGroup;
children = (
CE412C101510ECCA00484122 /* en */,
CE3491E2151100A40030B64C /* cs */,
CE3491E5151100AD0030B64C /* de */,
CE3491E7151100BB0030B64C /* fr */,
CE3491E8151100BB0030B64C /* hy */,
CE148034151100EC00CD5DAD /* it */,
CE148037151100FB00CD5DAD /* ru */,
CE1480391511010500CD5DAD /* uk */,
CE14803B1511011000CD5DAD /* zh_CN */,
);
name = IgnoreListDialog.xib;
sourceTree = "<group>";
};
CE79638412536C94008D405B /* FairwareReminder.xib */ = { CE79638412536C94008D405B /* FairwareReminder.xib */ = {
isa = PBXVariantGroup; isa = PBXVariantGroup;
children = ( children = (

View File

@ -26,6 +26,7 @@ from hscommon.trans import tr
from . import directories, results, scanner, export, fs from . import directories, results, scanner, export, fs
from .gui.details_panel import DetailsPanel from .gui.details_panel import DetailsPanel
from .gui.directory_tree import DirectoryTree from .gui.directory_tree import DirectoryTree
from .gui.ignore_list_dialog import IgnoreListDialog
from .gui.problem_dialog import ProblemDialog from .gui.problem_dialog import ProblemDialog
from .gui.stats_label import StatsLabel from .gui.stats_label import StatsLabel
@ -114,12 +115,12 @@ class DupeGuru(RegistrableApplication, Broadcaster):
self.details_panel = DetailsPanel(self) self.details_panel = DetailsPanel(self)
self.directory_tree = DirectoryTree(self) self.directory_tree = DirectoryTree(self)
self.problem_dialog = ProblemDialog(self) self.problem_dialog = ProblemDialog(self)
self.ignore_list_dialog = IgnoreListDialog(self)
self.stats_label = StatsLabel(self) self.stats_label = StatsLabel(self)
self.result_table = self._create_result_table() self.result_table = self._create_result_table()
children = [self.result_table, self.directory_tree, self.stats_label, self.details_panel] children = [self.result_table, self.directory_tree, self.stats_label, self.details_panel]
for child in children: for child in children:
child.connect() child.connect()
# subclasses must create and connect self.result_table
#--- Virtual #--- Virtual
def _get_display_info(self, dupe, group, delta): def _get_display_info(self, dupe, group, delta):
@ -257,6 +258,7 @@ class DupeGuru(RegistrableApplication, Broadcaster):
if other is not dupe: if other is not dupe:
self.scanner.ignore_list.Ignore(str(other.path), str(dupe.path)) self.scanner.ignore_list.Ignore(str(other.path), str(dupe.path))
self.remove_duplicates(dupes) self.remove_duplicates(dupes)
self.ignore_list_dialog.refresh()
def apply_filter(self, filter): def apply_filter(self, filter):
self.results.apply_filter(None) self.results.apply_filter(None)
@ -271,16 +273,6 @@ class DupeGuru(RegistrableApplication, Broadcaster):
while delete_if_empty(path, ['.DS_Store']): while delete_if_empty(path, ['.DS_Store']):
path = path[:-1] path = path[:-1]
def clear_ignore_list(self):
if not self.scanner.ignore_list:
msg = tr("The ignore list is already empty. Nothing to clear.")
self.view.show_message(msg)
return
msg = tr("Do you really want to remove all %d items from the ignore list?") % len(self.scanner.ignore_list)
if self.view.ask_yes_no(msg):
self.scanner.ignore_list.Clear()
self.view.show_message(tr("Ignore list cleared."))
def copy_or_move(self, dupe, copy: bool, destination: str, dest_type: DestType): def copy_or_move(self, dupe, copy: bool, destination: str, dest_type: DestType):
source_path = dupe.path source_path = dupe.path
location_path = first(p for p in self.directories if dupe.path in p) location_path = first(p for p in self.directories if dupe.path in p)
@ -398,6 +390,7 @@ class DupeGuru(RegistrableApplication, Broadcaster):
self.notify('directories_changed') self.notify('directories_changed')
p = op.join(self.appdata, 'ignore_list.xml') p = op.join(self.appdata, 'ignore_list.xml')
self.scanner.ignore_list.load_from_xml(p) self.scanner.ignore_list.load_from_xml(p)
self.ignore_list_dialog.refresh()
def load_from(self, filename): def load_from(self, filename):
def do(j): def do(j):
@ -439,6 +432,7 @@ class DupeGuru(RegistrableApplication, Broadcaster):
def purge_ignore_list(self): def purge_ignore_list(self):
self.scanner.ignore_list.Filter(lambda f,s:op.exists(f) and op.exists(s)) self.scanner.ignore_list.Filter(lambda f,s:op.exists(f) and op.exists(s))
self.ignore_list_dialog.refresh()
def remove_directories(self, indexes): def remove_directories(self, indexes):
try: try:

View File

@ -0,0 +1,39 @@
# Created On: 2012/03/13
# Copyright 2012 Hardcoded Software (http://www.hardcoded.net)
#
# This software is licensed under the "BSD" License as described in the "LICENSE" file,
# which should be included with this package. The terms are also available at
# http://www.hardcoded.net/licenses/bsd_license
from hscommon.trans import tr
from .ignore_list_table import IgnoreListTable
class IgnoreListDialog:
#--- View interface
# show()
#
def __init__(self, app):
self.app = app
self.ignore_list = self.app.scanner.ignore_list
self.ignore_list_table = IgnoreListTable(self)
def clear(self):
if not self.ignore_list:
return
msg = tr("Do you really want to remove all %d items from the ignore list?") % len(self.ignore_list)
if self.app.view.ask_yes_no(msg):
self.ignore_list.Clear()
self.refresh()
def refresh(self):
self.ignore_list_table.refresh()
def remove_selected(self):
for row in self.ignore_list_table.selected_rows:
self.ignore_list.remove(row.path1_original, row.path2_original)
self.refresh()
def show(self):
self.view.show()

View File

@ -0,0 +1,41 @@
# Created By: Virgil Dupras
# Created On: 2012-03-13
# Copyright 2012 Hardcoded Software (http://www.hardcoded.net)
#
# This software is licensed under the "BSD" License as described in the "LICENSE" file,
# which should be included with this package. The terms are also available at
# http://www.hardcoded.net/licenses/bsd_license
from hscommon.gui.table import GUITable, Row
from hscommon.gui.column import Column, Columns
from hscommon.trans import trget
coltr = trget('columns')
class IgnoreListTable(GUITable):
COLUMNS = [
# the str concat below saves us needless localization.
Column('path1', coltr("File Path") + " 1"),
Column('path2', coltr("File Path") + " 2"),
]
def __init__(self, ignore_list_dialog):
GUITable.__init__(self)
self.columns = Columns(self)
self.view = None
self.dialog = ignore_list_dialog
#--- Override
def _fill(self):
for path1, path2 in self.dialog.ignore_list:
self.append(IgnoreListRow(self, path1, path2))
class IgnoreListRow(Row):
def __init__(self, table, path1, path2):
Row.__init__(self, table)
self.path1_original = path1
self.path2_original = path2
self.path1 = str(path1)
self.path2 = str(path2)

View File

@ -71,6 +71,25 @@ class IgnoreList:
self._ignored[first] = matches self._ignored[first] = matches
self._count += 1 self._count += 1
def remove(self, first, second):
def inner(first, second):
try:
matches = self._ignored[first]
if second in matches:
matches.discard(second)
if not matches:
del self._ignored[first]
self._count -= 1
return True
else:
return False
except KeyError:
return False
if not inner(first, second):
if not inner(second, first):
raise ValueError()
def load_from_xml(self, infile): def load_from_xml(self, infile):
"""Loads the ignore list from a XML created with save_to_xml. """Loads the ignore list from a XML created with save_to_xml.

View File

@ -152,6 +152,8 @@ class TestApp(TestAppBase):
link_gui(self.pdialog.category_list) link_gui(self.pdialog.category_list)
link_gui(self.pdialog.criteria_list) link_gui(self.pdialog.criteria_list)
link_gui(self.pdialog.prioritization_list) link_gui(self.pdialog.prioritization_list)
link_gui(self.app.ignore_list_dialog)
link_gui(self.app.ignore_list_dialog.ignore_list_table)
#--- Helpers #--- Helpers
def select_pri_criterion(self, name): def select_pri_criterion(self, name):

View File

@ -9,6 +9,7 @@
import io import io
from xml.etree import ElementTree as ET from xml.etree import ElementTree as ET
from pytest import raises
from hscommon.testutil import eq_ from hscommon.testutil import eq_
from ..ignore import * from ..ignore import *
@ -147,3 +148,18 @@ def test_nonzero():
assert not il assert not il
il.Ignore('foo','bar') il.Ignore('foo','bar')
assert il assert il
def test_remove():
il = IgnoreList()
il.Ignore('foo', 'bar')
il.Ignore('foo', 'baz')
il.remove('bar', 'foo')
eq_(len(il), 1)
assert not il.AreIgnored('foo', 'bar')
def test_remove_non_existant():
il = IgnoreList()
il.Ignore('foo', 'bar')
il.Ignore('foo', 'baz')
with raises(ValueError):
il.remove('foo', 'bleh')

View File

@ -3,11 +3,12 @@ msgid ""
msgstr "" msgstr ""
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
#: core/gui/problem_table.py:18 #: core/gui/ignore_list_table.py:18 core/gui/ignore_list_table.py:19
#: core/gui/problem_table.py:17
msgid "File Path" msgid "File Path"
msgstr "" msgstr ""
#: core/gui/problem_table.py:19 #: core/gui/problem_table.py:18
msgid "Error Message" msgid "Error Message"
msgstr "" msgstr ""

View File

@ -3,15 +3,15 @@ msgid ""
msgstr "" msgstr ""
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
#: core/app.py:35 #: core/app.py:36
msgid "There are no marked duplicates. Nothing has been done." msgid "There are no marked duplicates. Nothing has been done."
msgstr "" msgstr ""
#: core/app.py:36 #: core/app.py:37
msgid "There are no selected duplicates. Nothing has been done." msgid "There are no selected duplicates. Nothing has been done."
msgstr "" msgstr ""
#: core/app.py:93 #: core/app.py:94
msgid "will only be able to delete, move or copy 10 duplicates at once" msgid "will only be able to delete, move or copy 10 duplicates at once"
msgstr "" msgstr ""
@ -39,55 +39,43 @@ msgstr ""
msgid "All selected %d matches are going to be ignored in all subsequent scans. Continue?" msgid "All selected %d matches are going to be ignored in all subsequent scans. Continue?"
msgstr "" msgstr ""
#: core/app.py:277 #: core/app.py:312
msgid "The ignore list is already empty. Nothing to clear."
msgstr ""
#: core/app.py:280
msgid "Do you really want to remove all %d items from the ignore list?"
msgstr ""
#: core/app.py:283
msgid "Ignore list cleared."
msgstr ""
#: core/app.py:321
msgid "copy" msgid "copy"
msgstr "" msgstr ""
#: core/app.py:321 #: core/app.py:312
msgid "move" msgid "move"
msgstr "" msgstr ""
#: core/app.py:322 #: core/app.py:313
msgid "Select a directory to {} marked files to" msgid "Select a directory to {} marked files to"
msgstr "" msgstr ""
#: core/app.py:336 #: core/app.py:327
msgid "You are about to send %d files to Trash (and hardlink them afterwards). Continue?" msgid "You are about to send %d files to Trash (and hardlink them afterwards). Continue?"
msgstr "" msgstr ""
#: core/app.py:338 #: core/app.py:329
msgid "You are about to send %d files to Trash. Continue?" msgid "You are about to send %d files to Trash. Continue?"
msgstr "" msgstr ""
#: core/app.py:376 #: core/app.py:367
msgid "You have no custom command set up. Set it up in your preferences." msgid "You have no custom command set up. Set it up in your preferences."
msgstr "" msgstr ""
#: core/app.py:461 core/app.py:472 #: core/app.py:454 core/app.py:465
msgid "You are about to remove %d files from results. Continue?" msgid "You are about to remove %d files from results. Continue?"
msgstr "" msgstr ""
#: core/app.py:508 #: core/app.py:501
msgid "Collecting files to scan" msgid "Collecting files to scan"
msgstr "" msgstr ""
#: core/app.py:519 #: core/app.py:512
msgid "The selected directories contain no scannable file." msgid "The selected directories contain no scannable file."
msgstr "" msgstr ""
#: core/app.py:558 #: core/app.py:551
msgid "%s (%d discarded)" msgid "%s (%d discarded)"
msgstr "" msgstr ""
@ -107,6 +95,10 @@ msgstr ""
msgid "Grouped %d/%d matches" msgid "Grouped %d/%d matches"
msgstr "" msgstr ""
#: core/gui/ignore_list_dialog.py:24
msgid "Do you really want to remove all %d items from the ignore list?"
msgstr ""
#: core/prioritize.py:68 #: core/prioritize.py:68
msgid "None" msgid "None"
msgstr "" msgstr ""

View File

@ -100,10 +100,11 @@ msgstr "Velikost (KB)"
msgid "Dimensions" msgid "Dimensions"
msgstr "Rozměry" msgstr "Rozměry"
#: core/gui/problem_table.py:18 #: core/gui/ignore_list_table.py:18 core/gui/ignore_list_table.py:19
#: core/gui/problem_table.py:17
msgid "File Path" msgid "File Path"
msgstr "Cesta k souboru" msgstr "Cesta k souboru"
#: core/gui/problem_table.py:19 #: core/gui/problem_table.py:18
msgid "Error Message" msgid "Error Message"
msgstr "Chybové hlášení" msgstr "Chybové hlášení"

View File

@ -2,7 +2,7 @@
msgid "" msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n" msgstr "Content-Type: text/plain; charset=utf-8\n"
#: core/app.py:93 #: core/app.py:94
msgid "will only be able to delete, move or copy 10 duplicates at once" msgid "will only be able to delete, move or copy 10 duplicates at once"
msgstr "" msgstr ""
@ -12,15 +12,15 @@ msgid ""
"mode." "mode."
msgstr "" msgstr ""
#: core/app.py:508 #: core/app.py:501
msgid "Collecting files to scan" msgid "Collecting files to scan"
msgstr "Shromažďuji prohlížené soubory" msgstr "Shromažďuji prohlížené soubory"
#: core/app.py:519 #: core/app.py:512
msgid "The selected directories contain no scannable file." msgid "The selected directories contain no scannable file."
msgstr "Vybrané adresáře neobsahují žádné soubory vhodné k prohledávání." msgstr "Vybrané adresáře neobsahují žádné soubory vhodné k prohledávání."
#: core/app.py:558 #: core/app.py:551
msgid "%s (%d discarded)" msgid "%s (%d discarded)"
msgstr "%s (%d vyřazeno)" msgstr "%s (%d vyřazeno)"
@ -112,11 +112,11 @@ msgstr "Ověřeno %d/%d shod"
msgid "Read EXIF of %d/%d pictures" msgid "Read EXIF of %d/%d pictures"
msgstr "" msgstr ""
#: core/app.py:35 #: core/app.py:36
msgid "There are no marked duplicates. Nothing has been done." msgid "There are no marked duplicates. Nothing has been done."
msgstr "" msgstr ""
#: core/app.py:36 #: core/app.py:37
msgid "There are no selected duplicates. Nothing has been done." msgid "There are no selected duplicates. Nothing has been done."
msgstr "" msgstr ""
@ -144,40 +144,32 @@ msgstr ""
"Všech %d vybraných shod bude v následujících hledáních ignorováno. " "Všech %d vybraných shod bude v následujících hledáních ignorováno. "
"Pokračovat?" "Pokračovat?"
#: core/app.py:280 #: core/gui/ignore_list_dialog.py:24
msgid "Do you really want to remove all %d items from the ignore list?" msgid "Do you really want to remove all %d items from the ignore list?"
msgstr "Opravdu chcete odstranit všech %d položek ze seznamu výjimek?" msgstr "Opravdu chcete odstranit všech %d položek ze seznamu výjimek?"
#: core/app.py:283 #: core/app.py:367
msgid "Ignore list cleared."
msgstr ""
#: core/app.py:376
msgid "You have no custom command set up. Set it up in your preferences." msgid "You have no custom command set up. Set it up in your preferences."
msgstr "" msgstr ""
"Nedefinoval jste žádný uživatelský příkaz. Nadefinujete ho v předvolbách." "Nedefinoval jste žádný uživatelský příkaz. Nadefinujete ho v předvolbách."
#: core/app.py:461 core/app.py:472 #: core/app.py:454 core/app.py:465
msgid "You are about to remove %d files from results. Continue?" msgid "You are about to remove %d files from results. Continue?"
msgstr "Chystáte se z výsledků odstranit %d souborů. Pokračovat?" msgstr "Chystáte se z výsledků odstranit %d souborů. Pokračovat?"
#: core/app.py:277 #: core/app.py:312
msgid "The ignore list is already empty. Nothing to clear."
msgstr ""
#: core/app.py:321
msgid "copy" msgid "copy"
msgstr "" msgstr ""
#: core/app.py:321 #: core/app.py:312
msgid "move" msgid "move"
msgstr "" msgstr ""
#: core/app.py:322 #: core/app.py:313
msgid "Select a directory to {} marked files to" msgid "Select a directory to {} marked files to"
msgstr "" msgstr ""
#: core/app.py:336 #: core/app.py:327
msgid "" msgid ""
"You are about to send %d files to Trash (and hardlink them afterwards). " "You are about to send %d files to Trash (and hardlink them afterwards). "
"Continue?" "Continue?"
@ -185,6 +177,6 @@ msgstr ""
"Chystáte se vyhodit %d souborů do koše (a následně na ně vytvořit " "Chystáte se vyhodit %d souborů do koše (a následně na ně vytvořit "
"hardlinky). Pokračovat?" "hardlinky). Pokračovat?"
#: core/app.py:338 #: core/app.py:329
msgid "You are about to send %d files to Trash. Continue?" msgid "You are about to send %d files to Trash. Continue?"
msgstr "Chystáte se vyhodit %d souborů do koše. Pokračovat?" msgstr "Chystáte se vyhodit %d souborů do koše. Pokračovat?"

View File

@ -2,55 +2,55 @@
msgid "" msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n" msgstr "Content-Type: text/plain; charset=utf-8\n"
#: cocoa/inter/app.py:15 qt/base/app.py:38 #: cocoa/inter/app.py:15 qt/base/app.py:39
msgid "Scanning for duplicates" msgid "Scanning for duplicates"
msgstr "Vyhledávám duplicity" msgstr "Vyhledávám duplicity"
#: cocoa/inter/app.py:16 qt/base/app.py:39 #: cocoa/inter/app.py:16 qt/base/app.py:40
msgid "Loading" msgid "Loading"
msgstr "Nahrávám" msgstr "Nahrávám"
#: cocoa/inter/app.py:17 qt/base/app.py:40 #: cocoa/inter/app.py:17 qt/base/app.py:41
msgid "Moving" msgid "Moving"
msgstr "Přesouvám" msgstr "Přesouvám"
#: cocoa/inter/app.py:18 qt/base/app.py:41 #: cocoa/inter/app.py:18 qt/base/app.py:42
msgid "Copying" msgid "Copying"
msgstr "Kopíruji" msgstr "Kopíruji"
#: qt/base/app.py:42 #: qt/base/app.py:43
msgid "Sending files to the recycle bin" msgid "Sending files to the recycle bin"
msgstr "" msgstr ""
#: qt/base/app.py:108 #: qt/base/app.py:110
msgid "Quit" msgid "Quit"
msgstr "" msgstr ""
#: qt/base/app.py:109 qt/base/preferences_dialog.py:123 #: qt/base/app.py:111 qt/base/preferences_dialog.py:123
msgid "Preferences" msgid "Preferences"
msgstr "" msgstr ""
#: qt/base/app.py:110 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/app.py:113 cocoa/base/en.lproj/MainMenu.strings:0
msgid "dupeGuru Help" msgid "dupeGuru Help"
msgstr "Nápověda dupeGuru" msgstr "Nápověda dupeGuru"
#: qt/base/app.py:111 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/app.py:114 cocoa/base/en.lproj/MainMenu.strings:0
msgid "About dupeGuru" msgid "About dupeGuru"
msgstr "O aplikaci" msgstr "O aplikaci"
#: qt/base/app.py:112 #: qt/base/app.py:115
msgid "Register dupeGuru" msgid "Register dupeGuru"
msgstr "" msgstr ""
#: qt/base/app.py:113 #: qt/base/app.py:116
msgid "Check for Update" msgid "Check for Update"
msgstr "" msgstr ""
#: qt/base/app.py:114 #: qt/base/app.py:117
msgid "Open Debug Log" msgid "Open Debug Log"
msgstr "" msgstr ""
#: qt/base/app.py:226 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/app.py:232 cocoa/base/en.lproj/Localizable.strings:0
msgid "" msgid ""
"A previous action is still hanging in there. You can't start a new one yet. " "A previous action is still hanging in there. You can't start a new one yet. "
"Wait a few seconds, then try again." "Wait a few seconds, then try again."
@ -87,16 +87,16 @@ msgstr "Okno s výsledky"
msgid "Add Folder..." msgid "Add Folder..."
msgstr "" msgstr ""
#: qt/base/directories_dialog.py:67 qt/base/result_window.py:83 #: qt/base/directories_dialog.py:67 qt/base/result_window.py:82
#: cocoa/base/en.lproj/MainMenu.strings:0 #: cocoa/base/en.lproj/MainMenu.strings:0
msgid "File" msgid "File"
msgstr "Soubor" msgstr "Soubor"
#: qt/base/directories_dialog.py:69 qt/base/result_window.py:91 #: qt/base/directories_dialog.py:69 qt/base/result_window.py:90
msgid "View" msgid "View"
msgstr "" msgstr ""
#: qt/base/directories_dialog.py:71 qt/base/result_window.py:93 #: qt/base/directories_dialog.py:71 qt/base/result_window.py:92
#: cocoa/base/en.lproj/MainMenu.strings:0 #: cocoa/base/en.lproj/MainMenu.strings:0
msgid "Help" msgid "Help"
msgstr "Nápověda" msgstr "Nápověda"
@ -105,50 +105,50 @@ msgstr "Nápověda"
msgid "Load Recent Results" msgid "Load Recent Results"
msgstr "Nahrát nedávné výsledky" msgstr "Nahrát nedávné výsledky"
#: qt/base/directories_dialog.py:107 #: qt/base/directories_dialog.py:108
#: cocoa/base/en.lproj/DirectoryPanel.strings:0 #: cocoa/base/en.lproj/DirectoryPanel.strings:0
msgid "Select folders to scan and press \"Scan\"." msgid "Select folders to scan and press \"Scan\"."
msgstr "Vyberte složky, které chcete prohledat a stiskněte \"Prohledat\"." msgstr "Vyberte složky, které chcete prohledat a stiskněte \"Prohledat\"."
#: qt/base/directories_dialog.py:131 #: qt/base/directories_dialog.py:132
#: cocoa/base/en.lproj/DirectoryPanel.strings:0 #: cocoa/base/en.lproj/DirectoryPanel.strings:0
msgid "Load Results" msgid "Load Results"
msgstr "Nahrát výsledky" msgstr "Nahrát výsledky"
#: qt/base/directories_dialog.py:134 #: qt/base/directories_dialog.py:135
#: cocoa/base/en.lproj/DirectoryPanel.strings:0 #: cocoa/base/en.lproj/DirectoryPanel.strings:0
msgid "Scan" msgid "Scan"
msgstr "Prohledat" msgstr "Prohledat"
#: qt/base/directories_dialog.py:178 #: qt/base/directories_dialog.py:179
msgid "Unsaved results" msgid "Unsaved results"
msgstr "" msgstr ""
#: qt/base/directories_dialog.py:179 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/directories_dialog.py:180 cocoa/base/en.lproj/Localizable.strings:0
msgid "You have unsaved results, do you really want to quit?" msgid "You have unsaved results, do you really want to quit?"
msgstr "Máte neuložené výsledky, opravdu si přejete skončit?" msgstr "Máte neuložené výsledky, opravdu si přejete skončit?"
#: qt/base/directories_dialog.py:187 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/directories_dialog.py:188 cocoa/base/en.lproj/Localizable.strings:0
msgid "Select a folder to add to the scanning list" msgid "Select a folder to add to the scanning list"
msgstr "Vyberte složku, kterou chcete přidat do prohledávacího seznamu" msgstr "Vyberte složku, kterou chcete přidat do prohledávacího seznamu"
#: qt/base/directories_dialog.py:204 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/directories_dialog.py:205 cocoa/base/en.lproj/Localizable.strings:0
msgid "Select a results file to load" msgid "Select a results file to load"
msgstr "Vyberte soubor s výsledky, který chcete nahrát" msgstr "Vyberte soubor s výsledky, který chcete nahrát"
#: qt/base/directories_dialog.py:205 #: qt/base/directories_dialog.py:206
msgid "All Files (*.*)" msgid "All Files (*.*)"
msgstr "" msgstr ""
#: qt/base/directories_dialog.py:205 qt/base/result_window.py:305 #: qt/base/directories_dialog.py:206 qt/base/result_window.py:301
msgid "dupeGuru Results (*.dupeguru)" msgid "dupeGuru Results (*.dupeguru)"
msgstr "" msgstr ""
#: qt/base/directories_dialog.py:216 #: qt/base/directories_dialog.py:217
msgid "Start a new scan" msgid "Start a new scan"
msgstr "" msgstr ""
#: qt/base/directories_dialog.py:217 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/directories_dialog.py:218 cocoa/base/en.lproj/Localizable.strings:0
msgid "You have unsaved results, do you really want to continue?" msgid "You have unsaved results, do you really want to continue?"
msgstr "Máte neuložené výsledky, opravdu si přejete pokračovat?" msgstr "Máte neuložené výsledky, opravdu si přejete pokračovat?"
@ -255,18 +255,19 @@ msgstr "Problémy!"
msgid "Reveal Selected" msgid "Reveal Selected"
msgstr "Ukázat vybrané ve správci souborů" msgstr "Ukázat vybrané ve správci souborů"
#: qt/base/problem_dialog.py:57 cocoa/base/en.lproj/ProblemDialog.strings:0 #: qt/base/problem_dialog.py:57 cocoa/base/en.lproj/IgnoreListDialog.strings:0
#: cocoa/base/en.lproj/ProblemDialog.strings:0
msgid "Close" msgid "Close"
msgstr "Zavřít" msgstr "Zavřít"
#: qt/base/result_window.py:47 qt/base/result_window.py:178 #: qt/base/result_window.py:47 qt/base/result_window.py:177
#: qt/me/details_dialog.py:20 qt/pe/details_dialog.py:25 #: qt/me/details_dialog.py:20 qt/pe/details_dialog.py:25
#: qt/se/details_dialog.py:20 cocoa/base/en.lproj/ResultWindow.strings:0 #: qt/se/details_dialog.py:20 cocoa/base/en.lproj/ResultWindow.strings:0
msgid "Details" msgid "Details"
msgstr "Detaily" msgstr "Detaily"
#: qt/base/result_window.py:48 qt/base/result_window.py:87 #: qt/base/result_window.py:48 qt/base/result_window.py:86
#: qt/base/result_window.py:152 qt/base/result_window.py:177 #: qt/base/result_window.py:151 qt/base/result_window.py:176
#: cocoa/base/en.lproj/MainMenu.strings:0 #: cocoa/base/en.lproj/MainMenu.strings:0
msgid "Actions" msgid "Actions"
msgstr "Akce" msgstr "Akce"
@ -352,41 +353,37 @@ msgstr "Invertovat označení"
msgid "Mark Selected" msgid "Mark Selected"
msgstr "Označit vybrané" msgstr "Označit vybrané"
#: qt/base/result_window.py:67 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/result_window.py:67
msgid "Clear Ignore List"
msgstr "Vyčistit seznam výjimek"
#: qt/base/result_window.py:68
msgid "Export To HTML" msgid "Export To HTML"
msgstr "" msgstr ""
#: qt/base/result_window.py:69 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/result_window.py:68 cocoa/base/en.lproj/MainMenu.strings:0
msgid "Save Results..." msgid "Save Results..."
msgstr "Uložit výsledky..." msgstr "Uložit výsledky..."
#: qt/base/result_window.py:70 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/result_window.py:69 cocoa/base/en.lproj/MainMenu.strings:0
msgid "Invoke Custom Command" msgid "Invoke Custom Command"
msgstr "Spustit vlastní příkaz" msgstr "Spustit vlastní příkaz"
#: qt/base/result_window.py:85 #: qt/base/result_window.py:84
msgid "Mark" msgid "Mark"
msgstr "" msgstr ""
#: qt/base/result_window.py:89 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/result_window.py:88 cocoa/base/en.lproj/MainMenu.strings:0
msgid "Columns" msgid "Columns"
msgstr "Sloupce" msgstr "Sloupce"
#: qt/base/result_window.py:148 cocoa/se/en.lproj/Preferences.strings:0 #: qt/base/result_window.py:147 cocoa/se/en.lproj/Preferences.strings:0
#: cocoa/me/en.lproj/Preferences.strings:0 #: cocoa/me/en.lproj/Preferences.strings:0
#: cocoa/pe/en.lproj/Preferences.strings:0 #: cocoa/pe/en.lproj/Preferences.strings:0
msgid "Reset to Defaults" msgid "Reset to Defaults"
msgstr "Výchozí nastavení" msgstr "Výchozí nastavení"
#: qt/base/result_window.py:171 #: qt/base/result_window.py:170
msgid "{} Results" msgid "{} Results"
msgstr "" msgstr ""
#: qt/base/result_window.py:304 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/result_window.py:300 cocoa/base/en.lproj/Localizable.strings:0
msgid "Select a file to save your results to" msgid "Select a file to save your results to"
msgstr "Vyberte soubor pro uložení výsledků" msgstr "Vyberte soubor pro uložení výsledků"
@ -693,7 +690,7 @@ msgstr "Akce"
msgid "Directories" msgid "Directories"
msgstr "Adresáře" msgstr "Adresáře"
#: qt/base/result_window.py:179 cocoa/base/en.lproj/ResultWindow.strings:0 #: qt/base/result_window.py:178 cocoa/base/en.lproj/ResultWindow.strings:0
msgid "Dupes Only" msgid "Dupes Only"
msgstr "Jen duplicity" msgstr "Jen duplicity"
@ -846,7 +843,7 @@ msgstr ""
msgid "The iTunes application couldn't be found." msgid "The iTunes application couldn't be found."
msgstr "" msgstr ""
#: qt/base/result_window.py:180 #: qt/base/result_window.py:179
msgid "Delta Values" msgid "Delta Values"
msgstr "" msgstr ""
@ -855,3 +852,19 @@ msgid ""
"There were communication problems with iTunes. The operation couldn't be " "There were communication problems with iTunes. The operation couldn't be "
"completed." "completed."
msgstr "" msgstr ""
#: qt/base/app.py:112 qt/base/ignore_list_dialog.py:31
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
#: cocoa/base/en.lproj/MainMenu.strings:0
msgid "Ignore List"
msgstr ""
#: qt/base/ignore_list_dialog.py:44
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
msgid "Remove Selected"
msgstr ""
#: qt/base/ignore_list_dialog.py:45
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
msgid "Clear"
msgstr ""

View File

@ -100,10 +100,11 @@ msgstr "Größe (KB)"
msgid "Dimensions" msgid "Dimensions"
msgstr "Dimensionen" msgstr "Dimensionen"
#: core/gui/problem_table.py:18 #: core/gui/ignore_list_table.py:18 core/gui/ignore_list_table.py:19
#: core/gui/problem_table.py:17
msgid "File Path" msgid "File Path"
msgstr "Dateipfad" msgstr "Dateipfad"
#: core/gui/problem_table.py:19 #: core/gui/problem_table.py:18
msgid "Error Message" msgid "Error Message"
msgstr "Fehlermeldung" msgstr "Fehlermeldung"

View File

@ -2,7 +2,7 @@
msgid "" msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n" msgstr "Content-Type: text/plain; charset=utf-8\n"
#: core/app.py:93 #: core/app.py:94
msgid "will only be able to delete, move or copy 10 duplicates at once" msgid "will only be able to delete, move or copy 10 duplicates at once"
msgstr "" msgstr ""
@ -12,15 +12,15 @@ msgid ""
"mode." "mode."
msgstr "" msgstr ""
#: core/app.py:508 #: core/app.py:501
msgid "Collecting files to scan" msgid "Collecting files to scan"
msgstr "Sammle Dateien zum Scannen" msgstr "Sammle Dateien zum Scannen"
#: core/app.py:519 #: core/app.py:512
msgid "The selected directories contain no scannable file." msgid "The selected directories contain no scannable file."
msgstr "Der ausgewählte Ordner enthält keine scannbare Dateien." msgstr "Der ausgewählte Ordner enthält keine scannbare Dateien."
#: core/app.py:558 #: core/app.py:551
msgid "%s (%d discarded)" msgid "%s (%d discarded)"
msgstr "%s (%d verworfen)" msgstr "%s (%d verworfen)"
@ -112,11 +112,11 @@ msgstr "%d/%d verifizierte Paare"
msgid "Read EXIF of %d/%d pictures" msgid "Read EXIF of %d/%d pictures"
msgstr "" msgstr ""
#: core/app.py:35 #: core/app.py:36
msgid "There are no marked duplicates. Nothing has been done." msgid "There are no marked duplicates. Nothing has been done."
msgstr "" msgstr ""
#: core/app.py:36 #: core/app.py:37
msgid "There are no selected duplicates. Nothing has been done." msgid "There are no selected duplicates. Nothing has been done."
msgstr "" msgstr ""
@ -142,41 +142,33 @@ msgid ""
"Continue?" "Continue?"
msgstr "%d Dateien werden in zukünftigen Scans ignoriert werden. Fortfahren?" msgstr "%d Dateien werden in zukünftigen Scans ignoriert werden. Fortfahren?"
#: core/app.py:280 #: core/gui/ignore_list_dialog.py:24
msgid "Do you really want to remove all %d items from the ignore list?" msgid "Do you really want to remove all %d items from the ignore list?"
msgstr "Möchten Sie wirklich alle %d Einträge aus der Ignorier-Liste löschen?" msgstr "Möchten Sie wirklich alle %d Einträge aus der Ignorier-Liste löschen?"
#: core/app.py:283 #: core/app.py:367
msgid "Ignore list cleared."
msgstr "Ignorier-Liste geleert."
#: core/app.py:376
msgid "You have no custom command set up. Set it up in your preferences." msgid "You have no custom command set up. Set it up in your preferences."
msgstr "" msgstr ""
"Sie haben keinen eigenen Befehl erstellt. Bitte in den Einstellungen " "Sie haben keinen eigenen Befehl erstellt. Bitte in den Einstellungen "
"konfigurieren." "konfigurieren."
#: core/app.py:461 core/app.py:472 #: core/app.py:454 core/app.py:465
msgid "You are about to remove %d files from results. Continue?" msgid "You are about to remove %d files from results. Continue?"
msgstr "%d Dateien werden aus der Ergebnisliste entfernt. Fortfahren?" msgstr "%d Dateien werden aus der Ergebnisliste entfernt. Fortfahren?"
#: core/app.py:277 #: core/app.py:312
msgid "The ignore list is already empty. Nothing to clear."
msgstr ""
#: core/app.py:321
msgid "copy" msgid "copy"
msgstr "kopieren" msgstr "kopieren"
#: core/app.py:321 #: core/app.py:312
msgid "move" msgid "move"
msgstr "verschieben" msgstr "verschieben"
#: core/app.py:322 #: core/app.py:313
msgid "Select a directory to {} marked files to" msgid "Select a directory to {} marked files to"
msgstr "Wählen sie einen Ordner zum {} der ausgewählten Dateien" msgstr "Wählen sie einen Ordner zum {} der ausgewählten Dateien"
#: core/app.py:336 #: core/app.py:327
msgid "" msgid ""
"You are about to send %d files to Trash (and hardlink them afterwards). " "You are about to send %d files to Trash (and hardlink them afterwards). "
"Continue?" "Continue?"
@ -184,6 +176,6 @@ msgstr ""
"%d Dateien werden gelöscht und mit physikalischen Verknüpfungen ersetzt. " "%d Dateien werden gelöscht und mit physikalischen Verknüpfungen ersetzt. "
"Fortfahren?" "Fortfahren?"
#: core/app.py:338 #: core/app.py:329
msgid "You are about to send %d files to Trash. Continue?" msgid "You are about to send %d files to Trash. Continue?"
msgstr "%d Dateien werden in den Mülleimer zu verschoben. Fortfahren?" msgstr "%d Dateien werden in den Mülleimer zu verschoben. Fortfahren?"

View File

@ -2,55 +2,55 @@
msgid "" msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n" msgstr "Content-Type: text/plain; charset=utf-8\n"
#: cocoa/inter/app.py:15 qt/base/app.py:38 #: cocoa/inter/app.py:15 qt/base/app.py:39
msgid "Scanning for duplicates" msgid "Scanning for duplicates"
msgstr "Suche nach Duplikaten" msgstr "Suche nach Duplikaten"
#: cocoa/inter/app.py:16 qt/base/app.py:39 #: cocoa/inter/app.py:16 qt/base/app.py:40
msgid "Loading" msgid "Loading"
msgstr "Laden" msgstr "Laden"
#: cocoa/inter/app.py:17 qt/base/app.py:40 #: cocoa/inter/app.py:17 qt/base/app.py:41
msgid "Moving" msgid "Moving"
msgstr "Verschieben" msgstr "Verschieben"
#: cocoa/inter/app.py:18 qt/base/app.py:41 #: cocoa/inter/app.py:18 qt/base/app.py:42
msgid "Copying" msgid "Copying"
msgstr "Kopieren" msgstr "Kopieren"
#: qt/base/app.py:42 #: qt/base/app.py:43
msgid "Sending files to the recycle bin" msgid "Sending files to the recycle bin"
msgstr "Sende Dateien in den Mülleimer" msgstr "Sende Dateien in den Mülleimer"
#: qt/base/app.py:108 #: qt/base/app.py:110
msgid "Quit" msgid "Quit"
msgstr "Beenden" msgstr "Beenden"
#: qt/base/app.py:109 qt/base/preferences_dialog.py:123 #: qt/base/app.py:111 qt/base/preferences_dialog.py:123
msgid "Preferences" msgid "Preferences"
msgstr "Einstellungen" msgstr "Einstellungen"
#: qt/base/app.py:110 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/app.py:113 cocoa/base/en.lproj/MainMenu.strings:0
msgid "dupeGuru Help" msgid "dupeGuru Help"
msgstr "dupeGuru Hilfe" msgstr "dupeGuru Hilfe"
#: qt/base/app.py:111 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/app.py:114 cocoa/base/en.lproj/MainMenu.strings:0
msgid "About dupeGuru" msgid "About dupeGuru"
msgstr "Über dupeGuru" msgstr "Über dupeGuru"
#: qt/base/app.py:112 #: qt/base/app.py:115
msgid "Register dupeGuru" msgid "Register dupeGuru"
msgstr "Registriere dupeGuru" msgstr "Registriere dupeGuru"
#: qt/base/app.py:113 #: qt/base/app.py:116
msgid "Check for Update" msgid "Check for Update"
msgstr "Auf Updates überprüfen" msgstr "Auf Updates überprüfen"
#: qt/base/app.py:114 #: qt/base/app.py:117
msgid "Open Debug Log" msgid "Open Debug Log"
msgstr "Debug Log öffnen" msgstr "Debug Log öffnen"
#: qt/base/app.py:226 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/app.py:232 cocoa/base/en.lproj/Localizable.strings:0
msgid "" msgid ""
"A previous action is still hanging in there. You can't start a new one yet. " "A previous action is still hanging in there. You can't start a new one yet. "
"Wait a few seconds, then try again." "Wait a few seconds, then try again."
@ -87,16 +87,16 @@ msgstr "Ergebnisfenster"
msgid "Add Folder..." msgid "Add Folder..."
msgstr "Ordner hinzufügen..." msgstr "Ordner hinzufügen..."
#: qt/base/directories_dialog.py:67 qt/base/result_window.py:83 #: qt/base/directories_dialog.py:67 qt/base/result_window.py:82
#: cocoa/base/en.lproj/MainMenu.strings:0 #: cocoa/base/en.lproj/MainMenu.strings:0
msgid "File" msgid "File"
msgstr "Ablage" msgstr "Ablage"
#: qt/base/directories_dialog.py:69 qt/base/result_window.py:91 #: qt/base/directories_dialog.py:69 qt/base/result_window.py:90
msgid "View" msgid "View"
msgstr "Ansicht" msgstr "Ansicht"
#: qt/base/directories_dialog.py:71 qt/base/result_window.py:93 #: qt/base/directories_dialog.py:71 qt/base/result_window.py:92
#: cocoa/base/en.lproj/MainMenu.strings:0 #: cocoa/base/en.lproj/MainMenu.strings:0
msgid "Help" msgid "Help"
msgstr "Hilfe" msgstr "Hilfe"
@ -105,50 +105,50 @@ msgstr "Hilfe"
msgid "Load Recent Results" msgid "Load Recent Results"
msgstr "Lade letzte Ergebnisse" msgstr "Lade letzte Ergebnisse"
#: qt/base/directories_dialog.py:107 #: qt/base/directories_dialog.py:108
#: cocoa/base/en.lproj/DirectoryPanel.strings:0 #: cocoa/base/en.lproj/DirectoryPanel.strings:0
msgid "Select folders to scan and press \"Scan\"." msgid "Select folders to scan and press \"Scan\"."
msgstr "Zu scannende Ordner auswählen und \"Scan\" drücken." msgstr "Zu scannende Ordner auswählen und \"Scan\" drücken."
#: qt/base/directories_dialog.py:131 #: qt/base/directories_dialog.py:132
#: cocoa/base/en.lproj/DirectoryPanel.strings:0 #: cocoa/base/en.lproj/DirectoryPanel.strings:0
msgid "Load Results" msgid "Load Results"
msgstr "Lade Ergebnisse" msgstr "Lade Ergebnisse"
#: qt/base/directories_dialog.py:134 #: qt/base/directories_dialog.py:135
#: cocoa/base/en.lproj/DirectoryPanel.strings:0 #: cocoa/base/en.lproj/DirectoryPanel.strings:0
msgid "Scan" msgid "Scan"
msgstr "Scan" msgstr "Scan"
#: qt/base/directories_dialog.py:178 #: qt/base/directories_dialog.py:179
msgid "Unsaved results" msgid "Unsaved results"
msgstr "Ungespeicherte Ergebnisse" msgstr "Ungespeicherte Ergebnisse"
#: qt/base/directories_dialog.py:179 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/directories_dialog.py:180 cocoa/base/en.lproj/Localizable.strings:0
msgid "You have unsaved results, do you really want to quit?" msgid "You have unsaved results, do you really want to quit?"
msgstr "Sie haben ungespeicherte Ergebnisse. Wollen Sie wirklich beenden?" msgstr "Sie haben ungespeicherte Ergebnisse. Wollen Sie wirklich beenden?"
#: qt/base/directories_dialog.py:187 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/directories_dialog.py:188 cocoa/base/en.lproj/Localizable.strings:0
msgid "Select a folder to add to the scanning list" msgid "Select a folder to add to the scanning list"
msgstr "Wählen Sie einen Ordner aus, um ihn der Scanliste hinzuzufügen." msgstr "Wählen Sie einen Ordner aus, um ihn der Scanliste hinzuzufügen."
#: qt/base/directories_dialog.py:204 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/directories_dialog.py:205 cocoa/base/en.lproj/Localizable.strings:0
msgid "Select a results file to load" msgid "Select a results file to load"
msgstr "Wählen Sie eine Ergebnisliste zum Laden aus." msgstr "Wählen Sie eine Ergebnisliste zum Laden aus."
#: qt/base/directories_dialog.py:205 #: qt/base/directories_dialog.py:206
msgid "All Files (*.*)" msgid "All Files (*.*)"
msgstr "Alle Dateien (*.*)" msgstr "Alle Dateien (*.*)"
#: qt/base/directories_dialog.py:205 qt/base/result_window.py:305 #: qt/base/directories_dialog.py:206 qt/base/result_window.py:301
msgid "dupeGuru Results (*.dupeguru)" msgid "dupeGuru Results (*.dupeguru)"
msgstr "dupeGuru Ergebnisse (*.dupeguru)" msgstr "dupeGuru Ergebnisse (*.dupeguru)"
#: qt/base/directories_dialog.py:216 #: qt/base/directories_dialog.py:217
msgid "Start a new scan" msgid "Start a new scan"
msgstr "Starte einen neuen Scan" msgstr "Starte einen neuen Scan"
#: qt/base/directories_dialog.py:217 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/directories_dialog.py:218 cocoa/base/en.lproj/Localizable.strings:0
msgid "You have unsaved results, do you really want to continue?" msgid "You have unsaved results, do you really want to continue?"
msgstr "Sie haben ungespeicherte Ergebnisse. Möchten Sie wirklich fortfahren?" msgstr "Sie haben ungespeicherte Ergebnisse. Möchten Sie wirklich fortfahren?"
@ -264,18 +264,19 @@ msgstr ""
msgid "Reveal Selected" msgid "Reveal Selected"
msgstr "Zeige Markierte" msgstr "Zeige Markierte"
#: qt/base/problem_dialog.py:57 cocoa/base/en.lproj/ProblemDialog.strings:0 #: qt/base/problem_dialog.py:57 cocoa/base/en.lproj/IgnoreListDialog.strings:0
#: cocoa/base/en.lproj/ProblemDialog.strings:0
msgid "Close" msgid "Close"
msgstr "Schließen" msgstr "Schließen"
#: qt/base/result_window.py:47 qt/base/result_window.py:178 #: qt/base/result_window.py:47 qt/base/result_window.py:177
#: qt/me/details_dialog.py:20 qt/pe/details_dialog.py:25 #: qt/me/details_dialog.py:20 qt/pe/details_dialog.py:25
#: qt/se/details_dialog.py:20 cocoa/base/en.lproj/ResultWindow.strings:0 #: qt/se/details_dialog.py:20 cocoa/base/en.lproj/ResultWindow.strings:0
msgid "Details" msgid "Details"
msgstr "Details" msgstr "Details"
#: qt/base/result_window.py:48 qt/base/result_window.py:87 #: qt/base/result_window.py:48 qt/base/result_window.py:86
#: qt/base/result_window.py:152 qt/base/result_window.py:177 #: qt/base/result_window.py:151 qt/base/result_window.py:176
#: cocoa/base/en.lproj/MainMenu.strings:0 #: cocoa/base/en.lproj/MainMenu.strings:0
msgid "Actions" msgid "Actions"
msgstr "Aktionen" msgstr "Aktionen"
@ -361,41 +362,37 @@ msgstr "Markierung invertieren"
msgid "Mark Selected" msgid "Mark Selected"
msgstr "Ausgewählte markieren" msgstr "Ausgewählte markieren"
#: qt/base/result_window.py:67 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/result_window.py:67
msgid "Clear Ignore List"
msgstr "Ignorier-Liste leeren"
#: qt/base/result_window.py:68
msgid "Export To HTML" msgid "Export To HTML"
msgstr "Exportiere als HTML" msgstr "Exportiere als HTML"
#: qt/base/result_window.py:69 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/result_window.py:68 cocoa/base/en.lproj/MainMenu.strings:0
msgid "Save Results..." msgid "Save Results..."
msgstr "Speichere Ergebnisse..." msgstr "Speichere Ergebnisse..."
#: qt/base/result_window.py:70 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/result_window.py:69 cocoa/base/en.lproj/MainMenu.strings:0
msgid "Invoke Custom Command" msgid "Invoke Custom Command"
msgstr "Eigenen Befehl ausführen" msgstr "Eigenen Befehl ausführen"
#: qt/base/result_window.py:85 #: qt/base/result_window.py:84
msgid "Mark" msgid "Mark"
msgstr "Auswählen" msgstr "Auswählen"
#: qt/base/result_window.py:89 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/result_window.py:88 cocoa/base/en.lproj/MainMenu.strings:0
msgid "Columns" msgid "Columns"
msgstr "Spalten" msgstr "Spalten"
#: qt/base/result_window.py:148 cocoa/se/en.lproj/Preferences.strings:0 #: qt/base/result_window.py:147 cocoa/se/en.lproj/Preferences.strings:0
#: cocoa/me/en.lproj/Preferences.strings:0 #: cocoa/me/en.lproj/Preferences.strings:0
#: cocoa/pe/en.lproj/Preferences.strings:0 #: cocoa/pe/en.lproj/Preferences.strings:0
msgid "Reset to Defaults" msgid "Reset to Defaults"
msgstr "Voreinstellungen" msgstr "Voreinstellungen"
#: qt/base/result_window.py:171 #: qt/base/result_window.py:170
msgid "{} Results" msgid "{} Results"
msgstr "{} (Ergebnisse)" msgstr "{} (Ergebnisse)"
#: qt/base/result_window.py:304 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/result_window.py:300 cocoa/base/en.lproj/Localizable.strings:0
msgid "Select a file to save your results to" msgid "Select a file to save your results to"
msgstr "Datei zum Speichern der Ergebnisliste auswählen." msgstr "Datei zum Speichern der Ergebnisliste auswählen."
@ -693,7 +690,7 @@ msgstr "Action"
msgid "Directories" msgid "Directories"
msgstr "Directories" msgstr "Directories"
#: qt/base/result_window.py:179 cocoa/base/en.lproj/ResultWindow.strings:0 #: qt/base/result_window.py:178 cocoa/base/en.lproj/ResultWindow.strings:0
msgid "Dupes Only" msgid "Dupes Only"
msgstr "Dupes Only" msgstr "Dupes Only"
@ -846,7 +843,7 @@ msgstr ""
msgid "The iTunes application couldn't be found." msgid "The iTunes application couldn't be found."
msgstr "" msgstr ""
#: qt/base/result_window.py:180 #: qt/base/result_window.py:179
msgid "Delta Values" msgid "Delta Values"
msgstr "" msgstr ""
@ -855,3 +852,19 @@ msgid ""
"There were communication problems with iTunes. The operation couldn't be " "There were communication problems with iTunes. The operation couldn't be "
"completed." "completed."
msgstr "" msgstr ""
#: qt/base/app.py:112 qt/base/ignore_list_dialog.py:31
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
#: cocoa/base/en.lproj/MainMenu.strings:0
msgid "Ignore List"
msgstr ""
#: qt/base/ignore_list_dialog.py:44
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
msgid "Remove Selected"
msgstr ""
#: qt/base/ignore_list_dialog.py:45
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
msgid "Clear"
msgstr ""

View File

@ -100,10 +100,11 @@ msgstr "Taille (KB)"
msgid "Dimensions" msgid "Dimensions"
msgstr "Dimensions" msgstr "Dimensions"
#: core/gui/problem_table.py:18 #: core/gui/ignore_list_table.py:18 core/gui/ignore_list_table.py:19
#: core/gui/problem_table.py:17
msgid "File Path" msgid "File Path"
msgstr "Chemin du fichier" msgstr "Chemin du fichier"
#: core/gui/problem_table.py:19 #: core/gui/problem_table.py:18
msgid "Error Message" msgid "Error Message"
msgstr "Message d'erreur" msgstr "Message d'erreur"

View File

@ -2,7 +2,7 @@
msgid "" msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n" msgstr "Content-Type: text/plain; charset=utf-8\n"
#: core/app.py:93 #: core/app.py:94
msgid "will only be able to delete, move or copy 10 duplicates at once" msgid "will only be able to delete, move or copy 10 duplicates at once"
msgstr "" msgstr ""
@ -12,15 +12,15 @@ msgid ""
"mode." "mode."
msgstr "" msgstr ""
#: core/app.py:508 #: core/app.py:501
msgid "Collecting files to scan" msgid "Collecting files to scan"
msgstr "Collecte des fichiers à scanner" msgstr "Collecte des fichiers à scanner"
#: core/app.py:519 #: core/app.py:512
msgid "The selected directories contain no scannable file." msgid "The selected directories contain no scannable file."
msgstr "Les dossiers sélectionnés ne contiennent pas de fichiers valides." msgstr "Les dossiers sélectionnés ne contiennent pas de fichiers valides."
#: core/app.py:558 #: core/app.py:551
msgid "%s (%d discarded)" msgid "%s (%d discarded)"
msgstr "%s (%d hors-groupe)" msgstr "%s (%d hors-groupe)"
@ -112,11 +112,11 @@ msgstr "Vérifié %d/%d paires"
msgid "Read EXIF of %d/%d pictures" msgid "Read EXIF of %d/%d pictures"
msgstr "" msgstr ""
#: core/app.py:35 #: core/app.py:36
msgid "There are no marked duplicates. Nothing has been done." msgid "There are no marked duplicates. Nothing has been done."
msgstr "Aucun doublon marqué. Rien à faire." msgstr "Aucun doublon marqué. Rien à faire."
#: core/app.py:36 #: core/app.py:37
msgid "There are no selected duplicates. Nothing has been done." msgid "There are no selected duplicates. Nothing has been done."
msgstr "Aucun doublon sélectionné. Rien à faire." msgstr "Aucun doublon sélectionné. Rien à faire."
@ -143,47 +143,40 @@ msgid ""
"Continue?" "Continue?"
msgstr "%d fichiers seront ignorés des prochains scans. Continuer?" msgstr "%d fichiers seront ignorés des prochains scans. Continuer?"
#: core/app.py:280 #: core/gui/ignore_list_dialog.py:24
msgid "Do you really want to remove all %d items from the ignore list?" msgid "Do you really want to remove all %d items from the ignore list?"
msgstr "" msgstr ""
"Voulez-vous vider la liste de fichiers ignorés des %d items qu'elle " "Voulez-vous vider la liste de fichiers ignorés des %d items qu'elle "
"contient?" "contient?"
#: core/app.py:283 #: core/app.py:367
msgid "Ignore list cleared."
msgstr "La liste de doublons ignorés a été vidée."
#: core/app.py:376
msgid "You have no custom command set up. Set it up in your preferences." msgid "You have no custom command set up. Set it up in your preferences."
msgstr "" msgstr ""
"Vous n'avez pas de commande personnalisée. Ajoutez-la dans vos préférences." "Vous n'avez pas de commande personnalisée. Ajoutez-la dans vos préférences."
#: core/app.py:461 core/app.py:472 #: core/app.py:454 core/app.py:465
msgid "You are about to remove %d files from results. Continue?" msgid "You are about to remove %d files from results. Continue?"
msgstr "%d fichiers seront retirés des résultats. Continuer?" msgstr "%d fichiers seront retirés des résultats. Continuer?"
#: core/app.py:277 #: core/app.py:312
msgid "The ignore list is already empty. Nothing to clear."
msgstr "La liste est vide. Il n'y a rien à vider"
#: core/app.py:321
msgid "copy" msgid "copy"
msgstr "copier" msgstr "copier"
#: core/app.py:321 #: core/app.py:312
msgid "move" msgid "move"
msgstr "déplacer" msgstr "déplacer"
#: core/app.py:322 #: core/app.py:313
msgid "Select a directory to {} marked files to" msgid "Select a directory to {} marked files to"
msgstr "Sélectionnez un dossier vers lequel {} les fichiers marqués." msgstr "Sélectionnez un dossier vers lequel {} les fichiers marqués."
#: core/app.py:336 #: core/app.py:327
msgid "" msgid ""
"You are about to send %d files to Trash (and hardlink them afterwards). " "You are about to send %d files to Trash (and hardlink them afterwards). "
"Continue?" "Continue?"
msgstr "%d fichiers seront envoyés à la corbeille (puis 'hardlinkés'). Continuer?" msgstr ""
"%d fichiers seront envoyés à la corbeille (puis 'hardlinkés'). Continuer?"
#: core/app.py:338 #: core/app.py:329
msgid "You are about to send %d files to Trash. Continue?" msgid "You are about to send %d files to Trash. Continue?"
msgstr "%d fichiers seront envoyés à la corbeille. Continuer?" msgstr "%d fichiers seront envoyés à la corbeille. Continuer?"

View File

@ -2,55 +2,55 @@
msgid "" msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n" msgstr "Content-Type: text/plain; charset=utf-8\n"
#: cocoa/inter/app.py:15 qt/base/app.py:38 #: cocoa/inter/app.py:15 qt/base/app.py:39
msgid "Scanning for duplicates" msgid "Scanning for duplicates"
msgstr "Scan de doublons en cours" msgstr "Scan de doublons en cours"
#: cocoa/inter/app.py:16 qt/base/app.py:39 #: cocoa/inter/app.py:16 qt/base/app.py:40
msgid "Loading" msgid "Loading"
msgstr "Chargement en cours" msgstr "Chargement en cours"
#: cocoa/inter/app.py:17 qt/base/app.py:40 #: cocoa/inter/app.py:17 qt/base/app.py:41
msgid "Moving" msgid "Moving"
msgstr "Déplacement en cours" msgstr "Déplacement en cours"
#: cocoa/inter/app.py:18 qt/base/app.py:41 #: cocoa/inter/app.py:18 qt/base/app.py:42
msgid "Copying" msgid "Copying"
msgstr "Copie en cours" msgstr "Copie en cours"
#: qt/base/app.py:42 #: qt/base/app.py:43
msgid "Sending files to the recycle bin" msgid "Sending files to the recycle bin"
msgstr "Envoi de fichiers à la corbeille" msgstr "Envoi de fichiers à la corbeille"
#: qt/base/app.py:108 #: qt/base/app.py:110
msgid "Quit" msgid "Quit"
msgstr "Quitter" msgstr "Quitter"
#: qt/base/app.py:109 qt/base/preferences_dialog.py:123 #: qt/base/app.py:111 qt/base/preferences_dialog.py:123
msgid "Preferences" msgid "Preferences"
msgstr "Préférences" msgstr "Préférences"
#: qt/base/app.py:110 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/app.py:113 cocoa/base/en.lproj/MainMenu.strings:0
msgid "dupeGuru Help" msgid "dupeGuru Help"
msgstr "Aide dupeGuru" msgstr "Aide dupeGuru"
#: qt/base/app.py:111 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/app.py:114 cocoa/base/en.lproj/MainMenu.strings:0
msgid "About dupeGuru" msgid "About dupeGuru"
msgstr "À propos de dupeGuru" msgstr "À propos de dupeGuru"
#: qt/base/app.py:112 #: qt/base/app.py:115
msgid "Register dupeGuru" msgid "Register dupeGuru"
msgstr "Enregistrer dupeGuru" msgstr "Enregistrer dupeGuru"
#: qt/base/app.py:113 #: qt/base/app.py:116
msgid "Check for Update" msgid "Check for Update"
msgstr "Vérifier les mises à jour" msgstr "Vérifier les mises à jour"
#: qt/base/app.py:114 #: qt/base/app.py:117
msgid "Open Debug Log" msgid "Open Debug Log"
msgstr "Ouvrir logs de déboguage" msgstr "Ouvrir logs de déboguage"
#: qt/base/app.py:226 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/app.py:232 cocoa/base/en.lproj/Localizable.strings:0
msgid "" msgid ""
"A previous action is still hanging in there. You can't start a new one yet. " "A previous action is still hanging in there. You can't start a new one yet. "
"Wait a few seconds, then try again." "Wait a few seconds, then try again."
@ -87,16 +87,16 @@ msgstr "Fenêtre de résultats"
msgid "Add Folder..." msgid "Add Folder..."
msgstr "Ajouter dossier..." msgstr "Ajouter dossier..."
#: qt/base/directories_dialog.py:67 qt/base/result_window.py:83 #: qt/base/directories_dialog.py:67 qt/base/result_window.py:82
#: cocoa/base/en.lproj/MainMenu.strings:0 #: cocoa/base/en.lproj/MainMenu.strings:0
msgid "File" msgid "File"
msgstr "Fichier" msgstr "Fichier"
#: qt/base/directories_dialog.py:69 qt/base/result_window.py:91 #: qt/base/directories_dialog.py:69 qt/base/result_window.py:90
msgid "View" msgid "View"
msgstr "Voir" msgstr "Voir"
#: qt/base/directories_dialog.py:71 qt/base/result_window.py:93 #: qt/base/directories_dialog.py:71 qt/base/result_window.py:92
#: cocoa/base/en.lproj/MainMenu.strings:0 #: cocoa/base/en.lproj/MainMenu.strings:0
msgid "Help" msgid "Help"
msgstr "Aide" msgstr "Aide"
@ -105,50 +105,50 @@ msgstr "Aide"
msgid "Load Recent Results" msgid "Load Recent Results"
msgstr "Charger résultats récents" msgstr "Charger résultats récents"
#: qt/base/directories_dialog.py:107 #: qt/base/directories_dialog.py:108
#: cocoa/base/en.lproj/DirectoryPanel.strings:0 #: cocoa/base/en.lproj/DirectoryPanel.strings:0
msgid "Select folders to scan and press \"Scan\"." msgid "Select folders to scan and press \"Scan\"."
msgstr "Sélectionnez les dossiers à scanner puis faites \"Scan\"." msgstr "Sélectionnez les dossiers à scanner puis faites \"Scan\"."
#: qt/base/directories_dialog.py:131 #: qt/base/directories_dialog.py:132
#: cocoa/base/en.lproj/DirectoryPanel.strings:0 #: cocoa/base/en.lproj/DirectoryPanel.strings:0
msgid "Load Results" msgid "Load Results"
msgstr "Charger" msgstr "Charger"
#: qt/base/directories_dialog.py:134 #: qt/base/directories_dialog.py:135
#: cocoa/base/en.lproj/DirectoryPanel.strings:0 #: cocoa/base/en.lproj/DirectoryPanel.strings:0
msgid "Scan" msgid "Scan"
msgstr "Scan" msgstr "Scan"
#: qt/base/directories_dialog.py:178 #: qt/base/directories_dialog.py:179
msgid "Unsaved results" msgid "Unsaved results"
msgstr "Résultats non sauvegardés" msgstr "Résultats non sauvegardés"
#: qt/base/directories_dialog.py:179 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/directories_dialog.py:180 cocoa/base/en.lproj/Localizable.strings:0
msgid "You have unsaved results, do you really want to quit?" msgid "You have unsaved results, do you really want to quit?"
msgstr "Vos résultats ne sont pas sauvegardés. Voulez-vous vraiment quitter?" msgstr "Vos résultats ne sont pas sauvegardés. Voulez-vous vraiment quitter?"
#: qt/base/directories_dialog.py:187 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/directories_dialog.py:188 cocoa/base/en.lproj/Localizable.strings:0
msgid "Select a folder to add to the scanning list" msgid "Select a folder to add to the scanning list"
msgstr "Sélectionnez un dossier à ajouter à la liste" msgstr "Sélectionnez un dossier à ajouter à la liste"
#: qt/base/directories_dialog.py:204 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/directories_dialog.py:205 cocoa/base/en.lproj/Localizable.strings:0
msgid "Select a results file to load" msgid "Select a results file to load"
msgstr "Sélectionnez un fichier résultats à charger" msgstr "Sélectionnez un fichier résultats à charger"
#: qt/base/directories_dialog.py:205 #: qt/base/directories_dialog.py:206
msgid "All Files (*.*)" msgid "All Files (*.*)"
msgstr "Tout les fichiers (*.*)" msgstr "Tout les fichiers (*.*)"
#: qt/base/directories_dialog.py:205 qt/base/result_window.py:305 #: qt/base/directories_dialog.py:206 qt/base/result_window.py:301
msgid "dupeGuru Results (*.dupeguru)" msgid "dupeGuru Results (*.dupeguru)"
msgstr "Résultats dupeGuru (*.dupeguru)" msgstr "Résultats dupeGuru (*.dupeguru)"
#: qt/base/directories_dialog.py:216 #: qt/base/directories_dialog.py:217
msgid "Start a new scan" msgid "Start a new scan"
msgstr "Commencer un nouveau scan" msgstr "Commencer un nouveau scan"
#: qt/base/directories_dialog.py:217 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/directories_dialog.py:218 cocoa/base/en.lproj/Localizable.strings:0
msgid "You have unsaved results, do you really want to continue?" msgid "You have unsaved results, do you really want to continue?"
msgstr "" msgstr ""
"Vos résultats ne sont pas sauvegardés. Voulez-vous vraiment continuer?" "Vos résultats ne sont pas sauvegardés. Voulez-vous vraiment continuer?"
@ -266,18 +266,19 @@ msgstr ""
msgid "Reveal Selected" msgid "Reveal Selected"
msgstr "Révéler Fichier" msgstr "Révéler Fichier"
#: qt/base/problem_dialog.py:57 cocoa/base/en.lproj/ProblemDialog.strings:0 #: qt/base/problem_dialog.py:57 cocoa/base/en.lproj/IgnoreListDialog.strings:0
#: cocoa/base/en.lproj/ProblemDialog.strings:0
msgid "Close" msgid "Close"
msgstr "Fermer" msgstr "Fermer"
#: qt/base/result_window.py:47 qt/base/result_window.py:178 #: qt/base/result_window.py:47 qt/base/result_window.py:177
#: qt/me/details_dialog.py:20 qt/pe/details_dialog.py:25 #: qt/me/details_dialog.py:20 qt/pe/details_dialog.py:25
#: qt/se/details_dialog.py:20 cocoa/base/en.lproj/ResultWindow.strings:0 #: qt/se/details_dialog.py:20 cocoa/base/en.lproj/ResultWindow.strings:0
msgid "Details" msgid "Details"
msgstr "Détails" msgstr "Détails"
#: qt/base/result_window.py:48 qt/base/result_window.py:87 #: qt/base/result_window.py:48 qt/base/result_window.py:86
#: qt/base/result_window.py:152 qt/base/result_window.py:177 #: qt/base/result_window.py:151 qt/base/result_window.py:176
#: cocoa/base/en.lproj/MainMenu.strings:0 #: cocoa/base/en.lproj/MainMenu.strings:0
msgid "Actions" msgid "Actions"
msgstr "Actions" msgstr "Actions"
@ -363,41 +364,37 @@ msgstr "Inverser le marquage"
msgid "Mark Selected" msgid "Mark Selected"
msgstr "Marquer sélectionnés" msgstr "Marquer sélectionnés"
#: qt/base/result_window.py:67 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/result_window.py:67
msgid "Clear Ignore List"
msgstr "Vider la liste de fichiers ignorés"
#: qt/base/result_window.py:68
msgid "Export To HTML" msgid "Export To HTML"
msgstr "Exporter vers HTML" msgstr "Exporter vers HTML"
#: qt/base/result_window.py:69 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/result_window.py:68 cocoa/base/en.lproj/MainMenu.strings:0
msgid "Save Results..." msgid "Save Results..."
msgstr "Sauvegarder résultats..." msgstr "Sauvegarder résultats..."
#: qt/base/result_window.py:70 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/result_window.py:69 cocoa/base/en.lproj/MainMenu.strings:0
msgid "Invoke Custom Command" msgid "Invoke Custom Command"
msgstr "Invoquer commande personnalisée" msgstr "Invoquer commande personnalisée"
#: qt/base/result_window.py:85 #: qt/base/result_window.py:84
msgid "Mark" msgid "Mark"
msgstr "Marquer" msgstr "Marquer"
#: qt/base/result_window.py:89 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/result_window.py:88 cocoa/base/en.lproj/MainMenu.strings:0
msgid "Columns" msgid "Columns"
msgstr "Colonnes" msgstr "Colonnes"
#: qt/base/result_window.py:148 cocoa/se/en.lproj/Preferences.strings:0 #: qt/base/result_window.py:147 cocoa/se/en.lproj/Preferences.strings:0
#: cocoa/me/en.lproj/Preferences.strings:0 #: cocoa/me/en.lproj/Preferences.strings:0
#: cocoa/pe/en.lproj/Preferences.strings:0 #: cocoa/pe/en.lproj/Preferences.strings:0
msgid "Reset to Defaults" msgid "Reset to Defaults"
msgstr "Réinitialiser" msgstr "Réinitialiser"
#: qt/base/result_window.py:171 #: qt/base/result_window.py:170
msgid "{} Results" msgid "{} Results"
msgstr "{} (Résultats)" msgstr "{} (Résultats)"
#: qt/base/result_window.py:304 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/result_window.py:300 cocoa/base/en.lproj/Localizable.strings:0
msgid "Select a file to save your results to" msgid "Select a file to save your results to"
msgstr "Sélectionnez un fichier résultats dans lequel sauvegarder" msgstr "Sélectionnez un fichier résultats dans lequel sauvegarder"
@ -704,7 +701,7 @@ msgstr "Action"
msgid "Directories" msgid "Directories"
msgstr "Dossiers" msgstr "Dossiers"
#: qt/base/result_window.py:179 cocoa/base/en.lproj/ResultWindow.strings:0 #: qt/base/result_window.py:178 cocoa/base/en.lproj/ResultWindow.strings:0
msgid "Dupes Only" msgid "Dupes Only"
msgstr "Sans réf." msgstr "Sans réf."
@ -858,7 +855,7 @@ msgstr ""
msgid "The iTunes application couldn't be found." msgid "The iTunes application couldn't be found."
msgstr "" msgstr ""
#: qt/base/result_window.py:180 #: qt/base/result_window.py:179
msgid "Delta Values" msgid "Delta Values"
msgstr "" msgstr ""
@ -867,3 +864,19 @@ msgid ""
"There were communication problems with iTunes. The operation couldn't be " "There were communication problems with iTunes. The operation couldn't be "
"completed." "completed."
msgstr "" msgstr ""
#: qt/base/app.py:112 qt/base/ignore_list_dialog.py:31
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
#: cocoa/base/en.lproj/MainMenu.strings:0
msgid "Ignore List"
msgstr "Liste de doublons ignorés"
#: qt/base/ignore_list_dialog.py:44
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
msgid "Remove Selected"
msgstr "Effacer sélection"
#: qt/base/ignore_list_dialog.py:45
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
msgid "Clear"
msgstr "Vider"

View File

@ -13,11 +13,12 @@ msgstr ""
"X-Poedit-Language: Armenian\n" "X-Poedit-Language: Armenian\n"
"X-Poedit-SourceCharset: utf-8\n" "X-Poedit-SourceCharset: utf-8\n"
#: core/gui/problem_table.py:18 #: core/gui/ignore_list_table.py:18 core/gui/ignore_list_table.py:19
#: core/gui/problem_table.py:17
msgid "File Path" msgid "File Path"
msgstr "Ֆայլի ճ-ը" msgstr "Ֆայլի ճ-ը"
#: core/gui/problem_table.py:19 #: core/gui/problem_table.py:18
msgid "Error Message" msgid "Error Message"
msgstr "Սխալի գրությունը" msgstr "Սխալի գրությունը"

View File

@ -13,7 +13,7 @@ msgstr ""
"X-Poedit-Language: Armenian\n" "X-Poedit-Language: Armenian\n"
"X-Poedit-SourceCharset: utf-8\n" "X-Poedit-SourceCharset: utf-8\n"
#: core/app.py:93 #: core/app.py:94
msgid "will only be able to delete, move or copy 10 duplicates at once" msgid "will only be able to delete, move or copy 10 duplicates at once"
msgstr "" msgstr ""
"միաժամանակ հնարավոր է ջնջել, տեղափոխել կամ պատճենել միայն 10 օրինակներ" "միաժամանակ հնարավոր է ջնջել, տեղափոխել կամ պատճենել միայն 10 օրինակներ"
@ -26,15 +26,15 @@ msgstr ""
"Չեք կարող ջնջել, տեղափձոխել կամ պատճենել ավելի քան 10 օրինակներ փորձնական " "Չեք կարող ջնջել, տեղափձոխել կամ պատճենել ավելի քան 10 օրինակներ փորձնական "
"եղանակում:" "եղանակում:"
#: core/app.py:508 #: core/app.py:501
msgid "Collecting files to scan" msgid "Collecting files to scan"
msgstr "Հավաքվում են ֆայլեր՝ ստուգելու համար" msgstr "Հավաքվում են ֆայլեր՝ ստուգելու համար"
#: core/app.py:519 #: core/app.py:512
msgid "The selected directories contain no scannable file." msgid "The selected directories contain no scannable file."
msgstr "Ընտրված թղթապանակները պարունակում են չստուգվող ֆայլ:" msgstr "Ընտրված թղթապանակները պարունակում են չստուգվող ֆայլ:"
#: core/app.py:558 #: core/app.py:551
msgid "%s (%d discarded)" msgid "%s (%d discarded)"
msgstr "%s (%d անպիտան)" msgstr "%s (%d անպիտան)"
@ -126,11 +126,11 @@ msgstr "Ստուգում է %d/%d համընկնումները"
msgid "Read EXIF of %d/%d pictures" msgid "Read EXIF of %d/%d pictures"
msgstr "Կարդալ EXIF-ը d/%d նկարներից" msgstr "Կարդալ EXIF-ը d/%d նկարներից"
#: core/app.py:35 #: core/app.py:36
msgid "There are no marked duplicates. Nothing has been done." msgid "There are no marked duplicates. Nothing has been done."
msgstr "" msgstr ""
#: core/app.py:36 #: core/app.py:37
msgid "There are no selected duplicates. Nothing has been done." msgid "There are no selected duplicates. Nothing has been done."
msgstr "" msgstr ""
@ -157,44 +157,36 @@ msgid ""
msgstr "" msgstr ""
"Ընտրված %d համընկնումները կանտեսվեն հետագա բոլոր ստուգումներից: Շարունակե՞լ:" "Ընտրված %d համընկնումները կանտեսվեն հետագա բոլոր ստուգումներից: Շարունակե՞լ:"
#: core/app.py:280 #: core/gui/ignore_list_dialog.py:24
msgid "Do you really want to remove all %d items from the ignore list?" msgid "Do you really want to remove all %d items from the ignore list?"
msgstr "Ցանկանու՞մ եք հեռացնել բոլոր %d ֆայլերը անտեսումների ցանկից:" msgstr "Ցանկանու՞մ եք հեռացնել բոլոր %d ֆայլերը անտեսումների ցանկից:"
#: core/app.py:283 #: core/app.py:367
msgid "Ignore list cleared."
msgstr "Անտեսումների ցանկը մաքրվեց:"
#: core/app.py:376
msgid "You have no custom command set up. Set it up in your preferences." msgid "You have no custom command set up. Set it up in your preferences."
msgstr "Դուք չեք կատարել Հրամանի ընտրություն: Կատարեք այն կարգավորումներում:" msgstr "Դուք չեք կատարել Հրամանի ընտրություն: Կատարեք այն կարգավորումներում:"
#: core/app.py:461 core/app.py:472 #: core/app.py:454 core/app.py:465
msgid "You are about to remove %d files from results. Continue?" msgid "You are about to remove %d files from results. Continue?"
msgstr "Դուք պատրաստվում եք ջնջելու %d ֆայլեր: Շարունակե՞լ:" msgstr "Դուք պատրաստվում եք ջնջելու %d ֆայլեր: Շարունակե՞լ:"
#: core/app.py:277 #: core/app.py:312
msgid "The ignore list is already empty. Nothing to clear."
msgstr ""
#: core/app.py:321
msgid "copy" msgid "copy"
msgstr "պատճենել" msgstr "պատճենել"
#: core/app.py:321 #: core/app.py:312
msgid "move" msgid "move"
msgstr "տեղափոխել" msgstr "տեղափոխել"
#: core/app.py:322 #: core/app.py:313
msgid "Select a directory to {} marked files to" msgid "Select a directory to {} marked files to"
msgstr "Ընտրել թղթապանակ՝ {} նշված ֆայլերի համար" msgstr "Ընտրել թղթապանակ՝ {} նշված ֆայլերի համար"
#: core/app.py:336 #: core/app.py:327
msgid "" msgid ""
"You are about to send %d files to Trash (and hardlink them afterwards). " "You are about to send %d files to Trash (and hardlink them afterwards). "
"Continue?" "Continue?"
msgstr "Դուք ուղարկում եք %d ֆայլերը Աղբարկղ: Շարունակե՞լ:" msgstr "Դուք ուղարկում եք %d ֆայլերը Աղբարկղ: Շարունակե՞լ:"
#: core/app.py:338 #: core/app.py:329
msgid "You are about to send %d files to Trash. Continue?" msgid "You are about to send %d files to Trash. Continue?"
msgstr "%d ֆայլերը տեղափոխվելու են Աղբարկղ: Շարունակե՞լ:" msgstr "%d ֆայլերը տեղափոխվելու են Աղբարկղ: Շարունակե՞լ:"

View File

@ -13,19 +13,19 @@ msgstr ""
"X-Poedit-Language: Armenian\n" "X-Poedit-Language: Armenian\n"
"X-Poedit-SourceCharset: utf-8\n" "X-Poedit-SourceCharset: utf-8\n"
#: cocoa/inter/app.py:15 qt/base/app.py:38 #: cocoa/inter/app.py:15 qt/base/app.py:39
msgid "Scanning for duplicates" msgid "Scanning for duplicates"
msgstr "Ստուգվում են կրկնօրինակները" msgstr "Ստուգվում են կրկնօրինակները"
#: cocoa/inter/app.py:16 qt/base/app.py:39 #: cocoa/inter/app.py:16 qt/base/app.py:40
msgid "Loading" msgid "Loading"
msgstr "Բացվում է" msgstr "Բացվում է"
#: cocoa/inter/app.py:17 qt/base/app.py:40 #: cocoa/inter/app.py:17 qt/base/app.py:41
msgid "Moving" msgid "Moving"
msgstr "Տեղափոխվում է" msgstr "Տեղափոխվում է"
#: cocoa/inter/app.py:18 qt/base/app.py:41 #: cocoa/inter/app.py:18 qt/base/app.py:42
msgid "Copying" msgid "Copying"
msgstr "Պատճենվում է" msgstr "Պատճենվում է"
@ -53,39 +53,39 @@ msgstr "Զրույց iPhoto-ի հետ: Մի կպեք! "
msgid "The iPhoto application couldn't be found." msgid "The iPhoto application couldn't be found."
msgstr "iPhoto ծրագիրը չի գտնվել:" msgstr "iPhoto ծրագիրը չի գտնվել:"
#: qt/base/app.py:42 #: qt/base/app.py:43
msgid "Sending files to the recycle bin" msgid "Sending files to the recycle bin"
msgstr "Ֆայլերը ուղարկվում են Աղբարկղ" msgstr "Ֆայլերը ուղարկվում են Աղբարկղ"
#: qt/base/app.py:108 #: qt/base/app.py:110
msgid "Quit" msgid "Quit"
msgstr "Փակել" msgstr "Փակել"
#: qt/base/app.py:109 qt/base/preferences_dialog.py:123 #: qt/base/app.py:111 qt/base/preferences_dialog.py:123
msgid "Preferences" msgid "Preferences"
msgstr "Կարգավորումներ" msgstr "Կարգավորումներ"
#: qt/base/app.py:110 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/app.py:113 cocoa/base/en.lproj/MainMenu.strings:0
msgid "dupeGuru Help" msgid "dupeGuru Help"
msgstr "dupeGuru-ի Օգնությունը" msgstr "dupeGuru-ի Օգնությունը"
#: qt/base/app.py:111 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/app.py:114 cocoa/base/en.lproj/MainMenu.strings:0
msgid "About dupeGuru" msgid "About dupeGuru"
msgstr "dupeGuru-ի մասին" msgstr "dupeGuru-ի մասին"
#: qt/base/app.py:112 #: qt/base/app.py:115
msgid "Register dupeGuru" msgid "Register dupeGuru"
msgstr "Գրանցել dupeGuru-ն" msgstr "Գրանցել dupeGuru-ն"
#: qt/base/app.py:113 #: qt/base/app.py:116
msgid "Check for Update" msgid "Check for Update"
msgstr "Ստուգել թարմացումները" msgstr "Ստուգել թարմացումները"
#: qt/base/app.py:114 #: qt/base/app.py:117
msgid "Open Debug Log" msgid "Open Debug Log"
msgstr "Բացել Սխալների մատյանը" msgstr "Բացել Սխալների մատյանը"
#: qt/base/app.py:226 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/app.py:232 cocoa/base/en.lproj/Localizable.strings:0
msgid "" msgid ""
"A previous action is still hanging in there. You can't start a new one yet. " "A previous action is still hanging in there. You can't start a new one yet. "
"Wait a few seconds, then try again." "Wait a few seconds, then try again."
@ -122,16 +122,16 @@ msgstr "Արդյունքի պատուհանը"
msgid "Add Folder..." msgid "Add Folder..."
msgstr "Ավելացնել թղթապանակ..." msgstr "Ավելացնել թղթապանակ..."
#: qt/base/directories_dialog.py:67 qt/base/result_window.py:83 #: qt/base/directories_dialog.py:67 qt/base/result_window.py:82
#: cocoa/base/en.lproj/MainMenu.strings:0 #: cocoa/base/en.lproj/MainMenu.strings:0
msgid "File" msgid "File"
msgstr "Ֆայլ" msgstr "Ֆայլ"
#: qt/base/directories_dialog.py:69 qt/base/result_window.py:91 #: qt/base/directories_dialog.py:69 qt/base/result_window.py:90
msgid "View" msgid "View"
msgstr "Տեսքը" msgstr "Տեսքը"
#: qt/base/directories_dialog.py:71 qt/base/result_window.py:93 #: qt/base/directories_dialog.py:71 qt/base/result_window.py:92
#: cocoa/base/en.lproj/MainMenu.strings:0 #: cocoa/base/en.lproj/MainMenu.strings:0
msgid "Help" msgid "Help"
msgstr "Օգնություն" msgstr "Օգնություն"
@ -140,50 +140,50 @@ msgstr "Օգնություն"
msgid "Load Recent Results" msgid "Load Recent Results"
msgstr "Բացել Վերջին արդյունքները" msgstr "Բացել Վերջին արդյունքները"
#: qt/base/directories_dialog.py:107 #: qt/base/directories_dialog.py:108
#: cocoa/base/en.lproj/DirectoryPanel.strings:0 #: cocoa/base/en.lproj/DirectoryPanel.strings:0
msgid "Select folders to scan and press \"Scan\"." msgid "Select folders to scan and press \"Scan\"."
msgstr "Ընտրեք ստուգելու թղթապանակները և սեղմեք \"Ստուգել\":" msgstr "Ընտրեք ստուգելու թղթապանակները և սեղմեք \"Ստուգել\":"
#: qt/base/directories_dialog.py:131 #: qt/base/directories_dialog.py:132
#: cocoa/base/en.lproj/DirectoryPanel.strings:0 #: cocoa/base/en.lproj/DirectoryPanel.strings:0
msgid "Load Results" msgid "Load Results"
msgstr "Բացել արդյունքները" msgstr "Բացել արդյունքները"
#: qt/base/directories_dialog.py:134 #: qt/base/directories_dialog.py:135
#: cocoa/base/en.lproj/DirectoryPanel.strings:0 #: cocoa/base/en.lproj/DirectoryPanel.strings:0
msgid "Scan" msgid "Scan"
msgstr "Ստուգել" msgstr "Ստուգել"
#: qt/base/directories_dialog.py:178 #: qt/base/directories_dialog.py:179
msgid "Unsaved results" msgid "Unsaved results"
msgstr "Չպահպանված արդյունքները" msgstr "Չպահպանված արդյունքները"
#: qt/base/directories_dialog.py:179 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/directories_dialog.py:180 cocoa/base/en.lproj/Localizable.strings:0
msgid "You have unsaved results, do you really want to quit?" msgid "You have unsaved results, do you really want to quit?"
msgstr "Դուք ունեք չպահպանված արդյունքներ, իրո՞ք փակել:" msgstr "Դուք ունեք չպահպանված արդյունքներ, իրո՞ք փակել:"
#: qt/base/directories_dialog.py:187 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/directories_dialog.py:188 cocoa/base/en.lproj/Localizable.strings:0
msgid "Select a folder to add to the scanning list" msgid "Select a folder to add to the scanning list"
msgstr "Ընտրեք ստուգման ցանկը ավելացնելու թղթապանակը" msgstr "Ընտրեք ստուգման ցանկը ավելացնելու թղթապանակը"
#: qt/base/directories_dialog.py:204 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/directories_dialog.py:205 cocoa/base/en.lproj/Localizable.strings:0
msgid "Select a results file to load" msgid "Select a results file to load"
msgstr "Ընտրեք արդյունքի ֆայլը՝ բացելու համար" msgstr "Ընտրեք արդյունքի ֆայլը՝ բացելու համար"
#: qt/base/directories_dialog.py:205 #: qt/base/directories_dialog.py:206
msgid "All Files (*.*)" msgid "All Files (*.*)"
msgstr "Բոլոր ֆայլերը (*.*)" msgstr "Բոլոր ֆայլերը (*.*)"
#: qt/base/directories_dialog.py:205 qt/base/result_window.py:305 #: qt/base/directories_dialog.py:206 qt/base/result_window.py:301
msgid "dupeGuru Results (*.dupeguru)" msgid "dupeGuru Results (*.dupeguru)"
msgstr "dupeGuru-ի արդյունքները (*.dupeguru)" msgstr "dupeGuru-ի արդյունքները (*.dupeguru)"
#: qt/base/directories_dialog.py:216 #: qt/base/directories_dialog.py:217
msgid "Start a new scan" msgid "Start a new scan"
msgstr "Սկսել նոր ստուգումը" msgstr "Սկսել նոր ստուգումը"
#: qt/base/directories_dialog.py:217 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/directories_dialog.py:218 cocoa/base/en.lproj/Localizable.strings:0
msgid "You have unsaved results, do you really want to continue?" msgid "You have unsaved results, do you really want to continue?"
msgstr "Ունեք չպահպանված արդյունքներ, իրո՞ք շարունակել:" msgstr "Ունեք չպահպանված արդյունքներ, իրո՞ք շարունակել:"
@ -299,18 +299,19 @@ msgstr ""
msgid "Reveal Selected" msgid "Reveal Selected"
msgstr "Ցուցադրել ընտրվածը" msgstr "Ցուցադրել ընտրվածը"
#: qt/base/problem_dialog.py:57 cocoa/base/en.lproj/ProblemDialog.strings:0 #: qt/base/problem_dialog.py:57 cocoa/base/en.lproj/IgnoreListDialog.strings:0
#: cocoa/base/en.lproj/ProblemDialog.strings:0
msgid "Close" msgid "Close"
msgstr "Փակել" msgstr "Փակել"
#: qt/base/result_window.py:47 qt/base/result_window.py:178 #: qt/base/result_window.py:47 qt/base/result_window.py:177
#: qt/me/details_dialog.py:20 qt/pe/details_dialog.py:25 #: qt/me/details_dialog.py:20 qt/pe/details_dialog.py:25
#: qt/se/details_dialog.py:20 cocoa/base/en.lproj/ResultWindow.strings:0 #: qt/se/details_dialog.py:20 cocoa/base/en.lproj/ResultWindow.strings:0
msgid "Details" msgid "Details"
msgstr "Մանրամասն" msgstr "Մանրամասն"
#: qt/base/result_window.py:48 qt/base/result_window.py:87 #: qt/base/result_window.py:48 qt/base/result_window.py:86
#: qt/base/result_window.py:152 qt/base/result_window.py:177 #: qt/base/result_window.py:151 qt/base/result_window.py:176
#: cocoa/base/en.lproj/MainMenu.strings:0 #: cocoa/base/en.lproj/MainMenu.strings:0
msgid "Actions" msgid "Actions"
msgstr "Գործողություններ" msgstr "Գործողություններ"
@ -396,41 +397,37 @@ msgstr "Ետարկել նշումը"
msgid "Mark Selected" msgid "Mark Selected"
msgstr "Նշել ընտրվածը" msgstr "Նշել ընտրվածը"
#: qt/base/result_window.py:67 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/result_window.py:67
msgid "Clear Ignore List"
msgstr "Մաքրել անտեսումների ցանկը"
#: qt/base/result_window.py:68
msgid "Export To HTML" msgid "Export To HTML"
msgstr "Արտածել HTML-ով" msgstr "Արտածել HTML-ով"
#: qt/base/result_window.py:69 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/result_window.py:68 cocoa/base/en.lproj/MainMenu.strings:0
msgid "Save Results..." msgid "Save Results..."
msgstr "Պահպանել արդյունքները..." msgstr "Պահպանել արդյունքները..."
#: qt/base/result_window.py:70 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/result_window.py:69 cocoa/base/en.lproj/MainMenu.strings:0
msgid "Invoke Custom Command" msgid "Invoke Custom Command"
msgstr "Անտեսել Հրամանի կատարումը" msgstr "Անտեսել Հրամանի կատարումը"
#: qt/base/result_window.py:85 #: qt/base/result_window.py:84
msgid "Mark" msgid "Mark"
msgstr "Նշել" msgstr "Նշել"
#: qt/base/result_window.py:89 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/result_window.py:88 cocoa/base/en.lproj/MainMenu.strings:0
msgid "Columns" msgid "Columns"
msgstr "Սյուները" msgstr "Սյուները"
#: qt/base/result_window.py:148 cocoa/se/en.lproj/Preferences.strings:0 #: qt/base/result_window.py:147 cocoa/se/en.lproj/Preferences.strings:0
#: cocoa/me/en.lproj/Preferences.strings:0 #: cocoa/me/en.lproj/Preferences.strings:0
#: cocoa/pe/en.lproj/Preferences.strings:0 #: cocoa/pe/en.lproj/Preferences.strings:0
msgid "Reset to Defaults" msgid "Reset to Defaults"
msgstr "Ետարկել ծրագրայինի" msgstr "Ետարկել ծրագրայինի"
#: qt/base/result_window.py:171 #: qt/base/result_window.py:170
msgid "{} Results" msgid "{} Results"
msgstr "{} Արդյունքներ" msgstr "{} Արդյունքներ"
#: qt/base/result_window.py:304 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/result_window.py:300 cocoa/base/en.lproj/Localizable.strings:0
msgid "Select a file to save your results to" msgid "Select a file to save your results to"
msgstr "Ընտրեք ֆայլը՝ պահպանելու արդյունքները՝" msgstr "Ընտրեք ֆայլը՝ պահպանելու արդյունքները՝"
@ -762,7 +759,7 @@ msgstr "Գործողությունը"
msgid "Directories" msgid "Directories"
msgstr "Թղթապանակներ" msgstr "Թղթապանակներ"
#: qt/base/result_window.py:179 cocoa/base/en.lproj/ResultWindow.strings:0 #: qt/base/result_window.py:178 cocoa/base/en.lproj/ResultWindow.strings:0
msgid "Dupes Only" msgid "Dupes Only"
msgstr "Միայն կրկ." msgstr "Միայն կրկ."
@ -857,7 +854,7 @@ msgstr ""
msgid "The iTunes application couldn't be found." msgid "The iTunes application couldn't be found."
msgstr "" msgstr ""
#: qt/base/result_window.py:180 #: qt/base/result_window.py:179
msgid "Delta Values" msgid "Delta Values"
msgstr "" msgstr ""
@ -866,3 +863,19 @@ msgid ""
"There were communication problems with iTunes. The operation couldn't be " "There were communication problems with iTunes. The operation couldn't be "
"completed." "completed."
msgstr "" msgstr ""
#: qt/base/app.py:112 qt/base/ignore_list_dialog.py:31
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
#: cocoa/base/en.lproj/MainMenu.strings:0
msgid "Ignore List"
msgstr ""
#: qt/base/ignore_list_dialog.py:44
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
msgid "Remove Selected"
msgstr ""
#: qt/base/ignore_list_dialog.py:45
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
msgid "Clear"
msgstr ""

View File

@ -100,10 +100,11 @@ msgstr "Dimensione (KB)"
msgid "Dimensions" msgid "Dimensions"
msgstr "Dimensioni" msgstr "Dimensioni"
#: core/gui/problem_table.py:18 #: core/gui/ignore_list_table.py:18 core/gui/ignore_list_table.py:19
#: core/gui/problem_table.py:17
msgid "File Path" msgid "File Path"
msgstr "Percorso del file" msgstr "Percorso del file"
#: core/gui/problem_table.py:19 #: core/gui/problem_table.py:18
msgid "Error Message" msgid "Error Message"
msgstr "Messaggio di errore" msgstr "Messaggio di errore"

View File

@ -2,7 +2,7 @@
msgid "" msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n" msgstr "Content-Type: text/plain; charset=utf-8\n"
#: core/app.py:93 #: core/app.py:94
msgid "will only be able to delete, move or copy 10 duplicates at once" msgid "will only be able to delete, move or copy 10 duplicates at once"
msgstr "" msgstr ""
@ -12,15 +12,15 @@ msgid ""
"mode." "mode."
msgstr "" msgstr ""
#: core/app.py:508 #: core/app.py:501
msgid "Collecting files to scan" msgid "Collecting files to scan"
msgstr "Raccolta file da scansionare" msgstr "Raccolta file da scansionare"
#: core/app.py:519 #: core/app.py:512
msgid "The selected directories contain no scannable file." msgid "The selected directories contain no scannable file."
msgstr "Le cartelle selezionate non contengono file da scansionare." msgstr "Le cartelle selezionate non contengono file da scansionare."
#: core/app.py:558 #: core/app.py:551
msgid "%s (%d discarded)" msgid "%s (%d discarded)"
msgstr "%s (%d scartati)" msgstr "%s (%d scartati)"
@ -113,11 +113,11 @@ msgstr "Verificate %d/%d somiglianze"
msgid "Read EXIF of %d/%d pictures" msgid "Read EXIF of %d/%d pictures"
msgstr "" msgstr ""
#: core/app.py:35 #: core/app.py:36
msgid "There are no marked duplicates. Nothing has been done." msgid "There are no marked duplicates. Nothing has been done."
msgstr "" msgstr ""
#: core/app.py:36 #: core/app.py:37
msgid "There are no selected duplicates. Nothing has been done." msgid "There are no selected duplicates. Nothing has been done."
msgstr "" msgstr ""
@ -145,49 +145,41 @@ msgstr ""
"Tutti i %d elementi che coincidono verranno ignorati in tutte le scansioni " "Tutti i %d elementi che coincidono verranno ignorati in tutte le scansioni "
"successive. Continuare?" "successive. Continuare?"
#: core/app.py:280 #: core/gui/ignore_list_dialog.py:24
msgid "Do you really want to remove all %d items from the ignore list?" msgid "Do you really want to remove all %d items from the ignore list?"
msgstr "" msgstr ""
"Vuoi veramente rimuovere tutti i %d elementi dalla lista dei file da " "Vuoi veramente rimuovere tutti i %d elementi dalla lista dei file da "
"ignorare?" "ignorare?"
#: core/app.py:283 #: core/app.py:367
msgid "Ignore list cleared."
msgstr ""
#: core/app.py:376
msgid "You have no custom command set up. Set it up in your preferences." msgid "You have no custom command set up. Set it up in your preferences."
msgstr "" msgstr ""
"Non hai impostato nessun comando personalizzato. Impostalo nelle tue " "Non hai impostato nessun comando personalizzato. Impostalo nelle tue "
"preferenze." "preferenze."
#: core/app.py:461 core/app.py:472 #: core/app.py:454 core/app.py:465
msgid "You are about to remove %d files from results. Continue?" msgid "You are about to remove %d files from results. Continue?"
msgstr "Stai per rimuovere %d file dai risultati. Continuare?" msgstr "Stai per rimuovere %d file dai risultati. Continuare?"
#: core/app.py:277 #: core/app.py:312
msgid "The ignore list is already empty. Nothing to clear."
msgstr ""
#: core/app.py:321
msgid "copy" msgid "copy"
msgstr "" msgstr ""
#: core/app.py:321 #: core/app.py:312
msgid "move" msgid "move"
msgstr "" msgstr ""
#: core/app.py:322 #: core/app.py:313
msgid "Select a directory to {} marked files to" msgid "Select a directory to {} marked files to"
msgstr "" msgstr ""
#: core/app.py:336 #: core/app.py:327
msgid "" msgid ""
"You are about to send %d files to Trash (and hardlink them afterwards). " "You are about to send %d files to Trash (and hardlink them afterwards). "
"Continue?" "Continue?"
msgstr "" msgstr ""
"Stai per inviare %d file nel cestino (compresi gli hardlink). Continuare?" "Stai per inviare %d file nel cestino (compresi gli hardlink). Continuare?"
#: core/app.py:338 #: core/app.py:329
msgid "You are about to send %d files to Trash. Continue?" msgid "You are about to send %d files to Trash. Continue?"
msgstr "Stai per inviare %d file nel cestino. Continuare?" msgstr "Stai per inviare %d file nel cestino. Continuare?"

View File

@ -2,19 +2,19 @@
msgid "" msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n" msgstr "Content-Type: text/plain; charset=utf-8\n"
#: cocoa/inter/app.py:15 qt/base/app.py:38 #: cocoa/inter/app.py:15 qt/base/app.py:39
msgid "Scanning for duplicates" msgid "Scanning for duplicates"
msgstr "Scansione per i duplicati" msgstr "Scansione per i duplicati"
#: cocoa/inter/app.py:16 qt/base/app.py:39 #: cocoa/inter/app.py:16 qt/base/app.py:40
msgid "Loading" msgid "Loading"
msgstr "Caricamento" msgstr "Caricamento"
#: cocoa/inter/app.py:17 qt/base/app.py:40 #: cocoa/inter/app.py:17 qt/base/app.py:41
msgid "Moving" msgid "Moving"
msgstr "Spostamento" msgstr "Spostamento"
#: cocoa/inter/app.py:18 qt/base/app.py:41 #: cocoa/inter/app.py:18 qt/base/app.py:42
msgid "Copying" msgid "Copying"
msgstr "Copia in corso" msgstr "Copia in corso"
@ -42,39 +42,39 @@ msgstr ""
msgid "The iPhoto application couldn't be found." msgid "The iPhoto application couldn't be found."
msgstr "Non trovo l'applicazione iPhoto." msgstr "Non trovo l'applicazione iPhoto."
#: qt/base/app.py:42 #: qt/base/app.py:43
msgid "Sending files to the recycle bin" msgid "Sending files to the recycle bin"
msgstr "" msgstr ""
#: qt/base/app.py:108 #: qt/base/app.py:110
msgid "Quit" msgid "Quit"
msgstr "" msgstr ""
#: qt/base/app.py:109 qt/base/preferences_dialog.py:123 #: qt/base/app.py:111 qt/base/preferences_dialog.py:123
msgid "Preferences" msgid "Preferences"
msgstr "" msgstr ""
#: qt/base/app.py:110 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/app.py:113 cocoa/base/en.lproj/MainMenu.strings:0
msgid "dupeGuru Help" msgid "dupeGuru Help"
msgstr "Aiuto di dupeGuru" msgstr "Aiuto di dupeGuru"
#: qt/base/app.py:111 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/app.py:114 cocoa/base/en.lproj/MainMenu.strings:0
msgid "About dupeGuru" msgid "About dupeGuru"
msgstr "Informazioni su dupeGuru" msgstr "Informazioni su dupeGuru"
#: qt/base/app.py:112 #: qt/base/app.py:115
msgid "Register dupeGuru" msgid "Register dupeGuru"
msgstr "" msgstr ""
#: qt/base/app.py:113 #: qt/base/app.py:116
msgid "Check for Update" msgid "Check for Update"
msgstr "" msgstr ""
#: qt/base/app.py:114 #: qt/base/app.py:117
msgid "Open Debug Log" msgid "Open Debug Log"
msgstr "" msgstr ""
#: qt/base/app.py:226 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/app.py:232 cocoa/base/en.lproj/Localizable.strings:0
msgid "" msgid ""
"A previous action is still hanging in there. You can't start a new one yet. " "A previous action is still hanging in there. You can't start a new one yet. "
"Wait a few seconds, then try again." "Wait a few seconds, then try again."
@ -111,16 +111,16 @@ msgstr "Finestra dei risultati"
msgid "Add Folder..." msgid "Add Folder..."
msgstr "" msgstr ""
#: qt/base/directories_dialog.py:67 qt/base/result_window.py:83 #: qt/base/directories_dialog.py:67 qt/base/result_window.py:82
#: cocoa/base/en.lproj/MainMenu.strings:0 #: cocoa/base/en.lproj/MainMenu.strings:0
msgid "File" msgid "File"
msgstr "File" msgstr "File"
#: qt/base/directories_dialog.py:69 qt/base/result_window.py:91 #: qt/base/directories_dialog.py:69 qt/base/result_window.py:90
msgid "View" msgid "View"
msgstr "" msgstr ""
#: qt/base/directories_dialog.py:71 qt/base/result_window.py:93 #: qt/base/directories_dialog.py:71 qt/base/result_window.py:92
#: cocoa/base/en.lproj/MainMenu.strings:0 #: cocoa/base/en.lproj/MainMenu.strings:0
msgid "Help" msgid "Help"
msgstr "Aiuto" msgstr "Aiuto"
@ -129,52 +129,52 @@ msgstr "Aiuto"
msgid "Load Recent Results" msgid "Load Recent Results"
msgstr "Carica i risultati recenti" msgstr "Carica i risultati recenti"
#: qt/base/directories_dialog.py:107 #: qt/base/directories_dialog.py:108
#: cocoa/base/en.lproj/DirectoryPanel.strings:0 #: cocoa/base/en.lproj/DirectoryPanel.strings:0
msgid "Select folders to scan and press \"Scan\"." msgid "Select folders to scan and press \"Scan\"."
msgstr "Seleziona le cartelle da scansionare e premi \"Scansiona\"." msgstr "Seleziona le cartelle da scansionare e premi \"Scansiona\"."
#: qt/base/directories_dialog.py:131 #: qt/base/directories_dialog.py:132
#: cocoa/base/en.lproj/DirectoryPanel.strings:0 #: cocoa/base/en.lproj/DirectoryPanel.strings:0
msgid "Load Results" msgid "Load Results"
msgstr "Carica i risultati" msgstr "Carica i risultati"
#: qt/base/directories_dialog.py:134 #: qt/base/directories_dialog.py:135
#: cocoa/base/en.lproj/DirectoryPanel.strings:0 #: cocoa/base/en.lproj/DirectoryPanel.strings:0
msgid "Scan" msgid "Scan"
msgstr "Scansiona" msgstr "Scansiona"
#: qt/base/directories_dialog.py:178 #: qt/base/directories_dialog.py:179
msgid "Unsaved results" msgid "Unsaved results"
msgstr "" msgstr ""
#: qt/base/directories_dialog.py:179 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/directories_dialog.py:180 cocoa/base/en.lproj/Localizable.strings:0
msgid "You have unsaved results, do you really want to quit?" msgid "You have unsaved results, do you really want to quit?"
msgstr "Hai dei risultati non salvati. Vuoi veramente chiudere?" msgstr "Hai dei risultati non salvati. Vuoi veramente chiudere?"
#: qt/base/directories_dialog.py:187 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/directories_dialog.py:188 cocoa/base/en.lproj/Localizable.strings:0
msgid "Select a folder to add to the scanning list" msgid "Select a folder to add to the scanning list"
msgstr "" msgstr ""
"Seleziona una cartella da aggiungere alla lista delle cartelle da " "Seleziona una cartella da aggiungere alla lista delle cartelle da "
"scansionare" "scansionare"
#: qt/base/directories_dialog.py:204 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/directories_dialog.py:205 cocoa/base/en.lproj/Localizable.strings:0
msgid "Select a results file to load" msgid "Select a results file to load"
msgstr "Seleziona un risultato (file) da caricare" msgstr "Seleziona un risultato (file) da caricare"
#: qt/base/directories_dialog.py:205 #: qt/base/directories_dialog.py:206
msgid "All Files (*.*)" msgid "All Files (*.*)"
msgstr "" msgstr ""
#: qt/base/directories_dialog.py:205 qt/base/result_window.py:305 #: qt/base/directories_dialog.py:206 qt/base/result_window.py:301
msgid "dupeGuru Results (*.dupeguru)" msgid "dupeGuru Results (*.dupeguru)"
msgstr "" msgstr ""
#: qt/base/directories_dialog.py:216 #: qt/base/directories_dialog.py:217
msgid "Start a new scan" msgid "Start a new scan"
msgstr "" msgstr ""
#: qt/base/directories_dialog.py:217 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/directories_dialog.py:218 cocoa/base/en.lproj/Localizable.strings:0
msgid "You have unsaved results, do you really want to continue?" msgid "You have unsaved results, do you really want to continue?"
msgstr "Hai dei risultati non salvati. Vuoi veramente continuare?" msgstr "Hai dei risultati non salvati. Vuoi veramente continuare?"
@ -292,18 +292,19 @@ msgstr ""
msgid "Reveal Selected" msgid "Reveal Selected"
msgstr "Mostra i selezionati" msgstr "Mostra i selezionati"
#: qt/base/problem_dialog.py:57 cocoa/base/en.lproj/ProblemDialog.strings:0 #: qt/base/problem_dialog.py:57 cocoa/base/en.lproj/IgnoreListDialog.strings:0
#: cocoa/base/en.lproj/ProblemDialog.strings:0
msgid "Close" msgid "Close"
msgstr "Chiudi" msgstr "Chiudi"
#: qt/base/result_window.py:47 qt/base/result_window.py:178 #: qt/base/result_window.py:47 qt/base/result_window.py:177
#: qt/me/details_dialog.py:20 qt/pe/details_dialog.py:25 #: qt/me/details_dialog.py:20 qt/pe/details_dialog.py:25
#: qt/se/details_dialog.py:20 cocoa/base/en.lproj/ResultWindow.strings:0 #: qt/se/details_dialog.py:20 cocoa/base/en.lproj/ResultWindow.strings:0
msgid "Details" msgid "Details"
msgstr "Dettagli" msgstr "Dettagli"
#: qt/base/result_window.py:48 qt/base/result_window.py:87 #: qt/base/result_window.py:48 qt/base/result_window.py:86
#: qt/base/result_window.py:152 qt/base/result_window.py:177 #: qt/base/result_window.py:151 qt/base/result_window.py:176
#: cocoa/base/en.lproj/MainMenu.strings:0 #: cocoa/base/en.lproj/MainMenu.strings:0
msgid "Actions" msgid "Actions"
msgstr "Azioni" msgstr "Azioni"
@ -389,41 +390,37 @@ msgstr "Inverti la selezione"
msgid "Mark Selected" msgid "Mark Selected"
msgstr "Marca i selezionati" msgstr "Marca i selezionati"
#: qt/base/result_window.py:67 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/result_window.py:67
msgid "Clear Ignore List"
msgstr "Cancella la lista degli elementi da ignorare"
#: qt/base/result_window.py:68
msgid "Export To HTML" msgid "Export To HTML"
msgstr "" msgstr ""
#: qt/base/result_window.py:69 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/result_window.py:68 cocoa/base/en.lproj/MainMenu.strings:0
msgid "Save Results..." msgid "Save Results..."
msgstr "Salva i risultati..." msgstr "Salva i risultati..."
#: qt/base/result_window.py:70 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/result_window.py:69 cocoa/base/en.lproj/MainMenu.strings:0
msgid "Invoke Custom Command" msgid "Invoke Custom Command"
msgstr "Invoca comando personalizzato" msgstr "Invoca comando personalizzato"
#: qt/base/result_window.py:85 #: qt/base/result_window.py:84
msgid "Mark" msgid "Mark"
msgstr "" msgstr ""
#: qt/base/result_window.py:89 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/result_window.py:88 cocoa/base/en.lproj/MainMenu.strings:0
msgid "Columns" msgid "Columns"
msgstr "Colonne" msgstr "Colonne"
#: qt/base/result_window.py:148 cocoa/se/en.lproj/Preferences.strings:0 #: qt/base/result_window.py:147 cocoa/se/en.lproj/Preferences.strings:0
#: cocoa/me/en.lproj/Preferences.strings:0 #: cocoa/me/en.lproj/Preferences.strings:0
#: cocoa/pe/en.lproj/Preferences.strings:0 #: cocoa/pe/en.lproj/Preferences.strings:0
msgid "Reset to Defaults" msgid "Reset to Defaults"
msgstr "Ripristina impostazioni predefinite" msgstr "Ripristina impostazioni predefinite"
#: qt/base/result_window.py:171 #: qt/base/result_window.py:170
msgid "{} Results" msgid "{} Results"
msgstr "" msgstr ""
#: qt/base/result_window.py:304 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/result_window.py:300 cocoa/base/en.lproj/Localizable.strings:0
msgid "Select a file to save your results to" msgid "Select a file to save your results to"
msgstr "Seleziona un file dove salvare i tuoi risultati" msgstr "Seleziona un file dove salvare i tuoi risultati"
@ -732,7 +729,7 @@ msgstr "Azione"
msgid "Directories" msgid "Directories"
msgstr "Cartelle" msgstr "Cartelle"
#: qt/base/result_window.py:179 cocoa/base/en.lproj/ResultWindow.strings:0 #: qt/base/result_window.py:178 cocoa/base/en.lproj/ResultWindow.strings:0
msgid "Dupes Only" msgid "Dupes Only"
msgstr "Solo duplicati" msgstr "Solo duplicati"
@ -863,7 +860,7 @@ msgstr ""
msgid "The iTunes application couldn't be found." msgid "The iTunes application couldn't be found."
msgstr "" msgstr ""
#: qt/base/result_window.py:180 #: qt/base/result_window.py:179
msgid "Delta Values" msgid "Delta Values"
msgstr "" msgstr ""
@ -872,3 +869,19 @@ msgid ""
"There were communication problems with iTunes. The operation couldn't be " "There were communication problems with iTunes. The operation couldn't be "
"completed." "completed."
msgstr "" msgstr ""
#: qt/base/app.py:112 qt/base/ignore_list_dialog.py:31
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
#: cocoa/base/en.lproj/MainMenu.strings:0
msgid "Ignore List"
msgstr ""
#: qt/base/ignore_list_dialog.py:44
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
msgid "Remove Selected"
msgstr ""
#: qt/base/ignore_list_dialog.py:45
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
msgid "Clear"
msgstr ""

View File

@ -12,11 +12,12 @@ msgstr ""
"X-Poedit-Country: RUSSIAN FEDERATION\n" "X-Poedit-Country: RUSSIAN FEDERATION\n"
"X-Poedit-Language: Russian\n" "X-Poedit-Language: Russian\n"
#: core/gui/problem_table.py:18 #: core/gui/ignore_list_table.py:18 core/gui/ignore_list_table.py:19
#: core/gui/problem_table.py:17
msgid "File Path" msgid "File Path"
msgstr "Путь к файлу" msgstr "Путь к файлу"
#: core/gui/problem_table.py:19 #: core/gui/problem_table.py:18
msgid "Error Message" msgid "Error Message"
msgstr "Сообщение об ошибке" msgstr "Сообщение об ошибке"

View File

@ -12,7 +12,7 @@ msgstr ""
"X-Poedit-Country: RUSSIAN FEDERATION\n" "X-Poedit-Country: RUSSIAN FEDERATION\n"
"X-Poedit-Language: Russian\n" "X-Poedit-Language: Russian\n"
#: core/app.py:93 #: core/app.py:94
msgid "will only be able to delete, move or copy 10 duplicates at once" msgid "will only be able to delete, move or copy 10 duplicates at once"
msgstr "" msgstr ""
"сможете только для удаления, перемещения или копирования 10 копий сразу" "сможете только для удаления, перемещения или копирования 10 копий сразу"
@ -25,15 +25,15 @@ msgstr ""
"Вы не можете удалять, перемещать или копировать более 10 дубликатов сразу в " "Вы не можете удалять, перемещать или копировать более 10 дубликатов сразу в "
"демонстрационном режиме." "демонстрационном режиме."
#: core/app.py:508 #: core/app.py:501
msgid "Collecting files to scan" msgid "Collecting files to scan"
msgstr "Сбор файлов для сканирования" msgstr "Сбор файлов для сканирования"
#: core/app.py:519 #: core/app.py:512
msgid "The selected directories contain no scannable file." msgid "The selected directories contain no scannable file."
msgstr "Выбранных директорий не содержат сканируемых файлов." msgstr "Выбранных директорий не содержат сканируемых файлов."
#: core/app.py:558 #: core/app.py:551
msgid "%s (%d discarded)" msgid "%s (%d discarded)"
msgstr "%s. (%d отменено)" msgstr "%s. (%d отменено)"
@ -125,11 +125,11 @@ msgstr "Проверенные %d/%d совпадениях"
msgid "Read EXIF of %d/%d pictures" msgid "Read EXIF of %d/%d pictures"
msgstr "Прочитано EXIF %d/%d из фотографии" msgstr "Прочитано EXIF %d/%d из фотографии"
#: core/app.py:35 #: core/app.py:36
msgid "There are no marked duplicates. Nothing has been done." msgid "There are no marked duplicates. Nothing has been done."
msgstr "" msgstr ""
#: core/app.py:36 #: core/app.py:37
msgid "There are no selected duplicates. Nothing has been done." msgid "There are no selected duplicates. Nothing has been done."
msgstr "" msgstr ""
@ -157,41 +157,33 @@ msgstr ""
"Все выбранные %d матчей будут игнорироваться во всех последующих проверок. " "Все выбранные %d матчей будут игнорироваться во всех последующих проверок. "
"Продолжить?" "Продолжить?"
#: core/app.py:280 #: core/gui/ignore_list_dialog.py:24
msgid "Do you really want to remove all %d items from the ignore list?" msgid "Do you really want to remove all %d items from the ignore list?"
msgstr "Вы действительно хотите удалить все элементы %d из черного списка?" msgstr "Вы действительно хотите удалить все элементы %d из черного списка?"
#: core/app.py:283 #: core/app.py:367
msgid "Ignore list cleared."
msgstr "Черный список очищается."
#: core/app.py:376
msgid "You have no custom command set up. Set it up in your preferences." msgid "You have no custom command set up. Set it up in your preferences."
msgstr "" msgstr ""
"У вас нет пользовательской команды создали. Установите его в ваших " "У вас нет пользовательской команды создали. Установите его в ваших "
"предпочтениях." "предпочтениях."
#: core/app.py:461 core/app.py:472 #: core/app.py:454 core/app.py:465
msgid "You are about to remove %d files from results. Continue?" msgid "You are about to remove %d files from results. Continue?"
msgstr "Вы собираетесь удалить файлы %d из результата поиска. Продолжить?" msgstr "Вы собираетесь удалить файлы %d из результата поиска. Продолжить?"
#: core/app.py:277 #: core/app.py:312
msgid "The ignore list is already empty. Nothing to clear."
msgstr ""
#: core/app.py:321
msgid "copy" msgid "copy"
msgstr "копия" msgstr "копия"
#: core/app.py:321 #: core/app.py:312
msgid "move" msgid "move"
msgstr "перемещение" msgstr "перемещение"
#: core/app.py:322 #: core/app.py:313
msgid "Select a directory to {} marked files to" msgid "Select a directory to {} marked files to"
msgstr "Выберите каталог на {} отмеченные файлы" msgstr "Выберите каталог на {} отмеченные файлы"
#: core/app.py:336 #: core/app.py:327
msgid "" msgid ""
"You are about to send %d files to Trash (and hardlink them afterwards). " "You are about to send %d files to Trash (and hardlink them afterwards). "
"Continue?" "Continue?"
@ -199,6 +191,6 @@ msgstr ""
"Вы собираетесь отправить%d файлы в корзину (и жесткую них позже). " "Вы собираетесь отправить%d файлы в корзину (и жесткую них позже). "
"Продолжить?" "Продолжить?"
#: core/app.py:338 #: core/app.py:329
msgid "You are about to send %d files to Trash. Continue?" msgid "You are about to send %d files to Trash. Continue?"
msgstr "Вы собираетесь отправить %d файлы в корзину. Продолжить?" msgstr "Вы собираетесь отправить %d файлы в корзину. Продолжить?"

View File

@ -12,19 +12,19 @@ msgstr ""
"X-Poedit-Country: RUSSIAN FEDERATION\n" "X-Poedit-Country: RUSSIAN FEDERATION\n"
"X-Poedit-Language: Russian\n" "X-Poedit-Language: Russian\n"
#: cocoa/inter/app.py:15 qt/base/app.py:38 #: cocoa/inter/app.py:15 qt/base/app.py:39
msgid "Scanning for duplicates" msgid "Scanning for duplicates"
msgstr "Проверка на наличие дубликатов" msgstr "Проверка на наличие дубликатов"
#: cocoa/inter/app.py:16 qt/base/app.py:39 #: cocoa/inter/app.py:16 qt/base/app.py:40
msgid "Loading" msgid "Loading"
msgstr "Загрузка" msgstr "Загрузка"
#: cocoa/inter/app.py:17 qt/base/app.py:40 #: cocoa/inter/app.py:17 qt/base/app.py:41
msgid "Moving" msgid "Moving"
msgstr "Перемещение" msgstr "Перемещение"
#: cocoa/inter/app.py:18 qt/base/app.py:41 #: cocoa/inter/app.py:18 qt/base/app.py:42
msgid "Copying" msgid "Copying"
msgstr "Копирование" msgstr "Копирование"
@ -52,39 +52,39 @@ msgstr "В контакте с iPhoto. Не трогайте!"
msgid "The iPhoto application couldn't be found." msgid "The iPhoto application couldn't be found."
msgstr "iPhoto приложение не может быть найдено." msgstr "iPhoto приложение не может быть найдено."
#: qt/base/app.py:42 #: qt/base/app.py:43
msgid "Sending files to the recycle bin" msgid "Sending files to the recycle bin"
msgstr "Отправка файлов в корзину" msgstr "Отправка файлов в корзину"
#: qt/base/app.py:108 #: qt/base/app.py:110
msgid "Quit" msgid "Quit"
msgstr "Выход" msgstr "Выход"
#: qt/base/app.py:109 qt/base/preferences_dialog.py:123 #: qt/base/app.py:111 qt/base/preferences_dialog.py:123
msgid "Preferences" msgid "Preferences"
msgstr "Предпочтения" msgstr "Предпочтения"
#: qt/base/app.py:110 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/app.py:113 cocoa/base/en.lproj/MainMenu.strings:0
msgid "dupeGuru Help" msgid "dupeGuru Help"
msgstr "Справка dupeGuru" msgstr "Справка dupeGuru"
#: qt/base/app.py:111 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/app.py:114 cocoa/base/en.lproj/MainMenu.strings:0
msgid "About dupeGuru" msgid "About dupeGuru"
msgstr "О dupeGuru" msgstr "О dupeGuru"
#: qt/base/app.py:112 #: qt/base/app.py:115
msgid "Register dupeGuru" msgid "Register dupeGuru"
msgstr "Регистрация dupeGuru" msgstr "Регистрация dupeGuru"
#: qt/base/app.py:113 #: qt/base/app.py:116
msgid "Check for Update" msgid "Check for Update"
msgstr "Проверить обновления" msgstr "Проверить обновления"
#: qt/base/app.py:114 #: qt/base/app.py:117
msgid "Open Debug Log" msgid "Open Debug Log"
msgstr "Открыть журнал Debug" msgstr "Открыть журнал Debug"
#: qt/base/app.py:226 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/app.py:232 cocoa/base/en.lproj/Localizable.strings:0
msgid "" msgid ""
"A previous action is still hanging in there. You can't start a new one yet. " "A previous action is still hanging in there. You can't start a new one yet. "
"Wait a few seconds, then try again." "Wait a few seconds, then try again."
@ -121,16 +121,16 @@ msgstr "Окно результатов"
msgid "Add Folder..." msgid "Add Folder..."
msgstr "Добавить папку ..." msgstr "Добавить папку ..."
#: qt/base/directories_dialog.py:67 qt/base/result_window.py:83 #: qt/base/directories_dialog.py:67 qt/base/result_window.py:82
#: cocoa/base/en.lproj/MainMenu.strings:0 #: cocoa/base/en.lproj/MainMenu.strings:0
msgid "File" msgid "File"
msgstr "Файл" msgstr "Файл"
#: qt/base/directories_dialog.py:69 qt/base/result_window.py:91 #: qt/base/directories_dialog.py:69 qt/base/result_window.py:90
msgid "View" msgid "View"
msgstr "Вид" msgstr "Вид"
#: qt/base/directories_dialog.py:71 qt/base/result_window.py:93 #: qt/base/directories_dialog.py:71 qt/base/result_window.py:92
#: cocoa/base/en.lproj/MainMenu.strings:0 #: cocoa/base/en.lproj/MainMenu.strings:0
msgid "Help" msgid "Help"
msgstr "Помощь" msgstr "Помощь"
@ -139,50 +139,50 @@ msgstr "Помощь"
msgid "Load Recent Results" msgid "Load Recent Results"
msgstr "Нагрузка Последних результатов" msgstr "Нагрузка Последних результатов"
#: qt/base/directories_dialog.py:107 #: qt/base/directories_dialog.py:108
#: cocoa/base/en.lproj/DirectoryPanel.strings:0 #: cocoa/base/en.lproj/DirectoryPanel.strings:0
msgid "Select folders to scan and press \"Scan\"." msgid "Select folders to scan and press \"Scan\"."
msgstr "Выбрайте папкы для сканирования и нажмите \"Сканирование\"." msgstr "Выбрайте папкы для сканирования и нажмите \"Сканирование\"."
#: qt/base/directories_dialog.py:131 #: qt/base/directories_dialog.py:132
#: cocoa/base/en.lproj/DirectoryPanel.strings:0 #: cocoa/base/en.lproj/DirectoryPanel.strings:0
msgid "Load Results" msgid "Load Results"
msgstr "Задрузить Результаты" msgstr "Задрузить Результаты"
#: qt/base/directories_dialog.py:134 #: qt/base/directories_dialog.py:135
#: cocoa/base/en.lproj/DirectoryPanel.strings:0 #: cocoa/base/en.lproj/DirectoryPanel.strings:0
msgid "Scan" msgid "Scan"
msgstr "Сканирование" msgstr "Сканирование"
#: qt/base/directories_dialog.py:178 #: qt/base/directories_dialog.py:179
msgid "Unsaved results" msgid "Unsaved results"
msgstr "Несохраненные результаты" msgstr "Несохраненные результаты"
#: qt/base/directories_dialog.py:179 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/directories_dialog.py:180 cocoa/base/en.lproj/Localizable.strings:0
msgid "You have unsaved results, do you really want to quit?" msgid "You have unsaved results, do you really want to quit?"
msgstr "Есть несохраненные результаты, вы действительно хотите выйти?" msgstr "Есть несохраненные результаты, вы действительно хотите выйти?"
#: qt/base/directories_dialog.py:187 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/directories_dialog.py:188 cocoa/base/en.lproj/Localizable.strings:0
msgid "Select a folder to add to the scanning list" msgid "Select a folder to add to the scanning list"
msgstr "Выберите папку для добавления в список сканирования" msgstr "Выберите папку для добавления в список сканирования"
#: qt/base/directories_dialog.py:204 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/directories_dialog.py:205 cocoa/base/en.lproj/Localizable.strings:0
msgid "Select a results file to load" msgid "Select a results file to load"
msgstr "Выберите файл результатов для загрузки" msgstr "Выберите файл результатов для загрузки"
#: qt/base/directories_dialog.py:205 #: qt/base/directories_dialog.py:206
msgid "All Files (*.*)" msgid "All Files (*.*)"
msgstr "Все файлы (*.*)" msgstr "Все файлы (*.*)"
#: qt/base/directories_dialog.py:205 qt/base/result_window.py:305 #: qt/base/directories_dialog.py:206 qt/base/result_window.py:301
msgid "dupeGuru Results (*.dupeguru)" msgid "dupeGuru Results (*.dupeguru)"
msgstr "dupeGuru результаты (*. dupeguru)" msgstr "dupeGuru результаты (*. dupeguru)"
#: qt/base/directories_dialog.py:216 #: qt/base/directories_dialog.py:217
msgid "Start a new scan" msgid "Start a new scan"
msgstr "Начать новую проверку" msgstr "Начать новую проверку"
#: qt/base/directories_dialog.py:217 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/directories_dialog.py:218 cocoa/base/en.lproj/Localizable.strings:0
msgid "You have unsaved results, do you really want to continue?" msgid "You have unsaved results, do you really want to continue?"
msgstr "" msgstr ""
"Вы сделали какие-нибудь результаты, вы действительно хотите продолжить?" "Вы сделали какие-нибудь результаты, вы действительно хотите продолжить?"
@ -302,18 +302,19 @@ msgstr ""
msgid "Reveal Selected" msgid "Reveal Selected"
msgstr "Показать выбранное" msgstr "Показать выбранное"
#: qt/base/problem_dialog.py:57 cocoa/base/en.lproj/ProblemDialog.strings:0 #: qt/base/problem_dialog.py:57 cocoa/base/en.lproj/IgnoreListDialog.strings:0
#: cocoa/base/en.lproj/ProblemDialog.strings:0
msgid "Close" msgid "Close"
msgstr "Закрывать" msgstr "Закрывать"
#: qt/base/result_window.py:47 qt/base/result_window.py:178 #: qt/base/result_window.py:47 qt/base/result_window.py:177
#: qt/me/details_dialog.py:20 qt/pe/details_dialog.py:25 #: qt/me/details_dialog.py:20 qt/pe/details_dialog.py:25
#: qt/se/details_dialog.py:20 cocoa/base/en.lproj/ResultWindow.strings:0 #: qt/se/details_dialog.py:20 cocoa/base/en.lproj/ResultWindow.strings:0
msgid "Details" msgid "Details"
msgstr "Детали" msgstr "Детали"
#: qt/base/result_window.py:48 qt/base/result_window.py:87 #: qt/base/result_window.py:48 qt/base/result_window.py:86
#: qt/base/result_window.py:152 qt/base/result_window.py:177 #: qt/base/result_window.py:151 qt/base/result_window.py:176
#: cocoa/base/en.lproj/MainMenu.strings:0 #: cocoa/base/en.lproj/MainMenu.strings:0
msgid "Actions" msgid "Actions"
msgstr "Действия" msgstr "Действия"
@ -399,41 +400,37 @@ msgstr "Обратить Маркировку"
msgid "Mark Selected" msgid "Mark Selected"
msgstr "Отметить Выбранные" msgstr "Отметить Выбранные"
#: qt/base/result_window.py:67 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/result_window.py:67
msgid "Clear Ignore List"
msgstr "Очистить список друзей"
#: qt/base/result_window.py:68
msgid "Export To HTML" msgid "Export To HTML"
msgstr "Экспорт в HTML" msgstr "Экспорт в HTML"
#: qt/base/result_window.py:69 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/result_window.py:68 cocoa/base/en.lproj/MainMenu.strings:0
msgid "Save Results..." msgid "Save Results..."
msgstr "Сохранить результаты ..." msgstr "Сохранить результаты ..."
#: qt/base/result_window.py:70 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/result_window.py:69 cocoa/base/en.lproj/MainMenu.strings:0
msgid "Invoke Custom Command" msgid "Invoke Custom Command"
msgstr "Вызвать специальную команду" msgstr "Вызвать специальную команду"
#: qt/base/result_window.py:85 #: qt/base/result_window.py:84
msgid "Mark" msgid "Mark"
msgstr "Отметить" msgstr "Отметить"
#: qt/base/result_window.py:89 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/result_window.py:88 cocoa/base/en.lproj/MainMenu.strings:0
msgid "Columns" msgid "Columns"
msgstr "Колонны" msgstr "Колонны"
#: qt/base/result_window.py:148 cocoa/se/en.lproj/Preferences.strings:0 #: qt/base/result_window.py:147 cocoa/se/en.lproj/Preferences.strings:0
#: cocoa/me/en.lproj/Preferences.strings:0 #: cocoa/me/en.lproj/Preferences.strings:0
#: cocoa/pe/en.lproj/Preferences.strings:0 #: cocoa/pe/en.lproj/Preferences.strings:0
msgid "Reset to Defaults" msgid "Reset to Defaults"
msgstr "Восстановить значения по умолчанию" msgstr "Восстановить значения по умолчанию"
#: qt/base/result_window.py:171 #: qt/base/result_window.py:170
msgid "{} Results" msgid "{} Results"
msgstr "{} Результаты" msgstr "{} Результаты"
#: qt/base/result_window.py:304 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/result_window.py:300 cocoa/base/en.lproj/Localizable.strings:0
msgid "Select a file to save your results to" msgid "Select a file to save your results to"
msgstr "Выберите файл, чтобы сохранить ваши результаты" msgstr "Выберите файл, чтобы сохранить ваши результаты"
@ -765,7 +762,7 @@ msgstr "Действие"
msgid "Directories" msgid "Directories"
msgstr "Каталоги" msgstr "Каталоги"
#: qt/base/result_window.py:179 cocoa/base/en.lproj/ResultWindow.strings:0 #: qt/base/result_window.py:178 cocoa/base/en.lproj/ResultWindow.strings:0
msgid "Dupes Only" msgid "Dupes Only"
msgstr "Только обманки" msgstr "Только обманки"
@ -860,7 +857,7 @@ msgstr ""
msgid "The iTunes application couldn't be found." msgid "The iTunes application couldn't be found."
msgstr "" msgstr ""
#: qt/base/result_window.py:180 #: qt/base/result_window.py:179
msgid "Delta Values" msgid "Delta Values"
msgstr "" msgstr ""
@ -869,3 +866,19 @@ msgid ""
"There were communication problems with iTunes. The operation couldn't be " "There were communication problems with iTunes. The operation couldn't be "
"completed." "completed."
msgstr "" msgstr ""
#: qt/base/app.py:112 qt/base/ignore_list_dialog.py:31
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
#: cocoa/base/en.lproj/MainMenu.strings:0
msgid "Ignore List"
msgstr ""
#: qt/base/ignore_list_dialog.py:44
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
msgid "Remove Selected"
msgstr ""
#: qt/base/ignore_list_dialog.py:45
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
msgid "Clear"
msgstr ""

View File

@ -2,19 +2,19 @@
msgid "" msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n" msgstr "Content-Type: text/plain; charset=utf-8\n"
#: cocoa/inter/app.py:15 qt/base/app.py:38 #: cocoa/inter/app.py:15 qt/base/app.py:39
msgid "Scanning for duplicates" msgid "Scanning for duplicates"
msgstr "" msgstr ""
#: cocoa/inter/app.py:16 qt/base/app.py:39 #: cocoa/inter/app.py:16 qt/base/app.py:40
msgid "Loading" msgid "Loading"
msgstr "" msgstr ""
#: cocoa/inter/app.py:17 qt/base/app.py:40 #: cocoa/inter/app.py:17 qt/base/app.py:41
msgid "Moving" msgid "Moving"
msgstr "" msgstr ""
#: cocoa/inter/app.py:18 qt/base/app.py:41 #: cocoa/inter/app.py:18 qt/base/app.py:42
msgid "Copying" msgid "Copying"
msgstr "" msgstr ""
@ -65,39 +65,45 @@ msgstr ""
msgid "The iPhoto application couldn't be found." msgid "The iPhoto application couldn't be found."
msgstr "" msgstr ""
#: qt/base/app.py:42 #: qt/base/app.py:43
msgid "Sending files to the recycle bin" msgid "Sending files to the recycle bin"
msgstr "" msgstr ""
#: qt/base/app.py:108 #: qt/base/app.py:110
msgid "Quit" msgid "Quit"
msgstr "" msgstr ""
#: qt/base/app.py:109 qt/base/preferences_dialog.py:123 #: qt/base/app.py:111 qt/base/preferences_dialog.py:123
msgid "Preferences" msgid "Preferences"
msgstr "" msgstr ""
#: qt/base/app.py:110 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/app.py:112 qt/base/ignore_list_dialog.py:31
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
#: cocoa/base/en.lproj/MainMenu.strings:0
msgid "Ignore List"
msgstr ""
#: qt/base/app.py:113 cocoa/base/en.lproj/MainMenu.strings:0
msgid "dupeGuru Help" msgid "dupeGuru Help"
msgstr "" msgstr ""
#: qt/base/app.py:111 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/app.py:114 cocoa/base/en.lproj/MainMenu.strings:0
msgid "About dupeGuru" msgid "About dupeGuru"
msgstr "" msgstr ""
#: qt/base/app.py:112 #: qt/base/app.py:115
msgid "Register dupeGuru" msgid "Register dupeGuru"
msgstr "" msgstr ""
#: qt/base/app.py:113 #: qt/base/app.py:116
msgid "Check for Update" msgid "Check for Update"
msgstr "" msgstr ""
#: qt/base/app.py:114 #: qt/base/app.py:117
msgid "Open Debug Log" msgid "Open Debug Log"
msgstr "" msgstr ""
#: qt/base/app.py:226 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/app.py:232 cocoa/base/en.lproj/Localizable.strings:0
msgid "" msgid ""
"A previous action is still hanging in there. You can't start a new one yet. " "A previous action is still hanging in there. You can't start a new one yet. "
"Wait a few seconds, then try again." "Wait a few seconds, then try again."
@ -132,16 +138,16 @@ msgstr ""
msgid "Add Folder..." msgid "Add Folder..."
msgstr "" msgstr ""
#: qt/base/directories_dialog.py:67 qt/base/result_window.py:83 #: qt/base/directories_dialog.py:67 qt/base/result_window.py:82
#: cocoa/base/en.lproj/MainMenu.strings:0 #: cocoa/base/en.lproj/MainMenu.strings:0
msgid "File" msgid "File"
msgstr "" msgstr ""
#: qt/base/directories_dialog.py:69 qt/base/result_window.py:91 #: qt/base/directories_dialog.py:69 qt/base/result_window.py:90
msgid "View" msgid "View"
msgstr "" msgstr ""
#: qt/base/directories_dialog.py:71 qt/base/result_window.py:93 #: qt/base/directories_dialog.py:71 qt/base/result_window.py:92
#: cocoa/base/en.lproj/MainMenu.strings:0 #: cocoa/base/en.lproj/MainMenu.strings:0
msgid "Help" msgid "Help"
msgstr "" msgstr ""
@ -150,50 +156,50 @@ msgstr ""
msgid "Load Recent Results" msgid "Load Recent Results"
msgstr "" msgstr ""
#: qt/base/directories_dialog.py:107 #: qt/base/directories_dialog.py:108
#: cocoa/base/en.lproj/DirectoryPanel.strings:0 #: cocoa/base/en.lproj/DirectoryPanel.strings:0
msgid "Select folders to scan and press \"Scan\"." msgid "Select folders to scan and press \"Scan\"."
msgstr "" msgstr ""
#: qt/base/directories_dialog.py:131 #: qt/base/directories_dialog.py:132
#: cocoa/base/en.lproj/DirectoryPanel.strings:0 #: cocoa/base/en.lproj/DirectoryPanel.strings:0
msgid "Load Results" msgid "Load Results"
msgstr "" msgstr ""
#: qt/base/directories_dialog.py:134 #: qt/base/directories_dialog.py:135
#: cocoa/base/en.lproj/DirectoryPanel.strings:0 #: cocoa/base/en.lproj/DirectoryPanel.strings:0
msgid "Scan" msgid "Scan"
msgstr "" msgstr ""
#: qt/base/directories_dialog.py:178 #: qt/base/directories_dialog.py:179
msgid "Unsaved results" msgid "Unsaved results"
msgstr "" msgstr ""
#: qt/base/directories_dialog.py:179 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/directories_dialog.py:180 cocoa/base/en.lproj/Localizable.strings:0
msgid "You have unsaved results, do you really want to quit?" msgid "You have unsaved results, do you really want to quit?"
msgstr "" msgstr ""
#: qt/base/directories_dialog.py:187 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/directories_dialog.py:188 cocoa/base/en.lproj/Localizable.strings:0
msgid "Select a folder to add to the scanning list" msgid "Select a folder to add to the scanning list"
msgstr "" msgstr ""
#: qt/base/directories_dialog.py:204 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/directories_dialog.py:205 cocoa/base/en.lproj/Localizable.strings:0
msgid "Select a results file to load" msgid "Select a results file to load"
msgstr "" msgstr ""
#: qt/base/directories_dialog.py:205 #: qt/base/directories_dialog.py:206
msgid "All Files (*.*)" msgid "All Files (*.*)"
msgstr "" msgstr ""
#: qt/base/directories_dialog.py:205 qt/base/result_window.py:305 #: qt/base/directories_dialog.py:206 qt/base/result_window.py:301
msgid "dupeGuru Results (*.dupeguru)" msgid "dupeGuru Results (*.dupeguru)"
msgstr "" msgstr ""
#: qt/base/directories_dialog.py:216 #: qt/base/directories_dialog.py:217
msgid "Start a new scan" msgid "Start a new scan"
msgstr "" msgstr ""
#: qt/base/directories_dialog.py:217 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/directories_dialog.py:218 cocoa/base/en.lproj/Localizable.strings:0
msgid "You have unsaved results, do you really want to continue?" msgid "You have unsaved results, do you really want to continue?"
msgstr "" msgstr ""
@ -217,6 +223,16 @@ msgstr ""
msgid "Normal" msgid "Normal"
msgstr "" msgstr ""
#: qt/base/ignore_list_dialog.py:44
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
msgid "Remove Selected"
msgstr ""
#: qt/base/ignore_list_dialog.py:45
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
msgid "Clear"
msgstr ""
#: qt/base/preferences_dialog.py:37 #: qt/base/preferences_dialog.py:37
msgid "Scan Type:" msgid "Scan Type:"
msgstr "" msgstr ""
@ -304,18 +320,19 @@ msgstr ""
msgid "Reveal Selected" msgid "Reveal Selected"
msgstr "" msgstr ""
#: qt/base/problem_dialog.py:57 cocoa/base/en.lproj/ProblemDialog.strings:0 #: qt/base/problem_dialog.py:57 cocoa/base/en.lproj/IgnoreListDialog.strings:0
#: cocoa/base/en.lproj/ProblemDialog.strings:0
msgid "Close" msgid "Close"
msgstr "" msgstr ""
#: qt/base/result_window.py:47 qt/base/result_window.py:178 #: qt/base/result_window.py:47 qt/base/result_window.py:177
#: qt/me/details_dialog.py:20 qt/pe/details_dialog.py:25 #: qt/me/details_dialog.py:20 qt/pe/details_dialog.py:25
#: qt/se/details_dialog.py:20 cocoa/base/en.lproj/ResultWindow.strings:0 #: qt/se/details_dialog.py:20 cocoa/base/en.lproj/ResultWindow.strings:0
msgid "Details" msgid "Details"
msgstr "" msgstr ""
#: qt/base/result_window.py:48 qt/base/result_window.py:87 #: qt/base/result_window.py:48 qt/base/result_window.py:86
#: qt/base/result_window.py:152 qt/base/result_window.py:177 #: qt/base/result_window.py:151 qt/base/result_window.py:176
#: cocoa/base/en.lproj/MainMenu.strings:0 #: cocoa/base/en.lproj/MainMenu.strings:0
msgid "Actions" msgid "Actions"
msgstr "" msgstr ""
@ -401,49 +418,45 @@ msgstr ""
msgid "Mark Selected" msgid "Mark Selected"
msgstr "" msgstr ""
#: qt/base/result_window.py:67 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/result_window.py:67
msgid "Clear Ignore List"
msgstr ""
#: qt/base/result_window.py:68
msgid "Export To HTML" msgid "Export To HTML"
msgstr "" msgstr ""
#: qt/base/result_window.py:69 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/result_window.py:68 cocoa/base/en.lproj/MainMenu.strings:0
msgid "Save Results..." msgid "Save Results..."
msgstr "" msgstr ""
#: qt/base/result_window.py:70 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/result_window.py:69 cocoa/base/en.lproj/MainMenu.strings:0
msgid "Invoke Custom Command" msgid "Invoke Custom Command"
msgstr "" msgstr ""
#: qt/base/result_window.py:85 #: qt/base/result_window.py:84
msgid "Mark" msgid "Mark"
msgstr "" msgstr ""
#: qt/base/result_window.py:89 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/result_window.py:88 cocoa/base/en.lproj/MainMenu.strings:0
msgid "Columns" msgid "Columns"
msgstr "" msgstr ""
#: qt/base/result_window.py:148 cocoa/se/en.lproj/Preferences.strings:0 #: qt/base/result_window.py:147 cocoa/se/en.lproj/Preferences.strings:0
#: cocoa/me/en.lproj/Preferences.strings:0 #: cocoa/me/en.lproj/Preferences.strings:0
#: cocoa/pe/en.lproj/Preferences.strings:0 #: cocoa/pe/en.lproj/Preferences.strings:0
msgid "Reset to Defaults" msgid "Reset to Defaults"
msgstr "" msgstr ""
#: qt/base/result_window.py:171 #: qt/base/result_window.py:170
msgid "{} Results" msgid "{} Results"
msgstr "" msgstr ""
#: qt/base/result_window.py:179 cocoa/base/en.lproj/ResultWindow.strings:0 #: qt/base/result_window.py:178 cocoa/base/en.lproj/ResultWindow.strings:0
msgid "Dupes Only" msgid "Dupes Only"
msgstr "" msgstr ""
#: qt/base/result_window.py:180 #: qt/base/result_window.py:179
msgid "Delta Values" msgid "Delta Values"
msgstr "" msgstr ""
#: qt/base/result_window.py:304 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/result_window.py:300 cocoa/base/en.lproj/Localizable.strings:0
msgid "Select a file to save your results to" msgid "Select a file to save your results to"
msgstr "" msgstr ""

View File

@ -12,11 +12,12 @@ msgstr ""
"X-Poedit-Country: UKRAINE\n" "X-Poedit-Country: UKRAINE\n"
"X-Poedit-Language: Ukrainian\n" "X-Poedit-Language: Ukrainian\n"
#: core/gui/problem_table.py:18 #: core/gui/ignore_list_table.py:18 core/gui/ignore_list_table.py:19
#: core/gui/problem_table.py:17
msgid "File Path" msgid "File Path"
msgstr "Шлях до файлу" msgstr "Шлях до файлу"
#: core/gui/problem_table.py:19 #: core/gui/problem_table.py:18
msgid "Error Message" msgid "Error Message"
msgstr "Повідомлення про помилку" msgstr "Повідомлення про помилку"

View File

@ -12,7 +12,7 @@ msgstr ""
"X-Poedit-Country: UKRAINE\n" "X-Poedit-Country: UKRAINE\n"
"X-Poedit-Language: Ukrainian\n" "X-Poedit-Language: Ukrainian\n"
#: core/app.py:93 #: core/app.py:94
msgid "will only be able to delete, move or copy 10 duplicates at once" msgid "will only be able to delete, move or copy 10 duplicates at once"
msgstr "" msgstr ""
"зможете тільки для видалення, переміщення або копіювання 10 копій відразу" "зможете тільки для видалення, переміщення або копіювання 10 копій відразу"
@ -25,15 +25,15 @@ msgstr ""
"Ви не можете видаляти, переміщати або копіювати більше 10 дублікатів відразу" "Ви не можете видаляти, переміщати або копіювати більше 10 дублікатів відразу"
" в демонстраційному режимі." " в демонстраційному режимі."
#: core/app.py:508 #: core/app.py:501
msgid "Collecting files to scan" msgid "Collecting files to scan"
msgstr "Збір файлів для сканування" msgstr "Збір файлів для сканування"
#: core/app.py:519 #: core/app.py:512
msgid "The selected directories contain no scannable file." msgid "The selected directories contain no scannable file."
msgstr "Вибраних директорій не містять сканованих файлів." msgstr "Вибраних директорій не містять сканованих файлів."
#: core/app.py:558 #: core/app.py:551
msgid "%s (%d discarded)" msgid "%s (%d discarded)"
msgstr "%s (%d відкидаються)" msgstr "%s (%d відкидаються)"
@ -125,11 +125,11 @@ msgstr "Перевірені %d/%d матчів"
msgid "Read EXIF of %d/%d pictures" msgid "Read EXIF of %d/%d pictures"
msgstr "Прочитано EXIF %d/%d фотографії" msgstr "Прочитано EXIF %d/%d фотографії"
#: core/app.py:35 #: core/app.py:36
msgid "There are no marked duplicates. Nothing has been done." msgid "There are no marked duplicates. Nothing has been done."
msgstr "" msgstr ""
#: core/app.py:36 #: core/app.py:37
msgid "There are no selected duplicates. Nothing has been done." msgid "There are no selected duplicates. Nothing has been done."
msgstr "" msgstr ""
@ -157,41 +157,33 @@ msgstr ""
"Всі вибрані %d матчів будуть ігноруватися у всіх наступних перевірок. " "Всі вибрані %d матчів будуть ігноруватися у всіх наступних перевірок. "
"Продовжити?" "Продовжити?"
#: core/app.py:280 #: core/gui/ignore_list_dialog.py:24
msgid "Do you really want to remove all %d items from the ignore list?" msgid "Do you really want to remove all %d items from the ignore list?"
msgstr "Ви дійсно хочете видалити всі елементи %d з чорного списку?" msgstr "Ви дійсно хочете видалити всі елементи %d з чорного списку?"
#: core/app.py:283 #: core/app.py:367
msgid "Ignore list cleared."
msgstr "Чорний список очищається."
#: core/app.py:376
msgid "You have no custom command set up. Set it up in your preferences." msgid "You have no custom command set up. Set it up in your preferences."
msgstr "" msgstr ""
"У вас немає користувальницької команди створили. Встановіть його в ваші " "У вас немає користувальницької команди створили. Встановіть його в ваші "
"уподобання." "уподобання."
#: core/app.py:461 core/app.py:472 #: core/app.py:454 core/app.py:465
msgid "You are about to remove %d files from results. Continue?" msgid "You are about to remove %d files from results. Continue?"
msgstr "Ви збираєтеся видалити файли %d результату пошуку. Продовжити?" msgstr "Ви збираєтеся видалити файли %d результату пошуку. Продовжити?"
#: core/app.py:277 #: core/app.py:312
msgid "The ignore list is already empty. Nothing to clear."
msgstr ""
#: core/app.py:321
msgid "copy" msgid "copy"
msgstr "копія" msgstr "копія"
#: core/app.py:321 #: core/app.py:312
msgid "move" msgid "move"
msgstr "переміщати" msgstr "переміщати"
#: core/app.py:322 #: core/app.py:313
msgid "Select a directory to {} marked files to" msgid "Select a directory to {} marked files to"
msgstr "Виберіть каталог на {} відмічені файли" msgstr "Виберіть каталог на {} відмічені файли"
#: core/app.py:336 #: core/app.py:327
msgid "" msgid ""
"You are about to send %d files to Trash (and hardlink them afterwards). " "You are about to send %d files to Trash (and hardlink them afterwards). "
"Continue?" "Continue?"
@ -199,6 +191,6 @@ msgstr ""
"Ви збираєтеся відправити %d файли до кошика (і жорстку них пізніше). " "Ви збираєтеся відправити %d файли до кошика (і жорстку них пізніше). "
"Продовжити?" "Продовжити?"
#: core/app.py:338 #: core/app.py:329
msgid "You are about to send %d files to Trash. Continue?" msgid "You are about to send %d files to Trash. Continue?"
msgstr "Ви збираєтеся відправити %d файли в корзину. Продовжити?" msgstr "Ви збираєтеся відправити %d файли в корзину. Продовжити?"

View File

@ -12,19 +12,19 @@ msgstr ""
"X-Poedit-Country: UKRAINE\n" "X-Poedit-Country: UKRAINE\n"
"X-Poedit-Language: Ukrainian\n" "X-Poedit-Language: Ukrainian\n"
#: cocoa/inter/app.py:15 qt/base/app.py:38 #: cocoa/inter/app.py:15 qt/base/app.py:39
msgid "Scanning for duplicates" msgid "Scanning for duplicates"
msgstr "Перевірка на наявність дублікатів" msgstr "Перевірка на наявність дублікатів"
#: cocoa/inter/app.py:16 qt/base/app.py:39 #: cocoa/inter/app.py:16 qt/base/app.py:40
msgid "Loading" msgid "Loading"
msgstr "Навантаження" msgstr "Навантаження"
#: cocoa/inter/app.py:17 qt/base/app.py:40 #: cocoa/inter/app.py:17 qt/base/app.py:41
msgid "Moving" msgid "Moving"
msgstr "Переміщення" msgstr "Переміщення"
#: cocoa/inter/app.py:18 qt/base/app.py:41 #: cocoa/inter/app.py:18 qt/base/app.py:42
msgid "Copying" msgid "Copying"
msgstr "Копіювання" msgstr "Копіювання"
@ -52,39 +52,39 @@ msgstr "У бесіді з iPhoto. Не чіпайте його!"
msgid "The iPhoto application couldn't be found." msgid "The iPhoto application couldn't be found."
msgstr "iPhoto програма не може бути знайдене." msgstr "iPhoto програма не може бути знайдене."
#: qt/base/app.py:42 #: qt/base/app.py:43
msgid "Sending files to the recycle bin" msgid "Sending files to the recycle bin"
msgstr "Відправлення файлів до кошика" msgstr "Відправлення файлів до кошика"
#: qt/base/app.py:108 #: qt/base/app.py:110
msgid "Quit" msgid "Quit"
msgstr "Вихід" msgstr "Вихід"
#: qt/base/app.py:109 qt/base/preferences_dialog.py:123 #: qt/base/app.py:111 qt/base/preferences_dialog.py:123
msgid "Preferences" msgid "Preferences"
msgstr "Уподобання" msgstr "Уподобання"
#: qt/base/app.py:110 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/app.py:113 cocoa/base/en.lproj/MainMenu.strings:0
msgid "dupeGuru Help" msgid "dupeGuru Help"
msgstr "dupeGuru Довідка" msgstr "dupeGuru Довідка"
#: qt/base/app.py:111 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/app.py:114 cocoa/base/en.lproj/MainMenu.strings:0
msgid "About dupeGuru" msgid "About dupeGuru"
msgstr "Про dupeGuru" msgstr "Про dupeGuru"
#: qt/base/app.py:112 #: qt/base/app.py:115
msgid "Register dupeGuru" msgid "Register dupeGuru"
msgstr "Реєстрація dupeGuru" msgstr "Реєстрація dupeGuru"
#: qt/base/app.py:113 #: qt/base/app.py:116
msgid "Check for Update" msgid "Check for Update"
msgstr "Перевірити оновлення" msgstr "Перевірити оновлення"
#: qt/base/app.py:114 #: qt/base/app.py:117
msgid "Open Debug Log" msgid "Open Debug Log"
msgstr "Відкрити журнал Debug" msgstr "Відкрити журнал Debug"
#: qt/base/app.py:226 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/app.py:232 cocoa/base/en.lproj/Localizable.strings:0
msgid "" msgid ""
"A previous action is still hanging in there. You can't start a new one yet. " "A previous action is still hanging in there. You can't start a new one yet. "
"Wait a few seconds, then try again." "Wait a few seconds, then try again."
@ -121,16 +121,16 @@ msgstr "Вікно результатів"
msgid "Add Folder..." msgid "Add Folder..."
msgstr "Додати папку ..." msgstr "Додати папку ..."
#: qt/base/directories_dialog.py:67 qt/base/result_window.py:83 #: qt/base/directories_dialog.py:67 qt/base/result_window.py:82
#: cocoa/base/en.lproj/MainMenu.strings:0 #: cocoa/base/en.lproj/MainMenu.strings:0
msgid "File" msgid "File"
msgstr "Файл" msgstr "Файл"
#: qt/base/directories_dialog.py:69 qt/base/result_window.py:91 #: qt/base/directories_dialog.py:69 qt/base/result_window.py:90
msgid "View" msgid "View"
msgstr "Вид" msgstr "Вид"
#: qt/base/directories_dialog.py:71 qt/base/result_window.py:93 #: qt/base/directories_dialog.py:71 qt/base/result_window.py:92
#: cocoa/base/en.lproj/MainMenu.strings:0 #: cocoa/base/en.lproj/MainMenu.strings:0
msgid "Help" msgid "Help"
msgstr "Допомога" msgstr "Допомога"
@ -139,50 +139,50 @@ msgstr "Допомога"
msgid "Load Recent Results" msgid "Load Recent Results"
msgstr "Навантаження Останні результати" msgstr "Навантаження Останні результати"
#: qt/base/directories_dialog.py:107 #: qt/base/directories_dialog.py:108
#: cocoa/base/en.lproj/DirectoryPanel.strings:0 #: cocoa/base/en.lproj/DirectoryPanel.strings:0
msgid "Select folders to scan and press \"Scan\"." msgid "Select folders to scan and press \"Scan\"."
msgstr "Вибір папок для сканування і натисніть \"Scan\"." msgstr "Вибір папок для сканування і натисніть \"Scan\"."
#: qt/base/directories_dialog.py:131 #: qt/base/directories_dialog.py:132
#: cocoa/base/en.lproj/DirectoryPanel.strings:0 #: cocoa/base/en.lproj/DirectoryPanel.strings:0
msgid "Load Results" msgid "Load Results"
msgstr "Навантаження Результати" msgstr "Навантаження Результати"
#: qt/base/directories_dialog.py:134 #: qt/base/directories_dialog.py:135
#: cocoa/base/en.lproj/DirectoryPanel.strings:0 #: cocoa/base/en.lproj/DirectoryPanel.strings:0
msgid "Scan" msgid "Scan"
msgstr "Сканування" msgstr "Сканування"
#: qt/base/directories_dialog.py:178 #: qt/base/directories_dialog.py:179
msgid "Unsaved results" msgid "Unsaved results"
msgstr "Незбережені результати" msgstr "Незбережені результати"
#: qt/base/directories_dialog.py:179 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/directories_dialog.py:180 cocoa/base/en.lproj/Localizable.strings:0
msgid "You have unsaved results, do you really want to quit?" msgid "You have unsaved results, do you really want to quit?"
msgstr "Ви зробили якісь результати, ви дійсно хочете вийти?" msgstr "Ви зробили якісь результати, ви дійсно хочете вийти?"
#: qt/base/directories_dialog.py:187 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/directories_dialog.py:188 cocoa/base/en.lproj/Localizable.strings:0
msgid "Select a folder to add to the scanning list" msgid "Select a folder to add to the scanning list"
msgstr "Виберіть папку для додавання в список сканування" msgstr "Виберіть папку для додавання в список сканування"
#: qt/base/directories_dialog.py:204 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/directories_dialog.py:205 cocoa/base/en.lproj/Localizable.strings:0
msgid "Select a results file to load" msgid "Select a results file to load"
msgstr "Виберіть файл результатів для завантаження" msgstr "Виберіть файл результатів для завантаження"
#: qt/base/directories_dialog.py:205 #: qt/base/directories_dialog.py:206
msgid "All Files (*.*)" msgid "All Files (*.*)"
msgstr "Всі файли (*.*)" msgstr "Всі файли (*.*)"
#: qt/base/directories_dialog.py:205 qt/base/result_window.py:305 #: qt/base/directories_dialog.py:206 qt/base/result_window.py:301
msgid "dupeGuru Results (*.dupeguru)" msgid "dupeGuru Results (*.dupeguru)"
msgstr "dupeGuru Результати (*.dupeguru) " msgstr "dupeGuru Результати (*.dupeguru) "
#: qt/base/directories_dialog.py:216 #: qt/base/directories_dialog.py:217
msgid "Start a new scan" msgid "Start a new scan"
msgstr "Почати нову перевірку" msgstr "Почати нову перевірку"
#: qt/base/directories_dialog.py:217 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/directories_dialog.py:218 cocoa/base/en.lproj/Localizable.strings:0
msgid "You have unsaved results, do you really want to continue?" msgid "You have unsaved results, do you really want to continue?"
msgstr "Ви зробили якісь результати, ви дійсно хочете продовжити?" msgstr "Ви зробили якісь результати, ви дійсно хочете продовжити?"
@ -298,18 +298,19 @@ msgstr ""
msgid "Reveal Selected" msgid "Reveal Selected"
msgstr "Показати вибраного" msgstr "Показати вибраного"
#: qt/base/problem_dialog.py:57 cocoa/base/en.lproj/ProblemDialog.strings:0 #: qt/base/problem_dialog.py:57 cocoa/base/en.lproj/IgnoreListDialog.strings:0
#: cocoa/base/en.lproj/ProblemDialog.strings:0
msgid "Close" msgid "Close"
msgstr "Закриття" msgstr "Закриття"
#: qt/base/result_window.py:47 qt/base/result_window.py:178 #: qt/base/result_window.py:47 qt/base/result_window.py:177
#: qt/me/details_dialog.py:20 qt/pe/details_dialog.py:25 #: qt/me/details_dialog.py:20 qt/pe/details_dialog.py:25
#: qt/se/details_dialog.py:20 cocoa/base/en.lproj/ResultWindow.strings:0 #: qt/se/details_dialog.py:20 cocoa/base/en.lproj/ResultWindow.strings:0
msgid "Details" msgid "Details"
msgstr "Деталі" msgstr "Деталі"
#: qt/base/result_window.py:48 qt/base/result_window.py:87 #: qt/base/result_window.py:48 qt/base/result_window.py:86
#: qt/base/result_window.py:152 qt/base/result_window.py:177 #: qt/base/result_window.py:151 qt/base/result_window.py:176
#: cocoa/base/en.lproj/MainMenu.strings:0 #: cocoa/base/en.lproj/MainMenu.strings:0
msgid "Actions" msgid "Actions"
msgstr "Дії" msgstr "Дії"
@ -395,41 +396,37 @@ msgstr "Звернути Маркування"
msgid "Mark Selected" msgid "Mark Selected"
msgstr "Марк Обраний" msgstr "Марк Обраний"
#: qt/base/result_window.py:67 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/result_window.py:67
msgid "Clear Ignore List"
msgstr "Очистити список друзів"
#: qt/base/result_window.py:68
msgid "Export To HTML" msgid "Export To HTML"
msgstr "Експорт в HTML" msgstr "Експорт в HTML"
#: qt/base/result_window.py:69 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/result_window.py:68 cocoa/base/en.lproj/MainMenu.strings:0
msgid "Save Results..." msgid "Save Results..."
msgstr "Зберегти результати ..." msgstr "Зберегти результати ..."
#: qt/base/result_window.py:70 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/result_window.py:69 cocoa/base/en.lproj/MainMenu.strings:0
msgid "Invoke Custom Command" msgid "Invoke Custom Command"
msgstr "Викликати спеціальної команди" msgstr "Викликати спеціальної команди"
#: qt/base/result_window.py:85 #: qt/base/result_window.py:84
msgid "Mark" msgid "Mark"
msgstr "Марк" msgstr "Марк"
#: qt/base/result_window.py:89 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/result_window.py:88 cocoa/base/en.lproj/MainMenu.strings:0
msgid "Columns" msgid "Columns"
msgstr "Колони" msgstr "Колони"
#: qt/base/result_window.py:148 cocoa/se/en.lproj/Preferences.strings:0 #: qt/base/result_window.py:147 cocoa/se/en.lproj/Preferences.strings:0
#: cocoa/me/en.lproj/Preferences.strings:0 #: cocoa/me/en.lproj/Preferences.strings:0
#: cocoa/pe/en.lproj/Preferences.strings:0 #: cocoa/pe/en.lproj/Preferences.strings:0
msgid "Reset to Defaults" msgid "Reset to Defaults"
msgstr "Відновити налаштування за замовчуванням" msgstr "Відновити налаштування за замовчуванням"
#: qt/base/result_window.py:171 #: qt/base/result_window.py:170
msgid "{} Results" msgid "{} Results"
msgstr "{} Результати" msgstr "{} Результати"
#: qt/base/result_window.py:304 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/result_window.py:300 cocoa/base/en.lproj/Localizable.strings:0
msgid "Select a file to save your results to" msgid "Select a file to save your results to"
msgstr "Виберіть файл, щоб зберегти ваші результати" msgstr "Виберіть файл, щоб зберегти ваші результати"
@ -761,7 +758,7 @@ msgstr "Дія"
msgid "Directories" msgid "Directories"
msgstr "Каталоги" msgstr "Каталоги"
#: qt/base/result_window.py:179 cocoa/base/en.lproj/ResultWindow.strings:0 #: qt/base/result_window.py:178 cocoa/base/en.lproj/ResultWindow.strings:0
msgid "Dupes Only" msgid "Dupes Only"
msgstr "Тільки ошукані" msgstr "Тільки ошукані"
@ -856,7 +853,7 @@ msgstr ""
msgid "The iTunes application couldn't be found." msgid "The iTunes application couldn't be found."
msgstr "" msgstr ""
#: qt/base/result_window.py:180 #: qt/base/result_window.py:179
msgid "Delta Values" msgid "Delta Values"
msgstr "" msgstr ""
@ -865,3 +862,19 @@ msgid ""
"There were communication problems with iTunes. The operation couldn't be " "There were communication problems with iTunes. The operation couldn't be "
"completed." "completed."
msgstr "" msgstr ""
#: qt/base/app.py:112 qt/base/ignore_list_dialog.py:31
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
#: cocoa/base/en.lproj/MainMenu.strings:0
msgid "Ignore List"
msgstr ""
#: qt/base/ignore_list_dialog.py:44
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
msgid "Remove Selected"
msgstr ""
#: qt/base/ignore_list_dialog.py:45
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
msgid "Clear"
msgstr ""

View File

@ -100,10 +100,11 @@ msgstr "大小 (KB)"
msgid "Dimensions" msgid "Dimensions"
msgstr "规格" msgstr "规格"
#: core/gui/problem_table.py:18 #: core/gui/ignore_list_table.py:18 core/gui/ignore_list_table.py:19
#: core/gui/problem_table.py:17
msgid "File Path" msgid "File Path"
msgstr "文件路径" msgstr "文件路径"
#: core/gui/problem_table.py:19 #: core/gui/problem_table.py:18
msgid "Error Message" msgid "Error Message"
msgstr "错误信息" msgstr "错误信息"

View File

@ -2,7 +2,7 @@
msgid "" msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n" msgstr "Content-Type: text/plain; charset=utf-8\n"
#: core/app.py:93 #: core/app.py:94
msgid "will only be able to delete, move or copy 10 duplicates at once" msgid "will only be able to delete, move or copy 10 duplicates at once"
msgstr "" msgstr ""
@ -12,15 +12,15 @@ msgid ""
"mode." "mode."
msgstr "" msgstr ""
#: core/app.py:508 #: core/app.py:501
msgid "Collecting files to scan" msgid "Collecting files to scan"
msgstr "收集文件以备扫描" msgstr "收集文件以备扫描"
#: core/app.py:519 #: core/app.py:512
msgid "The selected directories contain no scannable file." msgid "The selected directories contain no scannable file."
msgstr "所选文件夹中不包含可供扫描的文件。" msgstr "所选文件夹中不包含可供扫描的文件。"
#: core/app.py:558 #: core/app.py:551
msgid "%s (%d discarded)" msgid "%s (%d discarded)"
msgstr "%s (%d 无效)" msgstr "%s (%d 无效)"
@ -112,11 +112,11 @@ msgstr "验证 %d/%d 匹配项"
msgid "Read EXIF of %d/%d pictures" msgid "Read EXIF of %d/%d pictures"
msgstr "" msgstr ""
#: core/app.py:35 #: core/app.py:36
msgid "There are no marked duplicates. Nothing has been done." msgid "There are no marked duplicates. Nothing has been done."
msgstr "" msgstr ""
#: core/app.py:36 #: core/app.py:37
msgid "There are no selected duplicates. Nothing has been done." msgid "There are no selected duplicates. Nothing has been done."
msgstr "" msgstr ""
@ -142,44 +142,36 @@ msgid ""
"Continue?" "Continue?"
msgstr "目前已选的 %d 个匹配项将在后续的扫描中被忽略。继续吗?" msgstr "目前已选的 %d 个匹配项将在后续的扫描中被忽略。继续吗?"
#: core/app.py:280 #: core/gui/ignore_list_dialog.py:24
msgid "Do you really want to remove all %d items from the ignore list?" msgid "Do you really want to remove all %d items from the ignore list?"
msgstr "确定要从忽略列表中移除 %d 项吗?" msgstr "确定要从忽略列表中移除 %d 项吗?"
#: core/app.py:283 #: core/app.py:367
msgid "Ignore list cleared."
msgstr "忽略列表已清空。"
#: core/app.py:376
msgid "You have no custom command set up. Set it up in your preferences." msgid "You have no custom command set up. Set it up in your preferences."
msgstr "你没有设定自定义命令。请在首选项中进行设定。" msgstr "你没有设定自定义命令。请在首选项中进行设定。"
#: core/app.py:461 core/app.py:472 #: core/app.py:454 core/app.py:465
msgid "You are about to remove %d files from results. Continue?" msgid "You are about to remove %d files from results. Continue?"
msgstr "你将从结果中移除 %d 个文件。继续吗?" msgstr "你将从结果中移除 %d 个文件。继续吗?"
#: core/app.py:277 #: core/app.py:312
msgid "The ignore list is already empty. Nothing to clear."
msgstr ""
#: core/app.py:321
msgid "copy" msgid "copy"
msgstr "复制" msgstr "复制"
#: core/app.py:321 #: core/app.py:312
msgid "move" msgid "move"
msgstr "移动" msgstr "移动"
#: core/app.py:322 #: core/app.py:313
msgid "Select a directory to {} marked files to" msgid "Select a directory to {} marked files to"
msgstr "选择一个文件夹将标记的 {} 个文件进行..." msgstr "选择一个文件夹将标记的 {} 个文件进行..."
#: core/app.py:336 #: core/app.py:327
msgid "" msgid ""
"You are about to send %d files to Trash (and hardlink them afterwards). " "You are about to send %d files to Trash (and hardlink them afterwards). "
"Continue?" "Continue?"
msgstr "即将有 %d 个文件被移动垃圾桶并删除硬盘上的文件。继续吗?" msgstr "即将有 %d 个文件被移动垃圾桶并删除硬盘上的文件。继续吗?"
#: core/app.py:338 #: core/app.py:329
msgid "You are about to send %d files to Trash. Continue?" msgid "You are about to send %d files to Trash. Continue?"
msgstr "即将有 %d 个文件被移到回收站。继续吗?" msgstr "即将有 %d 个文件被移到回收站。继续吗?"

View File

@ -2,55 +2,55 @@
msgid "" msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n" msgstr "Content-Type: text/plain; charset=utf-8\n"
#: cocoa/inter/app.py:15 qt/base/app.py:38 #: cocoa/inter/app.py:15 qt/base/app.py:39
msgid "Scanning for duplicates" msgid "Scanning for duplicates"
msgstr "重复文件扫描中" msgstr "重复文件扫描中"
#: cocoa/inter/app.py:16 qt/base/app.py:39 #: cocoa/inter/app.py:16 qt/base/app.py:40
msgid "Loading" msgid "Loading"
msgstr "载入中" msgstr "载入中"
#: cocoa/inter/app.py:17 qt/base/app.py:40 #: cocoa/inter/app.py:17 qt/base/app.py:41
msgid "Moving" msgid "Moving"
msgstr "移动中" msgstr "移动中"
#: cocoa/inter/app.py:18 qt/base/app.py:41 #: cocoa/inter/app.py:18 qt/base/app.py:42
msgid "Copying" msgid "Copying"
msgstr "复制中" msgstr "复制中"
#: qt/base/app.py:42 #: qt/base/app.py:43
msgid "Sending files to the recycle bin" msgid "Sending files to the recycle bin"
msgstr "将文件移到回收站" msgstr "将文件移到回收站"
#: qt/base/app.py:108 #: qt/base/app.py:110
msgid "Quit" msgid "Quit"
msgstr "退出" msgstr "退出"
#: qt/base/app.py:109 qt/base/preferences_dialog.py:123 #: qt/base/app.py:111 qt/base/preferences_dialog.py:123
msgid "Preferences" msgid "Preferences"
msgstr "首选项" msgstr "首选项"
#: qt/base/app.py:110 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/app.py:113 cocoa/base/en.lproj/MainMenu.strings:0
msgid "dupeGuru Help" msgid "dupeGuru Help"
msgstr "dupeGuru帮助" msgstr "dupeGuru帮助"
#: qt/base/app.py:111 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/app.py:114 cocoa/base/en.lproj/MainMenu.strings:0
msgid "About dupeGuru" msgid "About dupeGuru"
msgstr "关于dupeGuru" msgstr "关于dupeGuru"
#: qt/base/app.py:112 #: qt/base/app.py:115
msgid "Register dupeGuru" msgid "Register dupeGuru"
msgstr "注册dupeGuru" msgstr "注册dupeGuru"
#: qt/base/app.py:113 #: qt/base/app.py:116
msgid "Check for Update" msgid "Check for Update"
msgstr "检查更新" msgstr "检查更新"
#: qt/base/app.py:114 #: qt/base/app.py:117
msgid "Open Debug Log" msgid "Open Debug Log"
msgstr "打开调试记录" msgstr "打开调试记录"
#: qt/base/app.py:226 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/app.py:232 cocoa/base/en.lproj/Localizable.strings:0
msgid "" msgid ""
"A previous action is still hanging in there. You can't start a new one yet. " "A previous action is still hanging in there. You can't start a new one yet. "
"Wait a few seconds, then try again." "Wait a few seconds, then try again."
@ -85,16 +85,16 @@ msgstr "结果窗口"
msgid "Add Folder..." msgid "Add Folder..."
msgstr "增加文件夹..." msgstr "增加文件夹..."
#: qt/base/directories_dialog.py:67 qt/base/result_window.py:83 #: qt/base/directories_dialog.py:67 qt/base/result_window.py:82
#: cocoa/base/en.lproj/MainMenu.strings:0 #: cocoa/base/en.lproj/MainMenu.strings:0
msgid "File" msgid "File"
msgstr "文件" msgstr "文件"
#: qt/base/directories_dialog.py:69 qt/base/result_window.py:91 #: qt/base/directories_dialog.py:69 qt/base/result_window.py:90
msgid "View" msgid "View"
msgstr "视图" msgstr "视图"
#: qt/base/directories_dialog.py:71 qt/base/result_window.py:93 #: qt/base/directories_dialog.py:71 qt/base/result_window.py:92
#: cocoa/base/en.lproj/MainMenu.strings:0 #: cocoa/base/en.lproj/MainMenu.strings:0
msgid "Help" msgid "Help"
msgstr "帮助" msgstr "帮助"
@ -103,50 +103,50 @@ msgstr "帮助"
msgid "Load Recent Results" msgid "Load Recent Results"
msgstr "载入最近的结果" msgstr "载入最近的结果"
#: qt/base/directories_dialog.py:107 #: qt/base/directories_dialog.py:108
#: cocoa/base/en.lproj/DirectoryPanel.strings:0 #: cocoa/base/en.lproj/DirectoryPanel.strings:0
msgid "Select folders to scan and press \"Scan\"." msgid "Select folders to scan and press \"Scan\"."
msgstr "请选择要扫描的文件夹,然后点击 \"扫描\"。" msgstr "请选择要扫描的文件夹,然后点击 \"扫描\"。"
#: qt/base/directories_dialog.py:131 #: qt/base/directories_dialog.py:132
#: cocoa/base/en.lproj/DirectoryPanel.strings:0 #: cocoa/base/en.lproj/DirectoryPanel.strings:0
msgid "Load Results" msgid "Load Results"
msgstr "载入结果" msgstr "载入结果"
#: qt/base/directories_dialog.py:134 #: qt/base/directories_dialog.py:135
#: cocoa/base/en.lproj/DirectoryPanel.strings:0 #: cocoa/base/en.lproj/DirectoryPanel.strings:0
msgid "Scan" msgid "Scan"
msgstr "扫描" msgstr "扫描"
#: qt/base/directories_dialog.py:178 #: qt/base/directories_dialog.py:179
msgid "Unsaved results" msgid "Unsaved results"
msgstr "未保存的结果" msgstr "未保存的结果"
#: qt/base/directories_dialog.py:179 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/directories_dialog.py:180 cocoa/base/en.lproj/Localizable.strings:0
msgid "You have unsaved results, do you really want to quit?" msgid "You have unsaved results, do you really want to quit?"
msgstr "您还没有保存扫描结果,确定要退出吗?" msgstr "您还没有保存扫描结果,确定要退出吗?"
#: qt/base/directories_dialog.py:187 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/directories_dialog.py:188 cocoa/base/en.lproj/Localizable.strings:0
msgid "Select a folder to add to the scanning list" msgid "Select a folder to add to the scanning list"
msgstr "请选择一个文件夹并加入到扫描列表中" msgstr "请选择一个文件夹并加入到扫描列表中"
#: qt/base/directories_dialog.py:204 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/directories_dialog.py:205 cocoa/base/en.lproj/Localizable.strings:0
msgid "Select a results file to load" msgid "Select a results file to load"
msgstr "选择一个结果文件并载入" msgstr "选择一个结果文件并载入"
#: qt/base/directories_dialog.py:205 #: qt/base/directories_dialog.py:206
msgid "All Files (*.*)" msgid "All Files (*.*)"
msgstr "所有文件 (*.*)" msgstr "所有文件 (*.*)"
#: qt/base/directories_dialog.py:205 qt/base/result_window.py:305 #: qt/base/directories_dialog.py:206 qt/base/result_window.py:301
msgid "dupeGuru Results (*.dupeguru)" msgid "dupeGuru Results (*.dupeguru)"
msgstr "dupeGuru结果 (*.dupeguru)" msgstr "dupeGuru结果 (*.dupeguru)"
#: qt/base/directories_dialog.py:216 #: qt/base/directories_dialog.py:217
msgid "Start a new scan" msgid "Start a new scan"
msgstr "开始新的扫描" msgstr "开始新的扫描"
#: qt/base/directories_dialog.py:217 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/directories_dialog.py:218 cocoa/base/en.lproj/Localizable.strings:0
msgid "You have unsaved results, do you really want to continue?" msgid "You have unsaved results, do you really want to continue?"
msgstr "目前还有结果尚未保存,确定要继续吗?" msgstr "目前还有结果尚未保存,确定要继续吗?"
@ -260,18 +260,19 @@ msgstr "在处理部分或全部文件时发现问题。产生问题的原因在
msgid "Reveal Selected" msgid "Reveal Selected"
msgstr "显示选择" msgstr "显示选择"
#: qt/base/problem_dialog.py:57 cocoa/base/en.lproj/ProblemDialog.strings:0 #: qt/base/problem_dialog.py:57 cocoa/base/en.lproj/IgnoreListDialog.strings:0
#: cocoa/base/en.lproj/ProblemDialog.strings:0
msgid "Close" msgid "Close"
msgstr "关闭" msgstr "关闭"
#: qt/base/result_window.py:47 qt/base/result_window.py:178 #: qt/base/result_window.py:47 qt/base/result_window.py:177
#: qt/me/details_dialog.py:20 qt/pe/details_dialog.py:25 #: qt/me/details_dialog.py:20 qt/pe/details_dialog.py:25
#: qt/se/details_dialog.py:20 cocoa/base/en.lproj/ResultWindow.strings:0 #: qt/se/details_dialog.py:20 cocoa/base/en.lproj/ResultWindow.strings:0
msgid "Details" msgid "Details"
msgstr "详细说明" msgstr "详细说明"
#: qt/base/result_window.py:48 qt/base/result_window.py:87 #: qt/base/result_window.py:48 qt/base/result_window.py:86
#: qt/base/result_window.py:152 qt/base/result_window.py:177 #: qt/base/result_window.py:151 qt/base/result_window.py:176
#: cocoa/base/en.lproj/MainMenu.strings:0 #: cocoa/base/en.lproj/MainMenu.strings:0
msgid "Actions" msgid "Actions"
msgstr "行为" msgstr "行为"
@ -357,41 +358,37 @@ msgstr "反选标记文件"
msgid "Mark Selected" msgid "Mark Selected"
msgstr "标记所选文件" msgstr "标记所选文件"
#: qt/base/result_window.py:67 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/result_window.py:67
msgid "Clear Ignore List"
msgstr "清空忽略列表"
#: qt/base/result_window.py:68
msgid "Export To HTML" msgid "Export To HTML"
msgstr "导出为 HTML" msgstr "导出为 HTML"
#: qt/base/result_window.py:69 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/result_window.py:68 cocoa/base/en.lproj/MainMenu.strings:0
msgid "Save Results..." msgid "Save Results..."
msgstr "保存结果..." msgstr "保存结果..."
#: qt/base/result_window.py:70 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/result_window.py:69 cocoa/base/en.lproj/MainMenu.strings:0
msgid "Invoke Custom Command" msgid "Invoke Custom Command"
msgstr "调用自定义命令" msgstr "调用自定义命令"
#: qt/base/result_window.py:85 #: qt/base/result_window.py:84
msgid "Mark" msgid "Mark"
msgstr "标记" msgstr "标记"
#: qt/base/result_window.py:89 cocoa/base/en.lproj/MainMenu.strings:0 #: qt/base/result_window.py:88 cocoa/base/en.lproj/MainMenu.strings:0
msgid "Columns" msgid "Columns"
msgstr "显示列" msgstr "显示列"
#: qt/base/result_window.py:148 cocoa/se/en.lproj/Preferences.strings:0 #: qt/base/result_window.py:147 cocoa/se/en.lproj/Preferences.strings:0
#: cocoa/me/en.lproj/Preferences.strings:0 #: cocoa/me/en.lproj/Preferences.strings:0
#: cocoa/pe/en.lproj/Preferences.strings:0 #: cocoa/pe/en.lproj/Preferences.strings:0
msgid "Reset to Defaults" msgid "Reset to Defaults"
msgstr "重置为默认值" msgstr "重置为默认值"
#: qt/base/result_window.py:171 #: qt/base/result_window.py:170
msgid "{} Results" msgid "{} Results"
msgstr "{} (结果)" msgstr "{} (结果)"
#: qt/base/result_window.py:304 cocoa/base/en.lproj/Localizable.strings:0 #: qt/base/result_window.py:300 cocoa/base/en.lproj/Localizable.strings:0
msgid "Select a file to save your results to" msgid "Select a file to save your results to"
msgstr "将结果保存为..." msgstr "将结果保存为..."
@ -698,7 +695,7 @@ msgstr "Action"
msgid "Directories" msgid "Directories"
msgstr "Directories" msgstr "Directories"
#: qt/base/result_window.py:179 cocoa/base/en.lproj/ResultWindow.strings:0 #: qt/base/result_window.py:178 cocoa/base/en.lproj/ResultWindow.strings:0
msgid "Dupes Only" msgid "Dupes Only"
msgstr "Dupes Only" msgstr "Dupes Only"
@ -851,7 +848,7 @@ msgstr ""
msgid "The iTunes application couldn't be found." msgid "The iTunes application couldn't be found."
msgstr "" msgstr ""
#: qt/base/result_window.py:180 #: qt/base/result_window.py:179
msgid "Delta Values" msgid "Delta Values"
msgstr "" msgstr ""
@ -860,3 +857,19 @@ msgid ""
"There were communication problems with iTunes. The operation couldn't be " "There were communication problems with iTunes. The operation couldn't be "
"completed." "completed."
msgstr "" msgstr ""
#: qt/base/app.py:112 qt/base/ignore_list_dialog.py:31
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
#: cocoa/base/en.lproj/MainMenu.strings:0
msgid "Ignore List"
msgstr ""
#: qt/base/ignore_list_dialog.py:44
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
msgid "Remove Selected"
msgstr ""
#: qt/base/ignore_list_dialog.py:45
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
msgid "Clear"
msgstr ""

View File

@ -31,6 +31,7 @@ from . import platform
from .result_window import ResultWindow from .result_window import ResultWindow
from .directories_dialog import DirectoriesDialog from .directories_dialog import DirectoriesDialog
from .problem_dialog import ProblemDialog from .problem_dialog import ProblemDialog
from .ignore_list_dialog import IgnoreListDialog
tr = trget('ui') tr = trget('ui')
@ -87,6 +88,7 @@ class DupeGuru(QObject):
self.directories_dialog = DirectoriesDialog(self.resultWindow, self) self.directories_dialog = DirectoriesDialog(self.resultWindow, self)
self.details_dialog = self.DETAILS_DIALOG_CLASS(self.resultWindow, self) self.details_dialog = self.DETAILS_DIALOG_CLASS(self.resultWindow, self)
self.problemDialog = ProblemDialog(parent=self.resultWindow, model=self.model.problem_dialog) self.problemDialog = ProblemDialog(parent=self.resultWindow, model=self.model.problem_dialog)
self.ignoreListDialog = IgnoreListDialog(parent=self.resultWindow, model=self.model.ignore_list_dialog)
self.preferences_dialog = self.PREFERENCES_DIALOG_CLASS(self.resultWindow, self) self.preferences_dialog = self.PREFERENCES_DIALOG_CLASS(self.resultWindow, self)
self.about_box = AboutBox(self.resultWindow, self) self.about_box = AboutBox(self.resultWindow, self)
@ -107,6 +109,7 @@ class DupeGuru(QObject):
ACTIONS = [ ACTIONS = [
('actionQuit', 'Ctrl+Q', '', tr("Quit"), self.quitTriggered), ('actionQuit', 'Ctrl+Q', '', tr("Quit"), self.quitTriggered),
('actionPreferences', 'Ctrl+P', '', tr("Preferences"), self.preferencesTriggered), ('actionPreferences', 'Ctrl+P', '', tr("Preferences"), self.preferencesTriggered),
('actionIgnoreList', '', '', tr("Ignore List"), self.ignoreListTriggered),
('actionShowHelp', 'F1', '', tr("dupeGuru Help"), self.showHelpTriggered), ('actionShowHelp', 'F1', '', tr("dupeGuru Help"), self.showHelpTriggered),
('actionAbout', '', '', tr("About dupeGuru"), self.showAboutBoxTriggered), ('actionAbout', '', '', tr("About dupeGuru"), self.showAboutBoxTriggered),
('actionRegister', '', '', tr("Register dupeGuru"), self.registerTriggered), ('actionRegister', '', '', tr("Register dupeGuru"), self.registerTriggered),
@ -173,6 +176,9 @@ class DupeGuru(QObject):
def checkForUpdateTriggered(self): def checkForUpdateTriggered(self):
QProcess.execute('updater.exe', ['/checknow']) QProcess.execute('updater.exe', ['/checknow'])
def ignoreListTriggered(self):
self.model.ignore_list_dialog.show()
def job_finished(self, jobid): def job_finished(self, jobid):
result = self.model._job_completed(jobid, self._progress.last_error) result = self.model._job_completed(jobid, self._progress.last_error)
if not result: if not result:

View File

@ -79,6 +79,7 @@ class DirectoriesDialog(QMainWindow):
self.menuFile.addAction(self.app.actionQuit) self.menuFile.addAction(self.app.actionQuit)
self.menuView.addAction(self.app.actionPreferences) self.menuView.addAction(self.app.actionPreferences)
self.menuView.addAction(self.actionShowResultsWindow) self.menuView.addAction(self.actionShowResultsWindow)
self.menuView.addAction(self.app.actionIgnoreList)
self.menuHelp.addAction(self.app.actionShowHelp) self.menuHelp.addAction(self.app.actionShowHelp)
self.menuHelp.addAction(self.app.actionRegister) self.menuHelp.addAction(self.app.actionRegister)
self.menuHelp.addAction(self.app.actionCheckForUpdate) self.menuHelp.addAction(self.app.actionCheckForUpdate)

View File

@ -0,0 +1,52 @@
# Created By: Virgil Dupras
# Created On: 2012-03-13
# Copyright 2012 Hardcoded Software (http://www.hardcoded.net)
#
# This software is licensed under the "BSD" License as described in the "LICENSE" file,
# which should be included with this package. The terms are also available at
# http://www.hardcoded.net/licenses/bsd_license
from PyQt4.QtCore import Qt
from PyQt4.QtGui import QDialog, QVBoxLayout, QPushButton, QTableView, QAbstractItemView
from hscommon.trans import trget
from qtlib.util import horizontalWrap
from .ignore_list_table import IgnoreListTable
tr = trget('ui')
class IgnoreListDialog(QDialog):
def __init__(self, parent, model):
flags = Qt.CustomizeWindowHint | Qt.WindowTitleHint | Qt.WindowSystemMenuHint
QDialog.__init__(self, parent, flags)
self._setupUi()
self.model = model
self.model.view = self
self.table = IgnoreListTable(self.model.ignore_list_table, view=self.tableView)
self.removeSelectedButton.clicked.connect(self.model.remove_selected)
self.clearButton.clicked.connect(self.model.clear)
def _setupUi(self):
self.setWindowTitle(tr("Ignore List"))
self.resize(540, 330)
self.verticalLayout = QVBoxLayout(self)
self.tableView = QTableView()
self.tableView.setEditTriggers(QAbstractItemView.NoEditTriggers)
self.tableView.setSelectionMode(QAbstractItemView.ExtendedSelection)
self.tableView.setSelectionBehavior(QAbstractItemView.SelectRows)
self.tableView.setShowGrid(False)
self.tableView.horizontalHeader().setStretchLastSection(True)
self.tableView.verticalHeader().setDefaultSectionSize(18)
self.tableView.verticalHeader().setHighlightSections(False)
self.tableView.verticalHeader().setVisible(False)
self.verticalLayout.addWidget(self.tableView)
self.removeSelectedButton = QPushButton(tr("Remove Selected"))
self.clearButton = QPushButton(tr("Clear"))
self.verticalLayout.addLayout(horizontalWrap([self.removeSelectedButton, self.clearButton,
None]))
#--- model --> view
def show(self):
QDialog.show(self)

View File

@ -0,0 +1,15 @@
# Created On: 2012-03-13
# Copyright 2012 Hardcoded Software (http://www.hardcoded.net)
#
# This software is licensed under the "BSD" License as described in the "LICENSE" file,
# which should be included with this package. The terms are also available at
# http://www.hardcoded.net/licenses/bsd_license
from qtlib.column import Column
from qtlib.table import Table
class IgnoreListTable(Table):
COLUMNS = [
Column('path1', defaultWidth=230),
Column('path2', defaultWidth=230),
]

View File

@ -64,7 +64,6 @@ class ResultWindow(QMainWindow):
('actionMarkNone', 'Ctrl+Shift+A', '', tr("Mark None"), self.markNoneTriggered), ('actionMarkNone', 'Ctrl+Shift+A', '', tr("Mark None"), self.markNoneTriggered),
('actionInvertMarking', 'Ctrl+Alt+A', '', tr("Invert Marking"), self.markInvertTriggered), ('actionInvertMarking', 'Ctrl+Alt+A', '', tr("Invert Marking"), self.markInvertTriggered),
('actionMarkSelected', '', '', tr("Mark Selected"), self.markSelectedTriggered), ('actionMarkSelected', '', '', tr("Mark Selected"), self.markSelectedTriggered),
('actionClearIgnoreList', '', '', tr("Clear Ignore List"), self.clearIgnoreListTriggered),
('actionExport', '', '', tr("Export To HTML"), self.exportTriggered), ('actionExport', '', '', tr("Export To HTML"), self.exportTriggered),
('actionSaveResults', 'Ctrl+S', '', tr("Save Results..."), self.saveResultsTriggered), ('actionSaveResults', 'Ctrl+S', '', tr("Save Results..."), self.saveResultsTriggered),
('actionInvokeCustomCommand', 'Ctrl+Alt+I', '', tr("Invoke Custom Command"), self.app.invokeCustomCommand), ('actionInvokeCustomCommand', 'Ctrl+Alt+I', '', tr("Invoke Custom Command"), self.app.invokeCustomCommand),
@ -116,6 +115,7 @@ class ResultWindow(QMainWindow):
self.menuView.addAction(self.actionDelta) self.menuView.addAction(self.actionDelta)
self.menuView.addSeparator() self.menuView.addSeparator()
self.menuView.addAction(self.actionDetails) self.menuView.addAction(self.actionDetails)
self.menuView.addAction(self.app.actionIgnoreList)
self.menuView.addAction(self.app.actionPreferences) self.menuView.addAction(self.app.actionPreferences)
self.menuHelp.addAction(self.app.actionShowHelp) self.menuHelp.addAction(self.app.actionShowHelp)
self.menuHelp.addAction(self.app.actionRegister) self.menuHelp.addAction(self.app.actionRegister)
@ -124,7 +124,6 @@ class ResultWindow(QMainWindow):
self.menuHelp.addAction(self.app.actionAbout) self.menuHelp.addAction(self.app.actionAbout)
self.menuFile.addAction(self.actionSaveResults) self.menuFile.addAction(self.actionSaveResults)
self.menuFile.addAction(self.actionExport) self.menuFile.addAction(self.actionExport)
self.menuFile.addAction(self.actionClearIgnoreList)
self.menuFile.addSeparator() self.menuFile.addSeparator()
self.menuFile.addAction(self.app.actionQuit) self.menuFile.addAction(self.app.actionQuit)
@ -226,9 +225,6 @@ class ResultWindow(QMainWindow):
def addToIgnoreListTriggered(self): def addToIgnoreListTriggered(self):
self.app.model.add_selected_to_ignore_list() self.app.model.add_selected_to_ignore_list()
def clearIgnoreListTriggered(self):
self.app.model.clear_ignore_list()
def copyTriggered(self): def copyTriggered(self):
self.app.model.copy_or_move_marked(True) self.app.model.copy_or_move_marked(True)