First drafting for Password generator.

Extended Settings handling to be able to use Tabs
This commit is contained in:
michael starke
2013-03-31 15:57:41 +02:00
parent 476e18b870
commit a70aedb51e
22 changed files with 1123 additions and 125 deletions

View File

@@ -18,8 +18,13 @@
4C37A84015B8B474005EF8EE /* MPOutlineDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C37A83F15B8B474005EF8EE /* MPOutlineDataSource.m */; }; 4C37A84015B8B474005EF8EE /* MPOutlineDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C37A83F15B8B474005EF8EE /* MPOutlineDataSource.m */; };
4C3BD51516D276F800389F1F /* MPToolbarDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C3BD51416D276F800389F1F /* MPToolbarDelegate.m */; }; 4C3BD51516D276F800389F1F /* MPToolbarDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C3BD51416D276F800389F1F /* MPToolbarDelegate.m */; };
4C3FFD9E16DAF60600DF9186 /* FilterBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C3FFD9D16DAF60600DF9186 /* FilterBar.xib */; }; 4C3FFD9E16DAF60600DF9186 /* FilterBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C3FFD9D16DAF60600DF9186 /* FilterBar.xib */; };
4C40AC5C170782730073D1C3 /* MPAbstractSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C40AC5B170782730073D1C3 /* MPAbstractSettingsViewController.m */; };
4C40AC5F170876D90073D1C3 /* Defaults.plist in Resources */ = {isa = PBXBuildFile; fileRef = 4C40AC5E170876D90073D1C3 /* Defaults.plist */; };
4C431BCD16E2A82800700A81 /* MPPasteBoardController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C431BCC16E2A82700700A81 /* MPPasteBoardController.m */; }; 4C431BCD16E2A82800700A81 /* MPPasteBoardController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C431BCC16E2A82700700A81 /* MPPasteBoardController.m */; };
4C431BCF16E2BAB000700A81 /* OverlayWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C431BCE16E2BAB000700A81 /* OverlayWindow.xib */; }; 4C431BCF16E2BAB000700A81 /* OverlayWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C431BCE16E2BAB000700A81 /* OverlayWindow.xib */; };
4C46B88517063A070046109A /* NSString+MPPasswordCreation.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C46B88417063A070046109A /* NSString+MPPasswordCreation.m */; };
4C46B88817063A170046109A /* NSString+MPPasswordAnalysis.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C46B88717063A170046109A /* NSString+MPPasswordAnalysis.m */; };
4C46B88B1706D16E0046109A /* NSData+MPRandomBytes.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C46B88A1706D16E0046109A /* NSData+MPRandomBytes.m */; };
4C586F9E16D07ABD00E7DB57 /* 00_PasswordTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C586F9D16D07ABD00E7DB57 /* 00_PasswordTemplate.pdf */; }; 4C586F9E16D07ABD00E7DB57 /* 00_PasswordTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C586F9D16D07ABD00E7DB57 /* 00_PasswordTemplate.pdf */; };
4C586FA016D07D7200E7DB57 /* 01_PackageNetworkTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C586F9F16D07D7200E7DB57 /* 01_PackageNetworkTemplate.pdf */; }; 4C586FA016D07D7200E7DB57 /* 01_PackageNetworkTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C586F9F16D07D7200E7DB57 /* 01_PackageNetworkTemplate.pdf */; };
4C586FA216D07F6A00E7DB57 /* 02_MessageBoxWarningTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C586FA116D07F6A00E7DB57 /* 02_MessageBoxWarningTemplate.pdf */; }; 4C586FA216D07F6A00E7DB57 /* 02_MessageBoxWarningTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C586FA116D07F6A00E7DB57 /* 02_MessageBoxWarningTemplate.pdf */; };
@@ -94,6 +99,7 @@
4CAD748C15B889B700104512 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CAD748B15B889B700104512 /* Security.framework */; }; 4CAD748C15B889B700104512 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CAD748B15B889B700104512 /* Security.framework */; };
4CAD748E15B88AC100104512 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CAD748D15B88AC100104512 /* libz.dylib */; }; 4CAD748E15B88AC100104512 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CAD748D15B88AC100104512 /* libz.dylib */; };
4CB9339916D3A0DD00A13B5D /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 4CB9339716D3A0DD00A13B5D /* Credits.rtf */; }; 4CB9339916D3A0DD00A13B5D /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 4CB9339716D3A0DD00A13B5D /* Credits.rtf */; };
4CBA2ABA17074C07006D8139 /* MPSettingsKeys.m in Resources */ = {isa = PBXBuildFile; fileRef = 4CBA2AB917074C07006D8139 /* MPSettingsKeys.m */; };
4CBA981815BA0DB600721965 /* MPDatabaseDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CBA981715BA0DB600721965 /* MPDatabaseDocument.m */; }; 4CBA981815BA0DB600721965 /* MPDatabaseDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CBA981715BA0DB600721965 /* MPDatabaseDocument.m */; };
4CC1AEBE16D4467C006D2AAB /* KdbTree+MPAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CC1AEBD16D4467C006D2AAB /* KdbTree+MPAdditions.m */; }; 4CC1AEBE16D4467C006D2AAB /* KdbTree+MPAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CC1AEBD16D4467C006D2AAB /* KdbTree+MPAdditions.m */; };
4CC6259115BA1C99002F5B11 /* MPOutlineViewDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CC6259015BA1C99002F5B11 /* MPOutlineViewDelegate.m */; }; 4CC6259115BA1C99002F5B11 /* MPOutlineViewDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CC6259015BA1C99002F5B11 /* MPOutlineViewDelegate.m */; };
@@ -129,9 +135,18 @@
4C3BD51316D276F800389F1F /* MPToolbarDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPToolbarDelegate.h; sourceTree = "<group>"; }; 4C3BD51316D276F800389F1F /* MPToolbarDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPToolbarDelegate.h; sourceTree = "<group>"; };
4C3BD51416D276F800389F1F /* MPToolbarDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPToolbarDelegate.m; sourceTree = "<group>"; }; 4C3BD51416D276F800389F1F /* MPToolbarDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPToolbarDelegate.m; sourceTree = "<group>"; };
4C3FFD9D16DAF60600DF9186 /* FilterBar.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FilterBar.xib; sourceTree = "<group>"; }; 4C3FFD9D16DAF60600DF9186 /* FilterBar.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FilterBar.xib; sourceTree = "<group>"; };
4C40AC581707819A0073D1C3 /* MPAbstractSettingsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPAbstractSettingsViewController.h; sourceTree = "<group>"; };
4C40AC5B170782730073D1C3 /* MPAbstractSettingsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPAbstractSettingsViewController.m; sourceTree = "<group>"; };
4C40AC5E170876D90073D1C3 /* Defaults.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Defaults.plist; sourceTree = "<group>"; };
4C431BCB16E2A82700700A81 /* MPPasteBoardController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPPasteBoardController.h; sourceTree = "<group>"; }; 4C431BCB16E2A82700700A81 /* MPPasteBoardController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPPasteBoardController.h; sourceTree = "<group>"; };
4C431BCC16E2A82700700A81 /* MPPasteBoardController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPPasteBoardController.m; sourceTree = "<group>"; }; 4C431BCC16E2A82700700A81 /* MPPasteBoardController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPPasteBoardController.m; sourceTree = "<group>"; };
4C431BCE16E2BAB000700A81 /* OverlayWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = OverlayWindow.xib; sourceTree = "<group>"; }; 4C431BCE16E2BAB000700A81 /* OverlayWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = OverlayWindow.xib; sourceTree = "<group>"; };
4C46B88317063A070046109A /* NSString+MPPasswordCreation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+MPPasswordCreation.h"; sourceTree = "<group>"; };
4C46B88417063A070046109A /* NSString+MPPasswordCreation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+MPPasswordCreation.m"; sourceTree = "<group>"; };
4C46B88617063A170046109A /* NSString+MPPasswordAnalysis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+MPPasswordAnalysis.h"; sourceTree = "<group>"; };
4C46B88717063A170046109A /* NSString+MPPasswordAnalysis.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+MPPasswordAnalysis.m"; sourceTree = "<group>"; };
4C46B8891706D16E0046109A /* NSData+MPRandomBytes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSData+MPRandomBytes.h"; sourceTree = "<group>"; };
4C46B88A1706D16E0046109A /* NSData+MPRandomBytes.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSData+MPRandomBytes.m"; sourceTree = "<group>"; };
4C586F9D16D07ABD00E7DB57 /* 00_PasswordTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 00_PasswordTemplate.pdf; sourceTree = "<group>"; }; 4C586F9D16D07ABD00E7DB57 /* 00_PasswordTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 00_PasswordTemplate.pdf; sourceTree = "<group>"; };
4C586F9F16D07D7200E7DB57 /* 01_PackageNetworkTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 01_PackageNetworkTemplate.pdf; sourceTree = "<group>"; }; 4C586F9F16D07D7200E7DB57 /* 01_PackageNetworkTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 01_PackageNetworkTemplate.pdf; sourceTree = "<group>"; };
4C586FA116D07F6A00E7DB57 /* 02_MessageBoxWarningTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 02_MessageBoxWarningTemplate.pdf; sourceTree = "<group>"; }; 4C586FA116D07F6A00E7DB57 /* 02_MessageBoxWarningTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 02_MessageBoxWarningTemplate.pdf; sourceTree = "<group>"; };
@@ -253,7 +268,7 @@
4CA0B2F815BCAF6700654E32 /* MPGeneralSettingsController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPGeneralSettingsController.m; sourceTree = "<group>"; }; 4CA0B2F815BCAF6700654E32 /* MPGeneralSettingsController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPGeneralSettingsController.m; sourceTree = "<group>"; };
4CA0B2FA15BCAF8600654E32 /* MPSettingsController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPSettingsController.h; sourceTree = "<group>"; }; 4CA0B2FA15BCAF8600654E32 /* MPSettingsController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPSettingsController.h; sourceTree = "<group>"; };
4CA0B2FB15BCAF8600654E32 /* MPSettingsController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPSettingsController.m; sourceTree = "<group>"; }; 4CA0B2FB15BCAF8600654E32 /* MPSettingsController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPSettingsController.m; sourceTree = "<group>"; };
4CA0B30D15BCB6FD00654E32 /* MPSettingsTabProtocoll.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPSettingsTabProtocoll.h; sourceTree = "<group>"; }; 4CA0B30D15BCB6FD00654E32 /* MPSettingsTab.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPSettingsTab.h; sourceTree = "<group>"; };
4CAC6F7616D2B54800D79D5E /* MPMainWindowSplitViewDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPMainWindowSplitViewDelegate.h; sourceTree = "<group>"; }; 4CAC6F7616D2B54800D79D5E /* MPMainWindowSplitViewDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPMainWindowSplitViewDelegate.h; sourceTree = "<group>"; };
4CAC6F7716D2B54800D79D5E /* MPMainWindowSplitViewDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPMainWindowSplitViewDelegate.m; sourceTree = "<group>"; }; 4CAC6F7716D2B54800D79D5E /* MPMainWindowSplitViewDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPMainWindowSplitViewDelegate.m; sourceTree = "<group>"; };
4CACB72A16F7C9B600D47C9E /* KdbEntry+Copying.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "KdbEntry+Copying.h"; sourceTree = "<group>"; }; 4CACB72A16F7C9B600D47C9E /* KdbEntry+Copying.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "KdbEntry+Copying.h"; sourceTree = "<group>"; };
@@ -275,6 +290,8 @@
4CAD748B15B889B700104512 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; 4CAD748B15B889B700104512 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
4CAD748D15B88AC100104512 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; 4CAD748D15B88AC100104512 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };
4CB9339816D3A0DD00A13B5D /* en */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = en; path = en.lproj/Credits.rtf; sourceTree = "<group>"; }; 4CB9339816D3A0DD00A13B5D /* en */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = en; path = en.lproj/Credits.rtf; sourceTree = "<group>"; };
4CBA2AB617074B59006D8139 /* MPSettingsKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPSettingsKeys.h; sourceTree = "<group>"; };
4CBA2AB917074C07006D8139 /* MPSettingsKeys.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPSettingsKeys.m; sourceTree = "<group>"; };
4CBA981615BA0DB600721965 /* MPDatabaseDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPDatabaseDocument.h; sourceTree = "<group>"; }; 4CBA981615BA0DB600721965 /* MPDatabaseDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPDatabaseDocument.h; sourceTree = "<group>"; };
4CBA981715BA0DB600721965 /* MPDatabaseDocument.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPDatabaseDocument.m; sourceTree = "<group>"; }; 4CBA981715BA0DB600721965 /* MPDatabaseDocument.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPDatabaseDocument.m; sourceTree = "<group>"; };
4CC1AEBC16D4467C006D2AAB /* KdbTree+MPAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "KdbTree+MPAdditions.h"; sourceTree = "<group>"; }; 4CC1AEBC16D4467C006D2AAB /* KdbTree+MPAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "KdbTree+MPAdditions.h"; sourceTree = "<group>"; };
@@ -364,6 +381,8 @@
4C2E382216D1421B00037A9D /* MPIconHelper.m */, 4C2E382216D1421B00037A9D /* MPIconHelper.m */,
4C920E2816DCDFA00083839B /* MPLoggerProxy.h */, 4C920E2816DCDFA00083839B /* MPLoggerProxy.h */,
4C920E2916DCDFA00083839B /* MPLoggerProxy.m */, 4C920E2916DCDFA00083839B /* MPLoggerProxy.m */,
4CBA2AB617074B59006D8139 /* MPSettingsKeys.h */,
4CBA2AB917074C07006D8139 /* MPSettingsKeys.m */,
); );
name = Helper; name = Helper;
sourceTree = "<group>"; sourceTree = "<group>";
@@ -396,6 +415,19 @@
name = Model; name = Model;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
4C46B8821706397A0046109A /* Security Additions */ = {
isa = PBXGroup;
children = (
4C46B8891706D16E0046109A /* NSData+MPRandomBytes.h */,
4C46B88A1706D16E0046109A /* NSData+MPRandomBytes.m */,
4C46B88317063A070046109A /* NSString+MPPasswordCreation.h */,
4C46B88417063A070046109A /* NSString+MPPasswordCreation.m */,
4C46B88617063A170046109A /* NSString+MPPasswordAnalysis.h */,
4C46B88717063A170046109A /* NSString+MPPasswordAnalysis.m */,
);
name = "Security Additions";
sourceTree = "<group>";
};
4C586F9C16D07ABD00E7DB57 /* Icons */ = { 4C586F9C16D07ABD00E7DB57 /* Icons */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
@@ -554,6 +586,7 @@
4C77E36C15B84A240093A587 /* MacPass */ = { 4C77E36C15B84A240093A587 /* MacPass */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
4C46B8821706397A0046109A /* Security Additions */,
4C2C4C2516D3BCEA00D49295 /* KeePassLibAdditions */, 4C2C4C2516D3BCEA00D49295 /* KeePassLibAdditions */,
4C2E382016D141F700037A9D /* Helper */, 4C2E382016D141F700037A9D /* Helper */,
4C586F9C16D07ABD00E7DB57 /* Icons */, 4C586F9C16D07ABD00E7DB57 /* Icons */,
@@ -581,6 +614,7 @@
4C77E36F15B84A240093A587 /* InfoPlist.strings */, 4C77E36F15B84A240093A587 /* InfoPlist.strings */,
4C77E37215B84A240093A587 /* main.m */, 4C77E37215B84A240093A587 /* main.m */,
4C77E37415B84A240093A587 /* MacPass-Prefix.pch */, 4C77E37415B84A240093A587 /* MacPass-Prefix.pch */,
4C40AC5E170876D90073D1C3 /* Defaults.plist */,
); );
name = "Supporting Files"; name = "Supporting Files";
sourceTree = "<group>"; sourceTree = "<group>";
@@ -602,6 +636,8 @@
4C77547416E55FE800970E02 /* MPInspectorTabViewController.m */, 4C77547416E55FE800970E02 /* MPInspectorTabViewController.m */,
4CE39ABD16ECE34A000FE29D /* MPIconSelectViewController.h */, 4CE39ABD16ECE34A000FE29D /* MPIconSelectViewController.h */,
4CE39ABE16ECE34A000FE29D /* MPIconSelectViewController.m */, 4CE39ABE16ECE34A000FE29D /* MPIconSelectViewController.m */,
4C40AC581707819A0073D1C3 /* MPAbstractSettingsViewController.h */,
4C40AC5B170782730073D1C3 /* MPAbstractSettingsViewController.m */,
); );
name = "View Controller"; name = "View Controller";
sourceTree = "<group>"; sourceTree = "<group>";
@@ -609,7 +645,7 @@
4CA0B30E15BCB70200654E32 /* Protocolls */ = { 4CA0B30E15BCB70200654E32 /* Protocolls */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
4CA0B30D15BCB6FD00654E32 /* MPSettingsTabProtocoll.h */, 4CA0B30D15BCB6FD00654E32 /* MPSettingsTab.h */,
); );
name = Protocolls; name = Protocolls;
sourceTree = "<group>"; sourceTree = "<group>";
@@ -799,6 +835,8 @@
4C77547716E55FFC00970E02 /* InspectorTabView.xib in Resources */, 4C77547716E55FFC00970E02 /* InspectorTabView.xib in Resources */,
4C888C9016EB6C91003D34A1 /* Localizable.strings in Resources */, 4C888C9016EB6C91003D34A1 /* Localizable.strings in Resources */,
4CE39AC116ECE359000FE29D /* IconSelection.xib in Resources */, 4CE39AC116ECE359000FE29D /* IconSelection.xib in Resources */,
4CBA2ABA17074C07006D8139 /* MPSettingsKeys.m in Resources */,
4C40AC5F170876D90073D1C3 /* Defaults.plist in Resources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@@ -898,6 +936,10 @@
4CE39AC416ECE4F7000FE29D /* MPPopupImageView.m in Sources */, 4CE39AC416ECE4F7000FE29D /* MPPopupImageView.m in Sources */,
4CACB72C16F7C9B600D47C9E /* KdbEntry+Copying.m in Sources */, 4CACB72C16F7C9B600D47C9E /* KdbEntry+Copying.m in Sources */,
4CACB72F16F7CA5100D47C9E /* Kdb4Entry+Copying.m in Sources */, 4CACB72F16F7CA5100D47C9E /* Kdb4Entry+Copying.m in Sources */,
4C46B88517063A070046109A /* NSString+MPPasswordCreation.m in Sources */,
4C46B88817063A170046109A /* NSString+MPPasswordAnalysis.m in Sources */,
4C46B88B1706D16E0046109A /* NSData+MPRandomBytes.m in Sources */,
4C40AC5C170782730073D1C3 /* MPAbstractSettingsViewController.m in Sources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };

12
MacPass/Defaults.plist Normal file
View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PasswordEncoding</key>
<integer>0</integer>
<key>ClearClipboardOnQuit</key>
<true/>
<key>ClearClipboardIntervall</key>
<integer>10</integer>
</dict>
</plist>

View File

@@ -2,16 +2,19 @@
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00"> <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
<data> <data>
<int key="IBDocument.SystemTarget">1080</int> <int key="IBDocument.SystemTarget">1080</int>
<string key="IBDocument.SystemVersion">12C3103</string> <string key="IBDocument.SystemVersion">12D78</string>
<string key="IBDocument.InterfaceBuilderVersion">3084</string> <string key="IBDocument.InterfaceBuilderVersion">3084</string>
<string key="IBDocument.AppKitVersion">1187.34</string> <string key="IBDocument.AppKitVersion">1187.37</string>
<string key="IBDocument.HIToolboxVersion">625.00</string> <string key="IBDocument.HIToolboxVersion">626.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions"> <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="NS.object.0">3084</string> <string key="NS.object.0">3084</string>
</object> </object>
<array key="IBDocument.IntegratedClassDependencies"> <array key="IBDocument.IntegratedClassDependencies">
<string>IBNSLayoutConstraint</string> <string>IBNSLayoutConstraint</string>
<string>NSBox</string>
<string>NSButton</string>
<string>NSButtonCell</string>
<string>NSCustomObject</string> <string>NSCustomObject</string>
<string>NSCustomView</string> <string>NSCustomView</string>
<string>NSMenu</string> <string>NSMenu</string>
@@ -42,23 +45,232 @@
<reference key="NSNextResponder"/> <reference key="NSNextResponder"/>
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<array class="NSMutableArray" key="NSSubviews"> <array class="NSMutableArray" key="NSSubviews">
<object class="NSBox" id="60918609">
<reference key="NSNextResponder" ref="1005"/>
<int key="NSvFlags">12</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="NSView" id="731672371">
<reference key="NSNextResponder" ref="60918609"/>
<int key="NSvFlags">274</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="NSTextField" id="958810247">
<reference key="NSNextResponder" ref="731672371"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{10, 42}, {124, 17}}</string>
<reference key="NSSuperview" ref="731672371"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="222890410"/>
<string key="NSReuseIdentifierKey">_NS:1535</string>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="664984457">
<int key="NSCellFlags">68157504</int>
<int key="NSCellFlags2">272630784</int>
<string key="NSContents">Clear Copied Items</string>
<object class="NSFont" key="NSSupport" id="874940307">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">13</double>
<int key="NSfFlags">1044</int>
</object>
<string key="NSCellIdentifier">_NS:1535</string>
<reference key="NSControlView" ref="958810247"/>
<object class="NSColor" key="NSBackgroundColor" id="285770959">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlColor</string>
<object class="NSColor" key="NSColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
</object>
</object>
<object class="NSColor" key="NSTextColor" id="894002654">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlTextColor</string>
<object class="NSColor" key="NSColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MAA</bytes>
</object>
</object>
</object>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
<object class="NSPopUpButton" id="222890410">
<reference key="NSNextResponder" ref="731672371"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{137, 37}, {112, 26}}</string>
<reference key="NSSuperview" ref="731672371"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="326334884"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="NSEnabled">YES</bool>
<object class="NSPopUpButtonCell" key="NSCell" id="934584997">
<int key="NSCellFlags">-2076180416</int>
<int key="NSCellFlags2">2048</int>
<reference key="NSSupport" ref="874940307"/>
<string key="NSCellIdentifier">_NS:9</string>
<reference key="NSControlView" ref="222890410"/>
<int key="NSButtonFlags">109199360</int>
<int key="NSButtonFlags2">129</int>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<int key="NSPeriodicDelay">400</int>
<int key="NSPeriodicInterval">75</int>
<object class="NSMenuItem" key="NSMenuItem" id="855032005">
<reference key="NSMenu" ref="437492746"/>
<string key="NSTitle">Never</string>
<string key="NSKeyEquiv"/>
<int key="NSMnemonicLoc">2147483647</int>
<int key="NSState">1</int>
<object class="NSCustomResource" key="NSOnImage" id="45262901">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">NSMenuCheckmark</string>
</object>
<object class="NSCustomResource" key="NSMixedImage" id="738594033">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">NSMenuMixedState</string>
</object>
<string key="NSAction">_popUpItemAction:</string>
<reference key="NSTarget" ref="934584997"/>
</object>
<bool key="NSMenuItemRespectAlignment">YES</bool>
<object class="NSMenu" key="NSMenu" id="437492746">
<string key="NSTitle">OtherViews</string>
<array class="NSMutableArray" key="NSMenuItems">
<reference ref="855032005"/>
<object class="NSMenuItem" id="303393620">
<reference key="NSMenu" ref="437492746"/>
<string key="NSTitle">10 Seconds</string>
<string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="45262901"/>
<reference key="NSMixedImage" ref="738594033"/>
<string key="NSAction">_popUpItemAction:</string>
<reference key="NSTarget" ref="934584997"/>
</object>
<object class="NSMenuItem" id="460415455">
<reference key="NSMenu" ref="437492746"/>
<string key="NSTitle">30 Seconds</string>
<string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="45262901"/>
<reference key="NSMixedImage" ref="738594033"/>
<string key="NSAction">_popUpItemAction:</string>
<reference key="NSTarget" ref="934584997"/>
</object>
<object class="NSMenuItem" id="678942088">
<reference key="NSMenu" ref="437492746"/>
<string key="NSTitle">1 Minute</string>
<string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="45262901"/>
<reference key="NSMixedImage" ref="738594033"/>
<string key="NSAction">_popUpItemAction:</string>
<reference key="NSTarget" ref="934584997"/>
</object>
</array>
<reference key="NSMenuFont" ref="874940307"/>
</object>
<int key="NSSelectedIndex">-1</int>
<int key="NSPreferredEdge">1</int>
<bool key="NSUsesItemFromMenu">YES</bool>
<bool key="NSAltersState">YES</bool>
<int key="NSArrowPosition">2</int>
</object>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
<object class="NSButton" id="326334884">
<reference key="NSNextResponder" ref="731672371"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{11, 12}, {172, 18}}</string>
<reference key="NSSuperview" ref="731672371"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<string key="NSHuggingPriority">{250, 150}</string>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="1025397159">
<int key="NSCellFlags">-2080374784</int>
<int key="NSCellFlags2">268435456</int>
<string key="NSContents">Clear Clipboard on Quit</string>
<reference key="NSSupport" ref="874940307"/>
<string key="NSCellIdentifier">_NS:9</string>
<reference key="NSControlView" ref="326334884"/>
<int key="NSButtonFlags">1211912448</int>
<int key="NSButtonFlags2">2</int>
<object class="NSCustomResource" key="NSNormalImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">NSSwitch</string>
</object>
<object class="NSButtonImageSource" key="NSAlternateImage">
<string key="NSImageName">NSSwitch</string>
</object>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<int key="NSPeriodicDelay">200</int>
<int key="NSPeriodicInterval">25</int>
</object>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
</array>
<string key="NSFrame">{{1, 1}, {258, 68}}</string>
<reference key="NSSuperview" ref="60918609"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="958810247"/>
<string key="NSReuseIdentifierKey">_NS:11</string>
</object>
</array>
<string key="NSFrame">{{17, 16}, {260, 84}}</string>
<reference key="NSSuperview" ref="1005"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="731672371"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<string key="NSOffsets">{0, 0}</string>
<object class="NSTextFieldCell" key="NSTitleCell">
<int key="NSCellFlags">67108864</int>
<int key="NSCellFlags2">0</int>
<string key="NSContents">Clipboard</string>
<object class="NSFont" key="NSSupport">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">11</double>
<int key="NSfFlags">3100</int>
</object>
<object class="NSColor" key="NSBackgroundColor">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">textBackgroundColor</string>
<object class="NSColor" key="NSColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
</object>
</object>
<object class="NSColor" key="NSTextColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MCAwLjgwMDAwMDAxMTkAA</bytes>
</object>
</object>
<reference key="NSContentView" ref="731672371"/>
<int key="NSBorderType">1</int>
<int key="NSBoxType">0</int>
<int key="NSTitlePosition">2</int>
<bool key="NSTransparent">NO</bool>
</object>
<object class="NSPopUpButton" id="421904700"> <object class="NSPopUpButton" id="421904700">
<reference key="NSNextResponder" ref="1005"/> <reference key="NSNextResponder" ref="1005"/>
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{146, 91}, {127, 26}}</string> <string key="NSFrame">{{156, 102}, {75, 26}}</string>
<reference key="NSSuperview" ref="1005"/> <reference key="NSSuperview" ref="1005"/>
<reference key="NSWindow"/> <reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="60918609"/>
<string key="NSReuseIdentifierKey">_NS:9</string> <string key="NSReuseIdentifierKey">_NS:9</string>
<string key="NSAntiCompressionPriority">{750, 751}</string> <string key="NSAntiCompressionPriority">{750, 751}</string>
<bool key="NSEnabled">YES</bool> <bool key="NSEnabled">YES</bool>
<object class="NSPopUpButtonCell" key="NSCell" id="161510884"> <object class="NSPopUpButtonCell" key="NSCell" id="161510884">
<int key="NSCellFlags">-2076180416</int> <int key="NSCellFlags">-2076180416</int>
<int key="NSCellFlags2">2048</int> <int key="NSCellFlags2">2048</int>
<object class="NSFont" key="NSSupport" id="874940307"> <reference key="NSSupport" ref="874940307"/>
<string key="NSName">LucidaGrande</string>
<double key="NSSize">13</double>
<int key="NSfFlags">1044</int>
</object>
<string key="NSCellIdentifier">_NS:9</string> <string key="NSCellIdentifier">_NS:9</string>
<reference key="NSControlView" ref="421904700"/> <reference key="NSControlView" ref="421904700"/>
<int key="NSButtonFlags">109199360</int> <int key="NSButtonFlags">109199360</int>
@@ -74,14 +286,8 @@
<int key="NSKeyEquivModMask">1048576</int> <int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int> <int key="NSMnemonicLoc">2147483647</int>
<int key="NSState">1</int> <int key="NSState">1</int>
<object class="NSCustomResource" key="NSOnImage" id="622518040"> <reference key="NSOnImage" ref="45262901"/>
<string key="NSClassName">NSImage</string> <reference key="NSMixedImage" ref="738594033"/>
<string key="NSResourceName">NSMenuCheckmark</string>
</object>
<object class="NSCustomResource" key="NSMixedImage" id="746261602">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">NSMenuMixedState</string>
</object>
<string key="NSAction">_popUpItemAction:</string> <string key="NSAction">_popUpItemAction:</string>
<reference key="NSTarget" ref="161510884"/> <reference key="NSTarget" ref="161510884"/>
</object> </object>
@@ -96,8 +302,8 @@
<string key="NSKeyEquiv"/> <string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int> <int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int> <int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="622518040"/> <reference key="NSOnImage" ref="45262901"/>
<reference key="NSMixedImage" ref="746261602"/> <reference key="NSMixedImage" ref="738594033"/>
<string key="NSAction">_popUpItemAction:</string> <string key="NSAction">_popUpItemAction:</string>
<reference key="NSTarget" ref="161510884"/> <reference key="NSTarget" ref="161510884"/>
</object> </object>
@@ -107,14 +313,15 @@
<string key="NSKeyEquiv"/> <string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int> <int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int> <int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="622518040"/> <reference key="NSOnImage" ref="45262901"/>
<reference key="NSMixedImage" ref="746261602"/> <reference key="NSMixedImage" ref="738594033"/>
<string key="NSAction">_popUpItemAction:</string> <string key="NSAction">_popUpItemAction:</string>
<reference key="NSTarget" ref="161510884"/> <reference key="NSTarget" ref="161510884"/>
</object> </object>
</array> </array>
<reference key="NSMenuFont" ref="874940307"/> <reference key="NSMenuFont" ref="874940307"/>
</object> </object>
<int key="NSSelectedIndex">-1</int>
<int key="NSPreferredEdge">1</int> <int key="NSPreferredEdge">1</int>
<bool key="NSUsesItemFromMenu">YES</bool> <bool key="NSUsesItemFromMenu">YES</bool>
<bool key="NSAltersState">YES</bool> <bool key="NSAltersState">YES</bool>
@@ -125,7 +332,7 @@
<object class="NSTextField" id="637214120"> <object class="NSTextField" id="637214120">
<reference key="NSNextResponder" ref="1005"/> <reference key="NSNextResponder" ref="1005"/>
<int key="NSvFlags">268</int> <int key="NSvFlags">268</int>
<string key="NSFrame">{{17, 97}, {127, 17}}</string> <string key="NSFrame">{{27, 108}, {126, 17}}</string>
<reference key="NSSuperview" ref="1005"/> <reference key="NSSuperview" ref="1005"/>
<reference key="NSWindow"/> <reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="421904700"/> <reference key="NSNextKeyView" ref="421904700"/>
@@ -138,29 +345,13 @@
<reference key="NSSupport" ref="874940307"/> <reference key="NSSupport" ref="874940307"/>
<string key="NSCellIdentifier">_NS:1505</string> <string key="NSCellIdentifier">_NS:1505</string>
<reference key="NSControlView" ref="637214120"/> <reference key="NSControlView" ref="637214120"/>
<object class="NSColor" key="NSBackgroundColor"> <reference key="NSBackgroundColor" ref="285770959"/>
<int key="NSColorSpace">6</int> <reference key="NSTextColor" ref="894002654"/>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlColor</string>
<object class="NSColor" key="NSColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
</object>
</object>
<object class="NSColor" key="NSTextColor">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlTextColor</string>
<object class="NSColor" key="NSColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MAA</bytes>
</object>
</object>
</object> </object>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool> <bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object> </object>
</array> </array>
<string key="NSFrameSize">{290, 135}</string> <string key="NSFrameSize">{294, 146}</string>
<reference key="NSSuperview"/> <reference key="NSSuperview"/>
<reference key="NSWindow"/> <reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="637214120"/> <reference key="NSNextKeyView" ref="637214120"/>
@@ -230,26 +421,10 @@
</object> </object>
<float key="priority">1000</float> <float key="priority">1000</float>
<reference key="containingView" ref="1005"/> <reference key="containingView" ref="1005"/>
<int key="scoringType">6</int> <int key="scoringType">9</int>
<float key="scoringTypeFloat">24</float> <float key="scoringTypeFloat">40</float>
<int key="contentType">2</int> <int key="contentType">2</int>
</object> </object>
<object class="IBNSLayoutConstraint" id="215335887">
<reference key="firstItem" ref="1005"/>
<int key="firstAttribute">6</int>
<int key="relation">0</int>
<reference key="secondItem" ref="421904700"/>
<int key="secondAttribute">6</int>
<float key="multiplier">1</float>
<object class="IBNSLayoutSymbolicConstant" key="constant">
<double key="value">20</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="1005"/>
<int key="scoringType">8</int>
<float key="scoringTypeFloat">29</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="850330857"> <object class="IBNSLayoutConstraint" id="850330857">
<reference key="firstItem" ref="421904700"/> <reference key="firstItem" ref="421904700"/>
<int key="firstAttribute">3</int> <int key="firstAttribute">3</int>
@@ -262,8 +437,8 @@
</object> </object>
<float key="priority">1000</float> <float key="priority">1000</float>
<reference key="containingView" ref="1005"/> <reference key="containingView" ref="1005"/>
<int key="scoringType">8</int> <int key="scoringType">9</int>
<float key="scoringTypeFloat">29</float> <float key="scoringTypeFloat">40</float>
<int key="contentType">3</int> <int key="contentType">3</int>
</object> </object>
<object class="IBNSLayoutConstraint" id="106372279"> <object class="IBNSLayoutConstraint" id="106372279">
@@ -298,24 +473,56 @@
<float key="scoringTypeFloat">40</float> <float key="scoringTypeFloat">40</float>
<int key="contentType">3</int> <int key="contentType">3</int>
</object> </object>
<object class="IBNSLayoutConstraint" id="689515169"> <object class="IBNSLayoutConstraint" id="486966584">
<reference key="firstItem" ref="637214120"/> <reference key="firstItem" ref="1005"/>
<int key="firstAttribute">7</int> <int key="firstAttribute">4</int>
<int key="relation">0</int> <int key="relation">0</int>
<reference key="secondItem" ref="421904700"/> <reference key="secondItem" ref="60918609"/>
<int key="secondAttribute">7</int> <int key="secondAttribute">4</int>
<float key="multiplier">1</float> <float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant"> <object class="IBNSLayoutSymbolicConstant" key="constant">
<double key="value">0.0</double> <double key="value">20</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="1005"/>
<int key="scoringType">8</int>
<float key="scoringTypeFloat">29</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="528706521">
<reference key="firstItem" ref="1005"/>
<int key="firstAttribute">4</int>
<int key="relation">1</int>
<reference key="secondItem" ref="60918609"/>
<int key="secondAttribute">4</int>
<float key="multiplier">1</float>
<object class="IBNSLayoutSymbolicConstant" key="constant">
<double key="value">20</double>
</object> </object>
<float key="priority">1000</float> <float key="priority">1000</float>
<reference key="containingView" ref="1005"/> <reference key="containingView" ref="1005"/>
<int key="scoringType">9</int> <int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float> <float key="scoringTypeFloat">40</float>
<int key="contentType">5</int> <int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="968625034">
<reference key="firstItem" ref="60918609"/>
<int key="firstAttribute">3</int>
<int key="relation">0</int>
<reference key="secondItem" ref="637214120"/>
<int key="secondAttribute">4</int>
<float key="multiplier">1</float>
<object class="IBNSLayoutSymbolicConstant" key="constant">
<double key="value">8</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="1005"/>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">3</int>
</object> </object>
<object class="IBNSLayoutConstraint" id="989429017"> <object class="IBNSLayoutConstraint" id="989429017">
<reference key="firstItem" ref="637214120"/> <reference key="firstItem" ref="60918609"/>
<int key="firstAttribute">5</int> <int key="firstAttribute">5</int>
<int key="relation">0</int> <int key="relation">0</int>
<reference key="secondItem" ref="1005"/> <reference key="secondItem" ref="1005"/>
@@ -330,6 +537,38 @@
<float key="scoringTypeFloat">40</float> <float key="scoringTypeFloat">40</float>
<int key="contentType">3</int> <int key="contentType">3</int>
</object> </object>
<object class="IBNSLayoutConstraint" id="471470495">
<reference key="firstItem" ref="1005"/>
<int key="firstAttribute">6</int>
<int key="relation">0</int>
<reference key="secondItem" ref="60918609"/>
<int key="secondAttribute">6</int>
<float key="multiplier">1</float>
<object class="IBNSLayoutSymbolicConstant" key="constant">
<double key="value">20</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="1005"/>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="377766604">
<reference key="firstItem" ref="637214120"/>
<int key="firstAttribute">5</int>
<int key="relation">0</int>
<reference key="secondItem" ref="1005"/>
<int key="secondAttribute">5</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">30</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="1005"/>
<int key="scoringType">3</int>
<float key="scoringTypeFloat">9</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="180695068"> <object class="IBNSLayoutConstraint" id="180695068">
<reference key="firstItem" ref="637214120"/> <reference key="firstItem" ref="637214120"/>
<int key="firstAttribute">5</int> <int key="firstAttribute">5</int>
@@ -346,6 +585,7 @@
<float key="scoringTypeFloat">40</float> <float key="scoringTypeFloat">40</float>
<int key="contentType">3</int> <int key="contentType">3</int>
</object> </object>
<reference ref="60918609"/>
</array> </array>
<reference key="parent" ref="0"/> <reference key="parent" ref="0"/>
</object> </object>
@@ -408,11 +648,6 @@
<reference key="object" ref="180695068"/> <reference key="object" ref="180695068"/>
<reference key="parent" ref="1005"/> <reference key="parent" ref="1005"/>
</object> </object>
<object class="IBObjectRecord">
<int key="objectID">62</int>
<reference key="object" ref="989429017"/>
<reference key="parent" ref="1005"/>
</object>
<object class="IBObjectRecord"> <object class="IBObjectRecord">
<int key="objectID">66</int> <int key="objectID">66</int>
<reference key="object" ref="704304955"/> <reference key="object" ref="704304955"/>
@@ -428,41 +663,313 @@
<reference key="object" ref="850330857"/> <reference key="object" ref="850330857"/>
<reference key="parent" ref="1005"/> <reference key="parent" ref="1005"/>
</object> </object>
<object class="IBObjectRecord">
<int key="objectID">129</int>
<reference key="object" ref="689515169"/>
<reference key="parent" ref="1005"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">130</int>
<reference key="object" ref="215335887"/>
<reference key="parent" ref="1005"/>
</object>
<object class="IBObjectRecord"> <object class="IBObjectRecord">
<int key="objectID">131</int> <int key="objectID">131</int>
<reference key="object" ref="835508122"/> <reference key="object" ref="835508122"/>
<reference key="parent" ref="1005"/> <reference key="parent" ref="1005"/>
</object> </object>
<object class="IBObjectRecord">
<int key="objectID">465</int>
<reference key="object" ref="60918609"/>
<array class="NSMutableArray" key="children">
<reference ref="958810247"/>
<object class="IBNSLayoutConstraint" id="1026891195">
<reference key="firstItem" ref="60918609"/>
<int key="firstAttribute">6</int>
<int key="relation">1</int>
<reference key="secondItem" ref="222890410"/>
<int key="secondAttribute">6</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">10</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="60918609"/>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="631645975">
<reference key="firstItem" ref="222890410"/>
<int key="firstAttribute">10</int>
<int key="relation">0</int>
<reference key="secondItem" ref="958810247"/>
<int key="secondAttribute">10</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">0.0</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="60918609"/>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">2</int>
</object>
<object class="IBNSLayoutConstraint" id="313818908">
<reference key="firstItem" ref="222890410"/>
<int key="firstAttribute">5</int>
<int key="relation">0</int>
<reference key="secondItem" ref="958810247"/>
<int key="secondAttribute">6</int>
<float key="multiplier">1</float>
<object class="IBNSLayoutSymbolicConstant" key="constant">
<double key="value">8</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="60918609"/>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="864404219">
<reference key="firstItem" ref="326334884"/>
<int key="firstAttribute">3</int>
<int key="relation">0</int>
<reference key="secondItem" ref="958810247"/>
<int key="secondAttribute">4</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">14</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="60918609"/>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="983442674">
<reference key="firstItem" ref="60918609"/>
<int key="firstAttribute">4</int>
<int key="relation">0</int>
<reference key="secondItem" ref="326334884"/>
<int key="secondAttribute">4</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">11</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="60918609"/>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="572992125">
<reference key="firstItem" ref="326334884"/>
<int key="firstAttribute">5</int>
<int key="relation">0</int>
<reference key="secondItem" ref="958810247"/>
<int key="secondAttribute">5</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">0.0</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="60918609"/>
<int key="scoringType">6</int>
<float key="scoringTypeFloat">24</float>
<int key="contentType">2</int>
</object>
<object class="IBNSLayoutConstraint" id="817243601">
<reference key="firstItem" ref="958810247"/>
<int key="firstAttribute">5</int>
<int key="relation">0</int>
<reference key="secondItem" ref="60918609"/>
<int key="secondAttribute">5</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">11</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="60918609"/>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">3</int>
</object>
<reference ref="222890410"/>
<reference ref="326334884"/>
</array>
<reference key="parent" ref="1005"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">431</int>
<reference key="object" ref="958810247"/>
<array class="NSMutableArray" key="children">
<reference ref="664984457"/>
</array>
<reference key="parent" ref="60918609"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">432</int>
<reference key="object" ref="664984457"/>
<reference key="parent" ref="958810247"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">471</int>
<reference key="object" ref="817243601"/>
<reference key="parent" ref="60918609"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">473</int>
<reference key="object" ref="471470495"/>
<reference key="parent" ref="1005"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">475</int>
<reference key="object" ref="989429017"/>
<reference key="parent" ref="1005"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">419</int>
<reference key="object" ref="222890410"/>
<array class="NSMutableArray" key="children">
<object class="IBNSLayoutConstraint" id="943587685">
<reference key="firstItem" ref="222890410"/>
<int key="firstAttribute">7</int>
<int key="relation">0</int>
<nil key="secondItem"/>
<int key="secondAttribute">0</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">107</double>
</object>
<float key="priority">1000</float>
<reference key="containingView" ref="222890410"/>
<int key="scoringType">3</int>
<float key="scoringTypeFloat">9</float>
<int key="contentType">1</int>
</object>
<reference ref="934584997"/>
</array>
<reference key="parent" ref="60918609"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">458</int>
<reference key="object" ref="943587685"/>
<reference key="parent" ref="222890410"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">420</int>
<reference key="object" ref="934584997"/>
<array class="NSMutableArray" key="children">
<reference ref="437492746"/>
</array>
<reference key="parent" ref="222890410"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">421</int>
<reference key="object" ref="437492746"/>
<array class="NSMutableArray" key="children">
<reference ref="855032005"/>
<reference ref="678942088"/>
<reference ref="460415455"/>
<reference ref="303393620"/>
</array>
<reference key="parent" ref="934584997"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">429</int>
<reference key="object" ref="855032005"/>
<reference key="parent" ref="437492746"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">424</int>
<reference key="object" ref="678942088"/>
<reference key="parent" ref="437492746"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">423</int>
<reference key="object" ref="460415455"/>
<reference key="parent" ref="437492746"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">422</int>
<reference key="object" ref="303393620"/>
<reference key="parent" ref="437492746"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">478</int>
<reference key="object" ref="313818908"/>
<reference key="parent" ref="60918609"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">479</int>
<reference key="object" ref="631645975"/>
<reference key="parent" ref="60918609"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">447</int>
<reference key="object" ref="326334884"/>
<array class="NSMutableArray" key="children">
<reference ref="1025397159"/>
</array>
<reference key="parent" ref="60918609"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">448</int>
<reference key="object" ref="1025397159"/>
<reference key="parent" ref="326334884"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">481</int>
<reference key="object" ref="377766604"/>
<reference key="parent" ref="1005"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">482</int>
<reference key="object" ref="572992125"/>
<reference key="parent" ref="60918609"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">485</int>
<reference key="object" ref="983442674"/>
<reference key="parent" ref="60918609"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">486</int>
<reference key="object" ref="968625034"/>
<reference key="parent" ref="1005"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">487</int>
<reference key="object" ref="528706521"/>
<reference key="parent" ref="1005"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">489</int>
<reference key="object" ref="864404219"/>
<reference key="parent" ref="60918609"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">492</int>
<reference key="object" ref="486966584"/>
<reference key="parent" ref="1005"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">494</int>
<reference key="object" ref="1026891195"/>
<reference key="parent" ref="60918609"/>
</object>
</array> </array>
</object> </object>
<dictionary class="NSMutableDictionary" key="flattenedProperties"> <dictionary class="NSMutableDictionary" key="flattenedProperties">
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="-3.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="-3.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<array class="NSMutableArray" key="1.IBNSViewMetadataConstraints"> <array key="1.IBNSViewMetadataConstraints">
<reference ref="180695068"/> <reference ref="180695068"/>
<reference ref="377766604"/>
<reference ref="471470495"/>
<reference ref="989429017"/> <reference ref="989429017"/>
<reference ref="689515169"/> <reference ref="968625034"/>
<reference ref="528706521"/>
<reference ref="486966584"/>
<reference ref="704304955"/> <reference ref="704304955"/>
<reference ref="106372279"/> <reference ref="106372279"/>
<reference ref="850330857"/> <reference ref="850330857"/>
<reference ref="215335887"/>
<reference ref="835508122"/> <reference ref="835508122"/>
</array> </array>
<string key="1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="124.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="124.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="129.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="130.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="131.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="131.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="NO" key="14.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/> <boolean value="NO" key="14.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
<string key="14.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="14.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -471,8 +978,49 @@
<string key="17.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="17.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="18.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="18.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="19.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="19.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<array key="419.IBNSViewMetadataConstraints">
<reference ref="943587685"/>
</array>
<boolean value="NO" key="419.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
<string key="419.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="420.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="421.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="422.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="423.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="424.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="429.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="NO" key="431.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
<string key="431.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="432.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="NO" key="447.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
<string key="447.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="448.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="458.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<array key="465.IBNSViewMetadataConstraints">
<reference ref="817243601"/>
<reference ref="572992125"/>
<reference ref="983442674"/>
<reference ref="864404219"/>
<reference ref="313818908"/>
<reference ref="631645975"/>
<reference ref="1026891195"/>
</array>
<boolean value="NO" key="465.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
<string key="465.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="471.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="473.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="475.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="478.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="479.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="481.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="482.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="485.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="486.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="487.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="489.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="492.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="494.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="59.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="59.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="62.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="66.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="66.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="68.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="68.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="NO" key="8.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/> <boolean value="NO" key="8.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
@@ -483,13 +1031,21 @@
<nil key="activeLocalization"/> <nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/> <dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/> <nil key="sourceID"/>
<int key="maxID">418</int> <int key="maxID">494</int>
</object> </object>
<object class="IBClassDescriber" key="IBDocument.Classes"> <object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions"> <array class="NSMutableArray" key="referencedPartialClassDescriptions">
<object class="IBPartialClassDescription"> <object class="IBPartialClassDescription">
<string key="className">MPGeneralSettingsController</string> <string key="className">MPAbstractSettingsViewController</string>
<string key="superclassName">MPViewController</string> <string key="superclassName">MPViewController</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/MPAbstractSettingsViewController.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">MPGeneralSettingsController</string>
<string key="superclassName">MPAbstractSettingsViewController</string>
<dictionary class="NSMutableDictionary" key="outlets"> <dictionary class="NSMutableDictionary" key="outlets">
<string key="encodingPopup">NSPopUpButton</string> <string key="encodingPopup">NSPopUpButton</string>
<string key="imageView">NSImageView</string> <string key="imageView">NSImageView</string>
@@ -534,6 +1090,7 @@
<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes"> <dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
<string key="NSMenuCheckmark">{11, 11}</string> <string key="NSMenuCheckmark">{11, 11}</string>
<string key="NSMenuMixedState">{10, 3}</string> <string key="NSMenuMixedState">{10, 3}</string>
<string key="NSSwitch">{15, 15}</string>
</dictionary> </dictionary>
<bool key="IBDocument.UseAutolayout">YES</bool> <bool key="IBDocument.UseAutolayout">YES</bool>
</data> </data>

View File

@@ -0,0 +1,14 @@
//
// MPAbstractSettingsViewController.h
// MacPass
//
// Created by Michael Starke on 30.03.13.
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
//
#import "MPSettingsTab.h"
#import "MPViewController.h"
@interface MPAbstractSettingsViewController : MPViewController <MPSettingsTab>
@end

View File

@@ -0,0 +1,17 @@
//
// MPAbstractSettingsViewController.m
// MacPass
//
// Created by Michael Starke on 30.03.13.
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
//
#import "MPAbstractSettingsViewController.h"
@implementation MPAbstractSettingsViewController
+ (NSString *)identifier {
return @"NONAME";
}
@end

View File

@@ -12,18 +12,27 @@
#import "MPSettingsController.h" #import "MPSettingsController.h"
#import "MPDatabaseController.h" #import "MPDatabaseController.h"
#import "MPActionHelper.h" #import "MPActionHelper.h"
#import "NSString+MPPasswordCreation.h"
@interface MPAppDelegate () @interface MPAppDelegate ()
@property (retain) MPSettingsController *settingsController; @property (retain, nonatomic) MPSettingsController *settingsController;
@property (retain) MPMainWindowController *mainWindowController; @property (retain, nonatomic) MPMainWindowController *mainWindowController;
- (IBAction)showPreferences:(id)sender; - (IBAction)showPreferences:(id)sender;
@end @end
@implementation MPAppDelegate @implementation MPAppDelegate
+ (void)initialize {
NSURL *defaultURL = [[NSBundle mainBundle] URLForResource:@"Defaults" withExtension:@"plst"];
NSDictionary *defaultsDictionary = [NSDictionary dictionaryWithContentsOfURL:defaultURL];
[[NSUserDefaults standardUserDefaults] registerDefaults:defaultsDictionary];
}
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { - (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
//NSString *string = [NSString passwordFromString:@"BOJA" length:10];
self.mainWindowController = [[[MPMainWindowController alloc] init] autorelease]; self.mainWindowController = [[[MPMainWindowController alloc] init] autorelease];
[self.mainWindowController showWindow:[self.mainWindowController window]]; [self.mainWindowController showWindow:[self.mainWindowController window]];
@@ -49,7 +58,7 @@
if(self.settingsController == nil) { if(self.settingsController == nil) {
self.settingsController = [[[MPSettingsController alloc] init] autorelease]; self.settingsController = [[[MPSettingsController alloc] init] autorelease];
} }
[self.settingsController showWindow:_settingsController.window]; [self.settingsController showSettings];
} }
- (NSArray *)contextMenuItemsWithItems:(MPContextMenuItemsFlags)flags { - (NSArray *)contextMenuItemsWithItems:(MPContextMenuItemsFlags)flags {
@@ -117,4 +126,6 @@
return items; return items;
} }
@end @end

View File

@@ -7,10 +7,9 @@
// //
#import <Cocoa/Cocoa.h> #import <Cocoa/Cocoa.h>
#import "MPSettingsTabProtocoll.h" #import "MPAbstractSettingsViewController.h"
#import "MPViewController.h"
@interface MPGeneralSettingsController : MPViewController <MPSettingsTabProtocoll> @interface MPGeneralSettingsController : MPAbstractSettingsViewController <MPSettingsTab>
@property (assign) IBOutlet NSImageView *imageView; @property (assign) IBOutlet NSImageView *imageView;
@end @end

View File

@@ -21,10 +21,6 @@ NSString *const MPGeneralSetingsIdentifier = @"GeneralSettingsTab";
return MPGeneralSetingsIdentifier; return MPGeneralSetingsIdentifier;
} }
+ (NSImage *)image {
return [NSImage imageNamed:NSImageNamePreferencesGeneral];
}
- (id)init { - (id)init {
return [self initWithNibName:@"GeneralSettings" bundle:[NSBundle mainBundle]]; return [self initWithNibName:@"GeneralSettings" bundle:[NSBundle mainBundle]];
} }
@@ -34,6 +30,14 @@ NSString *const MPGeneralSetingsIdentifier = @"GeneralSettingsTab";
return self; return self;
} }
- (NSImage *)image {
return [NSImage imageNamed:NSImageNamePreferencesGeneral];
}
- (NSString *)label {
return NSLocalizedString(@"GENERAL_SETTINGS", @"General Settings Label");
}
- (void)didLoadView { - (void)didLoadView {
// setup connections // setup connections
NSMenu *encodingMenu = [[NSMenu allocWithZone:[NSMenu menuZone]] init]; NSMenu *encodingMenu = [[NSMenu allocWithZone:[NSMenu menuZone]] init];

View File

@@ -8,7 +8,11 @@
#import <Cocoa/Cocoa.h> #import <Cocoa/Cocoa.h>
APPKIT_EXTERN NSString const* kMPPasswordEnvodingSettingsKey; @protocol MPSettingsTab;
@interface MPSettingsController : NSWindowController <NSToolbarDelegate>
- (void)showSettings;
- (void)showSettingsTabWithIdentifier:(NSString *)identifier;
@interface MPSettingsController : NSWindowController
@end @end

View File

@@ -9,28 +9,148 @@
#import "MPSettingsController.h" #import "MPSettingsController.h"
#import "MPGeneralSettingsController.h" #import "MPGeneralSettingsController.h"
NSString const* kMPPasswordEnvodingSettingsKey = @"PasswordEncoding";
@interface MPSettingsController () @interface MPSettingsController ()
@property (retain) MPGeneralSettingsController *generalController;
@property (retain, nonatomic) NSToolbar *toolbar;
@property (retain, nonatomic) NSMutableDictionary *settingsController;
@property (retain, nonatomic) NSMutableDictionary *toolbarItems;
- (void)_addSettingsTab:(id<MPSettingsTab>)tabController;
- (void)_setupDefaultSettingsTabs;
- (void)_showSettingsTab:(id)sender;
@end @end
@implementation MPSettingsController @implementation MPSettingsController
-(id)init { -(id)init {
self = [super initWithWindowNibName:@"SettingsWindow"]; self = [super initWithWindowNibName:@"SettingsWindow"];
if(self) {
_toolbar = [[NSToolbar alloc] initWithIdentifier:@"SettingsToolBar"];
[self.toolbar setAllowsUserCustomization:NO];
[self.toolbar setDisplayMode:NSToolbarDisplayModeIconAndLabel];
_settingsController = [[NSMutableDictionary alloc] initWithCapacity:5];
_toolbarItems = [[NSMutableDictionary alloc] initWithCapacity:5];
[self _setupDefaultSettingsTabs];
[self.toolbar setDelegate:self];
[[self window] setToolbar:self.toolbar];
}
return self; return self;
} }
- (void)dealloc { - (void)dealloc {
self.generalController = nil; [_settingsController release];
[_toolbar release];
[_toolbarItems release];
[super dealloc]; [super dealloc];
} }
- (void)windowDidLoad { - (void)showSettings {
_generalController = [[MPGeneralSettingsController alloc] init]; if([self.settingsController count] > 0) {
[_generalController loadView]; id<MPSettingsTab> tab = [self.settingsController allValues][0];
[[self window] setContentView:[_generalController view]]; NSString *identifier = [[tab class] identifier];
[self showSettingsTabWithIdentifier:identifier];
}
}
- (void)showSettingsTabWithIdentifier:(NSString *)identifier {
if(nil == identifier) {
@throw [NSException exceptionWithName:NSInvalidArgumentException reason:@"Identifier cannot be nil" userInfo:nil];
}
id<MPSettingsTab> tab = self.settingsController[identifier];
if(tab == nil){
NSLog(@"Warning. Unknow settingscontroller for identifier: %@. Did you miss to add the controller?", identifier);
return;
}
NSViewController *tabViewController = (NSViewController *)tab;
[self.toolbar setSelectedItemIdentifier:identifier];
NSRect newRect = [[self window] frameRectForContentRect:[tabViewController.view frame]];
newRect.origin = [[self window] frame].origin;
newRect.origin.y += [[self window] frame].size.height - newRect.size.height;
[[self window] setFrame:newRect display:YES animate:YES];
[[self window] setContentView:tabViewController.view];
[[self window] makeKeyAndOrderFront:[self window]];
}
- (void)_addSettingsTab:(id<MPSettingsTab>)tabController {
if(NO == [tabController conformsToProtocol:@protocol(MPSettingsTab)]) {
NSException *protocollException = [NSException exceptionWithName:NSInvalidArgumentException
reason:@"Controller must conform to MPSettingsTabProtrocoll"
userInfo:nil];
@throw protocollException;
}
if(NO == [tabController isKindOfClass:[NSViewController class]]) {
NSException *controllerException = [NSException exceptionWithName:NSInvalidArgumentException
reason:@"Controller is no NSViewController"
userInfo:nil];
@throw controllerException;
}
NSString *identifier = [[tabController class] identifier];
if(nil != self.settingsController[identifier]) {
NSLog(@"Warning: Settingscontroller with identifer %@ already present!", identifier);
}
else {
self.settingsController[identifier] = tabController;
}
}
- (void)_setupDefaultSettingsTabs {
MPGeneralSettingsController *generalSettingsController = [[MPGeneralSettingsController alloc] init];
[self _addSettingsTab:generalSettingsController];
[generalSettingsController release];
}
- (void)_showSettingsTab:(id)sender {
if([sender respondsToSelector:@selector(identifier)]) {
NSString *identfier = [sender identifier];
[self showSettingsTabWithIdentifier:identfier];
}
}
#pragma mark NSToolbarDelegate
- (NSArray *)toolbarAllowedItemIdentifiers:(NSToolbar *)toolbar {
return [self.settingsController allKeys];
}
- (NSArray *)toolbarDefaultItemIdentifiers:(NSToolbar *)toolbar {
return [self.settingsController allKeys];
}
- (NSArray *)toolbarSelectableItemIdentifiers:(NSToolbar *)toolbar {
return [self.settingsController allKeys];
}
- (NSToolbarItem *)toolbar:(NSToolbar *)toolbar itemForItemIdentifier:(NSString *)itemIdentifier willBeInsertedIntoToolbar:(BOOL)flag {
NSToolbarItem *item = self.toolbarItems[itemIdentifier];
if(nil == item) {
item = [[NSToolbarItem alloc] initWithItemIdentifier:itemIdentifier];
/*
Setup the item to use the controllers label if one is present
and supports the appropriate @optional protocoll messages
*/
id<MPSettingsTab> tab = self.settingsController[itemIdentifier];
if([tab respondsToSelector:@selector(label)]) {
[item setLabel:[tab label]];
}
else {
[item setLabel:itemIdentifier];
}
if([tab respondsToSelector:@selector(image)]) {
[item setImage:[tab image]];
}
else {
[item setImage:[NSImage imageNamed:NSImageNameCaution ]];
}
[item setAction:@selector(_showSettingsTab:)];
self.toolbarItems[itemIdentifier] = item;
}
return item;
} }
@end @end

13
MacPass/MPSettingsKeys.h Normal file
View File

@@ -0,0 +1,13 @@
//
// MPSettingsKeys.h
// MacPass
//
// Created by Michael Starke on 30.03.13.
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
//
#import <Foundation/Foundation.h>
extern NSString *const kMPSettingsKeyClearClipboardIntervall;
extern NSString *const kMPSettingsKeyClearClipboardOnQuit;
extern NSString *const kMPSettingsKeyPasswordEncoding;

13
MacPass/MPSettingsKeys.m Normal file
View File

@@ -0,0 +1,13 @@
//
// MPSettingsKeys.m
// MacPass
//
// Created by Michael Starke on 30.03.13.
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
//
#import "MPSettingsKeys.h"
NSString *const kMPSettingsKeyClearClipboardIntervall = @"ClearClipboardIntervall";
NSString *const kMPSettingsKeyClearClipboardOnQuit = @"ClearClipboardOnQuit";
NSString *const kMPSettingsKeyPasswordEncoding = @"PasswordEncoding";

View File

@@ -8,10 +8,17 @@
#import <Foundation/Foundation.h> #import <Foundation/Foundation.h>
@protocol MPSettingsTabProtocoll <NSObject> /*
Protrocoll to be implemented by ViewControllers that can be added to
the settings windows. Tabs are orded as the controllers are included.
*/
@protocol MPSettingsTab <NSObject>
@required @required
+ (NSString *)identifier; + (NSString *)identifier;
+ (NSImage *)image;
@optional
- (NSString *)label;
- (NSImage *)image;
@end @end

View File

@@ -21,7 +21,7 @@
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>????</string> <string>????</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>599</string> <string>5EA</string>
<key>LSMinimumSystemVersion</key> <key>LSMinimumSystemVersion</key>
<string>${MACOSX_DEPLOYMENT_TARGET}</string> <string>${MACOSX_DEPLOYMENT_TARGET}</string>
<key>NSHumanReadableCopyright</key> <key>NSHumanReadableCopyright</key>

View File

@@ -0,0 +1,15 @@
//
// NSData+MPRandomBytes.h
// MacPass
//
// Created by Michael Starke on 30.03.13.
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface NSData (MPRandomBytes)
+ (NSData *)dataWithRandomBytes:(NSUInteger)lenght;
@end

View File

@@ -0,0 +1,20 @@
//
// NSData+MPRandomBytes.m
// MacPass
//
// Created by Michael Starke on 30.03.13.
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
//
#import "NSData+MPRandomBytes.h"
#import <Security/SecRandom.h>
@implementation NSData (MPRandomBytes)
+ (NSData *)dataWithRandomBytes:(NSUInteger)length {
unsigned char *bytes = malloc(sizeof(unsigned char) * length);
SecRandomCopyBytes(kSecRandomDefault, length, bytes);
return [NSData dataWithBytesNoCopy:bytes length:length freeWhenDone:YES];
}
@end

View File

@@ -0,0 +1,23 @@
//
// NSString+MPPasswordAnalysis.h
// MacPass
//
// Created by Michael Starke on 29.03.13.
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
//
#import <Foundation/Foundation.h>
typedef enum {
MPPasswordWeak,
MPPasswordOK,
MPPasswordGood,
MPPasswordStrong,
MPPasswordExcelent,
} MPPasswordStrength;
@interface NSString (MPPasswordAnalysis)
- (MPPasswordStrength)passwordStrenght;
@end

View File

@@ -0,0 +1,17 @@
//
// NSString+MPPasswordAnalysis.m
// MacPass
//
// Created by Michael Starke on 29.03.13.
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
//
#import "NSString+MPPasswordAnalysis.h"
@implementation NSString (MPPasswordAnalysis)
- (MPPasswordStrength)passwordStrenght {
return MPPasswordOK;
}
@end

View File

@@ -0,0 +1,45 @@
//
// NSString+MPPasswordCreation.h
// MacPass
//
// Created by Michael Starke on 29.03.13.
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
//
#import <Foundation/Foundation.h>
typedef enum {
MPPasswordCharactersUpperCase = (1<<0), // NSCharacterset lowerCaseCharacterSet
MPPasswordCharactersLowerCase = (1<<1), // NSCharacterSet upperCaseCharacterSet
MPPasswordCharactersNumbers = (1<<2), // NSCharacterSet numberCharacterSet
MPPasswordCharactersSymbols = (1<<3) // NSCharacterSet symbolCharacterSet
} MPPasswordCharacterFlags;
@interface NSString (MPPasswordCreation)
/*
Generates a new password with the allowed charaters an the requests lenght
@param array with allowed NSChractersSets for creation
@param lenght lenght of the password to create
*/
+ (NSString *)passwordWithCharactersets:(MPPasswordCharacterFlags)allowedCharacters length:(NSUInteger)theLength;
/*
Generates a new password with the given length and allowed characters
@param Source string of allowed characters
@param lenght Lenght of the password to create
@return Password
*/
+ (NSString *)passwordFromString:(NSString *)source length:(NSUInteger)length;
/*
Creates a password containing only the characters in the string
@param Lenght of the password
*/
- (NSString *)passwordWithLength:(NSUInteger)length;
/*
Returns a random Character from the String
*/
- (NSString *)randomCharacter;
@end

View File

@@ -0,0 +1,65 @@
//
// NSString+MPPasswordCreation.m
// MacPass
//
// Created by Michael Starke on 29.03.13.
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
//
#import "NSString+MPPasswordCreation.h"
#import "NSData+MPRandomBytes.h"
@implementation NSString (MPPasswordCreationTools)
+ (NSDictionary *)_createPasswordSet:(MPPasswordCharacterFlags)flags {
return [NSDictionary dictionary];
}
- (NSDictionary *)_createPasswordSet:(MPPasswordCharacterFlags)flags {
return [NSString _createPasswordSet:flags];
}
@end
@implementation NSString (MPPasswordCreation)
+ (NSString *)passwordFromString:(NSString *)source length:(NSUInteger)length {
NSMutableString *password = [[NSMutableString alloc] initWithCapacity:length];
while([password length] < length) {
NSData *randomData = [NSData dataWithRandomBytes:2];
NSNumber *number = [NSNumber numberWithUnsignedChar:(unsigned char)[randomData bytes]];
NSLog(@"Random number:%@", number);
[password appendString:@"U"];
}
return [password autorelease];
}
+ (NSString *)passwordWithCharactersets:(MPPasswordCharacterFlags)allowedCharacters length:(NSUInteger)length {
NSDictionary *characterSet = [self _createPasswordSet:allowedCharacters];
NSMutableString *password = [NSMutableString stringWithCapacity:length];
while([password length] < length) {
// decide what charactersupset to use
// gather random character of selected set
NSString *characters = characterSet[@(MPPasswordCharactersLowerCase)];
[password appendString:[characters randomCharacter]];
}
return password;
}
- (NSString *)passwordWithLength:(NSUInteger)length {
return [NSString passwordFromString:self length:length];
}
- (NSString *)randomCharacter {
NSUInteger randomByteSize = floor(log2([self length]));
NSData *randomData = [NSData dataWithRandomBytes:randomByteSize];
NSNumber *number = [NSNumber numberWithUnsignedChar:(unsigned char)[randomData bytes]];
NSUInteger randomIndex = [number integerValue];
if(randomIndex > 0 || randomIndex >= [self length]) {
return nil;
}
return [self substringFromIndex:[number integerValue]];
}
@end

View File

@@ -2,10 +2,10 @@
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00"> <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
<data> <data>
<int key="IBDocument.SystemTarget">1080</int> <int key="IBDocument.SystemTarget">1080</int>
<string key="IBDocument.SystemVersion">12C60</string> <string key="IBDocument.SystemVersion">12D78</string>
<string key="IBDocument.InterfaceBuilderVersion">3084</string> <string key="IBDocument.InterfaceBuilderVersion">3084</string>
<string key="IBDocument.AppKitVersion">1187.34</string> <string key="IBDocument.AppKitVersion">1187.37</string>
<string key="IBDocument.HIToolboxVersion">625.00</string> <string key="IBDocument.HIToolboxVersion">626.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions"> <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string> <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="NS.object.0">3084</string> <string key="NS.object.0">3084</string>
@@ -33,9 +33,9 @@
<string key="NSClassName">NSApplication</string> <string key="NSClassName">NSApplication</string>
</object> </object>
<object class="NSWindowTemplate" id="1005"> <object class="NSWindowTemplate" id="1005">
<int key="NSWindowStyleMask">15</int> <int key="NSWindowStyleMask">7</int>
<int key="NSWindowBacking">2</int> <int key="NSWindowBacking">2</int>
<string key="NSWindowRect">{{196, 240}, {473, 263}}</string> <string key="NSWindowRect">{{196, 240}, {223, 156}}</string>
<int key="NSWTFlags">544735232</int> <int key="NSWTFlags">544735232</int>
<string key="NSWindowTitle">Window</string> <string key="NSWindowTitle">Window</string>
<string key="NSWindowClass">NSWindow</string> <string key="NSWindowClass">NSWindow</string>
@@ -45,11 +45,11 @@
<reference key="NSNextResponder"/> <reference key="NSNextResponder"/>
<int key="NSvFlags">256</int> <int key="NSvFlags">256</int>
<array class="NSMutableArray" key="NSSubviews"/> <array class="NSMutableArray" key="NSSubviews"/>
<string key="NSFrameSize">{473, 263}</string> <string key="NSFrameSize">{223, 156}</string>
<reference key="NSSuperview"/> <reference key="NSSuperview"/>
<reference key="NSWindow"/> <reference key="NSWindow"/>
</object> </object>
<string key="NSScreenRect">{{0, 0}, {2560, 1418}}</string> <string key="NSScreenRect">{{0, 0}, {1680, 1028}}</string>
<string key="NSMaxSize">{10000000000000, 10000000000000}</string> <string key="NSMaxSize">{10000000000000, 10000000000000}</string>
<bool key="NSWindowIsRestorable">YES</bool> <bool key="NSWindowIsRestorable">YES</bool>
</object> </object>

Binary file not shown.