NSOutlineView change to use no Autolayout since it fucked up resizing

This commit is contained in:
michael starke
2013-02-19 19:59:18 +01:00
parent 1f05b0eaba
commit 7ea34a2300
21 changed files with 466 additions and 495 deletions

View File

@@ -9,6 +9,7 @@
/* Begin PBXBuildFile section */
4C25D58516CF0F8800F6806C /* WelcomeView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C25D58416CF0F8800F6806C /* WelcomeView.xib */; };
4C25D58716CF0FAA00F6806C /* EntryView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C25D58616CF0FAA00F6806C /* EntryView.xib */; };
4C2C4C2C16D3BE3700D49295 /* KdbGroup+MPAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C2C4C2B16D3BE3700D49295 /* KdbGroup+MPAdditions.m */; };
4C2E381D16D11FF900037A9D /* 03_ServerTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C2E381A16D11FF900037A9D /* 03_ServerTemplate.pdf */; };
4C2E381E16D11FF900037A9D /* 04_KlipperTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C2E381B16D11FF900037A9D /* 04_KlipperTemplate.pdf */; };
4C2E381F16D11FF900037A9D /* 05_LanguagesTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C2E381C16D11FF900037A9D /* 05_LanguagesTemplate.pdf */; };
@@ -62,7 +63,6 @@
4C77E36715B84A240093A587 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C77E36615B84A240093A587 /* Cocoa.framework */; };
4C77E37115B84A240093A587 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 4C77E36F15B84A240093A587 /* InfoPlist.strings */; };
4C77E37315B84A240093A587 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C77E37215B84A240093A587 /* main.m */; };
4C77E37715B84A240093A587 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 4C77E37515B84A240093A587 /* Credits.rtf */; };
4C77E37A15B84A240093A587 /* MPAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C77E37915B84A240093A587 /* MPAppDelegate.m */; };
4C77E37D15B84A240093A587 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C77E37B15B84A240093A587 /* MainMenu.xib */; };
4C83814215BF4677001AE468 /* MPMainWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C83814115BF4677001AE468 /* MPMainWindowController.m */; };
@@ -78,6 +78,7 @@
4CAD747F15B887FD00104512 /* DDXMLNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CAD746115B887FD00104512 /* DDXMLNode.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
4CAD748C15B889B700104512 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CAD748B15B889B700104512 /* Security.framework */; };
4CAD748E15B88AC100104512 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CAD748D15B88AC100104512 /* libz.dylib */; };
4CB9339916D3A0DD00A13B5D /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 4CB9339716D3A0DD00A13B5D /* Credits.rtf */; };
4CBA981815BA0DB600721965 /* MPDatabaseDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CBA981715BA0DB600721965 /* MPDatabaseDocument.m */; };
4CC6259115BA1C99002F5B11 /* MPOutlineViewDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CC6259015BA1C99002F5B11 /* MPOutlineViewDelegate.m */; };
4CD78ABC16D155FF00768A1D /* 07_NotepadTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4CD78AB716D155FF00768A1D /* 07_NotepadTemplate.pdf */; };
@@ -92,6 +93,8 @@
/* Begin PBXFileReference section */
4C25D58416CF0F8800F6806C /* WelcomeView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = WelcomeView.xib; sourceTree = "<group>"; };
4C25D58616CF0FAA00F6806C /* EntryView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = EntryView.xib; sourceTree = "<group>"; };
4C2C4C2A16D3BE3700D49295 /* KdbGroup+MPAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "KdbGroup+MPAdditions.h"; sourceTree = "<group>"; };
4C2C4C2B16D3BE3700D49295 /* KdbGroup+MPAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "KdbGroup+MPAdditions.m"; sourceTree = "<group>"; };
4C2E381A16D11FF900037A9D /* 03_ServerTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 03_ServerTemplate.pdf; sourceTree = "<group>"; };
4C2E381B16D11FF900037A9D /* 04_KlipperTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 04_KlipperTemplate.pdf; sourceTree = "<group>"; };
4C2E381C16D11FF900037A9D /* 05_LanguagesTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 05_LanguagesTemplate.pdf; sourceTree = "<group>"; };
@@ -196,7 +199,6 @@
4C77E37015B84A240093A587 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
4C77E37215B84A240093A587 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
4C77E37415B84A240093A587 /* MacPass-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "MacPass-Prefix.pch"; sourceTree = "<group>"; };
4C77E37615B84A240093A587 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = en; path = en.lproj/Credits.rtf; sourceTree = "<group>"; };
4C77E37815B84A240093A587 /* MPAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPAppDelegate.h; sourceTree = "<group>"; };
4C77E37915B84A240093A587 /* MPAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MPAppDelegate.m; sourceTree = "<group>"; };
4C77E37C15B84A240093A587 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainMenu.xib; sourceTree = "<group>"; };
@@ -225,6 +227,7 @@
4CAD746315B887FD00104512 /* DDXMLPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDXMLPrivate.h; sourceTree = "<group>"; };
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; };
4CB9339816D3A0DD00A13B5D /* en */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = en; path = en.lproj/Credits.rtf; 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>"; };
4CC6258F15BA1C99002F5B11 /* MPOutlineViewDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPOutlineViewDelegate.h; sourceTree = "<group>"; };
@@ -268,6 +271,15 @@
name = Views;
sourceTree = "<group>";
};
4C2C4C2516D3BCEA00D49295 /* KeePassLibAdditions */ = {
isa = PBXGroup;
children = (
4C2C4C2A16D3BE3700D49295 /* KdbGroup+MPAdditions.h */,
4C2C4C2B16D3BE3700D49295 /* KdbGroup+MPAdditions.m */,
);
name = KeePassLibAdditions;
sourceTree = "<group>";
};
4C2E382016D141F700037A9D /* Helper */ = {
isa = PBXGroup;
children = (
@@ -460,6 +472,7 @@
4C77E36C15B84A240093A587 /* MacPass */ = {
isa = PBXGroup;
children = (
4C2C4C2516D3BCEA00D49295 /* KeePassLibAdditions */,
4C2E382016D141F700037A9D /* Helper */,
4C586F9C16D07ABD00E7DB57 /* Icons */,
4CA0B30F15BCB85D00654E32 /* General */,
@@ -476,11 +489,11 @@
4C77E36D15B84A240093A587 /* Supporting Files */ = {
isa = PBXGroup;
children = (
4CB9339716D3A0DD00A13B5D /* Credits.rtf */,
4C77E36E15B84A240093A587 /* MacPass-Info.plist */,
4C77E36F15B84A240093A587 /* InfoPlist.strings */,
4C77E37215B84A240093A587 /* main.m */,
4C77E37415B84A240093A587 /* MacPass-Prefix.pch */,
4C77E37515B84A240093A587 /* Credits.rtf */,
);
name = "Supporting Files";
sourceTree = "<group>";
@@ -583,6 +596,7 @@
buildPhases = (
4C77E35E15B84A240093A587 /* Sources */,
4C77E35F15B84A240093A587 /* Frameworks */,
4CB9339616D3A04100A13B5D /* ShellScript */,
4C77E36015B84A240093A587 /* Resources */,
);
buildRules = (
@@ -629,7 +643,6 @@
buildActionMask = 2147483647;
files = (
4C77E37115B84A240093A587 /* InfoPlist.strings in Resources */,
4C77E37715B84A240093A587 /* Credits.rtf in Resources */,
4C77E37D15B84A240093A587 /* MainMenu.xib in Resources */,
4CA0B2ED15BCADAC00654E32 /* SettingsWindow.xib in Resources */,
4CA0B2F015BCADC800654E32 /* GeneralSettings.xib in Resources */,
@@ -649,11 +662,28 @@
4CD78ABF16D155FF00768A1D /* 10_ContactTemplate.pdf in Resources */,
4CD78AC016D155FF00768A1D /* 11_CameraTemplate.pdf in Resources */,
4C61EA0516D2FFE200AC519E /* OutlineView.xib in Resources */,
4CB9339916D3A0DD00A13B5D /* Credits.rtf in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
4CB9339616D3A04100A13B5D /* ShellScript */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "#!/bin/bash\nbuildNumber=$(/usr/libexec/PlistBuddy -c \"Print CFBundleVersion\" \"$INFOPLIST_FILE\")\nbuildNumber=$((0x$buildNumber))\nbuildNumber=$(($buildNumber + 1))\nbuildNumber=$(printf \"%X\" $buildNumber)\n/usr/libexec/PlistBuddy -c \"Set :CFBundleVersion $buildNumber\" \"$INFOPLIST_FILE\"";
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
4C77E35E15B84A240093A587 /* Sources */ = {
isa = PBXSourcesBuildPhase;
@@ -715,6 +745,7 @@
4C3BD51516D276F800389F1F /* MPToolbarDelegate.m in Sources */,
4CAC6F7816D2B54800D79D5E /* MPMainWindowSplitViewDelegate.m in Sources */,
4C61EA0316D2FD0800AC519E /* MPOutlineViewController.m in Sources */,
4C2C4C2C16D3BE3700D49295 /* KdbGroup+MPAdditions.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -729,14 +760,6 @@
name = InfoPlist.strings;
sourceTree = "<group>";
};
4C77E37515B84A240093A587 /* Credits.rtf */ = {
isa = PBXVariantGroup;
children = (
4C77E37615B84A240093A587 /* en */,
);
name = Credits.rtf;
sourceTree = "<group>";
};
4C77E37B15B84A240093A587 /* MainMenu.xib */ = {
isa = PBXVariantGroup;
children = (
@@ -745,6 +768,14 @@
name = MainMenu.xib;
sourceTree = "<group>";
};
4CB9339716D3A0DD00A13B5D /* Credits.rtf */ = {
isa = PBXVariantGroup;
children = (
4CB9339816D3A0DD00A13B5D /* en */,
);
name = Credits.rtf;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */

View File

@@ -50,7 +50,7 @@
<string key="NSFrameSize">{703, 547}</string>
<reference key="NSSuperview" ref="262664416"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="737075944"/>
<reference key="NSNextKeyView" ref="1037276411"/>
<string key="NSReuseIdentifierKey">_NS:13</string>
<bool key="NSEnabled">YES</bool>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
@@ -214,6 +214,7 @@
<string key="NSFrame">{{1, 119}, {223, 15}}</string>
<reference key="NSSuperview" ref="613995671"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<string key="NSReuseIdentifierKey">_NS:60</string>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
<int key="NSsFlags">1</int>
@@ -240,7 +241,7 @@
<string key="NSFrameSize">{703, 564}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="262664416"/>
<reference key="NSNextKeyView" ref="737075944"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<int key="NSsFlags">133680</int>
<reference key="NSVScroller" ref="1037276411"/>
@@ -371,7 +372,7 @@
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">85</int>
<int key="maxID">110</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">

View File

@@ -1,24 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
<data>
<int key="IBDocument.SystemTarget">1070</int>
<string key="IBDocument.SystemVersion">11E53</string>
<string key="IBDocument.InterfaceBuilderVersion">2182</string>
<string key="IBDocument.AppKitVersion">1138.47</string>
<string key="IBDocument.HIToolboxVersion">569.00</string>
<int key="IBDocument.SystemTarget">1080</int>
<string key="IBDocument.SystemVersion">12C60</string>
<string key="IBDocument.InterfaceBuilderVersion">3084</string>
<string key="IBDocument.AppKitVersion">1187.34</string>
<string key="IBDocument.HIToolboxVersion">625.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="NS.object.0">2182</string>
<string key="NS.object.0">3084</string>
</object>
<array key="IBDocument.IntegratedClassDependencies">
<string>NSTextField</string>
<string>IBNSLayoutConstraint</string>
<string>NSCustomObject</string>
<string>NSCustomView</string>
<string>NSMenu</string>
<string>NSMenuItem</string>
<string>NSPopUpButton</string>
<string>NSCustomView</string>
<string>NSPopUpButtonCell</string>
<string>IBNSLayoutConstraint</string>
<string>NSTextField</string>
<string>NSTextFieldCell</string>
</array>
<array key="IBDocument.PluginDependencies">
@@ -48,12 +48,11 @@
<string key="NSFrame">{{146, 292}, {127, 26}}</string>
<reference key="NSSuperview" ref="1005"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<string key="NSAntiCompressionPriority">{750, 751}</string>
<bool key="NSEnabled">YES</bool>
<object class="NSPopUpButtonCell" key="NSCell" id="161510884">
<int key="NSCellFlags">-2076049856</int>
<int key="NSCellFlags">-2076180416</int>
<int key="NSCellFlags2">2048</int>
<object class="NSFont" key="NSSupport" id="874940307">
<string key="NSName">LucidaGrande</string>
@@ -62,7 +61,7 @@
</object>
<string key="NSCellIdentifier">_NS:9</string>
<reference key="NSControlView" ref="421904700"/>
<int key="NSButtonFlags">109199615</int>
<int key="NSButtonFlags">109199360</int>
<int key="NSButtonFlags2">65</int>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
@@ -121,6 +120,7 @@
<bool key="NSAltersState">YES</bool>
<int key="NSArrowPosition">2</int>
</object>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
<object class="NSTextField" id="637214120">
<reference key="NSNextResponder" ref="1005"/>
@@ -132,7 +132,7 @@
<string key="NSReuseIdentifierKey">_NS:1505</string>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="1050281039">
<int key="NSCellFlags">68288064</int>
<int key="NSCellFlags">68157504</int>
<int key="NSCellFlags2">71304192</int>
<string key="NSContents">Password Encoding</string>
<reference key="NSSupport" ref="874940307"/>
@@ -157,6 +157,7 @@
</object>
</object>
</object>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
</array>
<string key="NSFrameSize">{290, 336}</string>
@@ -217,101 +218,21 @@
<array class="NSMutableArray" key="children">
<reference ref="421904700"/>
<reference ref="637214120"/>
<object class="IBNSLayoutConstraint" id="180695068">
<reference key="firstItem" ref="637214120"/>
<int key="firstAttribute">5</int>
<int key="relation">1</int>
<reference key="secondItem" ref="1005"/>
<int key="secondAttribute">5</int>
<float key="multiplier">1</float>
<object class="IBNSLayoutSymbolicConstant" key="constant">
<double key="value">20</double>
</object>
<float key="priority">1000</float>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">3</int>
<reference key="containingView" ref="1005"/>
</object>
<object class="IBNSLayoutConstraint" id="989429017">
<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="IBNSLayoutSymbolicConstant" key="constant">
<double key="value">20</double>
</object>
<float key="priority">1000</float>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">3</int>
<reference key="containingView" ref="1005"/>
</object>
<object class="IBNSLayoutConstraint" id="704304955">
<object class="IBNSLayoutConstraint" id="835508122">
<reference key="firstItem" ref="421904700"/>
<int key="firstAttribute">5</int>
<int key="firstAttribute">11</int>
<int key="relation">0</int>
<reference key="secondItem" ref="637214120"/>
<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>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">3</int>
<reference key="containingView" ref="1005"/>
</object>
<object class="IBNSLayoutConstraint" id="106372279">
<reference key="firstItem" ref="1005"/>
<int key="firstAttribute">6</int>
<int key="relation">1</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>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">3</int>
<reference key="containingView" ref="1005"/>
</object>
<object class="IBNSLayoutConstraint" id="850330857">
<reference key="firstItem" ref="421904700"/>
<int key="firstAttribute">3</int>
<int key="relation">0</int>
<reference key="secondItem" ref="1005"/>
<int key="secondAttribute">3</int>
<float key="multiplier">1</float>
<object class="IBNSLayoutSymbolicConstant" key="constant">
<double key="value">20</double>
</object>
<float key="priority">1000</float>
<int key="scoringType">8</int>
<float key="scoringTypeFloat">29</float>
<int key="contentType">3</int>
<reference key="containingView" ref="1005"/>
</object>
<object class="IBNSLayoutConstraint" id="689515169">
<reference key="firstItem" ref="637214120"/>
<int key="firstAttribute">7</int>
<int key="relation">0</int>
<reference key="secondItem" ref="421904700"/>
<int key="secondAttribute">7</int>
<int key="secondAttribute">11</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">0.0</double>
</object>
<float key="priority">1000</float>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">5</int>
<reference key="containingView" ref="1005"/>
<int key="scoringType">6</int>
<float key="scoringTypeFloat">24</float>
<int key="contentType">2</int>
</object>
<object class="IBNSLayoutConstraint" id="215335887">
<reference key="firstItem" ref="1005"/>
@@ -324,26 +245,106 @@
<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>
<reference key="containingView" ref="1005"/>
</object>
<object class="IBNSLayoutConstraint" id="835508122">
<object class="IBNSLayoutConstraint" id="850330857">
<reference key="firstItem" ref="421904700"/>
<int key="firstAttribute">11</int>
<int key="firstAttribute">3</int>
<int key="relation">0</int>
<reference key="secondItem" ref="1005"/>
<int key="secondAttribute">3</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="106372279">
<reference key="firstItem" ref="1005"/>
<int key="firstAttribute">6</int>
<int key="relation">1</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">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="704304955">
<reference key="firstItem" ref="421904700"/>
<int key="firstAttribute">5</int>
<int key="relation">0</int>
<reference key="secondItem" ref="637214120"/>
<int key="secondAttribute">11</int>
<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="1005"/>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="689515169">
<reference key="firstItem" ref="637214120"/>
<int key="firstAttribute">7</int>
<int key="relation">0</int>
<reference key="secondItem" ref="421904700"/>
<int key="secondAttribute">7</int>
<float key="multiplier">1</float>
<object class="IBLayoutConstant" key="constant">
<double key="value">0.0</double>
</object>
<float key="priority">1000</float>
<int key="scoringType">6</int>
<float key="scoringTypeFloat">24</float>
<int key="contentType">2</int>
<reference key="containingView" ref="1005"/>
<int key="scoringType">9</int>
<float key="scoringTypeFloat">40</float>
<int key="contentType">5</int>
</object>
<object class="IBNSLayoutConstraint" id="989429017">
<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="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="180695068">
<reference key="firstItem" ref="637214120"/>
<int key="firstAttribute">5</int>
<int key="relation">1</int>
<reference key="secondItem" ref="1005"/>
<int key="secondAttribute">5</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>
</array>
<reference key="parent" ref="0"/>
@@ -451,10 +452,10 @@
<array class="NSMutableArray" key="1.IBNSViewMetadataConstraints">
<reference ref="180695068"/>
<reference ref="989429017"/>
<reference ref="689515169"/>
<reference ref="704304955"/>
<reference ref="106372279"/>
<reference ref="850330857"/>
<reference ref="689515169"/>
<reference ref="215335887"/>
<reference ref="835508122"/>
</array>
@@ -482,7 +483,7 @@
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">131</int>
<int key="maxID">142</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">

View File

@@ -0,0 +1,18 @@
//
// KdbGroup+MPAdditions.h
// MacPass
//
// Created by michael starke on 19.02.13.
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
//
#import "KdbLib.h"
@interface KdbGroup (MPAdditions)
+ (KdbGroup *)group;
+ (KdbGroup *)groupWithName:(NSString *)name;
+ (void)refreshModificationTime;
@end

View File

@@ -0,0 +1,24 @@
//
// KdbGroup+MPAdditions.m
// MacPass
//
// Created by michael starke on 19.02.13.
// Copyright (c) 2013 HicknHack Software GmbH. All rights reserved.
//
#import "KdbGroup+MPAdditions.h"
@implementation KdbGroup (MPAdditions)
+ (KdbGroup *)group {
KdbGroup *group = [[KdbGroup alloc] init];
[group setName:@"Default"];
return [group autorelease];
}
+ (KdbGroup *)groupWithName:(NSString *)name {
KdbGroup *group = [KdbGroup group];
[group setName:name];
return group;
}
@end

View File

@@ -36,17 +36,6 @@
[self.settingsController showWindow:_settingsController.window];
}
- (void)newDocument:(id)sender {
}
- (void)performClose:(id)sender {
NSLog(@"Close");
}
- (void)openDocument:(id)sender {
[self.mainWindowController openDocument];
}
- (void)toolbarItemPressed:(id)sender {
NSLog(@"Pressed %@", sender);
}

View File

@@ -20,10 +20,6 @@ APPKIT_EXTERN NSString *const MPDatabaseControllerDidCloseDatabaseNotification;
*/
APPKIT_EXTERN NSString *const MPDatabaseControllerDatabaseKey;
typedef enum{
MPDatabaseVersion1,
MPDatabaseVersion2
} MPDatabaseVersion;
@class MPDatabaseDocument;
@@ -33,7 +29,7 @@ typedef enum{
+ (MPDatabaseController *)defaultController;
- (MPDatabaseDocument *)createDatabase:(MPDatabaseVersion )version password:(NSString *)password keyfile:(NSURL *)key;
//- (MPDatabaseDocument *)createDatabase:(MPDatabaseVersion )version password:(NSString *)password keyfile:(NSURL *)key;
- (MPDatabaseDocument *)openDatabase:(NSURL *)file password:(NSString *)password keyfile:(NSURL *)key;
@end

View File

@@ -11,6 +11,11 @@
APPKIT_EXTERN NSString *const MPDidLoadDataBaseNotification;
APPKIT_EXTERN NSString *const MPDataBaseDocumentDocumentKey;
typedef enum {
MPDatabaseVersion3,
MPDatabaseVersion4
} MPDatabaseVersion;
@class KdbPassword;
@class KdbGroup;
@@ -18,10 +23,13 @@ APPKIT_EXTERN NSString *const MPDataBaseDocumentDocumentKey;
@property (retain, readonly) KdbGroup *root;
@property (retain, readonly) NSURL *file;
@property (retain, readonly) KdbPassword *password;
@property (nonatomic,retain) NSString *password;
@property (nonatomic, retain) NSURL *key;
@property (assign, readonly) MPDatabaseVersion version;
+ (id)documentWithFile:(NSURL *)file password:(NSString *)password keyfile:(NSURL *)key;
- (id)initWithFile:(NSURL *)file password:(NSString *)password keyfile:(NSURL *)key;
- (id)initWithNewDatabase:(MPDatabaseVersion)version;
/*
Saves the current database to the filesystem
Tries to use the stored password and file path

View File

@@ -8,6 +8,8 @@
#import "MPDatabaseDocument.h"
#import "KdbLib.h"
#import "Kdb4Node.h"
#import "Kdb3Node.h"
NSString *const MPDidLoadDataBaseNotification = @"DidLoadDataBaseNotification";
@@ -15,7 +17,8 @@ NSString *const MPDidLoadDataBaseNotification = @"DidLoadDataBaseNotification";
@property (retain) KdbTree *tree;
@property (retain) NSURL *file;
@property (retain) KdbPassword *password;
@property (nonatomic, readonly) KdbPassword *passwordHash;
@property (assign) MPDatabaseVersion version;
@end
@@ -29,6 +32,27 @@ NSString *const MPDidLoadDataBaseNotification = @"DidLoadDataBaseNotification";
// create empty document
return [self initWithFile:nil password:nil keyfile:nil];
}
- (id)initWithNewDatabaseVersion:(MPDatabaseVersion)version {
self = [super init];
if(self) {
switch(version) {
case MPDatabaseVersion3:
self.tree = [[[Kdb3Tree alloc] init] autorelease];
break;
case MPDatabaseVersion4:
self.tree = [[[Kdb4Tree alloc] init] autorelease];
break;
default:
[self release];
return nil;
}
KdbGroup *newGroup = [self.tree createGroup:self.tree.root];
newGroup.name = @"Default";
}
return self;
}
/*
Designated initalizeder
*/
@@ -39,50 +63,29 @@ NSString *const MPDidLoadDataBaseNotification = @"DidLoadDataBaseNotification";
/*
Create an empty file
*/
if(!file) {
self.tree = [[[KdbTree alloc] init] autorelease];
self.tree.root = [[[KdbGroup alloc] init] autorelease];
[self.tree.root setName:NSLocalizedString(@"INITIAL_GROUP", @"")];
self.file = file;
self.key = key;
self.password = password;
@try {
self.tree = [KdbReaderFactory load:[self.file path] withPassword:self.passwordHash];
}
/*
Try to load a given file
*/
else {
self.file = file;
const BOOL hasPassword = (password != nil);
const BOOL hasKeyfile = (key != nil);
// Create the password for the given parameters
if( hasPassword && hasKeyfile) {
self.password = [[[KdbPassword alloc] initWithPassword:password encoding:NSUTF8StringEncoding keyfile:[key path]] autorelease];
}
else if( hasPassword ) {
self.password = [[[KdbPassword alloc] initWithPassword:password encoding:NSUTF8StringEncoding] autorelease];
}
else if( hasKeyfile ) {
self.password = [[[KdbPassword alloc] initWithKeyfile:[key path]] autorelease];
}
else {
NSLog(@"Error: No password or keyfile given!");
}
@try {
self.tree = [KdbReaderFactory load:[self.file path] withPassword:self.password];
}
@catch (NSException *exception) {
NSLog(@"%@", [exception description]);
}
@catch (NSException *exception) {
NSLog(@"%@", [exception description]);
[self release];
return self;
}
if([self.tree isKindOfClass:[Kdb4Tree class]]) {
self.version = MPDatabaseVersion4;
}
else if( [self.tree isKindOfClass:[Kdb3Tree class]]) {
self.version = MPDatabaseVersion3;
}
}
// Test if something went wrong and nil out if so
if( self.tree == nil) {
[self release];
self = nil;
}
return self;
}
- (void)dealloc
{
self.tree = nil;
@@ -98,9 +101,9 @@ NSString *const MPDidLoadDataBaseNotification = @"DidLoadDataBaseNotification";
- (BOOL)save {
NSError *fileError;
if( self.password && [self.file checkResourceIsReachableAndReturnError:&fileError] ) {
if( [self.file checkResourceIsReachableAndReturnError:&fileError] ) {
@try {
[KdbWriterFactory persist:self.tree file:[self.file path] withPassword:self.password];
[KdbWriterFactory persist:self.tree file:[self.file path] withPassword:self.passwordHash];
}
@catch (NSException *exception) {
NSLog(@"%@", [exception description]);
@@ -113,4 +116,24 @@ NSString *const MPDidLoadDataBaseNotification = @"DidLoadDataBaseNotification";
- (BOOL)saveAsFile:(NSURL *)file withPassword:(NSString *)password keyfile:(NSURL *)key {
return NO;
}
- (KdbPassword *)passwordHash {
// Create the password for the given parameters
if( self.password && self.key) {
return [[[KdbPassword alloc] initWithPassword:self.password encoding:NSUTF8StringEncoding keyfile:[self.key path]] autorelease];
}
if( self.password ) {
return [[[KdbPassword alloc] initWithPassword:self.password encoding:NSUTF8StringEncoding] autorelease];
}
if( self.key ) {
return [[[KdbPassword alloc] initWithKeyfile:[self.key path]] autorelease];
}
NSLog(@"Error: No password or keyfile given!");
return nil;
}
@end

View File

@@ -12,7 +12,6 @@
@interface MPMainWindowController : NSWindowController
- (void)openDocument;
- (void)showEntries;
/*
Sets the content View controller

View File

@@ -12,21 +12,24 @@
#import "MPEntryViewController.h"
#import "MPToolbarDelegate.h"
#import "MPOutlineViewController.h"
#import "MPMainWindowSplitViewDelegate.h"
@interface MPMainWindowController ()
@property (assign) IBOutlet NSToolbar *toolbar;
@property (assign) IBOutlet NSView *outlineView;
@property (assign) IBOutlet NSSplitView *splitView;
@property (assign) IBOutlet NSView *contentView;
@property (retain) IBOutlet NSView *welcomeView;
@property (retain) NSToolbar *toolbar;
@property (retain) MPPasswordInputController *passwordInputController;
@property (retain) MPEntryViewController *entryViewController;
@property (retain) MPOutlineViewController *outlineViewController;
@property (retain) MPToolbarDelegate *toolbarDelegate;
@property (retain) MPMainWindowSplitViewDelegate *splitViewDelegate;
@end
@@ -35,8 +38,9 @@
-(id)init {
self = [super initWithWindowNibName:@"MainWindow" owner:self];
if( self ) {
self.toolbarDelegate = [[[MPToolbarDelegate alloc] init] autorelease];
self.outlineViewController = [[[MPOutlineViewController alloc] init] autorelease];
_toolbarDelegate = [[MPToolbarDelegate alloc] init];
_outlineViewController = [[MPOutlineViewController alloc] init];
_splitViewDelegate = [[MPMainWindowSplitViewDelegate alloc] init];
[[NSBundle mainBundle] loadNibNamed:@"WelcomeView" owner:self topLevelObjects:NULL];
[self.welcomeView setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable];
@@ -57,15 +61,23 @@
- (void)windowDidLoad
{
[super windowDidLoad];
const CGFloat minimumWindowWidth = MPMainWindowSplitViewDelegateMinimumContentWidth + MPMainWindowSplitViewDelegateMinimumOutlineWidth + [self.splitView dividerThickness];
[self.window setMinSize:NSMakeSize( minimumWindowWidth, 400)];
_toolbar = [[NSToolbar alloc] initWithIdentifier:@"MainWindowToolbar"];
[self.toolbar setAllowsUserCustomization:YES];
[self.toolbar setDelegate:self.toolbarDelegate];
[self.window setToolbar:self.toolbar];
[self.splitView setDelegate:self.splitViewDelegate];
NSRect frame = [self.outlineView frame];
frame.size.height -= 1;
frame.origin.y = 10;
// frame.size.height -= 1;
// frame.origin.y = 10;
[self.outlineViewController.view setFrame:frame];
[self.outlineViewController.view setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable];
[self.splitView replaceSubview:self.outlineView with:self.outlineViewController.view];
[self.splitView replaceSubview:self.outlineView with:[self.outlineViewController view]];
[self.splitView adjustSubviews];
[self setContentViewController:nil];
}
@@ -94,18 +106,16 @@
else {
[self.contentView addSubview:newContentView];
}
[self.splitView adjustSubviews];
/*
Set focus AFTER having added the view
*/
[self.window makeFirstResponder:[viewController reconmendedFirstResponder]];
}
- (void)didOpenDocument:(NSNotification *)notification {
[self showEntries];
}
#pragma mark Actions
- (void)openDocument {
- (void)openDocument:(id)sender {
if(!self.passwordInputController) {
self.passwordInputController = [[[MPPasswordInputController alloc] init] autorelease];
@@ -125,9 +135,15 @@
}];
}
#pragma mark Notifications
- (void)didOpenDocument:(NSNotification *)notification {
[self showEntries];
}
- (void)showEntries {
if(!self.entryViewController) {
self.entryViewController = [[[MPEntryViewController alloc] init] autorelease];
_entryViewController = [[MPEntryViewController alloc] init];
}
[self setContentViewController:self.entryViewController];
}

View File

@@ -8,6 +8,10 @@
#import <Foundation/Foundation.h>
extern const CGFloat MPMainWindowSplitViewDelegateMinimumOutlineWidth;
extern const CGFloat MPMainWindowSplitViewDelegateMaximumOutlineWidth;
extern const CGFloat MPMainWindowSplitViewDelegateMinimumContentWidth;
@interface MPMainWindowSplitViewDelegate : NSObject <NSSplitViewDelegate>

View File

@@ -8,19 +8,56 @@
#import "MPMainWindowSplitViewDelegate.h"
const CGFloat _minimumSplitterWidth = 10.0;
const CGFloat MPMainWindowSplitViewDelegateMinimumOutlineWidth = 150.0;
const CGFloat MPMainWindowSplitViewDelegateMaximumOutlineWidth = 400.0;
const CGFloat MPMainWindowSplitViewDelegateMinimumContentWidth = 400.0;
@interface MPMainWindowSplitViewDelegate ()
- (NSView *)leftView:(NSSplitView *)splitView;
- (NSView *)rightView:(NSSplitView *)splitView;
@end
@implementation MPMainWindowSplitViewDelegate
- (NSView *)leftView:(NSSplitView *)splitView {
return [splitView subviews][0];
}
- (NSView *)rightView:(NSSplitView *)splitView {
return [splitView subviews][1];
}
- (CGFloat)splitView:(NSSplitView *)splitView constrainMinCoordinate:(CGFloat)proposedMinimumPosition ofSubviewAt:(NSInteger)dividerIndex {
return _minimumSplitterWidth;
return (proposedMinimumPosition < MPMainWindowSplitViewDelegateMinimumOutlineWidth) ? MPMainWindowSplitViewDelegateMinimumOutlineWidth : proposedMinimumPosition;
}
- (CGFloat)splitView:(NSSplitView *)splitView constrainMaxCoordinate:(CGFloat)proposedMaximumPosition ofSubviewAt:(NSInteger)dividerIndex {
NSView *otherView= [splitView subviews][(dividerIndex + 1) % 2];
CGFloat maximumWidth = [splitView frame].size.width - ( [splitView dividerThickness] + [otherView frame].size.width + _minimumSplitterWidth );
return maximumWidth;
CGFloat availableWidth = [splitView frame].size.width - [splitView dividerThickness];
return (availableWidth - MPMainWindowSplitViewDelegateMinimumOutlineWidth);
}
- (void)splitView:(NSSplitView *)splitView resizeSubviewsWithOldSize:(NSSize)oldSize {
NSSize newSize = [splitView frame].size;
const CGFloat dividierThickness = [splitView dividerThickness];
NSView *leftView = [self leftView:splitView];
NSView *rightView = [self rightView:splitView];
CGFloat leftRelativeWidth = [leftView frame].size.width / oldSize.width;
CGFloat newLeftWidth = floor(newSize.width * leftRelativeWidth);
if( newLeftWidth < MPMainWindowSplitViewDelegateMinimumOutlineWidth && newSize.width > MPMainWindowSplitViewDelegateMinimumOutlineWidth ) {
newLeftWidth = MPMainWindowSplitViewDelegateMinimumOutlineWidth;
}
if( newLeftWidth > MPMainWindowSplitViewDelegateMaximumOutlineWidth ) {
newLeftWidth = MPMainWindowSplitViewDelegateMaximumOutlineWidth;
}
NSRect newLeftFrame = NSMakeRect(0, 0, newLeftWidth, newSize.height);
NSRect newRightFrame = NSMakeRect(newLeftWidth + dividierThickness, 0, newSize.width - newLeftWidth - dividierThickness, newSize.height);
[leftView setFrame:newLeftFrame];
[rightView setFrame:newRightFrame];
};
@end

View File

@@ -23,6 +23,7 @@
- (void)didOpenDocument:(NSNotification *)notification;
- (void)setupMenu;
- (void)addEntry:(id)sender;
@end
@@ -69,11 +70,19 @@
- (void)setupMenu {
NSMenu *menu = [[NSMenu allocWithZone:[NSMenu menuZone]] init];
[menu addItemWithTitle:@"Add Group" action:NULL keyEquivalent:@""];
[menu addItemWithTitle:@"Add Group" action:@selector(addEntry:) keyEquivalent:@""];
[menu addItem: [NSMenuItem separatorItem]];
[menu addItemWithTitle:@"Delete" action:NULL keyEquivalent:@""];
for(NSMenuItem *item in [menu itemArray]) {
[item setTarget:self];
}
self.menu = menu;
[menu release];
}
- (void)addEntry:(id)sender {
NSLog(@"Add Entry");
}
@end

View File

@@ -13,6 +13,7 @@ NSString *const MPToolbarItemAddGroup = @"AddGroup";
NSString *const MPToolbarItemAddEntry = @"AddEntry";
NSString *const MPToolbarItemEdit = @"Edit";
NSString *const MPToolbarItemDelete =@"Delete";
NSString *const MPToolbarItemAction = @"Action";
@interface MPToolbarDelegate()
@@ -29,7 +30,7 @@ NSString *const MPToolbarItemDelete =@"Delete";
{
self = [super init];
if (self) {
self.toolbarIdentifiers = @[ MPToolbarItemAddEntry, MPToolbarItemDelete, MPToolbarItemEdit, MPToolbarItemAddGroup ];
self.toolbarIdentifiers = @[ MPToolbarItemAddEntry, MPToolbarItemDelete, MPToolbarItemEdit, MPToolbarItemAddGroup, MPToolbarItemAction ];
self.toolbarItems = [NSMutableDictionary dictionaryWithCapacity:[self.toolbarItems count]];
self.toolbarImages = [self createToolbarImages];
}
@@ -40,15 +41,54 @@ NSString *const MPToolbarItemDelete =@"Delete";
NSToolbarItem *item = self.toolbarItems[ itemIdentifier ];
if( !item ) {
item = [[NSToolbarItem alloc] initWithItemIdentifier:itemIdentifier];
[item setImage:self.toolbarImages[itemIdentifier]];
NSButton *button;
if([itemIdentifier isEqualToString:MPToolbarItemAction]) {
NSPopUpButton *popupButton = [[NSPopUpButton alloc] initWithFrame:NSMakeRect(0, 0, 50, 32) pullsDown:YES];
[[popupButton cell] setBezelStyle:NSTexturedRoundedBezelStyle];
[[popupButton cell] setImageScaling:NSImageScaleProportionallyDown];
[popupButton setTitle:@""];
/*
Built menu
*/
NSMenu *menu = [NSMenu allocWithZone:[NSMenu menuZone]];
NSMenuItem *item = [[NSMenuItem allocWithZone:[NSMenu menuZone]] initWithTitle:@"" action:NULL keyEquivalent:@""];
[item setImage:self.toolbarImages[itemIdentifier]];
[menu addItem:item];
[menu addItemWithTitle:@"Foo" action:NULL keyEquivalent:@""];
[menu addItemWithTitle:@"Bar" action:NULL keyEquivalent:@""];
[popupButton setMenu:menu];
/*
Cleanup
*/
[item release];
[menu release];
button = popupButton;
}
else {
button = [[NSButton alloc] initWithFrame:NSMakeRect(0, 0, 32, 32)];
[[button cell] setBezelStyle:NSTexturedRoundedBezelStyle];
[[button cell] setImageScaling:NSImageScaleProportionallyDown];
[button setTitle:@""];
[button setButtonType:NSMomentaryPushInButton];
NSImage *image = self.toolbarImages[itemIdentifier];
[button setImage:image];
[button setImagePosition:NSImageOnly];
}
[button sizeToFit];
NSString *label = NSLocalizedString(itemIdentifier, @"");
[item setLabel:label];
[item setView:button];
[item setAction:@selector(toolbarItemPressed:)];
self.toolbarItems[itemIdentifier] = item;
[item release];
[button release];
return item;
}
return item;
@@ -64,12 +104,14 @@ NSString *const MPToolbarItemDelete =@"Delete";
}
- (NSDictionary *)createToolbarImages{
NSDictionary *imageDict = @{ MPToolbarItemAddEntry: [MPIconHelper icon:MPIconCamera],
NSDictionary *imageDict = @{ MPToolbarItemAddEntry: [MPIconHelper icon:MPIconPassword],
MPToolbarItemAddGroup: [MPIconHelper icon:MPIconPassword],
MPToolbarItemDelete: [MPIconHelper icon:MPIconServer],
MPToolbarItemEdit: [MPIconHelper icon:MPIconNotepad]
MPToolbarItemDelete: [NSImage imageNamed:NSImageNameRemoveTemplate],
MPToolbarItemEdit: [MPIconHelper icon:MPIconNotepad],
MPToolbarItemAction: [NSImage imageNamed:NSImageNameActionTemplate]
};
return imageDict;
}
@end

View File

@@ -12,6 +12,12 @@
- (void)loadView {
[super loadView];
/* Insert ourselfs in the responder chain */
NSResponder *nextResponder = [[self view] nextResponder];
[[self view] setNextResponder:self];
[self setNextResponder:nextResponder];
[self didLoadView];
}

View File

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

View File

@@ -11,13 +11,9 @@
<string key="NS.object.0">3084</string>
</object>
<array key="IBDocument.IntegratedClassDependencies">
<string>IBNSLayoutConstraint</string>
<string>NSCustomObject</string>
<string>NSCustomView</string>
<string>NSSplitView</string>
<string>NSToolbar</string>
<string>NSToolbarFlexibleSpaceItem</string>
<string>NSToolbarSpaceItem</string>
<string>NSView</string>
<string>NSWindowTemplate</string>
</array>
@@ -41,105 +37,26 @@
<object class="NSWindowTemplate" id="1005">
<int key="NSWindowStyleMask">15</int>
<int key="NSWindowBacking">2</int>
<string key="NSWindowRect">{{196, 240}, {611, 449}}</string>
<string key="NSWindowRect">{{196, 240}, {727, 630}}</string>
<int key="NSWTFlags">544735232</int>
<string key="NSWindowTitle">Window</string>
<string key="NSWindowClass">NSWindow</string>
<object class="NSToolbar" key="NSViewClass" id="279945319">
<object class="NSMutableString" key="NSToolbarIdentifier">
<characters key="NS.bytes">04E515E6-01C4-49D0-9F18-CF8CB81C135F</characters>
</object>
<nil key="NSToolbarDelegate"/>
<bool key="NSToolbarPrefersToBeShown">YES</bool>
<bool key="NSToolbarShowsBaselineSeparator">YES</bool>
<bool key="NSToolbarAllowsUserCustomization">YES</bool>
<bool key="NSToolbarAutosavesConfiguration">NO</bool>
<int key="NSToolbarDisplayMode">1</int>
<int key="NSToolbarSizeMode">1</int>
<dictionary class="NSMutableDictionary" key="NSToolbarIBIdentifiedItems">
<object class="NSToolbarFlexibleSpaceItem" key="NSToolbarFlexibleSpaceItem" id="57284363">
<string key="NSToolbarItemIdentifier">NSToolbarFlexibleSpaceItem</string>
<string key="NSToolbarItemLabel"/>
<string key="NSToolbarItemPaletteLabel">Flexible Space</string>
<nil key="NSToolbarItemToolTip"/>
<nil key="NSToolbarItemView"/>
<nil key="NSToolbarItemImage"/>
<nil key="NSToolbarItemTarget"/>
<nil key="NSToolbarItemAction"/>
<string key="NSToolbarItemMinSize">{1, 5}</string>
<string key="NSToolbarItemMaxSize">{20000, 32}</string>
<bool key="NSToolbarItemEnabled">YES</bool>
<bool key="NSToolbarItemAutovalidates">YES</bool>
<int key="NSToolbarItemTag">-1</int>
<bool key="NSToolbarIsUserRemovable">YES</bool>
<int key="NSToolbarItemVisibilityPriority">0</int>
<object class="NSMenuItem" key="NSToolbarItemMenuFormRepresentation">
<bool key="NSIsDisabled">YES</bool>
<bool key="NSIsSeparator">YES</bool>
<string key="NSTitle"/>
<string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<object class="NSCustomResource" key="NSOnImage" id="181532310">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">NSMenuCheckmark</string>
</object>
<object class="NSCustomResource" key="NSMixedImage" id="523583328">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">NSMenuMixedState</string>
</object>
</object>
</object>
<object class="NSToolbarSpaceItem" key="NSToolbarSpaceItem" id="702869406">
<string key="NSToolbarItemIdentifier">NSToolbarSpaceItem</string>
<string key="NSToolbarItemLabel"/>
<string key="NSToolbarItemPaletteLabel">Space</string>
<nil key="NSToolbarItemToolTip"/>
<nil key="NSToolbarItemView"/>
<nil key="NSToolbarItemImage"/>
<nil key="NSToolbarItemTarget"/>
<nil key="NSToolbarItemAction"/>
<string key="NSToolbarItemMinSize">{32, 5}</string>
<string key="NSToolbarItemMaxSize">{32, 32}</string>
<bool key="NSToolbarItemEnabled">YES</bool>
<bool key="NSToolbarItemAutovalidates">YES</bool>
<int key="NSToolbarItemTag">-1</int>
<bool key="NSToolbarIsUserRemovable">YES</bool>
<int key="NSToolbarItemVisibilityPriority">0</int>
<object class="NSMenuItem" key="NSToolbarItemMenuFormRepresentation">
<bool key="NSIsDisabled">YES</bool>
<bool key="NSIsSeparator">YES</bool>
<string key="NSTitle"/>
<string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="181532310"/>
<reference key="NSMixedImage" ref="523583328"/>
</object>
</object>
</dictionary>
<array key="NSToolbarIBAllowedItems">
<reference ref="702869406"/>
<reference ref="57284363"/>
</array>
<array class="NSMutableArray" key="NSToolbarIBDefaultItems">
<reference ref="57284363"/>
</array>
<array key="NSToolbarIBSelectableItems" id="0"/>
</object>
<nil key="NSViewClass"/>
<nil key="NSUserInterfaceItemIdentifier"/>
<string key="NSWindowContentMinSize">{400, 400}</string>
<object class="NSView" key="NSWindowView" id="1006">
<reference key="NSNextResponder"/>
<int key="NSvFlags">256</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="NSSplitView" id="947682332">
<reference key="NSNextResponder" ref="1006"/>
<int key="NSvFlags">268</int>
<int key="NSvFlags">319</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="NSCustomView" id="425088172">
<reference key="NSNextResponder" ref="947682332"/>
<int key="NSvFlags">268</int>
<string key="NSFrameSize">{151, 449}</string>
<array class="NSMutableArray" key="NSSubviews"/>
<string key="NSFrameSize">{256, 630}</string>
<reference key="NSSuperview" ref="947682332"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="938782220"/>
@@ -149,7 +66,8 @@
<object class="NSCustomView" id="938782220">
<reference key="NSNextResponder" ref="947682332"/>
<int key="NSvFlags">256</int>
<string key="NSFrame">{{152, 0}, {459, 449}}</string>
<array class="NSMutableArray" key="NSSubviews"/>
<string key="NSFrame">{{257, 0}, {470, 630}}</string>
<reference key="NSSuperview" ref="947682332"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
@@ -157,7 +75,7 @@
<string key="NSClassName">NSView</string>
</object>
</array>
<string key="NSFrameSize">{611, 449}</string>
<string key="NSFrameSize">{727, 630}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="425088172"/>
@@ -166,12 +84,13 @@
<int key="NSDividerStyle">2</int>
</object>
</array>
<string key="NSFrameSize">{611, 449}</string>
<string key="NSFrameSize">{727, 630}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="947682332"/>
</object>
<string key="NSScreenRect">{{0, 0}, {1920, 1058}}</string>
<string key="NSScreenRect">{{0, 0}, {2560, 1418}}</string>
<string key="NSMinSize">{400, 422}</string>
<string key="NSMaxSize">{10000000000000, 10000000000000}</string>
<bool key="NSWindowIsRestorable">YES</bool>
</object>
@@ -186,14 +105,6 @@
</object>
<int key="connectionID">501</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">toolbar</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="279945319"/>
</object>
<int key="connectionID">597</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">contentView</string>
@@ -223,7 +134,7 @@
<array key="orderedObjects">
<object class="IBObjectRecord">
<int key="objectID">0</int>
<reference key="object" ref="0"/>
<array key="object" id="0"/>
<reference key="children" ref="1000"/>
<nil key="parent"/>
</object>
@@ -250,7 +161,6 @@
<reference key="object" ref="1005"/>
<array class="NSMutableArray" key="children">
<reference ref="1006"/>
<reference ref="279945319"/>
</array>
<reference key="parent" ref="0"/>
</object>
@@ -258,93 +168,10 @@
<int key="objectID">2</int>
<reference key="object" ref="1006"/>
<array class="NSMutableArray" key="children">
<object class="IBNSLayoutConstraint" id="540625459">
<reference key="firstItem" ref="947682332"/>
<int key="firstAttribute">4</int>
<int key="relation">0</int>
<reference key="secondItem" ref="1006"/>
<int key="secondAttribute">4</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="1006"/>
<int key="scoringType">8</int>
<float key="scoringTypeFloat">29</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="678836472">
<reference key="firstItem" ref="947682332"/>
<int key="firstAttribute">6</int>
<int key="relation">0</int>
<reference key="secondItem" ref="1006"/>
<int key="secondAttribute">6</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="1006"/>
<int key="scoringType">8</int>
<float key="scoringTypeFloat">29</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="393506505">
<reference key="firstItem" ref="947682332"/>
<int key="firstAttribute">3</int>
<int key="relation">0</int>
<reference key="secondItem" ref="1006"/>
<int key="secondAttribute">3</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="1006"/>
<int key="scoringType">8</int>
<float key="scoringTypeFloat">29</float>
<int key="contentType">3</int>
</object>
<object class="IBNSLayoutConstraint" id="595643757">
<reference key="firstItem" ref="947682332"/>
<int key="firstAttribute">5</int>
<int key="relation">0</int>
<reference key="secondItem" ref="1006"/>
<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="1006"/>
<int key="scoringType">8</int>
<float key="scoringTypeFloat">29</float>
<int key="contentType">3</int>
</object>
<reference ref="947682332"/>
</array>
<reference key="parent" ref="1005"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">591</int>
<reference key="object" ref="279945319"/>
<array class="NSMutableArray" key="children">
<reference ref="702869406"/>
<reference ref="57284363"/>
</array>
<reference key="parent" ref="1005"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">592</int>
<reference key="object" ref="702869406"/>
<reference key="parent" ref="279945319"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">595</int>
<reference key="object" ref="57284363"/>
<reference key="parent" ref="279945319"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">603</int>
<reference key="object" ref="947682332"/>
@@ -355,35 +182,16 @@
<reference key="parent" ref="1006"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">619</int>
<reference key="object" ref="678836472"/>
<reference key="parent" ref="1006"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">615</int>
<reference key="object" ref="393506505"/>
<reference key="parent" ref="1006"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">614</int>
<reference key="object" ref="595643757"/>
<reference key="parent" ref="1006"/>
<int key="objectID">605</int>
<reference key="object" ref="938782220"/>
<array class="NSMutableArray" key="children"/>
<reference key="parent" ref="947682332"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">628</int>
<reference key="object" ref="425088172"/>
<reference key="parent" ref="947682332"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">605</int>
<reference key="object" ref="938782220"/>
<reference key="parent" ref="947682332"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">643</int>
<reference key="object" ref="540625459"/>
<reference key="parent" ref="1006"/>
</object>
</array>
</object>
<dictionary class="NSMutableDictionary" key="flattenedProperties">
@@ -395,24 +203,10 @@
<string key="1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="1.IBWindowTemplateEditedContentRect">{{357, 418}, {480, 270}}</string>
<integer value="1" key="1.NSWindowTemplate.visibleAtLaunch"/>
<array class="NSMutableArray" key="2.IBNSViewMetadataConstraints">
<reference ref="595643757"/>
<reference ref="393506505"/>
<reference ref="678836472"/>
<reference ref="540625459"/>
</array>
<string key="2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="591.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="592.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="595.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="NO" key="603.IBNSViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
<string key="603.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="605.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="614.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="615.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="619.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="628.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="643.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
<nil key="activeLocalization"/>
@@ -429,7 +223,6 @@
<string key="contentView">NSView</string>
<string key="outlineView">NSView</string>
<string key="splitView">NSSplitView</string>
<string key="toolbar">NSToolbar</string>
<string key="welcomeView">NSView</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
@@ -445,10 +238,6 @@
<string key="name">splitView</string>
<string key="candidateClassName">NSSplitView</string>
</object>
<object class="IBToOneOutletInfo" key="toolbar">
<string key="name">toolbar</string>
<string key="candidateClassName">NSToolbar</string>
</object>
<object class="IBToOneOutletInfo" key="welcomeView">
<string key="name">welcomeView</string>
<string key="candidateClassName">NSView</string>
@@ -459,24 +248,11 @@
<string key="minorKey">./Classes/MPMainWindowController.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSLayoutConstraint</string>
<string key="superclassName">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/NSLayoutConstraint.h</string>
</object>
</object>
</array>
</object>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
<string key="NSMenuCheckmark">{11, 11}</string>
<string key="NSMenuMixedState">{10, 3}</string>
</dictionary>
<bool key="IBDocument.UseAutolayout">YES</bool>
</data>
</archive>

View File

@@ -152,7 +152,7 @@
<bytes key="NSWhite">MC41AA</bytes>
</object>
</object>
<double key="NSRowHeight">17</double>
<double key="NSRowHeight">24</double>
<int key="NSTvFlags">-767557632</int>
<reference key="NSDelegate"/>
<reference key="NSDataSource"/>
@@ -196,7 +196,6 @@
<string key="NSFrame">{{1, 119}, {238, 15}}</string>
<reference key="NSSuperview" ref="946871415"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<string key="NSReuseIdentifierKey">_NS:60</string>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
<int key="NSsFlags">1</int>
@@ -760,27 +759,24 @@
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">188</int>
<int key="maxID">194</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
<object class="IBPartialClassDescription">
<string key="className">MPOutlineViewController</string>
<string key="superclassName">MPViewController</string>
<dictionary class="NSMutableDictionary" key="outlets">
<string key="itemMenu">NSMenu</string>
<string key="outlineView">NSOutlineView</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
<object class="IBToOneOutletInfo" key="itemMenu">
<string key="name">itemMenu</string>
<string key="candidateClassName">NSMenu</string>
</object>
<object class="IBToOneOutletInfo" key="outlineView">
<object class="NSMutableDictionary" key="outlets">
<string key="NS.key.0">outlineView</string>
<string key="NS.object.0">NSOutlineView</string>
</object>
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
<string key="NS.key.0">outlineView</string>
<object class="IBToOneOutletInfo" key="NS.object.0">
<string key="name">outlineView</string>
<string key="candidateClassName">NSOutlineView</string>
</object>
</dictionary>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/MPOutlineViewController.h</string>

View File

@@ -1,29 +1,24 @@
{\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;}
{\colortbl;\red255\green255\blue255;}
\paperw9840\paperh8400
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;\red52\green110\blue183;\red38\green38\blue38;}
\paperw11900\paperh16840\vieww15320\viewh13520\viewkind0
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
\f0\b\fs24 \cf0 Engineering:
\f0\b\fs24 \cf0 Project Website:\
{\field{\*\fldinst{HYPERLINK "https://github.com/mstarke/MacPass"}}{\fldrslt
\b0 MacPass}}
\b0 \
Some people\
\
\b Human Interface Design:
\b0 \
Some other people\
\
\b Testing:
\b0 \
Hopefully not nobody\
\
\b Documentation:
\b0 \
Whoever\
\
\b With special thanks to:
\b0 \
Mom\
}
\b \
Credits:\
{\field{\*\fldinst{HYPERLINK "https://github.com/robbiehanson/KissXML"}}{\fldrslt
\b0 \cf2 KissXML}}
\b0 \cf3 \
by Robbie Hanson\
\
{\field{\*\fldinst{HYPERLINK "https://github.com/MiniKeePass/MiniKeePass"}}{\fldrslt \cf2 MiniKeePass}}\
by Jason Rush and John Flanagan\
\
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720
\cf2 {\field{\*\fldinst{HYPERLINK "https://github.com/mpowrie/KeePassLib"}}{\fldrslt KeePass Database Library}}\cf3 \
by Qiang Yu}

View File

@@ -2,18 +2,18 @@
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
<data>
<int key="IBDocument.SystemTarget">1070</int>
<string key="IBDocument.SystemVersion">11E53</string>
<string key="IBDocument.InterfaceBuilderVersion">2182</string>
<string key="IBDocument.AppKitVersion">1138.47</string>
<string key="IBDocument.HIToolboxVersion">569.00</string>
<string key="IBDocument.SystemVersion">12C60</string>
<string key="IBDocument.InterfaceBuilderVersion">3084</string>
<string key="IBDocument.AppKitVersion">1187.34</string>
<string key="IBDocument.HIToolboxVersion">625.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="NS.object.0">2182</string>
<string key="NS.object.0">3084</string>
</object>
<array key="IBDocument.IntegratedClassDependencies">
<string>NSCustomObject</string>
<string>NSMenu</string>
<string>NSMenuItem</string>
<string>NSCustomObject</string>
</array>
<array key="IBDocument.PluginDependencies">
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>