mirror of
https://github.com/arsenetar/dupeguru.git
synced 2025-03-09 21:24:36 +00:00
xibless-ified SE's preferences panel.
--HG-- branch : xibless
This commit is contained in:
parent
79e6020982
commit
85e5b4cfa7
11
build.py
11
build.py
@ -54,16 +54,19 @@ def build_xibless(edition):
|
||||
xibless.generate('cocoalib/ui/demo_reminder.py', 'cocoalib/autogen/HSDemoReminder_UI', localizationTable='cocoalib')
|
||||
xibless.generate('cocoalib/ui/enter_code.py', 'cocoalib/autogen/HSEnterCode_UI', localizationTable='cocoalib')
|
||||
xibless.generate('cocoalib/ui/error_report.py', 'cocoalib/autogen/HSErrorReportWindow_UI', localizationTable='cocoalib')
|
||||
if edition == 'pe':
|
||||
xibless.generate('cocoa/pe/ui/details_panel.py', 'cocoa/autogen/DetailsPanel_UI', localizationTable='Localizable')
|
||||
else:
|
||||
xibless.generate('cocoa/base/ui/details_panel.py', 'cocoa/autogen/DetailsPanel_UI', localizationTable='Localizable')
|
||||
xibless.generate('cocoa/base/ui/ignore_list_dialog.py', 'cocoa/autogen/IgnoreListDialog_UI', localizationTable='Localizable')
|
||||
xibless.generate('cocoa/base/ui/deletion_options.py', 'cocoa/autogen/DeletionOptions_UI', localizationTable='Localizable')
|
||||
xibless.generate('cocoa/base/ui/problem_dialog.py', 'cocoa/autogen/ProblemDialog_UI', localizationTable='Localizable')
|
||||
xibless.generate('cocoa/base/ui/directory_panel.py', 'cocoa/autogen/DirectoryPanel_UI', localizationTable='Localizable')
|
||||
xibless.generate('cocoa/base/ui/prioritize_dialog.py', 'cocoa/autogen/PrioritizeDialog_UI', localizationTable='Localizable')
|
||||
xibless.generate('cocoa/base/ui/result_window.py', 'cocoa/autogen/ResultWindow_UI', localizationTable='Localizable')
|
||||
if edition == 'pe':
|
||||
xibless.generate('cocoa/pe/ui/details_panel.py', 'cocoa/autogen/DetailsPanel_UI', localizationTable='Localizable')
|
||||
else:
|
||||
xibless.generate('cocoa/base/ui/details_panel.py', 'cocoa/autogen/DetailsPanel_UI', localizationTable='Localizable')
|
||||
if edition == 'se':
|
||||
xibless.generate('cocoa/se/ui/preferences_panel.py', 'cocoa/autogen/PreferencesPanel_UI', localizationTable='Localizable')
|
||||
|
||||
|
||||
def build_cocoa(edition, dev):
|
||||
build_xibless(edition)
|
||||
|
@ -13,6 +13,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
#import "Consts.h"
|
||||
#import "Dialogs.h"
|
||||
#import "ValueTransformers.h"
|
||||
#import "PreferencesPanel_UI.h"
|
||||
#import <Sparkle/SUUpdater.h>
|
||||
|
||||
@implementation AppDelegateBase
|
||||
@ -140,7 +141,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
- (IBAction)showPreferencesPanel:(id)sender
|
||||
{
|
||||
if (_preferencesPanel == nil) {
|
||||
_preferencesPanel = [[NSWindowController alloc] initWithWindowNibName:@"Preferences"];
|
||||
_preferencesPanel = [[NSWindowController alloc] initWithWindow:createPreferencesPanel_UI(nil)];
|
||||
}
|
||||
[_preferencesPanel showWindow:sender];
|
||||
}
|
||||
|
@ -94,3 +94,33 @@
|
||||
"Reveal Selected in Finder" = "Reveal Selected in Finder";
|
||||
"Open Selected with Default Application" = "Open Selected with Default Application";
|
||||
"Quick Look" = "Quick Look";
|
||||
|
||||
/* Preferences */
|
||||
"dupeGuru Preferences" = "dupeGuru Preferences";
|
||||
"More results" = "More results";
|
||||
"Fewer results" = "Fewer results";
|
||||
"Filter hardness:" = "Filter hardness:";
|
||||
"Scan type:" = "Scan type:";
|
||||
"Content" = "Content";
|
||||
"Filename" = "Filename";
|
||||
"Word weighting" = "Word weighting";
|
||||
"Can mix file kind" = "Can mix file kind";
|
||||
"Reset to Defaults" = "Reset to Defaults";
|
||||
"Match similar words" = "Match similar words";
|
||||
"Copy and Move:" = "Copy and Move:";
|
||||
"Recreate relative path" = "Recreate relative path";
|
||||
"Recreate absolute path" = "Recreate absolute path";
|
||||
"Right in destination" = "Right in destination";
|
||||
"Automatically check for updates" = "Automatically check for updates";
|
||||
"Remove empty folders on delete or move" = "Remove empty folders on delete or move";
|
||||
"Ignore files smaller than:" = "Ignore files smaller than:";
|
||||
"KB" = "KB";
|
||||
"Basic" = "Basic";
|
||||
"Advanced" = "Advanced";
|
||||
"Use regular expressions when filtering" = "Use regular expressions when filtering";
|
||||
"Custom command (arguments: %d for dupe, %r for ref):" = "Custom command (arguments: %d for dupe, %r for ref):";
|
||||
"Ignore duplicates hardlinking to the same file" = "Ignore duplicates hardlinking to the same file";
|
||||
"Debug mode (restart required)" = "Debug mode (restart required)";
|
||||
"Folders" = "Folders";
|
||||
"Font size:" = "Font size:";
|
||||
|
||||
|
@ -14,6 +14,7 @@
|
||||
CE18005114BDD87B001B6329 /* py in Resources */ = {isa = PBXBuildFile; fileRef = CE18005014BDD87B001B6329 /* py */; };
|
||||
CE1D091814BE0C6400CA6B8C /* ObjP.m in Sources */ = {isa = PBXBuildFile; fileRef = CE1D091514BE0C6400CA6B8C /* ObjP.m */; };
|
||||
CE1D091914BE0C6400CA6B8C /* PyStatsLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE1D091714BE0C6400CA6B8C /* PyStatsLabel.m */; };
|
||||
CE272B5C15C31BAA0085F4CD /* PreferencesPanel_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE272B5B15C31BAA0085F4CD /* PreferencesPanel_UI.m */; };
|
||||
CE275C5714BF712B00265960 /* PyDirectoryOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CE275C5514BF712B00265960 /* PyDirectoryOutline.m */; };
|
||||
CE275C5A14BF71DF00265960 /* PyColumns.m in Sources */ = {isa = PBXBuildFile; fileRef = CE275C5914BF71DF00265960 /* PyColumns.m */; };
|
||||
CE27D3C412CCA43800859E67 /* HSAboutBox.m in Sources */ = {isa = PBXBuildFile; fileRef = CE27D3C312CCA43800859E67 /* HSAboutBox.m */; };
|
||||
@ -48,7 +49,6 @@
|
||||
CE79638612536C94008D405B /* FairwareReminder.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE79638412536C94008D405B /* FairwareReminder.xib */; };
|
||||
CE79638C12536F4E008D405B /* HSFairwareReminder.m in Sources */ = {isa = PBXBuildFile; fileRef = CE79638B12536F4E008D405B /* HSFairwareReminder.m */; };
|
||||
CE81134E12E5CE4D00A36C80 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134612E5CE4D00A36C80 /* MainMenu.xib */; };
|
||||
CE81135812E5CE6D00A36C80 /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81135612E5CE6D00A36C80 /* Preferences.xib */; };
|
||||
CE8113EB12E5CE9A00A36C80 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE8113E912E5CE9A00A36C80 /* Localizable.strings */; };
|
||||
CE89240A14239CC30024CE4E /* PrioritizeList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE89240714239CC30024CE4E /* PrioritizeList.m */; };
|
||||
CE8C25CD15B9FCC100D44175 /* cocoalib.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE8C25CB15B9FCC100D44175 /* cocoalib.strings */; };
|
||||
@ -117,11 +117,9 @@
|
||||
8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = SOURCE_ROOT; };
|
||||
8D1107320486CEB800E47090 /* dupeGuru.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = dupeGuru.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
CE00BBC014910C5E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
||||
CE00BBCC14910C72006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = hy.lproj/Preferences.xib; sourceTree = "<group>"; };
|
||||
CE00BBCE14910C8E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hy; path = ../base/hy.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
CE0564B014169D9E00D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = ../base/zh_CN.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
CE0564B614169DB100D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
||||
CE0564BF14169DDC00D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = zh_CN.lproj/Preferences.xib; sourceTree = "<group>"; };
|
||||
CE066CEE15B9D15B007084A6 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt_BR; path = ../base/pt_BR.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
CE073F5409CAE1A3005C1D2F /* help */ = {isa = PBXFileReference; lastKnownFileType = folder; name = help; path = ../../build/help; sourceTree = "<group>"; };
|
||||
CE18004C14BDD837001B6329 /* Python */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = Python; path = ../../build/Python; sourceTree = "<group>"; };
|
||||
@ -130,6 +128,8 @@
|
||||
CE1D091514BE0C6400CA6B8C /* ObjP.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjP.m; sourceTree = "<group>"; };
|
||||
CE1D091614BE0C6400CA6B8C /* PyStatsLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyStatsLabel.h; sourceTree = "<group>"; };
|
||||
CE1D091714BE0C6400CA6B8C /* PyStatsLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyStatsLabel.m; sourceTree = "<group>"; };
|
||||
CE272B5A15C31BAA0085F4CD /* PreferencesPanel_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PreferencesPanel_UI.h; sourceTree = "<group>"; };
|
||||
CE272B5B15C31BAA0085F4CD /* PreferencesPanel_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PreferencesPanel_UI.m; sourceTree = "<group>"; };
|
||||
CE275C5414BF712B00265960 /* PyDirectoryOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDirectoryOutline.h; sourceTree = "<group>"; };
|
||||
CE275C5514BF712B00265960 /* PyDirectoryOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDirectoryOutline.m; sourceTree = "<group>"; };
|
||||
CE275C5814BF71DF00265960 /* PyColumns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyColumns.h; sourceTree = "<group>"; };
|
||||
@ -167,7 +167,6 @@
|
||||
CE587E9C14C0801F004CA031 /* PySelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PySelectableList.h; sourceTree = "<group>"; };
|
||||
CE587E9D14C0801F004CA031 /* PySelectableList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PySelectableList.m; sourceTree = "<group>"; };
|
||||
CE5A5CA415A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
||||
CE5A5CB015A283D700C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = pt_BR.lproj/Preferences.xib; sourceTree = "<group>"; };
|
||||
CE647E541173024A006D28BA /* ProblemDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProblemDialog.h; path = ../base/ProblemDialog.h; sourceTree = SOURCE_ROOT; };
|
||||
CE647E551173024A006D28BA /* ProblemDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ProblemDialog.m; path = ../base/ProblemDialog.m; sourceTree = SOURCE_ROOT; };
|
||||
CE6DD4E5124CA3070089A48D /* ResultTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ResultTable.h; path = ../base/ResultTable.h; sourceTree = SOURCE_ROOT; };
|
||||
@ -189,11 +188,8 @@
|
||||
CE79638B12536F4E008D405B /* HSFairwareReminder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSFairwareReminder.m; path = ../../cocoalib/HSFairwareReminder.m; sourceTree = SOURCE_ROOT; };
|
||||
CE7A6971146442010007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = ../base/it.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
CE7A697A146442160007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
||||
CE7A698B1464425A0007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = it.lproj/Preferences.xib; sourceTree = "<group>"; };
|
||||
CE81134712E5CE4D00A36C80 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; };
|
||||
CE81135312E5CE6100A36C80 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; };
|
||||
CE81135712E5CE6D00A36C80 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/Preferences.xib; sourceTree = "<group>"; };
|
||||
CE81135912E5CE7B00A36C80 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = fr.lproj/Preferences.xib; sourceTree = "<group>"; };
|
||||
CE8113EA12E5CE9A00A36C80 /* en */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = en; path = ../base/en.lproj/Localizable.strings; sourceTree = SOURCE_ROOT; };
|
||||
CE8113EC12E5CEA800A36C80 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = ../base/fr.lproj/Localizable.strings; sourceTree = SOURCE_ROOT; };
|
||||
CE89240614239CC30024CE4E /* PrioritizeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PrioritizeList.h; path = ../base/PrioritizeList.h; sourceTree = "<group>"; };
|
||||
@ -232,13 +228,10 @@
|
||||
CEC3F8FD1576697700B26F0C /* PyDeletionOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDeletionOptions.h; sourceTree = "<group>"; };
|
||||
CEC3F8FE1576697700B26F0C /* PyDeletionOptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDeletionOptions.m; sourceTree = "<group>"; };
|
||||
CECFFF1F13CDF8D0003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; };
|
||||
CECFFF2413CDF8E5003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = de.lproj/Preferences.xib; sourceTree = "<group>"; };
|
||||
CED638DF14B38CEC00B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
||||
CED638EA14B38CF800B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ru.lproj/Preferences.xib; sourceTree = "<group>"; };
|
||||
CED638EC14B38D0900B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ../base/ru.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
CED64CEB145EF06000572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = ../base/cs.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
CED64CFB145EF07700572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
||||
CED64D06145EF16300572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = cs.lproj/Preferences.xib; sourceTree = "<group>"; };
|
||||
CED939551406ABB70072C4E8 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = ../base/de.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
CEE49F3415B9F4E1002BD78B /* HSAboutBox_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSAboutBox_UI.h; path = ../../cocoalib/autogen/HSAboutBox_UI.h; sourceTree = "<group>"; };
|
||||
CEE49F3515B9F4E1002BD78B /* HSAboutBox_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSAboutBox_UI.m; path = ../../cocoalib/autogen/HSAboutBox_UI.m; sourceTree = "<group>"; };
|
||||
@ -261,7 +254,6 @@
|
||||
CEEB135109C837A2004D2330 /* dupeguru.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = dupeguru.icns; sourceTree = "<group>"; };
|
||||
CEECCD0D14C636F100A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = ../base/uk.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
CEECCD1214C6370000A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
||||
CEECCD1D14C6370C00A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = uk.lproj/Preferences.xib; sourceTree = "<group>"; };
|
||||
CEEF2A1614C0A5A60082545A /* PyDupeGuru.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDupeGuru.h; sourceTree = "<group>"; };
|
||||
CEEF2A1714C0A5A60082545A /* PyDupeGuru.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDupeGuru.m; sourceTree = "<group>"; };
|
||||
CEEF2A1914C0A8480082545A /* PyDupeGuruBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDupeGuruBase.h; sourceTree = "<group>"; };
|
||||
@ -401,6 +393,8 @@
|
||||
CE1D091314BE0C6400CA6B8C /* autogen */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CE272B5A15C31BAA0085F4CD /* PreferencesPanel_UI.h */,
|
||||
CE272B5B15C31BAA0085F4CD /* PreferencesPanel_UI.m */,
|
||||
CEE5B05215C1A2B20077BA7A /* ResultWindow_UI.h */,
|
||||
CEE5B05315C1A2B20077BA7A /* ResultWindow_UI.m */,
|
||||
CEBAC7B315BEF3EE0012FDB2 /* PrioritizeDialog_UI.h */,
|
||||
@ -515,7 +509,6 @@
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CE81134612E5CE4D00A36C80 /* MainMenu.xib */,
|
||||
CE81135612E5CE6D00A36C80 /* Preferences.xib */,
|
||||
);
|
||||
name = xib;
|
||||
sourceTree = "<group>";
|
||||
@ -666,7 +659,6 @@
|
||||
CE6E0DFE1054E9EF008D9390 /* dsa_pub.pem in Resources */,
|
||||
CE79638612536C94008D405B /* FairwareReminder.xib in Resources */,
|
||||
CE81134E12E5CE4D00A36C80 /* MainMenu.xib in Resources */,
|
||||
CE81135812E5CE6D00A36C80 /* Preferences.xib in Resources */,
|
||||
CE8113EB12E5CE9A00A36C80 /* Localizable.strings in Resources */,
|
||||
CE31819D13D85D9B00B6D649 /* about.xib in Resources */,
|
||||
CE31819E13D85D9B00B6D649 /* ErrorReportWindow.xib in Resources */,
|
||||
@ -750,6 +742,7 @@
|
||||
CEFC030815BDEFA5005A2559 /* DirectoryPanel_UI.m in Sources */,
|
||||
CEBAC7B515BEF3EE0012FDB2 /* PrioritizeDialog_UI.m in Sources */,
|
||||
CEE5B05415C1A2B20077BA7A /* ResultWindow_UI.m in Sources */,
|
||||
CE272B5C15C31BAA0085F4CD /* PreferencesPanel_UI.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@ -797,23 +790,6 @@
|
||||
name = MainMenu.xib;
|
||||
sourceTree = SOURCE_ROOT;
|
||||
};
|
||||
CE81135612E5CE6D00A36C80 /* Preferences.xib */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
CE81135712E5CE6D00A36C80 /* en */,
|
||||
CE81135912E5CE7B00A36C80 /* fr */,
|
||||
CECFFF2413CDF8E5003A4518 /* de */,
|
||||
CE0564BF14169DDC00D3D907 /* zh_CN */,
|
||||
CED64D06145EF16300572B00 /* cs */,
|
||||
CE7A698B1464425A0007D927 /* it */,
|
||||
CE00BBCC14910C72006A717C /* hy */,
|
||||
CED638EA14B38CF800B88D00 /* ru */,
|
||||
CEECCD1D14C6370C00A2F3A0 /* uk */,
|
||||
CE5A5CB015A283D700C4E461 /* pt_BR */,
|
||||
);
|
||||
name = Preferences.xib;
|
||||
sourceTree = SOURCE_ROOT;
|
||||
};
|
||||
CE8113E912E5CE9A00A36C80 /* Localizable.strings */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
|
@ -1,81 +0,0 @@
|
||||
|
||||
/* Class = "NSWindow"; title = "dupeGuru Preferences"; ObjectID = "52"; */
|
||||
"52.title" = "dupeGuru Preferences";
|
||||
|
||||
/* Class = "NSTextFieldCell"; title = "More results"; ObjectID = "74"; */
|
||||
"74.title" = "More results";
|
||||
|
||||
/* Class = "NSTextFieldCell"; title = "Fewer results"; ObjectID = "75"; */
|
||||
"75.title" = "Fewer results";
|
||||
|
||||
/* Class = "NSTextFieldCell"; title = "Filter hardness:"; ObjectID = "76"; */
|
||||
"76.title" = "Filter hardness:";
|
||||
|
||||
/* Class = "NSTextFieldCell"; title = "Scan type:"; ObjectID = "77"; */
|
||||
"77.title" = "Scan type:";
|
||||
|
||||
/* Class = "NSMenuItem"; title = "Content"; ObjectID = "80"; */
|
||||
"80.title" = "Content";
|
||||
|
||||
/* Class = "NSMenuItem"; title = "Filename"; ObjectID = "81"; */
|
||||
"81.title" = "Filename";
|
||||
|
||||
/* Class = "NSButtonCell"; title = "Word weighting"; ObjectID = "82"; */
|
||||
"82.title" = "Word weighting";
|
||||
|
||||
/* Class = "NSButtonCell"; title = "Can mix file kind"; ObjectID = "83"; */
|
||||
"83.title" = "Can mix file kind";
|
||||
|
||||
/* Class = "NSButtonCell"; title = "Reset to Defaults"; ObjectID = "86"; */
|
||||
"86.title" = "Reset to Defaults";
|
||||
|
||||
/* Class = "NSButtonCell"; title = "Match similar words"; ObjectID = "87"; */
|
||||
"87.title" = "Match similar words";
|
||||
|
||||
/* Class = "NSTextFieldCell"; title = "Copy and Move:"; ObjectID = "88"; */
|
||||
"88.title" = "Copy and Move:";
|
||||
|
||||
/* Class = "NSMenuItem"; title = "Recreate relative path"; ObjectID = "91"; */
|
||||
"91.title" = "Recreate relative path";
|
||||
|
||||
/* Class = "NSMenuItem"; title = "Recreate absolute path"; ObjectID = "92"; */
|
||||
"92.title" = "Recreate absolute path";
|
||||
|
||||
/* Class = "NSMenuItem"; title = "Right in destination"; ObjectID = "93"; */
|
||||
"93.title" = "Right in destination";
|
||||
|
||||
/* Class = "NSButtonCell"; title = "Automatically check for updates"; ObjectID = "94"; */
|
||||
"94.title" = "Automatically check for updates";
|
||||
|
||||
/* Class = "NSButtonCell"; title = "Remove empty folders on delete or move"; ObjectID = "96"; */
|
||||
"96.title" = "Remove empty folders on delete or move";
|
||||
|
||||
/* Class = "NSButtonCell"; title = "Ignore files smaller than:"; ObjectID = "97"; */
|
||||
"97.title" = "Ignore files smaller than:";
|
||||
|
||||
/* Class = "NSTextFieldCell"; title = "KB"; ObjectID = "100"; */
|
||||
"100.title" = "KB";
|
||||
|
||||
/* Class = "NSTabViewItem"; label = "Basic"; ObjectID = "124"; */
|
||||
"124.label" = "Basic";
|
||||
|
||||
/* Class = "NSTabViewItem"; label = "Advanced"; ObjectID = "125"; */
|
||||
"125.label" = "Advanced";
|
||||
|
||||
/* Class = "NSButtonCell"; title = "Use regular expressions when filtering"; ObjectID = "129"; */
|
||||
"129.title" = "Use regular expressions when filtering";
|
||||
|
||||
/* Class = "NSTextFieldCell"; title = "Custom command (arguments: %d for dupe, %r for ref):"; ObjectID = "134"; */
|
||||
"134.title" = "Custom command (arguments: %d for dupe, %r for ref):";
|
||||
|
||||
/* Class = "NSButtonCell"; title = "Ignore duplicates hardlinking to the same file"; ObjectID = "142"; */
|
||||
"142.title" = "Ignore duplicates hardlinking to the same file";
|
||||
|
||||
/* Class = "NSButtonCell"; title = "Debug mode (restart required)"; ObjectID = "146"; */
|
||||
"146.title" = "Debug mode (restart required)";
|
||||
|
||||
/* Class = "NSMenuItem"; title = "Folders"; ObjectID = "149"; */
|
||||
"149.title" = "Folders";
|
||||
|
||||
/* Class = "NSTextFieldCell"; title = "Font size:"; ObjectID = "155"; */
|
||||
"155.title" = "Font size:";
|
File diff suppressed because it is too large
Load Diff
109
cocoa/se/ui/preferences_panel.py
Normal file
109
cocoa/se/ui/preferences_panel.py
Normal file
@ -0,0 +1,109 @@
|
||||
result = Window(410, 345, "dupeGuru Preferences")
|
||||
tabView = TabView(result)
|
||||
basicTab = tabView.addTab("Basic")
|
||||
advancedTab = tabView.addTab("Advanced")
|
||||
scanTypePopup = Popup(basicTab.view, ["Filename", "Content", "Folders"])
|
||||
scanTypeLabel = Label(basicTab.view, "Scan Type:")
|
||||
thresholdSlider = Slider(basicTab.view, 1, 100, 80)
|
||||
# XXX add a number formatter to this
|
||||
thresholdLabel = Label(basicTab.view, "Filter hardness:")
|
||||
moreResultsLabel = Label(basicTab.view, "More results")
|
||||
fewerResultsLabel = Label(basicTab.view, "Fewer results")
|
||||
thresholdValuelabel = Label(basicTab.view, "")
|
||||
fontSizeCombo = Combobox(basicTab.view, ["11", "12", "13", "14", "18", "24"])
|
||||
fontSizeLabel = Label(basicTab.view, "Font Size:")
|
||||
wordWeightingBox = Checkbox(basicTab.view, "Word weighting")
|
||||
matchSimilarWordsBox = Checkbox(basicTab.view, "Match similar words")
|
||||
mixKindBox = Checkbox(basicTab.view, "Can mix file kind")
|
||||
removeEmptyFoldersBox = Checkbox(basicTab.view, "Remove empty folders on delete or move")
|
||||
ignoreSmallFilesBox = Checkbox(basicTab.view, "Ignore files smaller than:")
|
||||
smallFilesThresholdText = TextField(basicTab.view, "")
|
||||
smallFilesThresholdSuffixLabel = Label(basicTab.view, "KB")
|
||||
checkForUpdatesBox = Checkbox(basicTab.view, "Automatically check for updates")
|
||||
|
||||
regexpCheckbox = Checkbox(advancedTab.view, "Use regular expressions when filtering")
|
||||
ignoreHardlinksBox = Checkbox(advancedTab.view, "Ignore duplicates hardlinking to the same file")
|
||||
debugModeCheckbox = Checkbox(advancedTab.view, "Debug mode (restart required)")
|
||||
customCommandLabel = Label(advancedTab.view, "Custom command (arguments: %d for dupe, %r for ref):")
|
||||
customCommandText = TextField(advancedTab.view, "")
|
||||
copyMoveLabel = Label(advancedTab.view, "Copy and Move:")
|
||||
copyMovePopup = Popup(advancedTab.view, ["Right in destination", "Recreate relative path", "Recreate absolute path"])
|
||||
|
||||
resetToDefaultsButton = Button(result, "Reset To Defaults")
|
||||
|
||||
scanTypePopup.bind('selectedIndex', defaults, 'values.scanType')
|
||||
thresholdSlider.bind('value', defaults, 'values.minMatchPercentage')
|
||||
thresholdValuelabel.bind('value', defaults, 'values.minMatchPercentage')
|
||||
fontSizeCombo.bind('value', defaults, 'values.TableFontSize')
|
||||
wordWeightingBox.bind('value', defaults, 'values.wordWeighting')
|
||||
matchSimilarWordsBox.bind('value', defaults, 'values.matchSimilarWords')
|
||||
mixKindBox.bind('value', defaults, 'values.mixFileKind')
|
||||
removeEmptyFoldersBox.bind('value', defaults, 'values.removeEmptyFolders')
|
||||
ignoreSmallFilesBox.bind('value', defaults, 'values.ignoreSmallFiles')
|
||||
smallFilesThresholdText.bind('value', defaults, 'values.smallFileThreshold')
|
||||
checkForUpdatesBox.bind('value', defaults, 'values.SUEnableAutomaticChecks')
|
||||
regexpCheckbox.bind('value', defaults, 'values.useRegexpFilter')
|
||||
ignoreHardlinksBox.bind('value', defaults, 'values.ignoreHardlinkMatches')
|
||||
debugModeCheckbox.bind('value', defaults, 'values.DebugMode')
|
||||
customCommandText.bind('value', defaults, 'values.CustomCommand')
|
||||
copyMovePopup.bind('selectedIndex', defaults, 'values.recreatePathType')
|
||||
disableWhenContentScan = [thresholdSlider, wordWeightingBox, matchSimilarWordsBox]
|
||||
for control in disableWhenContentScan:
|
||||
control.bind('enabled', defaults, 'values.scanType', valueTransformer='vtScanTypeIsNotContent')
|
||||
|
||||
result.canResize = False
|
||||
result.canMinimize = False
|
||||
allLabels = [scanTypeLabel, thresholdValuelabel, moreResultsLabel, fewerResultsLabel,
|
||||
thresholdLabel, fontSizeLabel, smallFilesThresholdSuffixLabel, customCommandLabel,
|
||||
copyMoveLabel]
|
||||
for label in allLabels:
|
||||
label.controlSize = ControlSize.Small
|
||||
fewerResultsLabel.alignment = TextAlignment.Right
|
||||
allCheckboxes = [wordWeightingBox, matchSimilarWordsBox, mixKindBox, removeEmptyFoldersBox,
|
||||
ignoreSmallFilesBox, checkForUpdatesBox, regexpCheckbox, ignoreHardlinksBox, debugModeCheckbox]
|
||||
for checkbox in allCheckboxes:
|
||||
checkbox.font = scanTypeLabel.font
|
||||
resetToDefaultsButton.action = Action(defaults, 'revertToInitialValues:')
|
||||
|
||||
scanTypeLabel.width = thresholdLabel.width = fontSizeLabel.width = 94
|
||||
fontSizeCombo.width = 66
|
||||
thresholdValuelabel.width = 25
|
||||
resetToDefaultsButton.width = 136
|
||||
smallFilesThresholdText.width = 60
|
||||
smallFilesThresholdSuffixLabel.width = 40
|
||||
|
||||
tabView.packToCorner(Pack.UpperLeft)
|
||||
tabView.fill(Pack.Right)
|
||||
resetToDefaultsButton.packRelativeTo(tabView, Pack.Below, align=Pack.Right)
|
||||
tabView.fill(Pack.Below, margin=14)
|
||||
tabView.setAnchor(Pack.UpperLeft, growX=True, growY=True)
|
||||
scanTypePopup.packToCorner(Pack.UpperRight)
|
||||
scanTypeLabel.packRelativeTo(scanTypePopup, Pack.Left)
|
||||
scanTypePopup.fill(Pack.Left)
|
||||
thresholdSlider.packRelativeTo(scanTypePopup, Pack.Below)
|
||||
thresholdValuelabel.packRelativeTo(thresholdSlider, Pack.Right)
|
||||
thresholdSlider.fill(Pack.Right)
|
||||
# We want to give the labels as much space as possible, and we only "know" how much is available
|
||||
# after the slider's fill operation.
|
||||
moreResultsLabel.width = fewerResultsLabel.width = thresholdSlider.width // 2
|
||||
moreResultsLabel.packRelativeTo(thresholdSlider, Pack.Below, align=Pack.Left, margin=6)
|
||||
fewerResultsLabel.packRelativeTo(thresholdSlider, Pack.Below, align=Pack.Right, margin=6)
|
||||
thresholdLabel.packRelativeTo(thresholdSlider, Pack.Left)
|
||||
fontSizeCombo.packRelativeTo(moreResultsLabel, Pack.Below)
|
||||
fontSizeLabel.packRelativeTo(fontSizeCombo, Pack.Left)
|
||||
|
||||
checkboxLayout = VLayout([wordWeightingBox, matchSimilarWordsBox, mixKindBox, removeEmptyFoldersBox,
|
||||
ignoreSmallFilesBox])
|
||||
checkboxLayout.packRelativeTo(fontSizeCombo, Pack.Below)
|
||||
checkboxLayout.fill(Pack.Left)
|
||||
checkboxLayout.fill(Pack.Right)
|
||||
|
||||
smallFilesThresholdText.packRelativeTo(ignoreSmallFilesBox, Pack.Below, margin=4)
|
||||
checkForUpdatesBox.packRelativeTo(smallFilesThresholdText, Pack.Below, margin=4)
|
||||
checkForUpdatesBox.fill(Pack.Right)
|
||||
smallFilesThresholdText.x += 20
|
||||
smallFilesThresholdSuffixLabel.packRelativeTo(smallFilesThresholdText, Pack.Right)
|
||||
|
||||
advancedLayout = VLayout(advancedTab.view.subviews[:])
|
||||
advancedLayout.packToCorner(Pack.UpperLeft)
|
||||
advancedLayout.fill(Pack.Right)
|
Loading…
x
Reference in New Issue
Block a user