From a5a8c0646f38c2c2ee80cc04404a96f078a93878 Mon Sep 17 00:00:00 2001 From: michael starke Date: Wed, 27 Aug 2014 20:05:59 +0200 Subject: [PATCH] Extracted some state tools to HNHCommon --- HNHUi | 2 +- MacPass.xcodeproj/project.pbxproj | 10 +++- MacPass/MPDatabaseSettingsWindowController.m | 56 ++++++-------------- MacPass/MPFlagsHelper.h | 5 +- MacPass/MPFlagsHelper.m | 13 +++++ 5 files changed, 39 insertions(+), 47 deletions(-) create mode 100644 MacPass/MPFlagsHelper.m diff --git a/HNHUi b/HNHUi index 08252931..254906cc 160000 --- a/HNHUi +++ b/HNHUi @@ -1 +1 @@ -Subproject commit 08252931b9a9cae3f2947adad34def666071f23f +Subproject commit 254906cc1096951ca077ad0bb8ca7fd955596d0c diff --git a/MacPass.xcodeproj/project.pbxproj b/MacPass.xcodeproj/project.pbxproj index e4a3531c..e80d0169 100644 --- a/MacPass.xcodeproj/project.pbxproj +++ b/MacPass.xcodeproj/project.pbxproj @@ -216,6 +216,8 @@ 4C94A06F1938DC8C0040ABAB /* MPEditSession.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C94A06E1938DC8C0040ABAB /* MPEditSession.m */; }; 4C94A0721938DDC20040ABAB /* MPDocument+EditingSession.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C94A0711938DDC20040ABAB /* MPDocument+EditingSession.m */; }; 4C96D15417A12E4F00D931FA /* 99_CreatedTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C96D15317A12E4F00D931FA /* 99_CreatedTemplate.pdf */; }; + 4C978E0619AE53FE003067DF /* HNHCommon.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C978E0519AE53FE003067DF /* HNHCommon.m */; }; + 4C978E0D19AE54AB003067DF /* MPFlagsHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C978E0C19AE54AB003067DF /* MPFlagsHelper.m */; }; 4C9D6AA917615199001C660C /* HNHRoundedSecureTextFieldCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C9D6AA817615199001C660C /* HNHRoundedSecureTextFieldCell.m */; }; 4CA08DA017A831B200A6544B /* MPAddEntryContextMenuDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CA08D9F17A831B200A6544B /* MPAddEntryContextMenuDelegate.m */; }; 4CA0B2ED15BCADAC00654E32 /* SettingsWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4CA0B2EC15BCADAC00654E32 /* SettingsWindow.xib */; }; @@ -753,6 +755,8 @@ 4C94A06E1938DC8C0040ABAB /* MPEditSession.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPEditSession.m; sourceTree = ""; }; 4C94A0711938DDC20040ABAB /* MPDocument+EditingSession.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "MPDocument+EditingSession.m"; sourceTree = ""; }; 4C96D15317A12E4F00D931FA /* 99_CreatedTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = 99_CreatedTemplate.pdf; path = Icons/99_CreatedTemplate.pdf; sourceTree = ""; }; + 4C978E0519AE53FE003067DF /* HNHCommon.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HNHCommon.m; sourceTree = ""; }; + 4C978E0C19AE54AB003067DF /* MPFlagsHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPFlagsHelper.m; sourceTree = ""; }; 4C9D6AA717615199001C660C /* HNHRoundedSecureTextFieldCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HNHRoundedSecureTextFieldCell.h; sourceTree = ""; }; 4C9D6AA817615199001C660C /* HNHRoundedSecureTextFieldCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HNHRoundedSecureTextFieldCell.m; sourceTree = ""; }; 4CA08D9E17A831B200A6544B /* MPAddEntryContextMenuDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPAddEntryContextMenuDelegate.h; sourceTree = ""; }; @@ -1297,7 +1301,6 @@ 4C4B7EF717A4B335000234C7 /* MPUniqueCharactersFormatter.m */, 4C224B4017DFCB2300FF6AEE /* MPNumericalInputFormatter.h */, 4C224B4117DFCB2400FF6AEE /* MPNumericalInputFormatter.m */, - 4CB63A6018986530002DEC4C /* MPFlagsHelper.h */, 4C3C4EAD18D7039300153127 /* MPValueTransformerHelper.h */, 4C3C4EAE18D7039300153127 /* MPValueTransformerHelper.m */, 4C26C33D18D8C92100CF1A1C /* MPTemporaryFileStorage.h */, @@ -1306,6 +1309,8 @@ 4C88C66818D9F8D600F43852 /* MPTemporaryFileStorageCenter.m */, 4C4B728318E4B9B400A1A5D5 /* MPDockTileHelper.h */, 4C4B728418E4B9B400A1A5D5 /* MPDockTileHelper.m */, + 4CB63A6018986530002DEC4C /* MPFlagsHelper.h */, + 4C978E0C19AE54AB003067DF /* MPFlagsHelper.m */, ); name = Helper; sourceTree = ""; @@ -1761,6 +1766,7 @@ 4CFDDDE7185E92A600A9E7F1 /* HNHTextView.h */, 4CFDDDE8185E92A600A9E7F1 /* HNHTextView.m */, 4C48A56018BE932100278A2D /* HNHCommon.h */, + 4C978E0519AE53FE003067DF /* HNHCommon.m */, ); path = HNHUi; sourceTree = ""; @@ -2298,6 +2304,7 @@ 4C65FAE916D16DDB006E0577 /* MPPasswordInputController.m in Sources */, 4CDF01A316D1B76700D0AC08 /* MPEntryViewController.m in Sources */, 4C3BD51516D276F800389F1F /* MPToolbarDelegate.m in Sources */, + 4C978E0619AE53FE003067DF /* HNHCommon.m in Sources */, 4C61EA0316D2FD0800AC519E /* MPOutlineViewController.m in Sources */, 4C69A73A16D589DF00EC1B1A /* HNHGradientView.m in Sources */, 4C65C79C16DD283900E32CFF /* MPToolbarButton.m in Sources */, @@ -2353,6 +2360,7 @@ 4C3C4EAF18D7039300153127 /* MPValueTransformerHelper.m in Sources */, 4C245B7D176E1E3D0086100E /* MultipartFormDataParser.m in Sources */, 4C245B7E176E1E3D0086100E /* MultipartMessageHeader.m in Sources */, + 4C978E0D19AE54AB003067DF /* MPFlagsHelper.m in Sources */, 4C245B7F176E1E3D0086100E /* MultipartMessageHeaderField.m in Sources */, 4C245B80176E1E3D0086100E /* HTTPAsyncFileResponse.m in Sources */, 4C6F228919A4A7F90012310C /* MPAutotypeClear.m in Sources */, diff --git a/MacPass/MPDatabaseSettingsWindowController.m b/MacPass/MPDatabaseSettingsWindowController.m index 59cea748..aa08809e 100644 --- a/MacPass/MPDatabaseSettingsWindowController.m +++ b/MacPass/MPDatabaseSettingsWindowController.m @@ -23,6 +23,7 @@ #import "HNHRoundedTextField.h" #import "HNHRoundedSecureTextField.h" +#import "HNHCommon.h" #import "NSString+Empty.h" @@ -37,33 +38,6 @@ @implementation MPDatabaseSettingsWindowController -NSInteger _MPStateForBool(BOOL flag) { - return flag ? NSOnState : NSOffState; -} - -BOOL _MPBoolForState(NSInteger state) { - switch (state) { - case NSOnState: - return YES; - default: - case NSMixedState: - NSLog(@"Indetermined state!"); - case NSOffState: - return NO; - break; - } -} - -void _MPSetState(id stateItem, BOOL isOn) { - if([stateItem respondsToSelector:@selector(setState:)]) { - [stateItem setState:_MPStateForBool(isOn)]; - } - else { - NSLog(@"%@ does not respond to setState:", stateItem); - assert(false); - } -} - - (NSString *)windowNibName { return @"DatabaseSettingsWindow"; } @@ -122,8 +96,8 @@ void _MPSetState(id stateItem, BOOL isOn) { _document.templates = templateGroup; - BOOL enforceMasterKeyChange = _MPBoolForState([self.enforceKeyChangeCheckButton state]); - BOOL recommendMasterKeyChange = _MPBoolForState([self.recommendKeyChangeCheckButton state]); + BOOL enforceMasterKeyChange = HNHBoolForState([self.enforceKeyChangeCheckButton state]); + BOOL recommendMasterKeyChange = HNHBoolForState([self.recommendKeyChangeCheckButton state]); enforceMasterKeyChange &= ([[self.enforceKeyChangeIntervalTextField stringValue] length] != 0); recommendMasterKeyChange &= ([[self.recommendKeyChangeIntervalTextField stringValue] length] != 0); @@ -136,11 +110,11 @@ void _MPSetState(id stateItem, BOOL isOn) { /* Security */ - metaData.protectNotes = _MPBoolForState([self.protectNotesCheckButton state]); - metaData.protectPassword = _MPBoolForState([self.protectPasswortCheckButton state]); - metaData.protectTitle = _MPBoolForState([self.protectTitleCheckButton state]); - metaData.protectUrl = _MPBoolForState([self.protectURLCheckButton state]); - metaData.protectUserName = _MPBoolForState([self.protectUserNameCheckButton state]); + metaData.protectNotes = HNHBoolForState([self.protectNotesCheckButton state]); + metaData.protectPassword = HNHBoolForState([self.protectPasswortCheckButton state]); + metaData.protectTitle = HNHBoolForState([self.protectTitleCheckButton state]); + metaData.protectUrl = HNHBoolForState([self.protectURLCheckButton state]); + metaData.protectUserName = HNHBoolForState([self.protectUserNameCheckButton state]); metaData.defaultUserName = [self.defaultUsernameTextField stringValue]; @@ -217,11 +191,11 @@ void _MPSetState(id stateItem, BOOL isOn) { } - (void)_setupProtectionTab:(KPKMetaData *)metaData { - _MPSetState(self.protectNotesCheckButton, metaData.protectNotes); - _MPSetState(self.protectPasswortCheckButton, metaData.protectPassword); - _MPSetState(self.protectTitleCheckButton, metaData.protectTitle); - _MPSetState(self.protectURLCheckButton, metaData.protectUrl); - _MPSetState(self.protectUserNameCheckButton, metaData.protectUserName); + HNHSetStateFromBool(self.protectNotesCheckButton, metaData.protectNotes); + HNHSetStateFromBool(self.protectPasswortCheckButton, metaData.protectPassword); + HNHSetStateFromBool(self.protectTitleCheckButton, metaData.protectTitle); + HNHSetStateFromBool(self.protectURLCheckButton, metaData.protectUrl); + HNHSetStateFromBool(self.protectUserNameCheckButton, metaData.protectUserName); [self.encryptionRoundsTextField setIntegerValue:metaData.rounds]; [self.benchmarkButton setEnabled:YES]; @@ -238,8 +212,8 @@ void _MPSetState(id stateItem, BOOL isOn) { [self.defaultUsernameTextField setEditable:YES]; [self _updateTemplateGroup:tree]; - _MPSetState(self.enforceKeyChangeCheckButton, tree.metaData.enforceMasterKeyChange); - _MPSetState(self.recommendKeyChangeCheckButton, tree.metaData.recommendMasterKeyChange); + HNHSetStateFromBool(self.enforceKeyChangeCheckButton, tree.metaData.enforceMasterKeyChange); + HNHSetStateFromBool(self.recommendKeyChangeCheckButton, tree.metaData.recommendMasterKeyChange); [self.enforceKeyChangeIntervalTextField setEnabled:tree.metaData.enforceMasterKeyChange]; [self.recommendKeyChangeIntervalTextField setEnabled:tree.metaData.recommendMasterKeyChange]; diff --git a/MacPass/MPFlagsHelper.h b/MacPass/MPFlagsHelper.h index af0bc1d9..c1724e45 100644 --- a/MacPass/MPFlagsHelper.h +++ b/MacPass/MPFlagsHelper.h @@ -20,8 +20,5 @@ * * @return YES if any bit of flag is set in mode */ -static BOOL MPTestFlagInOptions(const NSUInteger flag, const NSUInteger options ) { - return (0 != (options & flag)); -} - +FOUNDATION_EXTERN BOOL MPTestFlagInOptions(const NSUInteger flag, const NSUInteger options ); #endif diff --git a/MacPass/MPFlagsHelper.m b/MacPass/MPFlagsHelper.m new file mode 100644 index 00000000..fa758947 --- /dev/null +++ b/MacPass/MPFlagsHelper.m @@ -0,0 +1,13 @@ +// +// MPFlagsHelper.m +// MacPass +// +// Created by Michael Starke on 27/08/14. +// Copyright (c) 2014 HicknHack Software GmbH. All rights reserved. +// + +#import "MPFlagsHelper.h" + +BOOL MPTestFlagInOptions(const NSUInteger flag, const NSUInteger options ) { + return (0 != (options & flag)); +}