Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Changed how dates are displayed to use a "human readable" format (1 m…

…inute ago, etc).
  • Loading branch information...
commit 37362a4e2cb7cac9608805f0e5d7c69f2f39b6ad 1 parent 9d025da
@omh omh authored
View
366 Clyppan.xcodeproj/oh.perspectivev3
@@ -3,7 +3,7 @@
<plist version="1.0">
<dict>
<key>ActivePerspectiveName</key>
- <string>Debug</string>
+ <string>Project</string>
<key>AllowedModules</key>
<array>
<dict>
@@ -195,34 +195,50 @@
<key>Name</key>
<string>All-In-One</string>
<key>Notifications</key>
+ <array/>
+ <key>OpenEditors</key>
<array>
<dict>
- <key>XCObserverAutoDisconnectKey</key>
- <true/>
- <key>XCObserverDefintionKey</key>
+ <key>Content</key>
<dict>
- <key>PBXStatusErrorsKey</key>
- <integer>0</integer>
+ <key>PBXProjectModuleGUID</key>
+ <string>EE29E9DD104091D100651640</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>NSDate.h</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>EE29E9DE104091D100651640</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>NSDate.h</string>
+ <key>_historyCapacity</key>
+ <integer>0</integer>
+ <key>bookmark</key>
+ <string>EE29EA851041797800651640</string>
+ <key>history</key>
+ <array>
+ <string>EE29E9DF104091D100651640</string>
+ </array>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <true/>
</dict>
- <key>XCObserverFactoryKey</key>
- <string>XCPerspectivesSpecificationIdentifier</string>
- <key>XCObserverGUIDKey</key>
- <string>XCObserverProjectIdentifier</string>
- <key>XCObserverNotificationKey</key>
- <string>PBXStatusBuildStateMessageNotification</string>
- <key>XCObserverTargetKey</key>
- <string>XCMainBuildResultsModuleGUID</string>
- <key>XCObserverTriggerKey</key>
- <string>awakenModuleWithObserver:</string>
- <key>XCObserverValidationKey</key>
+ <key>Geometry</key>
<dict>
- <key>PBXStatusErrorsKey</key>
- <integer>2</integer>
+ <key>Frame</key>
+ <string>{{0, 20}, {1136, 828}}</string>
+ <key>PBXModuleWindowStatusBarHidden2</key>
+ <false/>
+ <key>RubberWindowFrame</key>
+ <string>15 4 1136 869 0 0 1440 878 </string>
</dict>
</dict>
</array>
- <key>OpenEditors</key>
- <array/>
<key>PerspectiveWidths</key>
<array>
<integer>1440</integer>
@@ -239,7 +255,6 @@
<string>action</string>
<string>NSToolbarFlexibleSpaceItem</string>
<string>buildOrClean</string>
- <string>build-and-goOrGo</string>
<string>com.apple.ide.PBXToolbarStopButton</string>
<string>get-info</string>
<string>toggle-editor</string>
@@ -263,7 +278,6 @@
<array>
<string>1C37FBAC04509CD000000102</string>
<string>1C37FAAC04509CD000000102</string>
- <string>1C08E77C0454961000C914BD</string>
<string>1C37FABC05509CD000000102</string>
<string>1C37FABC05539CD112110102</string>
<string>E2644B35053B69B200211256</string>
@@ -282,15 +296,11 @@
<dict>
<key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
<array>
- <real>297</real>
- <real>43</real>
- <real>43</real>
+ <real>328</real>
</array>
<key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
<array>
<string>MainColumn</string>
- <string>ErrorsColumn</string>
- <string>WarningsColumn</string>
</array>
</dict>
<key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
@@ -300,28 +310,22 @@
<string>29B97314FDCFA39411CA2CEA</string>
<string>7756732906782D8800D1FEB8</string>
<string>080E96DDFE201D6D7F000001</string>
- <string>EE0F27E80F1D2AD100E0C0FF</string>
- <string>EE0F27E90F1D2AE200E0C0FF</string>
- <string>EE0F27EB0F1D2B5400E0C0FF</string>
<string>EE0F27EA0F1D2B0C00E0C0FF</string>
- <string>29B97317FDCFA39411CA2CEA</string>
+ <string>EE29E9ED1040944F00651640</string>
<string>1C37FBAC04509CD000000102</string>
- <string>EE5A550A0F24DD3000919974</string>
- <string>EE5A550B0F24DD3000919974</string>
- <string>EE5A550E0F24DD4500919974</string>
<string>1C77FABC04509CD000000102</string>
</array>
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
- <integer>19</integer>
- <integer>13</integer>
+ <integer>8</integer>
+ <integer>6</integer>
<integer>3</integer>
<integer>0</integer>
</array>
</array>
<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
- <string>{{0, 0}, {383, 780}}</string>
+ <string>{{0, 0}, {328, 780}}</string>
</dict>
<key>PBXTopSmartGroupGIDs</key>
<array/>
@@ -331,32 +335,32 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {400, 798}}</string>
+ <string>{{0, 0}, {345, 798}}</string>
<key>GroupTreeTableConfiguration</key>
<array>
<string>MainColumn</string>
- <real>297</real>
- <string>ErrorsColumn</string>
- <real>43</real>
- <string>WarningsColumn</string>
- <real>43</real>
+ <real>328</real>
</array>
+ <key>RubberWindowFrame</key>
+ <string>0 39 1440 839 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
<key>Proportion</key>
- <string>400pt</string>
+ <string>345pt</string>
</dict>
<dict>
<key>Dock</key>
<array>
<dict>
+ <key>BecomeActive</key>
+ <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXProjectModuleGUID</key>
<string>EED928070EE3BE2400448843</string>
<key>PBXProjectModuleLabel</key>
- <string>AppController.h</string>
+ <string>OMHClipping.m</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
@@ -364,178 +368,21 @@
<key>PBXProjectModuleGUID</key>
<string>EED928080EE3BE2400448843</string>
<key>PBXProjectModuleLabel</key>
- <string>AppController.h</string>
+ <string>OMHClipping.m</string>
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>EE5A564E0F26901F00919974</string>
+ <string>EE29EA841041797800651640</string>
<key>history</key>
<array>
- <string>EE14291F0F1D25FA002F1FE7</string>
- <string>EE1429200F1D25FA002F1FE7</string>
- <string>EE1429220F1D25FA002F1FE7</string>
- <string>EEF417FE0F1D26E30037980E</string>
- <string>EE4A8F950F1E0869007DE4BF</string>
- <string>EE4A90770F1E2468007DE4BF</string>
- <string>EE4A93EC0F1F8859007DE4BF</string>
- <string>EEA1DE130F1FB6FF0011E550</string>
- <string>EE3FE4200F21241A00B09105</string>
- <string>EE3FE4B80F212DB500B09105</string>
- <string>EE3FE5BB0F214B8A00B09105</string>
- <string>EE5A52790F21538D00919974</string>
- <string>EE5A52CB0F222C8900919974</string>
- <string>EE5A52D10F222C8900919974</string>
- <string>EE5A52D20F222C8900919974</string>
- <string>EE5A53400F2269B100919974</string>
- <string>EE5A53560F226C5700919974</string>
- <string>EE5A53570F226C5700919974</string>
- <string>EE5A53AA0F22791C00919974</string>
- <string>EE5A541D0F236A7D00919974</string>
- <string>EE5A541E0F236A7D00919974</string>
- <string>EE5A55390F24F01800919974</string>
- <string>EE5A553A0F24F01800919974</string>
- <string>EE5A553B0F24F01800919974</string>
- <string>EE5A55550F24F11700919974</string>
- <string>EE5A55720F26094400919974</string>
- <string>EE5A55C80F26189B00919974</string>
- <string>EE5A55CA0F26189B00919974</string>
- <string>EE5A55DE0F26193E00919974</string>
- <string>EE5A55EE0F26196F00919974</string>
- <string>EE5A55FC0F261F6F00919974</string>
- <string>EE5A55FD0F261F6F00919974</string>
- <string>EE5A55FE0F261F6F00919974</string>
- <string>EE5A55FF0F261F6F00919974</string>
- <string>EE5A562D0F267EB800919974</string>
- <string>EE5A56440F26849400919974</string>
- <string>EE5A56450F26849400919974</string>
- </array>
- <key>prevStack</key>
- <array>
- <string>EE1429240F1D25FA002F1FE7</string>
- <string>EE1429250F1D25FA002F1FE7</string>
- <string>EE1429270F1D25FA002F1FE7</string>
- <string>EE1429280F1D25FA002F1FE7</string>
- <string>EE14292B0F1D25FA002F1FE7</string>
- <string>EEF4182C0F1D28AB0037980E</string>
- <string>EE0F28040F1D2BC000E0C0FF</string>
- <string>EE0F281A0F1D2BC000E0C0FF</string>
- <string>EE0F281B0F1D2BC000E0C0FF</string>
- <string>EE0F28290F1D2BC000E0C0FF</string>
- <string>EE0F282A0F1D2BC000E0C0FF</string>
- <string>EE0F282B0F1D2BC000E0C0FF</string>
- <string>EE0F28300F1D2BC000E0C0FF</string>
- <string>EE0F2A140F1D40B700E0C0FF</string>
- <string>EE4A8F980F1E0869007DE4BF</string>
- <string>EE4A90310F1E20BC007DE4BF</string>
- <string>EE71BC080F1F88C300F130A9</string>
- <string>EEA1DE1D0F1FB6FF0011E550</string>
- <string>EEA1DE5A0F1FB90D0011E550</string>
- <string>EEA1DE5E0F1FB90D0011E550</string>
- <string>EEA1DE210F1FB6FF0011E550</string>
- <string>EEA1DE830F1FC13F0011E550</string>
- <string>EE3FE3DE0F211B5900B09105</string>
- <string>EE3FE3DF0F211B5900B09105</string>
- <string>EE3FE4270F21241A00B09105</string>
- <string>EE3FE4C10F212DB500B09105</string>
- <string>EE3FE59C0F21498E00B09105</string>
- <string>EE3FE5B20F214ACF00B09105</string>
- <string>EE3FE5BE0F214B8A00B09105</string>
- <string>EE5A52DA0F222C8900919974</string>
- <string>EE5A532B0F22508200919974</string>
- <string>EE5A52D90F222C8900919974</string>
- <string>EE5A53480F2269B100919974</string>
- <string>EE5A538A0F226FC900919974</string>
- <string>EE5A538B0F226FC900919974</string>
- <string>EE5A539A0F22748C00919974</string>
- <string>EE5A539D0F22748C00919974</string>
- <string>EE5A539E0F22748C00919974</string>
- <string>EE5A539F0F22748C00919974</string>
- <string>EE5A53AC0F22791C00919974</string>
- <string>EE5A53AE0F22791C00919974</string>
- <string>EE5A53AF0F22791C00919974</string>
- <string>EE5A53C50F227AE000919974</string>
- <string>EE5A53C60F227AE000919974</string>
- <string>EE5A53C70F227AE000919974</string>
- <string>EE5A53C80F227AE000919974</string>
- <string>EE5A53DA0F227C1600919974</string>
- <string>EE5A53E50F227CF300919974</string>
- <string>EE5A54210F236A7D00919974</string>
- <string>EE5A54230F236A7D00919974</string>
- <string>EE5A54240F236A7D00919974</string>
- <string>EE5A54250F236A7D00919974</string>
- <string>EE5A54260F236A7D00919974</string>
- <string>EE5A54270F236A7D00919974</string>
- <string>EE5A54320F236B7500919974</string>
- <string>EE5A54460F23866900919974</string>
- <string>EE5A54470F23866900919974</string>
- <string>EE5A545A0F238D9900919974</string>
- <string>EE5A54820F24005800919974</string>
- <string>EE5A54960F24011D00919974</string>
- <string>EE5A54AD0F24028600919974</string>
- <string>EE5A54AE0F24028600919974</string>
- <string>EE5A54BA0F24036A00919974</string>
- <string>EE5A54CB0F24055C00919974</string>
- <string>EE5A54CC0F24055C00919974</string>
- <string>EE5A54DA0F24065800919974</string>
- <string>EE5A54E30F24068B00919974</string>
- <string>EE5A54ED0F24075000919974</string>
- <string>EE5A54F80F24080500919974</string>
- <string>EE5A55160F24DFDC00919974</string>
- <string>EE5A55410F24F01800919974</string>
- <string>EE5A55420F24F01800919974</string>
- <string>EE5A55430F24F01800919974</string>
- <string>EE5A55440F24F01800919974</string>
- <string>EE5A55450F24F01800919974</string>
- <string>EE5A55460F24F01800919974</string>
- <string>EE5A55470F24F01800919974</string>
- <string>EE5A55480F24F01800919974</string>
- <string>EE5A55490F24F01800919974</string>
- <string>EE5A554A0F24F01800919974</string>
- <string>EE5A554B0F24F01800919974</string>
- <string>EE5A554C0F24F01800919974</string>
- <string>EE5A55580F24F11700919974</string>
- <string>EE5A55590F24F11700919974</string>
- <string>EE5A55760F26094400919974</string>
- <string>EE5A55770F26094400919974</string>
- <string>EE5A55780F26094400919974</string>
- <string>EE5A55790F26094400919974</string>
- <string>EE5A557A0F26094400919974</string>
- <string>EE5A55830F26096B00919974</string>
- <string>EE5A558A0F26099700919974</string>
- <string>EE5A558B0F26099700919974</string>
- <string>EE5A55950F2609F400919974</string>
- <string>EE5A55960F2609F400919974</string>
- <string>EE5A55970F2609F400919974</string>
- <string>EE5A55B00F260A5F00919974</string>
- <string>EE5A55BD0F260ADD00919974</string>
- <string>EE5A55BE0F260ADD00919974</string>
- <string>EE5A55CD0F26189B00919974</string>
- <string>EE5A55CE0F26189B00919974</string>
- <string>EE5A55CF0F26189B00919974</string>
- <string>EE5A55D00F26189B00919974</string>
- <string>EE5A55D10F26189B00919974</string>
- <string>EE5A55D20F26189B00919974</string>
- <string>EE5A55D30F26189B00919974</string>
- <string>EE5A55E00F26193E00919974</string>
- <string>EE5A55E10F26193E00919974</string>
- <string>EE5A55E20F26193E00919974</string>
- <string>EE5A55E30F26193E00919974</string>
- <string>EE5A55E40F26193E00919974</string>
- <string>EE5A55E50F26193E00919974</string>
- <string>EE5A55E60F26193E00919974</string>
- <string>EE5A55E70F26193E00919974</string>
- <string>EE5A55F10F26196F00919974</string>
- <string>EE5A55F20F26196F00919974</string>
- <string>EE5A55F30F26196F00919974</string>
- <string>EE5A56010F261F6F00919974</string>
- <string>EE5A56020F261F6F00919974</string>
- <string>EE5A56030F261F6F00919974</string>
- <string>EE5A56040F261F6F00919974</string>
- <string>EE5A56050F261F6F00919974</string>
- <string>EE5A56060F261F6F00919974</string>
- <string>EE5A56070F261F6F00919974</string>
- <string>EE5A562F0F267EB800919974</string>
- <string>EE5A56460F26849400919974</string>
+ <string>EE29E9AC10408F6800651640</string>
+ <string>EE29E9AD10408F6800651640</string>
+ <string>EE29E9AE10408F6800651640</string>
+ <string>EE29EA191040AD5600651640</string>
+ <string>EE29EA58104175FC00651640</string>
+ <string>EE29EA6D1041790C00651640</string>
+ <string>EE29EA761041795500651640</string>
+ <string>EE29EA771041795500651640</string>
</array>
</dict>
<key>SplitCount</key>
@@ -549,7 +396,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {1035, 555}}</string>
+ <string>{{0, 0}, {1090, 555}}</string>
+ <key>RubberWindowFrame</key>
+ <string>0 39 1440 839 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
@@ -572,7 +421,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {996, -27}}</string>
+ <string>{{10, 27}, {1163, 211}}</string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@@ -588,7 +437,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {996, 383}}</string>
+ <string>{{10, 27}, {1163, 206}}</string>
</dict>
<key>Module</key>
<string>PBXProjectFindModule</string>
@@ -606,7 +455,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {996, 383}}</string>
+ <string>{{10, 27}, {1163, 206}}</string>
</dict>
<key>Module</key>
<string>PBXCVSModule</string>
@@ -614,21 +463,21 @@
<dict>
<key>ContentConfiguration</key>
<dict>
- <key>PBXBuildLogShowsTranscriptDefaultKey</key>
- <string>{{0, 83}, {1035, 128}}</string>
<key>PBXProjectModuleGUID</key>
<string>XCMainBuildResultsModuleGUID</string>
<key>PBXProjectModuleLabel</key>
- <string>Build</string>
+ <string>Build Results</string>
<key>XCBuildResultsTrigger_Collapse</key>
- <integer>1022</integer>
+ <integer>1021</integer>
<key>XCBuildResultsTrigger_Open</key>
- <integer>1012</integer>
+ <integer>1011</integer>
</dict>
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{10, 27}, {1035, 211}}</string>
+ <string>{{10, 27}, {1090, 211}}</string>
+ <key>RubberWindowFrame</key>
+ <string>0 39 1440 839 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -637,7 +486,7 @@
</dict>
</array>
<key>Proportion</key>
- <string>1035pt</string>
+ <string>1090pt</string>
</dict>
</array>
<key>Name</key>
@@ -656,16 +505,18 @@
</array>
<key>TableOfContents</key>
<array>
- <string>EE5A537C0F226E7E00919974</string>
+ <string>EE29E9B510408F6800651640</string>
<string>1CA23ED40692098700951B8B</string>
- <string>EE5A537D0F226E7E00919974</string>
+ <string>EE29E9B610408F6800651640</string>
<string>EED928070EE3BE2400448843</string>
- <string>EE5A537E0F226E7E00919974</string>
+ <string>EE29E9B710408F6800651640</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
<string>XCMainBuildResultsModuleGUID</string>
</array>
+ <key>ToolbarConfigUserDefaultsMinorVersion</key>
+ <string>2</string>
<key>ToolbarConfiguration</key>
<string>xcode.toolbar.config.defaultV3</string>
</dict>
@@ -676,6 +527,7 @@
<string>NSToolbarSeparatorItem</string>
<string>active-combo-popup</string>
<string>NSToolbarFlexibleSpaceItem</string>
+ <string>debugger-enable-breakpoints</string>
<string>build-and-go</string>
<string>com.apple.ide.PBXToolbarStopButton</string>
<string>debugger-restart-executable</string>
@@ -683,10 +535,9 @@
<string>debugger-step-over</string>
<string>debugger-step-into</string>
<string>debugger-step-out</string>
- <string>debugger-enable-breakpoints</string>
<string>NSToolbarFlexibleSpaceItem</string>
- <string>com.apple.ide.XCBreakpointsToolbarItem</string>
- <string>clear-log</string>
+ <string>servicesModulebreakpoints</string>
+ <string>debugger-show-console-window</string>
</array>
<key>ControllerClassBaseName</key>
<string>PBXDebugSessionModule</string>
@@ -699,8 +550,6 @@
<key>Layout</key>
<array>
<dict>
- <key>BecomeActive</key>
- <true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXProjectModuleGUID</key>
@@ -711,14 +560,12 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {1440, 264}}</string>
- <key>RubberWindowFrame</key>
- <string>17 39 1440 839 0 0 1440 878 </string>
+ <string>{{0, 0}, {1440, 250}}</string>
</dict>
<key>Module</key>
<string>PBXDebugCLIModule</string>
<key>Proportion</key>
- <string>264pt</string>
+ <string>250pt</string>
</dict>
<dict>
<key>ContentConfiguration</key>
@@ -737,8 +584,8 @@
<string>yes</string>
<key>sizes</key>
<array>
- <string>{{0, 0}, {513, 248}}</string>
- <string>{{0, 248}, {513, 281}}</string>
+ <string>{{0, 0}, {720, 271}}</string>
+ <string>{{720, 0}, {720, 271}}</string>
</array>
</dict>
<key>VerticalSplitView</key>
@@ -753,8 +600,8 @@
<string>yes</string>
<key>sizes</key>
<array>
- <string>{{0, 0}, {513, 529}}</string>
- <string>{{513, 0}, {927, 529}}</string>
+ <string>{{0, 0}, {1440, 271}}</string>
+ <string>{{0, 271}, {1440, 272}}</string>
</array>
</dict>
</dict>
@@ -774,7 +621,7 @@
<key>DebugSTDIOWindowFrame</key>
<string>{{200, 200}, {500, 300}}</string>
<key>Frame</key>
- <string>{{0, 269}, {1440, 529}}</string>
+ <string>{{0, 255}, {1440, 543}}</string>
<key>PBXDebugSessionStackFrameViewKey</key>
<dict>
<key>DebugVariablesTableConfiguration</key>
@@ -784,20 +631,16 @@
<string>Value</string>
<real>114</real>
<string>Summary</string>
- <real>225</real>
+ <real>432</real>
</array>
<key>Frame</key>
- <string>{{0, 248}, {513, 281}}</string>
- <key>RubberWindowFrame</key>
- <string>17 39 1440 839 0 0 1440 878 </string>
+ <string>{{720, 0}, {720, 271}}</string>
</dict>
- <key>RubberWindowFrame</key>
- <string>17 39 1440 839 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXDebugSessionModule</string>
<key>Proportion</key>
- <string>529pt</string>
+ <string>543pt</string>
</dict>
</array>
<key>Name</key>
@@ -815,15 +658,17 @@
</array>
<key>TableOfContents</key>
<array>
- <string>EE5A537F0F226E7E00919974</string>
+ <string>EE29E9B810408F6800651640</string>
<string>1CCC7628064C1048000F2A68</string>
<string>1CCC7629064C1048000F2A68</string>
- <string>EE5A53800F226E7E00919974</string>
- <string>EE5A53810F226E7E00919974</string>
- <string>EE5A53820F226E7E00919974</string>
- <string>EE5A53830F226E7E00919974</string>
- <string>EE5A53840F226E7E00919974</string>
+ <string>EE29E9B910408F6800651640</string>
+ <string>EE29E9BA10408F6800651640</string>
+ <string>EE29E9BB10408F6800651640</string>
+ <string>EE29E9BC10408F6800651640</string>
+ <string>EED928070EE3BE2400448843</string>
</array>
+ <key>ToolbarConfigUserDefaultsMinorVersion</key>
+ <string>2</string>
<key>ToolbarConfiguration</key>
<string>xcode.toolbar.config.debugV3</string>
</dict>
@@ -837,7 +682,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
- <real>254185503.649149</real>
+ <real>0.0</real>
<key>ToolbarDisplayMode</key>
<integer>2</integer>
<key>ToolbarIsVisible</key>
@@ -852,13 +697,14 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>EE5A557D0F26094400919974</string>
- <string>EE5A557E0F26094400919974</string>
- <string>EEF418D00F1D2A1B0037980E</string>
- <string>/Users/oh/Documents/Development/Cocoa/clyppan/Clyppan.xcodeproj</string>
+ <string>EE29EA861041797800651640</string>
+ <string>EE29E9BE10408F6800651640</string>
+ <string>EE29E9BF10408F6800651640</string>
+ <string>EE29E9DD104091D100651640</string>
+ <string>/Users/oh/Development/Cocoa/clyppan/Clyppan.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>17 39 1440 839 0 0 1440 878 </string>
+ <string>0 39 1440 839 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
View
162 Clyppan.xcodeproj/project.pbxproj
@@ -49,6 +49,8 @@
EE1429160F1D25BB002F1FE7 /* clyppan-small.png in Resources */ = {isa = PBXBuildFile; fileRef = EE1429110F1D25BB002F1FE7 /* clyppan-small.png */; };
EE19C4BC0FA4E07E000537FE /* OMHImageTextCell.m in Sources */ = {isa = PBXBuildFile; fileRef = EE19C4BB0FA4E07E000537FE /* OMHImageTextCell.m */; };
EE19C4E50FA4E5DA000537FE /* OMHGradientBackgroundView.m in Sources */ = {isa = PBXBuildFile; fileRef = EE19C4E40FA4E5DA000537FE /* OMHGradientBackgroundView.m */; };
+ EE29E998104087A700651640 /* OMHHumanReadableDateTest.m in Sources */ = {isa = PBXBuildFile; fileRef = EE29E997104087A700651640 /* OMHHumanReadableDateTest.m */; };
+ EE29E9A310408F0500651640 /* OMHHumanReadableDate.m in Sources */ = {isa = PBXBuildFile; fileRef = EE87B5060FE58ABC0058C68E /* OMHHumanReadableDate.m */; };
EE3AA2250FAF8081002D747E /* 1.0.xcdatamodel in Sources */ = {isa = PBXBuildFile; fileRef = 770B37EC0679A11B001EADE2 /* 1.0.xcdatamodel */; };
EE3FE3CF0F211B0E00B09105 /* OMHClipping.m in Sources */ = {isa = PBXBuildFile; fileRef = EE3FE3CD0F211B0E00B09105 /* OMHClipping.m */; };
EE3FE4010F211EB000B09105 /* MAAttachedWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = EE3FE4000F211EB000B09105 /* MAAttachedWindow.m */; };
@@ -56,9 +58,7 @@
EE4A901A0F1E1A17007DE4BF /* Check.pdf in Resources */ = {isa = PBXBuildFile; fileRef = EE4A90190F1E1A17007DE4BF /* Check.pdf */; };
EE4A92060F1E83E9007DE4BF /* QuickPreview.xib in Resources */ = {isa = PBXBuildFile; fileRef = EE4A92040F1E83E9007DE4BF /* QuickPreview.xib */; };
EE4A92880F1E8EF9007DE4BF /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = EE4A92870F1E8EF9007DE4BF /* Credits.rtf */; };
- EE4A93D30F1F8825007DE4BF /* ShortcutRecorder.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EE4A93D10F1F8825007DE4BF /* ShortcutRecorder.framework */; };
EE4A93D40F1F8825007DE4BF /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EE4A93D20F1F8825007DE4BF /* Sparkle.framework */; };
- EE4A93E80F1F8845007DE4BF /* ShortcutRecorder.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = EE4A93D10F1F8825007DE4BF /* ShortcutRecorder.framework */; };
EE4A93E90F1F8845007DE4BF /* Sparkle.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = EE4A93D20F1F8825007DE4BF /* Sparkle.framework */; };
EE5A52C70F222C6400919974 /* StatusItemHelperWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = EE5A52C50F222C6400919974 /* StatusItemHelperWindow.xib */; };
EE5A54690F23DF3C00919974 /* dsa_pub.pem in Resources */ = {isa = PBXBuildFile; fileRef = EE5A54680F23DF3C00919974 /* dsa_pub.pem */; };
@@ -68,6 +68,8 @@
EE71BC0C0F1F88E100F130A9 /* Shortcuts.png in Resources */ = {isa = PBXBuildFile; fileRef = EE71BC0A0F1F88E100F130A9 /* Shortcuts.png */; };
EE71BC0D0F1F88E100F130A9 /* Update.tiff in Resources */ = {isa = PBXBuildFile; fileRef = EE71BC0B0F1F88E100F130A9 /* Update.tiff */; };
EE79F8410F9FB03F00010D7E /* Clyppan_DataModel.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = EE79F8400F9FB03F00010D7E /* Clyppan_DataModel.xcdatamodeld */; };
+ EE87B5070FE58ABC0058C68E /* OMHHumanReadableDate.m in Sources */ = {isa = PBXBuildFile; fileRef = EE87B5060FE58ABC0058C68E /* OMHHumanReadableDate.m */; };
+ EEE8DB1D103DF29600195ECA /* ShortcutRecorder.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EEE8DB1C103DF29600195ECA /* ShortcutRecorder.framework */; };
EEECB6760FAE1454004A596B /* AppController+CoreData.m in Sources */ = {isa = PBXBuildFile; fileRef = EEECB6750FAE1454004A596B /* AppController+CoreData.m */; };
EEF4181A0F1D27A80037980E /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EEF418190F1D27A80037980E /* Carbon.framework */; };
/* End PBXBuildFile section */
@@ -89,7 +91,6 @@
dstPath = "";
dstSubfolderSpec = 10;
files = (
- EE4A93E80F1F8845007DE4BF /* ShortcutRecorder.framework in Copy Frameworks */,
EE4A93E90F1F8845007DE4BF /* Sparkle.framework in Copy Frameworks */,
);
name = "Copy Frameworks";
@@ -130,6 +131,10 @@
EE19C4BB0FA4E07E000537FE /* OMHImageTextCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OMHImageTextCell.m; path = ../collections/Cells/OMHImageTextCell.m; sourceTree = SOURCE_ROOT; };
EE19C4E30FA4E5DA000537FE /* OMHGradientBackgroundView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OMHGradientBackgroundView.h; path = Source/OMHGradientBackgroundView.h; sourceTree = SOURCE_ROOT; };
EE19C4E40FA4E5DA000537FE /* OMHGradientBackgroundView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OMHGradientBackgroundView.m; path = Source/OMHGradientBackgroundView.m; sourceTree = SOURCE_ROOT; };
+ EE29E98F1040874500651640 /* Unit tests.octest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "Unit tests.octest"; path = "build/Debug/Unit tests.octest"; sourceTree = "<group>"; };
+ EE29E9901040874500651640 /* Unit tests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Unit tests-Info.plist"; sourceTree = "<group>"; };
+ EE29E996104087A700651640 /* OMHHumanReadableDateTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OMHHumanReadableDateTest.h; sourceTree = "<group>"; };
+ EE29E997104087A700651640 /* OMHHumanReadableDateTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OMHHumanReadableDateTest.m; sourceTree = "<group>"; };
EE3FE3CD0F211B0E00B09105 /* OMHClipping.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OMHClipping.m; path = Source/OMHClipping.m; sourceTree = SOURCE_ROOT; };
EE3FE3CE0F211B0E00B09105 /* OMHClipping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OMHClipping.h; path = Source/OMHClipping.h; sourceTree = SOURCE_ROOT; };
EE3FE3FF0F211EB000B09105 /* MAAttachedWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MAAttachedWindow.h; path = ../collections/Views/MAAttachedWindow.h; sourceTree = SOURCE_ROOT; };
@@ -138,7 +143,6 @@
EE4A90190F1E1A17007DE4BF /* Check.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = Check.pdf; path = Resources/Check.pdf; sourceTree = SOURCE_ROOT; };
EE4A92050F1E83E9007DE4BF /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/QuickPreview.xib; sourceTree = "<group>"; };
EE4A92870F1E8EF9007DE4BF /* Credits.rtf */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = Credits.rtf; path = Resources/Credits.rtf; sourceTree = SOURCE_ROOT; };
- EE4A93D10F1F8825007DE4BF /* ShortcutRecorder.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ShortcutRecorder.framework; path = Frameworks/ShortcutRecorder.framework; sourceTree = SOURCE_ROOT; };
EE4A93D20F1F8825007DE4BF /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sparkle.framework; path = Frameworks/Sparkle.framework; sourceTree = SOURCE_ROOT; };
EE5A52C60F222C6400919974 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/StatusItemHelperWindow.xib; sourceTree = "<group>"; };
EE5A54680F23DF3C00919974 /* dsa_pub.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = dsa_pub.pem; path = Resources/dsa_pub.pem; sourceTree = "<group>"; };
@@ -150,6 +154,9 @@
EE71BBFF0F1F88B700F130A9 /* DBPrefsWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DBPrefsWindowController.m; path = ../collections/Controllers/DBPrefsWindowController.m; sourceTree = SOURCE_ROOT; };
EE71BC0A0F1F88E100F130A9 /* Shortcuts.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Shortcuts.png; path = "../collections/Resources/Preference Icons/Shortcuts.png"; sourceTree = SOURCE_ROOT; };
EE71BC0B0F1F88E100F130A9 /* Update.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = Update.tiff; path = "../collections/Resources/Preference Icons/Update.tiff"; sourceTree = SOURCE_ROOT; };
+ EE87B5050FE58ABC0058C68E /* OMHHumanReadableDate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OMHHumanReadableDate.h; sourceTree = "<group>"; };
+ EE87B5060FE58ABC0058C68E /* OMHHumanReadableDate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OMHHumanReadableDate.m; sourceTree = "<group>"; };
+ EEE8DB1C103DF29600195ECA /* ShortcutRecorder.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ShortcutRecorder.framework; path = Frameworks/ShortcutRecorder.framework; sourceTree = "<group>"; };
EEECB6740FAE1454004A596B /* AppController+CoreData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "AppController+CoreData.h"; path = "Source/AppController+CoreData.h"; sourceTree = SOURCE_ROOT; };
EEECB6750FAE1454004A596B /* AppController+CoreData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "AppController+CoreData.m"; path = "Source/AppController+CoreData.m"; sourceTree = SOURCE_ROOT; };
EEF418190F1D27A80037980E /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
@@ -162,8 +169,15 @@
files = (
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */,
EEF4181A0F1D27A80037980E /* Carbon.framework in Frameworks */,
- EE4A93D30F1F8825007DE4BF /* ShortcutRecorder.framework in Frameworks */,
EE4A93D40F1F8825007DE4BF /* Sparkle.framework in Frameworks */,
+ EEE8DB1D103DF29600195ECA /* ShortcutRecorder.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ EE29E98C1040874500651640 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -176,6 +190,9 @@
EE0F27E80F1D2AD100E0C0FF /* Views */,
EE0F27E90F1D2AE200E0C0FF /* Controllers */,
EE0F27EA0F1D2B0C00E0C0FF /* Models */,
+ EE29E9ED1040944F00651640 /* Unit Tests */,
+ EE87B5050FE58ABC0058C68E /* OMHHumanReadableDate.h */,
+ EE87B5060FE58ABC0058C68E /* OMHHumanReadableDate.m */,
);
name = Classes;
sourceTree = "<group>";
@@ -203,6 +220,7 @@
isa = PBXGroup;
children = (
8D1107320486CEB800E47090 /* Clyppan.app */,
+ EE29E98F1040874500651640 /* Unit tests.octest */,
);
name = Products;
sourceTree = "<group>";
@@ -216,6 +234,7 @@
29B97317FDCFA39411CA2CEA /* Resources */,
29B97323FDCFA39411CA2CEA /* Frameworks */,
19C28FACFE9D520D11CA2CBB /* Products */,
+ EE29E9901040874500651640 /* Unit tests-Info.plist */,
);
name = Clyppan;
sourceTree = "<group>";
@@ -332,6 +351,15 @@
name = Images;
sourceTree = "<group>";
};
+ EE29E9ED1040944F00651640 /* Unit Tests */ = {
+ isa = PBXGroup;
+ children = (
+ EE29E996104087A700651640 /* OMHHumanReadableDateTest.h */,
+ EE29E997104087A700651640 /* OMHHumanReadableDateTest.m */,
+ );
+ name = "Unit Tests";
+ sourceTree = "<group>";
+ };
EEECB6570FAE1050004A596B /* Window Controllers */ = {
isa = PBXGroup;
children = (
@@ -346,8 +374,8 @@
EEF417FD0F1D26D80037980E /* 3rd Party Frameworks */ = {
isa = PBXGroup;
children = (
- EE4A93D10F1F8825007DE4BF /* ShortcutRecorder.framework */,
EE4A93D20F1F8825007DE4BF /* Sparkle.framework */,
+ EEE8DB1C103DF29600195ECA /* ShortcutRecorder.framework */,
);
name = "3rd Party Frameworks";
sourceTree = "<group>";
@@ -374,6 +402,24 @@
productReference = 8D1107320486CEB800E47090 /* Clyppan.app */;
productType = "com.apple.product-type.application";
};
+ EE29E98E1040874500651640 /* Unit tests */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = EE29E9931040874600651640 /* Build configuration list for PBXNativeTarget "Unit tests" */;
+ buildPhases = (
+ EE29E98A1040874500651640 /* Resources */,
+ EE29E98B1040874500651640 /* Sources */,
+ EE29E98C1040874500651640 /* Frameworks */,
+ EE29E98D1040874500651640 /* ShellScript */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = "Unit tests";
+ productName = "Unit tests";
+ productReference = EE29E98F1040874500651640 /* Unit tests.octest */;
+ productType = "com.apple.product-type.bundle";
+ };
/* End PBXNativeTarget section */
/* Begin PBXProject section */
@@ -389,6 +435,7 @@
8D1107260486CEB800E47090 /* Clyppan */,
EE5A55050F24DD1900919974 /* Distribution */,
EE19C3430FA38DBF000537FE /* Build Documentation */,
+ EE29E98E1040874500651640 /* Unit tests */,
);
};
/* End PBXProject section */
@@ -414,6 +461,13 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ EE29E98A1040874500651640 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
@@ -430,6 +484,19 @@
shellPath = /bin/sh;
shellScript = "DOXYGEN_PATH=\"/Applications/Doxygen.app/Contents/Resources/doxygen\"\n\n$DOXYGEN_PATH $SOURCE_ROOT/Doxyfile\n\nopen \"Documentation/html/index.html\"";
};
+ EE29E98D1040874500651640 /* ShellScript */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "# Run the unit tests in this test bundle.\n\"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests\"\n";
+ };
EE5A55040F24DD1900919974 /* ShellScript */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
@@ -468,6 +535,16 @@
EE19C4E50FA4E5DA000537FE /* OMHGradientBackgroundView.m in Sources */,
EEECB6760FAE1454004A596B /* AppController+CoreData.m in Sources */,
EE3AA2250FAF8081002D747E /* 1.0.xcdatamodel in Sources */,
+ EE87B5070FE58ABC0058C68E /* OMHHumanReadableDate.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ EE29E98B1040874500651640 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ EE29E998104087A700651640 /* OMHHumanReadableDateTest.m in Sources */,
+ EE29E9A310408F0500651640 /* OMHHumanReadableDate.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -573,12 +650,12 @@
26FC0A890875C7B200E6366F /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
- ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_ENABLE_OBJC_GC = required;
- GCC_VERSION = com.apple.compilers.llvmgcc42;
+ GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
ONLY_ACTIVE_ARCH = YES;
@@ -591,18 +668,18 @@
26FC0A8A0875C7B200E6366F /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
- ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEPLOYMENT_POSTPROCESSING = NO;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_ENABLE_OBJC_GC = required;
GCC_OPTIMIZATION_LEVEL = s;
- GCC_VERSION = 4.2;
+ GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
PREBINDING = NO;
- SDKROOT = macosx10.5;
+ SDKROOT = macosx10.6;
SEPARATE_STRIP = NO;
STRIP_INSTALLED_PRODUCT = NO;
STRIP_STYLE = all;
@@ -630,6 +707,60 @@
};
name = Release;
};
+ EE29E9911040874600651640 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ COPY_PHASE_STRIP = NO;
+ FRAMEWORK_SEARCH_PATHS = "$(DEVELOPER_LIBRARY_DIR)/Frameworks";
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_FIX_AND_CONTINUE = NO;
+ GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+ GCC_MODEL_TUNING = G5;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Cocoa.framework/Headers/Cocoa.h";
+ INFOPLIST_FILE = "Unit tests-Info.plist";
+ INSTALL_PATH = "$(USER_LIBRARY_DIR)/Bundles";
+ OTHER_LDFLAGS = (
+ "-framework",
+ Cocoa,
+ "-framework",
+ SenTestingKit,
+ );
+ PREBINDING = NO;
+ PRODUCT_NAME = "Unit tests";
+ WRAPPER_EXTENSION = octest;
+ };
+ name = Debug;
+ };
+ EE29E9921040874600651640 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ COPY_PHASE_STRIP = YES;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ FRAMEWORK_SEARCH_PATHS = "$(DEVELOPER_LIBRARY_DIR)/Frameworks";
+ GCC_ENABLE_FIX_AND_CONTINUE = NO;
+ GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+ GCC_MODEL_TUNING = G5;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Cocoa.framework/Headers/Cocoa.h";
+ INFOPLIST_FILE = "Unit tests-Info.plist";
+ INSTALL_PATH = "$(USER_LIBRARY_DIR)/Bundles";
+ OTHER_LDFLAGS = (
+ "-framework",
+ Cocoa,
+ "-framework",
+ SenTestingKit,
+ );
+ PREBINDING = NO;
+ PRODUCT_NAME = "Unit tests";
+ WRAPPER_EXTENSION = octest;
+ ZERO_LINK = NO;
+ };
+ name = Release;
+ };
EE5A55060F24DD1A00919974 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
@@ -681,6 +812,15 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
+ EE29E9931040874600651640 /* Build configuration list for PBXNativeTarget "Unit tests" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ EE29E9911040874600651640 /* Debug */,
+ EE29E9921040874600651640 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
EE5A550D0F24DD3000919974 /* Build configuration list for PBXAggregateTarget "Distribution" */ = {
isa = XCConfigurationList;
buildConfigurations = (
View
46 OMHHumanReadableDate.h
@@ -0,0 +1,46 @@
+/**
+ * @file OMHHumanRedableDate.h
+ * @author Ole Morten Halvorsen
+ *
+ * @section LICENSE
+ * Copyright (c) 2009, Ole Morten Halvorsen
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice, this list
+ * of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice, this list
+ * of conditions and the following disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ * - Neither the name of Clyppan nor the names of its contributors may be used to endorse or
+ * promote products derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import <Cocoa/Cocoa.h>
+
+#define MINUTE_IN_SECONDS 60
+#define HOUR_IN_SECONDS (60 * MINUTE_IN_SECONDS)
+#define DAY_IN_SECONDS (24 * HOUR_IN_SECONDS)
+#define WEEK_IN_SECONDS (7 * DAY_IN_SECONDS)
+
+@interface OMHHumanReadableDate : NSObject
+{
+}
+
++ (NSString *) dateToHumanReadableString:(NSDate *)date;
++ (NSString *) dateToHumanReadableString:(NSDate *)date format:(NSString *)format;
+
+@end
View
89 OMHHumanReadableDate.m
@@ -0,0 +1,89 @@
+/**
+ * @file OMHHumanRedableDate.h
+ * @author Ole Morten Halvorsen
+ *
+ * @section LICENSE
+ * Copyright (c) 2009, Ole Morten Halvorsen
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice, this list
+ * of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright notice, this list
+ * of conditions and the following disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ * - Neither the name of Clyppan nor the names of its contributors may be used to endorse or
+ * promote products derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "OMHHumanReadableDate.h"
+
+
+@implementation OMHHumanReadableDate
+
++ (NSString *) dateToHumanReadableString:(NSDate *)date
+{
+ return [self dateToHumanReadableString:date format:@"%i %@ ago"];
+}
+
++ (NSString *) dateToHumanReadableString:(NSDate *)date format:(NSString *)format
+{
+ // TODO: Add X months ago
+ NSTimeInterval secondsSinceNow = [[NSDate date] timeIntervalSinceDate:date];
+
+ NSLog( @"Seconds: %f", secondsSinceNow );
+
+ // if date less than a minute return "less than a minute ago"
+ if ( secondsSinceNow < MINUTE_IN_SECONDS )
+ return @"less than a minute ago";
+
+ NSInteger timePart = 0;
+ NSString *timeType = nil;
+ if ( secondsSinceNow <= HOUR_IN_SECONDS )
+ {
+ timeType = @"minutes";
+ timePart = (NSInteger) round( secondsSinceNow / 60 );
+ if ( timePart == 1 )
+ timeType = @"minute";
+ }
+
+ if ( secondsSinceNow <= DAY_IN_SECONDS && secondsSinceNow > HOUR_IN_SECONDS )
+ {
+ timeType = @"hours";
+ timePart = (NSInteger) round( secondsSinceNow / 3600 );
+ if ( timePart == 1 )
+ timeType = @"hour";
+ }
+
+ if ( secondsSinceNow <= WEEK_IN_SECONDS && secondsSinceNow > DAY_IN_SECONDS )
+ {
+ timeType = @"days";
+ timePart = (NSInteger) round( secondsSinceNow / ( 3600 * 24 ) );
+ if ( timePart == 1 )
+ timeType = @"day";
+ }
+
+ if ( timePart != 0 )
+ return [NSString stringWithFormat:format, timePart, timeType];
+
+
+ // if date less than a week ago return "x days ago"
+
+ return [date descriptionWithCalendarFormat:@"%Y-%m-%d %H:%M:%S"
+ timeZone:nil
+ locale:[[NSUserDefaults standardUserDefaults] dictionaryRepresentation]];
+}
+@end
View
16 OMHHumanReadableDateTest.h
@@ -0,0 +1,16 @@
+//
+// OMHHumanReadableDateTest.h
+// Clyppan
+//
+// Created by Ole Morten Halvorsen on 22/08/2009.
+// Copyright 2009 __MyCompanyName__. All rights reserved.
+//
+
+#import <SenTestingKit/SenTestingKit.h>
+
+
+@interface OMHHumanReadableDateTest : SenTestCase {
+
+}
+
+@end
View
105 OMHHumanReadableDateTest.m
@@ -0,0 +1,105 @@
+//
+// OMHHumanReadableDateTest.m
+// Clyppan
+//
+// Created by Ole Morten Halvorsen on 22/08/2009.
+// Copyright 2009 __MyCompanyName__. All rights reserved.
+//
+
+#import "OMHHumanReadableDateTest.h"
+#import "OMHHumanReadableDate.h"
+
+@implementation OMHHumanReadableDateTest
+
+- (void) testLessThanAMinute
+{
+ NSDate *date = [NSDate date];
+ NSString *string = [OMHHumanReadableDate dateToHumanReadableString:date];
+
+ STAssertEqualObjects( string, @"less than a minute ago", @"Less than a minute ago" );
+}
+
+- (void) test59SecondsAgo
+{
+ NSTimeInterval now = [NSDate timeIntervalSinceReferenceDate];
+ NSDate *date = [NSDate dateWithTimeIntervalSinceReferenceDate:now - 59];
+ NSString *string = [OMHHumanReadableDate dateToHumanReadableString:date];
+
+ STAssertEqualObjects( string, @"less than a minute ago", @"Less than a minute ago" );
+}
+
+- (void) test1MinuteAgo
+{
+ NSTimeInterval now = [NSDate timeIntervalSinceReferenceDate];
+ NSDate *date = [NSDate dateWithTimeIntervalSinceReferenceDate:now - 60];
+ NSString *string = [OMHHumanReadableDate dateToHumanReadableString:date];
+
+ STAssertEqualObjects( string, @"1 minute ago", @"1 Minute ago" );
+}
+
+- (void) test2Minutes59secondsAgo
+{
+ NSTimeInterval now = [NSDate timeIntervalSinceReferenceDate];
+ NSDate *date = [NSDate dateWithTimeIntervalSinceReferenceDate:now - 179];
+ NSString *string = [OMHHumanReadableDate dateToHumanReadableString:date];
+
+ STAssertEqualObjects( string, @"3 minutes ago", @"2 Minutes 59 seconds ago" );
+}
+
+- (void) test3MinutesAgo
+{
+ NSTimeInterval now = [NSDate timeIntervalSinceReferenceDate];
+ NSDate *date = [NSDate dateWithTimeIntervalSinceReferenceDate:now - 180];
+ NSString *string = [OMHHumanReadableDate dateToHumanReadableString:date];
+
+ STAssertEqualObjects( string, @"3 minutes ago", @"3 Minutes ago" );
+}
+
+- (void) test59MinutesAgo
+{
+ NSTimeInterval now = [NSDate timeIntervalSinceReferenceDate];
+ NSDate *date = [NSDate dateWithTimeIntervalSinceReferenceDate:now - (59 * 60)];
+ NSString *string = [OMHHumanReadableDate dateToHumanReadableString:date];
+
+ STAssertEqualObjects( string, @"59 minutes ago", @"59 Minutes ago" );
+}
+
+- (void) test1HourAgo
+{
+ NSTimeInterval now = [NSDate timeIntervalSinceReferenceDate];
+ NSDate *date = [NSDate dateWithTimeIntervalSinceReferenceDate:now - 3600];
+ NSString *string = [OMHHumanReadableDate dateToHumanReadableString:date];
+
+ STAssertEqualObjects( string, @"1 hour ago", @"1 hour ago" );
+}
+
+- (void) test2HoursAgo
+{
+ NSTimeInterval now = [NSDate timeIntervalSinceReferenceDate];
+ NSDate *date = [NSDate dateWithTimeIntervalSinceReferenceDate:now - 7199];
+ NSString *string = [OMHHumanReadableDate dateToHumanReadableString:date];
+
+ STAssertEqualObjects( string, @"2 hours ago", @"2 hours ago" );
+}
+
+- (void) test1DayAgo
+{
+ NSTimeInterval now = [NSDate timeIntervalSinceReferenceDate];
+ NSDate *date = [NSDate dateWithTimeIntervalSinceReferenceDate:now - (3600 * 24)];
+ NSString *string = [OMHHumanReadableDate dateToHumanReadableString:date];
+
+ STAssertEqualObjects( string, @"1 day ago", @"1 day ago" );
+}
+
+- (void) test2DaysAgo
+{
+ NSTimeInterval now = [NSDate timeIntervalSinceReferenceDate];
+ NSDate *date = [NSDate dateWithTimeIntervalSinceReferenceDate:now - (2 * 3600 * 24)];
+ NSString *string = [OMHHumanReadableDate dateToHumanReadableString:date];
+
+ STAssertEqualObjects( string, @"2 days ago", @"2 days ago" );
+}
+
+
+
+@end
View
BIN  Resources/clyppan-small.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
8 Source/OMHClipping.m
@@ -31,7 +31,7 @@
#import "OMHClipping.h"
-
+#import "OMHHumanReadableDate.h"
@interface OMHClipping( private )
@@ -138,11 +138,9 @@ - (NSImage *) image
- (NSString *) meta
{
- NSString *dateString = [self.created descriptionWithCalendarFormat:@"%Y-%m-%d %H:%M:%S"
- timeZone:nil
- locale:[[NSUserDefaults standardUserDefaults] dictionaryRepresentation]];
+ NSString *dateString = [OMHHumanReadableDate dateToHumanReadableString:self.created];
- return [NSString stringWithFormat:@"Added on %@ from %@", dateString, self.createdFromApp];
+ return [NSString stringWithFormat:@"Added %@ from %@", dateString, self.createdFromApp];
}
#pragma mark -
View
2  Source/OMHClippingController.m
@@ -260,7 +260,7 @@ - (void) markObjectAsCurrent:(OMHClipping *)object;
[self markObjectAsCurrentWithoutClipboard:object];
NSPasteboard *pb = [NSPasteboard generalPasteboard];
-
+
[pb declareTypes:[NSArray arrayWithObject:NSStringPboardType] owner:nil];
[pb setString:[self.currentActiveItem.content string] forType:NSStringPboardType];
View
22 Unit tests-Info.plist
@@ -0,0 +1,22 @@
+<?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>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>${EXECUTABLE_NAME}</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.yourcompany.${PRODUCT_NAME:rfc1034identifier}</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundlePackageType</key>
+ <string>BNDL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>1</string>
+</dict>
+</plist>
Please sign in to comment.
Something went wrong with that request. Please try again.