diff --git a/build.py b/build.py index df48bf3e..2a1fb3ad 100644 --- a/build.py +++ b/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) diff --git a/cocoa/base/AppDelegate.m b/cocoa/base/AppDelegate.m index dda9a91d..fa470998 100644 --- a/cocoa/base/AppDelegate.m +++ b/cocoa/base/AppDelegate.m @@ -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 @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]; } diff --git a/cocoa/base/en.lproj/Localizable.strings b/cocoa/base/en.lproj/Localizable.strings index 3f1330cd..9e820865 100644 --- a/cocoa/base/en.lproj/Localizable.strings +++ b/cocoa/base/en.lproj/Localizable.strings @@ -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:"; + diff --git a/cocoa/se/dupeguru.xcodeproj/project.pbxproj b/cocoa/se/dupeguru.xcodeproj/project.pbxproj index 1da0d0b9..bc4c20fe 100644 --- a/cocoa/se/dupeguru.xcodeproj/project.pbxproj +++ b/cocoa/se/dupeguru.xcodeproj/project.pbxproj @@ -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 = ""; }; - CE00BBCC14910C72006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = hy.lproj/Preferences.xib; sourceTree = ""; }; CE00BBCE14910C8E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hy; path = ../base/hy.lproj/Localizable.strings; sourceTree = ""; }; CE0564B014169D9E00D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = ../base/zh_CN.lproj/Localizable.strings; sourceTree = ""; }; CE0564B614169DB100D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/MainMenu.xib; sourceTree = ""; }; - CE0564BF14169DDC00D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = zh_CN.lproj/Preferences.xib; sourceTree = ""; }; CE066CEE15B9D15B007084A6 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt_BR; path = ../base/pt_BR.lproj/Localizable.strings; sourceTree = ""; }; CE073F5409CAE1A3005C1D2F /* help */ = {isa = PBXFileReference; lastKnownFileType = folder; name = help; path = ../../build/help; sourceTree = ""; }; CE18004C14BDD837001B6329 /* Python */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = Python; path = ../../build/Python; sourceTree = ""; }; @@ -130,6 +128,8 @@ CE1D091514BE0C6400CA6B8C /* ObjP.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjP.m; sourceTree = ""; }; CE1D091614BE0C6400CA6B8C /* PyStatsLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyStatsLabel.h; sourceTree = ""; }; CE1D091714BE0C6400CA6B8C /* PyStatsLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyStatsLabel.m; sourceTree = ""; }; + CE272B5A15C31BAA0085F4CD /* PreferencesPanel_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PreferencesPanel_UI.h; sourceTree = ""; }; + CE272B5B15C31BAA0085F4CD /* PreferencesPanel_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PreferencesPanel_UI.m; sourceTree = ""; }; CE275C5414BF712B00265960 /* PyDirectoryOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDirectoryOutline.h; sourceTree = ""; }; CE275C5514BF712B00265960 /* PyDirectoryOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDirectoryOutline.m; sourceTree = ""; }; CE275C5814BF71DF00265960 /* PyColumns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyColumns.h; sourceTree = ""; }; @@ -167,7 +167,6 @@ CE587E9C14C0801F004CA031 /* PySelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PySelectableList.h; sourceTree = ""; }; CE587E9D14C0801F004CA031 /* PySelectableList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PySelectableList.m; sourceTree = ""; }; CE5A5CA415A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/MainMenu.xib; sourceTree = ""; }; - CE5A5CB015A283D700C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = pt_BR.lproj/Preferences.xib; sourceTree = ""; }; 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 = ""; }; CE7A697A146442160007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/MainMenu.xib; sourceTree = ""; }; - CE7A698B1464425A0007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = it.lproj/Preferences.xib; sourceTree = ""; }; 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 = ""; }; - CE81135912E5CE7B00A36C80 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = fr.lproj/Preferences.xib; sourceTree = ""; }; 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 = ""; }; @@ -232,13 +228,10 @@ CEC3F8FD1576697700B26F0C /* PyDeletionOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDeletionOptions.h; sourceTree = ""; }; CEC3F8FE1576697700B26F0C /* PyDeletionOptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDeletionOptions.m; sourceTree = ""; }; 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 = ""; }; CED638DF14B38CEC00B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/MainMenu.xib; sourceTree = ""; }; - CED638EA14B38CF800B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ru.lproj/Preferences.xib; sourceTree = ""; }; CED638EC14B38D0900B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ../base/ru.lproj/Localizable.strings; sourceTree = ""; }; CED64CEB145EF06000572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = ../base/cs.lproj/Localizable.strings; sourceTree = ""; }; CED64CFB145EF07700572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/MainMenu.xib; sourceTree = ""; }; - CED64D06145EF16300572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = cs.lproj/Preferences.xib; sourceTree = ""; }; CED939551406ABB70072C4E8 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = ../base/de.lproj/Localizable.strings; sourceTree = ""; }; CEE49F3415B9F4E1002BD78B /* HSAboutBox_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSAboutBox_UI.h; path = ../../cocoalib/autogen/HSAboutBox_UI.h; sourceTree = ""; }; CEE49F3515B9F4E1002BD78B /* HSAboutBox_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSAboutBox_UI.m; path = ../../cocoalib/autogen/HSAboutBox_UI.m; sourceTree = ""; }; @@ -261,7 +254,6 @@ CEEB135109C837A2004D2330 /* dupeguru.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = dupeguru.icns; sourceTree = ""; }; CEECCD0D14C636F100A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = ../base/uk.lproj/Localizable.strings; sourceTree = ""; }; CEECCD1214C6370000A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/MainMenu.xib; sourceTree = ""; }; - CEECCD1D14C6370C00A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = uk.lproj/Preferences.xib; sourceTree = ""; }; CEEF2A1614C0A5A60082545A /* PyDupeGuru.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDupeGuru.h; sourceTree = ""; }; CEEF2A1714C0A5A60082545A /* PyDupeGuru.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDupeGuru.m; sourceTree = ""; }; CEEF2A1914C0A8480082545A /* PyDupeGuruBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDupeGuruBase.h; sourceTree = ""; }; @@ -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 = ""; @@ -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 = ( diff --git a/cocoa/se/en.lproj/Preferences.strings b/cocoa/se/en.lproj/Preferences.strings deleted file mode 100644 index fa6a38c1..00000000 --- a/cocoa/se/en.lproj/Preferences.strings +++ /dev/null @@ -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:"; diff --git a/cocoa/se/en.lproj/Preferences.xib b/cocoa/se/en.lproj/Preferences.xib deleted file mode 100644 index 0ed3cf5f..00000000 --- a/cocoa/se/en.lproj/Preferences.xib +++ /dev/null @@ -1,1909 +0,0 @@ - - - - 1060 - 11B26 - 1617 - 1138 - 566.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 1617 - - - NSPopUpButtonCell - NSComboBoxCell - NSPopUpButton - NSNumberFormatter - NSButton - NSMenu - NSButtonCell - NSTextFieldCell - NSMenuItem - NSComboBox - NSTabView - NSSlider - NSSliderCell - NSCustomObject - NSTabViewItem - NSView - NSWindowTemplate - NSTextField - NSUserDefaultsController - - - com.apple.InterfaceBuilder.CocoaPlugin - - - - - NSWindowController - - - FirstResponder - - - NSApplication - - - YES - - - 3 - 2 - {{92, 277}, {409, 344}} - 1886912512 - dupeGuru Preferences - - NSWindow - - - View - - - {213, 107} - - - 256 - - - - 256 - {{247, 5}, {148, 32}} - - - - YES - - 67239424 - 134217728 - Reset to Defaults - - LucidaGrande - 13 - 1044 - - - -2038284033 - 1 - - - - - - 200 - 25 - - - - - 12 - {{13, 33}, {383, 305}} - - - - - - 1 - - - 256 - - - - 292 - {{117, 197}, {198, 21}} - - - - YES - - 67239424 - 0 - - - - - Helvetica - 12 - 16 - - - 100 - 1 - 80 - 0.0 - 0 - 1 - NO - NO - - - - - 292 - {{119, 180}, {80, 13}} - - - - YES - - 67239424 - 272629760 - More results - - LucidaGrande - 10 - 2843 - - - - 6 - System - controlColor - - 3 - MC42NjY2NjY2NjY3AA - - - - 6 - System - controlTextColor - - 3 - MAA - - - - - - - 289 - {{236, 180}, {80, 13}} - - - - YES - - 67239424 - 71303168 - Fewer results - - - - - - - - - 292 - {{14, 202}, {100, 14}} - - - - YES - - 67239424 - 272629760 - Filter hardness: - - LucidaGrande - 11 - 3100 - - - - - - - - - 292 - {{14, 152}, {100, 17}} - - - - YES - - 67239424 - 272629760 - Font size: - - - - - - - - - 292 - {{17, 243}, {85, 13}} - - - - YES - - 67239424 - 272629760 - Scan type: - - - - - - - - - 292 - {{116, 232}, {233, 26}} - - - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - - Filename - - 1048576 - 2147483647 - 1 - - NSImage - NSMenuCheckmark - - - NSImage - NSMenuMixedState - - _popUpItemAction: - - - YES - - - OtherViews - - - - - - Content - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Folders - - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - {{15, 128}, {333, 18}} - - - - YES - - 67239424 - 0 - Word weighting - - - 1211912703 - 2 - - NSSwitch - - - - 200 - 25 - - - - - 256 - {{15, 88}, {333, 18}} - - - - YES - - 67239424 - 0 - Can mix file kind - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{15, 108}, {333, 18}} - - - - YES - - 67239424 - 0 - Match similar words - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{15, 5}, {333, 18}} - - - - YES - - 67239424 - 0 - Automatically check for updates - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{15, 68}, {333, 18}} - - - - YES - - 67239424 - 0 - Remove empty folders on delete or move - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{15, 46}, {333, 18}} - - - - YES - - 67239424 - 0 - Ignore files smaller than: - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 268 - {{40, 24}, {59, 22}} - - - - YES - - -1804468671 - -1874852864 - - - - - - - - - - - - #0 - - - - #0 - #0 - - - - - - NaN - - - - 0 - 0 - YES - NO - 1 - AAAAAAAAAAAAAAAAAAAAAA - - - - 3 - YES - YES - YES - - . - , - NO - NO - NO - - - YES - - 6 - System - textBackgroundColor - - 3 - MQA - - - - 6 - System - textColor - - - - - - - 292 - {{104, 23}, {30, 17}} - - - - YES - - 67239424 - 272629760 - KB - - - - - - - - - 256 - {{318, 202}, {31, 14}} - - - - YES - - 67239424 - -1874853888 - - - - - - - 0 - - - . - - , - -0 - 0 - - - 0 - -0 - - - - - - - - NaN - - - - - - . - , - NO - YES - YES - - - - - - - - - 268 - {{119, 148}, {69, 26}} - - - - YES - - 343014976 - 272630784 - - - - YES - - - 6 - YES - YES - - 11 - 12 - 13 - 14 - 18 - 24 - - - - - 274 - {13, 126} - - - YES - - - 10 - 10 - 1000 - - 75628032 - 0 - - - LucidaGrande - 12 - 16 - - - 3 - MC4zMzMzMzI5OQA - - - - - 338820672 - 1024 - - - YES - - 6 - System - controlBackgroundColor - - - - - 3 - YES - - - - 3 - 2 - - - 6 - System - gridColor - - 3 - MC41AA - - - 19 - tableViewAction: - -765427712 - - - - 1 - 15 - 0 - YES - 0 - 1 - - - - - {{10, 33}, {363, 259}} - - - - - Basic - - - - - 2 - - - 256 - - - - 256 - {{15, 240}, {346, 18}} - - YES - - 67239424 - 0 - Use regular expressions when filtering - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{15, 220}, {346, 18}} - - YES - - 67239424 - 0 - Ignore duplicates hardlinking to the same file - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{15, 200}, {346, 18}} - - YES - - 67239424 - 0 - Debug mode (restart required) - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 292 - {{14, 177}, {348, 17}} - - YES - - 67239424 - 272629760 - Custom command (arguments: %d for dupe, %r for ref): - - - - - - - - - 266 - {{17, 147}, {329, 22}} - - YES - - -1804468671 - 272630784 - - - - YES - - - - - - - 292 - {{14, 126}, {348, 13}} - - YES - - 67239424 - 272629760 - Copy and Move: - - - - - - - - - 292 - {{14, 94}, {234, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - - Right in destination - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - - - - Recreate relative path - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Recreate absolute path - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - {{10, 33}, {363, 259}} - - Advanced - - - - - - - 0 - YES - YES - - - - - - {409, 344} - - - - - {{0, 0}, {1440, 878}} - {213, 129} - {10000000000000, 10000000000000} - YES - - - - - - - revertToInitialValues: - - - - 101 - - - - value: values.matchSimilarWords - - - - - - value: values.matchSimilarWords - value - values.matchSimilarWords - 2 - - - 102 - - - - value: values.minMatchPercentage - - - - - - value: values.minMatchPercentage - value - values.minMatchPercentage - 2 - - - 103 - - - - enabled: values.scanType - - - - - - enabled: values.scanType - enabled - values.scanType - - NSValueTransformerName - vtScanTypeIsNotContent - - 2 - - - 104 - - - - enabled: values.scanType - - - - - - enabled: values.scanType - enabled - values.scanType - - NSValueTransformerName - vtScanTypeIsNotContent - - 2 - - - 105 - - - - nextKeyView - - - - 106 - - - - value: values.minMatchPercentage - - - - - - value: values.minMatchPercentage - value - values.minMatchPercentage - 2 - - - 107 - - - - value: values.wordWeighting - - - - - - value: values.wordWeighting - value - values.wordWeighting - 2 - - - 108 - - - - value: values.mixFileKind - - - - - - value: values.mixFileKind - value - values.mixFileKind - 2 - - - 109 - - - - value: values.ignoreSmallFiles - - - - - - value: values.ignoreSmallFiles - value - values.ignoreSmallFiles - 2 - - - 110 - - - - value: values.removeEmptyFolders - - - - - - value: values.removeEmptyFolders - value - values.removeEmptyFolders - 2 - - - 113 - - - - selectedIndex: values.scanType - - - - - - selectedIndex: values.scanType - selectedIndex - values.scanType - 2 - - - 115 - - - - selectedIndex: values.recreatePathType - - - - - - selectedIndex: values.recreatePathType - selectedIndex - values.recreatePathType - 2 - - - 116 - - - - enabled: values.scanType - - - - - - enabled: values.scanType - enabled - values.scanType - - NSValueTransformerName - vtScanTypeIsNotContent - - 2 - - - 117 - - - - window - - - - 118 - - - - value: values.smallFileThreshold - - - - - - value: values.smallFileThreshold - value - values.smallFileThreshold - - NSContinuouslyUpdatesValue - - - 2 - - - 121 - - - - value: values.SUEnableAutomaticChecks - - - - - - value: values.SUEnableAutomaticChecks - value - values.SUEnableAutomaticChecks - 2 - - - 122 - - - - value: values.useRegexpFilter - - - - - - value: values.useRegexpFilter - value - values.useRegexpFilter - 2 - - - 130 - - - - value: values.CustomCommand - - - - - - value: values.CustomCommand - value - values.CustomCommand - 2 - - - 140 - - - - value: values.ignoreHardlinkMatches - - - - - - value: values.ignoreHardlinkMatches - value - values.ignoreHardlinkMatches - 2 - - - 144 - - - - value: values.DebugMode - - - - - - value: values.DebugMode - value - values.DebugMode - 2 - - - 148 - - - - value: values.TableFontSize - - - - - - value: values.TableFontSize - value - values.TableFontSize - 2 - - - 156 - - - - - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 51 - - - Shared Defaults - - - 52 - - - - - - preferences - - - 53 - - - - - - - - - 63 - - - - - - - - 86 - - - - - 123 - - - - - - - - - 124 - - - - - - - - 125 - - - - - - - - 126 - - - - - - - - - - - - - - 127 - - - - - - - - - - - - - - - - - - - - - - - - 72 - - - - - - - - 73 - - - - - 71 - - - - - - - - 74 - - - - - 70 - - - - - - - - 75 - - - - - 69 - - - - - - - - 76 - - - - - 68 - - - - - - - - 77 - - - - - 67 - - - - - - - - 78 - - - - - - - - 79 - - - - - - - - - - 81 - - - - - 80 - - - - - 66 - - - - - - - - 82 - - - - - 65 - - - - - - - - 83 - - - - - 62 - - - - - - - - 87 - - - - - 59 - - - - - - - - 94 - - - - - 57 - - - - - - - - 96 - - - - - 56 - - - - - - - - 97 - - - - - 55 - - - - - - - - 98 - - - - - - - - 99 - - - - - 54 - - - - - - - - 100 - - - - - 128 - - - - - - - - 129 - - - - - 133 - - - - - - - - 134 - - - - - 138 - - - - - - - - 139 - - - - - 64 - - - - - - - - 84 - - - - - - - - 85 - - - - - 61 - - - - - - - - 88 - - - - - 60 - - - - - - - - 89 - - - - - - - - 90 - - - - - - - - - - 91 - - - - - 92 - - - - - 93 - - - - - 141 - - - - - - - - 142 - - - - - 145 - - - - - - - - 146 - - - - - 149 - - - - - 151 - - - - - - - - 152 - - - - - 154 - - - - - - - - 155 - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{413, 520}, {409, 325}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - 156 - - - 0 - IBCocoaFramework - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - - - YES - 3 - - {9, 8} - {7, 2} - - - diff --git a/cocoa/se/ui/preferences_panel.py b/cocoa/se/ui/preferences_panel.py new file mode 100644 index 00000000..617d6870 --- /dev/null +++ b/cocoa/se/ui/preferences_panel.py @@ -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)