diff --git a/ReFinder.xcodeproj/project.pbxproj b/ReFinder.xcodeproj/project.pbxproj index c7a73b2..6de5412 100644 --- a/ReFinder.xcodeproj/project.pbxproj +++ b/ReFinder.xcodeproj/project.pbxproj @@ -13,6 +13,9 @@ 1709F9662778AD8A00C35A97 /* ReFinder.m in Sources */ = {isa = PBXBuildFile; fileRef = 1709F9652778AD8A00C35A97 /* ReFinder.m */; }; 1709F96A2778AD8A00C35A97 /* ZKSwizzle.m in Sources */ = {isa = PBXBuildFile; fileRef = 1709F9692778AD8A00C35A97 /* ZKSwizzle.m */; }; 1709F96C2778AD8A00C35A97 /* PrefixHeader.pch in Resources */ = {isa = PBXBuildFile; fileRef = 1709F96B2778AD8A00C35A97 /* PrefixHeader.pch */; }; + 1741270E27795BB20020949D /* ReFinderWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 1741270D27795BB20020949D /* ReFinderWindow.m */; }; + 17FA6E8027794186009C6D1B /* ReFinderPreferencesController.m in Sources */ = {isa = PBXBuildFile; fileRef = 17FA6E7E27794186009C6D1B /* ReFinderPreferencesController.m */; }; + 17FA6E8127794186009C6D1B /* ReFinderPreferencesController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 17FA6E7F27794186009C6D1B /* ReFinderPreferencesController.xib */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -25,6 +28,11 @@ 1709F9682778AD8A00C35A97 /* ZKSwizzle.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ZKSwizzle.h; sourceTree = ""; }; 1709F9692778AD8A00C35A97 /* ZKSwizzle.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ZKSwizzle.m; sourceTree = ""; }; 1709F96B2778AD8A00C35A97 /* PrefixHeader.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = PrefixHeader.pch; path = ../PrefixHeader.pch; sourceTree = ""; }; + 1741270C27795BB20020949D /* ReFinderWindow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ReFinderWindow.h; sourceTree = ""; }; + 1741270D27795BB20020949D /* ReFinderWindow.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ReFinderWindow.m; sourceTree = ""; }; + 17FA6E7D27794186009C6D1B /* ReFinderPreferencesController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ReFinderPreferencesController.h; sourceTree = ""; }; + 17FA6E7E27794186009C6D1B /* ReFinderPreferencesController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ReFinderPreferencesController.m; sourceTree = ""; }; + 17FA6E7F27794186009C6D1B /* ReFinderPreferencesController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReFinderPreferencesController.xib; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -73,6 +81,11 @@ 1709F9652778AD8A00C35A97 /* ReFinder.m */, 1709F9672778AD8A00C35A97 /* ZKSwizzle */, 1709F9612778AD8A00C35A97 /* Supporting Files */, + 17FA6E7D27794186009C6D1B /* ReFinderPreferencesController.h */, + 17FA6E7E27794186009C6D1B /* ReFinderPreferencesController.m */, + 17FA6E7F27794186009C6D1B /* ReFinderPreferencesController.xib */, + 1741270C27795BB20020949D /* ReFinderWindow.h */, + 1741270D27795BB20020949D /* ReFinderWindow.m */, ); path = ReFinder; sourceTree = ""; @@ -152,6 +165,7 @@ buildActionMask = 2147483647; files = ( 1709F96C2778AD8A00C35A97 /* PrefixHeader.pch in Resources */, + 17FA6E8127794186009C6D1B /* ReFinderPreferencesController.xib in Resources */, 1709F9632778AD8A00C35A97 /* Info.plist in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -165,6 +179,8 @@ files = ( 1709F9662778AD8A00C35A97 /* ReFinder.m in Sources */, 1709F96A2778AD8A00C35A97 /* ZKSwizzle.m in Sources */, + 1741270E27795BB20020949D /* ReFinderWindow.m in Sources */, + 17FA6E8027794186009C6D1B /* ReFinderPreferencesController.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -293,6 +309,8 @@ INFOPLIST_FILE = ReFinder/Info.plist; INSTALL_PATH = "/Library/Application Support/MacEnhance/Plugins"; MACH_O_TYPE = mh_dylib; + MACOSX_DEPLOYMENT_TARGET = 11.0; + MARKETING_VERSION = 1.1; PRODUCT_BUNDLE_IDENTIFIER = com.mtac.ReFinder; PRODUCT_NAME = "$(TARGET_NAME)"; WRAPPER_EXTENSION = bundle; @@ -314,6 +332,8 @@ INFOPLIST_FILE = ReFinder/Info.plist; INSTALL_PATH = "/Library/Application Support/MacEnhance/Plugins"; MACH_O_TYPE = mh_dylib; + MACOSX_DEPLOYMENT_TARGET = 11.0; + MARKETING_VERSION = 1.1; PRODUCT_BUNDLE_IDENTIFIER = com.mtac.ReFinder; PRODUCT_NAME = "$(TARGET_NAME)"; WRAPPER_EXTENSION = bundle; diff --git a/ReFinder.xcodeproj/project.xcworkspace/xcuserdata/daf.xcuserdatad/UserInterfaceState.xcuserstate b/ReFinder.xcodeproj/project.xcworkspace/xcuserdata/daf.xcuserdatad/UserInterfaceState.xcuserstate index 114098d..b0a17dc 100644 Binary files a/ReFinder.xcodeproj/project.xcworkspace/xcuserdata/daf.xcuserdatad/UserInterfaceState.xcuserstate and b/ReFinder.xcodeproj/project.xcworkspace/xcuserdata/daf.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/ReFinder.xcodeproj/xcuserdata/daf.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/ReFinder.xcodeproj/xcuserdata/daf.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist new file mode 100644 index 0000000..ffff6c3 --- /dev/null +++ b/ReFinder.xcodeproj/xcuserdata/daf.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -0,0 +1,6 @@ + + + diff --git a/ReFinder/Info.plist b/ReFinder/Info.plist index 178cd97..4919a07 100755 --- a/ReFinder/Info.plist +++ b/ReFinder/Info.plist @@ -17,7 +17,7 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 1.0 + $(MARKETING_VERSION) CFBundleSignature ???? CFBundleVersion diff --git a/ReFinder/ReFinder.h b/ReFinder/ReFinder.h index b29f00c..683310b 100755 --- a/ReFinder/ReFinder.h +++ b/ReFinder/ReFinder.h @@ -11,7 +11,10 @@ #import #import #import "ZKSwizzle/ZKSwizzle.h" +#import "ReFinderPreferencesController.h" -@interface ReFinder : NSObject +@interface ReFinder : NSObject // + (instancetype)sharedInstance; +- (void)restartFinder; +- (void)openSourceCode; @end diff --git a/ReFinder/ReFinder.m b/ReFinder/ReFinder.m index f4a8736..ac2d835 100755 --- a/ReFinder/ReFinder.m +++ b/ReFinder/ReFinder.m @@ -11,6 +11,8 @@ ReFinder *plugin; NSUserDefaults *defaults; NSMutableDictionary *finderDictionary; +static NSUserDefaults *preferences = nil; +static NSDictionary *preferencesDict = nil; @implementation ReFinder + (instancetype)sharedInstance { @@ -23,56 +25,132 @@ + (instancetype)sharedInstance { + (void)load { defaults = [NSUserDefaults standardUserDefaults]; plugin = [ReFinder sharedInstance]; + [plugin loadSections]; - finderDictionary = [[defaults persistentDomainForName:@"com.apple.finder"] mutableCopy]; - - for (NSString *key in [finderDictionary allKeys]) { - NSLog(@"[REFINDER] : Key/Value -> %@, %@", key, [finderDictionary objectForKey:key]); - } + NSUInteger osx_ver_min = [[NSProcessInfo processInfo] operatingSystemVersion].minorVersion; + NSUInteger osx_ver_maj = [[NSProcessInfo processInfo] operatingSystemVersion].majorVersion; - NSUInteger osx_ver = [[NSProcessInfo processInfo] operatingSystemVersion].minorVersion; - NSLog(@"[REFINDER] : %@ loaded into %@ on macOS 10.%ld", [plugin class], [[NSBundle mainBundle] bundleIdentifier], (long)osx_ver); + NSLog(@"[REFINDER] : %@ loaded into %@ on macOS %ld.%ld", [plugin class], [[NSBundle mainBundle] bundleIdentifier], (long)osx_ver_maj, (long)osx_ver_min); NSMenu *mainFinderMenu = [[[[NSApp mainMenu] itemArray] firstObject] submenu]; NSMenu *reFinderSubMenu = [[NSMenu alloc] initWithTitle:@"ReFinder"]; - [[reFinderSubMenu addItemWithTitle:@"Restart Finder" action:@selector(restartFinder) keyEquivalent:@""] setTarget:plugin]; - [reFinderSubMenu addItem:[NSMenuItem separatorItem]]; - [[reFinderSubMenu addItemWithTitle:@"Show Hidden Files" action:@selector(showHidden) keyEquivalent:@""] setTarget:plugin]; - [[reFinderSubMenu addItemWithTitle:@"Hide Hidden Files" action:@selector(hideHidden) keyEquivalent:@""] setTarget:plugin]; + NSMenuItem *restartItem = [[NSMenuItem alloc] init]; + [restartItem setTitle:@"Restart Finder"]; + [restartItem setKeyEquivalent:@""]; + [restartItem setTarget:plugin]; + [restartItem setAction:@selector(restartFinder)]; + [reFinderSubMenu addItem:restartItem]; + [reFinderSubMenu addItem:[NSMenuItem separatorItem]]; - [[reFinderSubMenu addItemWithTitle:@"Show Desktop Icons" action:@selector(showDesktopIcons) keyEquivalent:@""] setTarget:plugin]; - [[reFinderSubMenu addItemWithTitle:@"Hide Desktop Icons" action:@selector(hideDesktopIcons) keyEquivalent:@""] setTarget:plugin]; + + NSMenu *reFinderTools = [[NSMenu alloc] initWithTitle:@"Tools"]; + + NSMenuItem *toggleHiddenItem = [[NSMenuItem alloc] init]; + [toggleHiddenItem setTarget:plugin]; + [toggleHiddenItem setAction:@selector(toggleHidden:)]; + [toggleHiddenItem setKeyEquivalent:@""]; + if ([plugin hiddenFilesAreShown]) { + [toggleHiddenItem setTitle:@"Hide Hidden Files"]; + } else { + [toggleHiddenItem setTitle:@"Show Hidden Files"]; + } + [reFinderTools addItem:toggleHiddenItem]; + + [reFinderTools addItem:[NSMenuItem separatorItem]]; + + NSMenuItem *toggleDesktopItem = [[NSMenuItem alloc] init]; + [toggleDesktopItem setTarget:plugin]; + [toggleDesktopItem setAction:@selector(toggleDesktop:)]; + [toggleDesktopItem setKeyEquivalent:@""]; + if ([plugin desktopIconsAreShown]) { + [toggleDesktopItem setTitle:@"Hide Desktop Icons"]; + } else { + [toggleDesktopItem setTitle:@"Show Desktop Icons"]; + } + [reFinderTools addItem:toggleDesktopItem]; NSMenuItem *reFinderItem = [[NSMenuItem alloc] initWithTitle:@"ReFinder" action:nil keyEquivalent:@""]; + NSMenuItem *reFinderToolsItem = [[NSMenuItem alloc] initWithTitle:@"Tools" action:nil keyEquivalent:@""]; + [reFinderSubMenu addItem:reFinderToolsItem]; + [mainFinderMenu setSubmenu:reFinderTools forItem:reFinderToolsItem]; + [mainFinderMenu addItem:[NSMenuItem separatorItem]]; [mainFinderMenu addItem:reFinderItem]; [mainFinderMenu setSubmenu:reFinderSubMenu forItem:reFinderItem]; + + [reFinderSubMenu addItem:[NSMenuItem separatorItem]]; + + [[reFinderSubMenu addItemWithTitle:@"Preferences" action:@selector(showPreferences) keyEquivalent:@""] setTarget:plugin]; } -- (void)showHidden { +- (void)loadSections { finderDictionary = [[defaults persistentDomainForName:@"com.apple.finder"] mutableCopy]; - [finderDictionary setValue:[NSNumber numberWithBool:1] forKey:@"AppleShowAllFiles"]; - [defaults setPersistentDomain:finderDictionary forName:@"com.apple.finder"]; - [plugin restartFinder]; + NSMenu *mainFinderMenu = [NSApp mainMenu]; + for (NSMenuItem *item in mainFinderMenu.itemArray) { // Feels like it could be done cleaner + if ([[finderDictionary objectForKey:@"hideFileItem"] boolValue] == 1 && [item.title isEqualToString:@"File"]) { + [item setHidden:YES]; + } + if ([[finderDictionary objectForKey:@"hideEditItem"] boolValue] == 1 && [item.title isEqualToString:@"Edit"]) { + [item setHidden:YES]; + } + if ([[finderDictionary objectForKey:@"hideViewItem"] boolValue] == 1 && [item.title isEqualToString:@"View"]) { + [item setHidden:YES]; + } + if ([[finderDictionary objectForKey:@"hideGoItem"] boolValue] == 1 && [item.title isEqualToString:@"Go"]) { + [item setHidden:YES]; + } + if ([[finderDictionary objectForKey:@"hideWindowItem"] boolValue] == 1 && [item.title isEqualToString:@"Window"]) { + [item setHidden:YES]; + } + if ([[finderDictionary objectForKey:@"hideHelpItem"] boolValue] == 1 && [item.title isEqualToString:@"Help"]) { + [item setHidden:YES]; + } + } +} +- (void)showPreferences { + ReFinderPreferencesController *prefsController = [[ReFinderPreferencesController alloc] init]; + NSWindow *prefsWindow = [prefsController window]; + [prefsWindow setStyleMask:prefsWindow.styleMask|NSWindowStyleMaskFullSizeContentView]; + NSVisualEffectView *vibrant = [[NSClassFromString(@"NSVisualEffectView") alloc] initWithFrame:[[prefsWindow contentView] bounds]]; + [vibrant setAutoresizingMask:NSViewWidthSizable|NSViewHeightSizable]; + [vibrant setBlendingMode:NSVisualEffectBlendingModeBehindWindow]; + [vibrant setIdentifier:@"rfView"]; + [[prefsWindow contentView] addSubview:vibrant positioned:NSWindowBelow relativeTo:nil]; + [prefsWindow makeKeyAndOrderFront:plugin]; } -- (void)hideHidden { +- (void)toggleHidden:(NSMenuItem *)sender { finderDictionary = [[defaults persistentDomainForName:@"com.apple.finder"] mutableCopy]; - [finderDictionary setValue:[NSNumber numberWithBool:0] forKey:@"AppleShowAllFiles"]; + if ([plugin hiddenFilesAreShown]) { + [finderDictionary setValue:[NSNumber numberWithBool:0] forKey:@"AppleShowAllFiles"]; + [sender setTitle:@"0"]; + } else { + [finderDictionary setValue:[NSNumber numberWithBool:1] forKey:@"AppleShowAllFiles"]; + [sender setTitle:@"1"]; + } [defaults setPersistentDomain:finderDictionary forName:@"com.apple.finder"]; [plugin restartFinder]; } -- (void)showDesktopIcons { +- (void)toggleDesktop:(id)sender { finderDictionary = [[defaults persistentDomainForName:@"com.apple.finder"] mutableCopy]; - [finderDictionary setValue:[NSNumber numberWithBool:1] forKey:@"CreateDesktop"]; + + if ([plugin desktopIconsAreShown]) { + [finderDictionary setValue:[NSNumber numberWithBool:0] forKey:@"CreateDesktop"]; + [sender setTitle:@"0"]; + } else { + [finderDictionary setValue:[NSNumber numberWithBool:1] forKey:@"CreateDesktop"]; + [sender setTitle:@"1"]; + } [defaults setPersistentDomain:finderDictionary forName:@"com.apple.finder"]; [plugin restartFinder]; } -- (void)hideDesktopIcons { +- (BOOL)hiddenFilesAreShown { finderDictionary = [[defaults persistentDomainForName:@"com.apple.finder"] mutableCopy]; - [finderDictionary setValue:[NSNumber numberWithBool:0] forKey:@"CreateDesktop"]; - [defaults setPersistentDomain:finderDictionary forName:@"com.apple.finder"]; - [plugin restartFinder]; + return [[finderDictionary objectForKey:@"AppleShowAllFiles"] boolValue]; +} +- (BOOL)desktopIconsAreShown { + finderDictionary = [[defaults persistentDomainForName:@"com.apple.finder"] mutableCopy]; + return [[finderDictionary objectForKey:@"CreateDesktop"] boolValue]; } // https://github.com/w0lfschild/podcastsPlus/blob/182809f07326f5364954addc47ccd0dd8e83d6de/podcastsPlus/podcastsPlus.m#L424 @@ -89,6 +167,16 @@ - (void)restartFinder { [task launch]; [NSApp terminate:nil]; } +- (void)openSourceCode { + [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"https://github.com/MTACS/ReFinder"]]; +} +- (void)initializePrefs { + if (!preferences) { + preferences = [[NSUserDefaults alloc] initWithSuiteName:@"com.mtac.refinder"]; + preferencesDict = [preferences dictionaryRepresentation]; + } + [preferences synchronize]; +} @end ZKSwizzleInterface(rf_AboutController, TAboutWindowController, NSWindowController) @@ -96,7 +184,7 @@ @implementation rf_AboutController - (void)windowDidLoad { ZKOrig(void); NSTextField *field = (NSTextField *)[self.window.contentView.subviews lastObject]; - [field setStringValue:[NSString stringWithFormat:@"%@\n\nReFinder 1.0 © MTAC", field.stringValue]]; + [field setStringValue:[NSString stringWithFormat:@"%@\n\nReFinder 1.1 © MTAC", field.stringValue]]; } @end diff --git a/ReFinder/ReFinderPreferencesController.h b/ReFinder/ReFinderPreferencesController.h new file mode 100644 index 0000000..c9cde24 --- /dev/null +++ b/ReFinder/ReFinderPreferencesController.h @@ -0,0 +1,11 @@ +// +// ReFinderPreferencesController.h +// ReFinder +// +// Created by MTAC on 12/26/21. +// + +#import + +@interface ReFinderPreferencesController : NSWindowController +@end diff --git a/ReFinder/ReFinderPreferencesController.m b/ReFinder/ReFinderPreferencesController.m new file mode 100644 index 0000000..27e55a2 --- /dev/null +++ b/ReFinder/ReFinderPreferencesController.m @@ -0,0 +1,21 @@ +// +// ReFinderPreferencesController.m +// ReFinder +// +// Created by MTAC on 12/26/21. +// + +#import "ReFinderPreferencesController.h" + +@interface ReFinderPreferencesController () +@end + +@implementation ReFinderPreferencesController +- (void)windowDidLoad { + [super windowDidLoad]; +} +- (id)init { + self = [super initWithWindowNibName:@"ReFinderPreferencesController"]; + return self; +} +@end diff --git a/ReFinder/ReFinderPreferencesController.xib b/ReFinder/ReFinderPreferencesController.xib new file mode 100644 index 0000000..d133a65 --- /dev/null +++ b/ReFinder/ReFinderPreferencesController.xib @@ -0,0 +1,277 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ReFinder/ReFinderWindow.h b/ReFinder/ReFinderWindow.h new file mode 100644 index 0000000..a8bf34b --- /dev/null +++ b/ReFinder/ReFinderWindow.h @@ -0,0 +1,19 @@ +// +// ReFinderWindow.h +// ReFinder +// +// Created by MTAC on 12/26/21. +// + +#import +#import "ReFinder.h" + +@interface ReFinderWindow : NSWindow +@property (strong) IBOutlet NSSwitch *compactSwitch; +@property (strong) IBOutlet NSSwitch *fileSwitch; +@property (strong) IBOutlet NSSwitch *editSwitch; +@property (strong) IBOutlet NSSwitch *viewSwitch; +@property (strong) IBOutlet NSSwitch *goSwitch; +@property (strong) IBOutlet NSSwitch *windowSwitch; +@property (strong) IBOutlet NSSwitch *helpSwitch; +@end diff --git a/ReFinder/ReFinderWindow.m b/ReFinder/ReFinderWindow.m new file mode 100644 index 0000000..417681b --- /dev/null +++ b/ReFinder/ReFinderWindow.m @@ -0,0 +1,59 @@ +// +// ReFinderWindow.m +// ReFinder +// +// Created by MTAC on 12/26/21. +// + +#import "ReFinderWindow.h" + +static NSUserDefaults *preferences = nil; + +@implementation ReFinderWindow +- (void)makeKeyAndOrderFront:(id)sender { + [super makeKeyAndOrderFront:sender]; + preferences = [NSUserDefaults standardUserDefaults]; + [self setupToggles]; +} +- (void)setupToggles { + NSArray *keys = [NSArray arrayWithObjects:@"useCompactMenu", @"hideFileItem", @"hideEditItem", @"hideViewItem", @"hideGoItem", @"hideWindowItem", @"hideHelpItem", nil]; + for (NSString *prefsKey in keys) { + if (![preferences integerForKey:prefsKey]) { + [preferences setInteger:0 forKey:prefsKey]; + } + } + [self.compactSwitch setState:(NSControlStateValue)[preferences integerForKey:@"useCompactMenu"]]; + [self.fileSwitch setState:(NSControlStateValue)[preferences integerForKey:@"hideFileItem"]]; + [self.editSwitch setState:(NSControlStateValue)[preferences integerForKey:@"hideEditItem"]]; + [self.viewSwitch setState:(NSControlStateValue)[preferences integerForKey:@"hideViewItem"]]; + [self.goSwitch setState:(NSControlStateValue)[preferences integerForKey:@"hideGoItem"]]; + [self.windowSwitch setState:(NSControlStateValue)[preferences integerForKey:@"hideWindowItem"]]; + [self.helpSwitch setState:(NSControlStateValue)[preferences integerForKey:@"hideHelpItem"]]; +} +- (IBAction)toggleCompact:(NSSwitch *)sender { + NSString *key = @"useCompactMenu"; + if (sender.state == NSControlStateValueOn) { + [preferences setInteger:1 forKey:key]; + } else if (sender.state == NSControlStateValueOff) { + [preferences setInteger:0 forKey:key]; + } + [preferences synchronize]; + NSLog(@"[REFINDER] : Compact Menu -> %ld", [preferences integerForKey:key]); +} +- (IBAction)toggleSwitch:(NSSwitch *)sender { + NSString *key = sender.identifier; + if (sender.state == NSControlStateValueOn) { + [preferences setInteger:1 forKey:key]; + } else if (sender.state == NSControlStateValueOff) { + [preferences setInteger:0 forKey:key]; + } + [preferences synchronize]; + NSLog(@"[REFINDER] : Hide %@ Item -> %ld", sender.identifier, [preferences integerForKey:key]); +} +- (IBAction)restartFinder:(NSButton *)sender { + [[ReFinder sharedInstance] restartFinder]; +} +- (IBAction)openSourceCode:(NSButton *)sender { + [[ReFinder sharedInstance] openSourceCode]; +} +@end