From 8eaeb4099751c2687e01a0d3fd620cb7f6b75c22 Mon Sep 17 00:00:00 2001 From: Valentin Dornauer Date: Tue, 10 Apr 2012 16:32:15 +0200 Subject: [PATCH 1/6] Update XCode Project to Mac OS 10.7 and XCode 4.3.2 Also remove some obsolete build parameters (suggested by XCode) --- scrup.xcodeproj/project.pbxproj | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/scrup.xcodeproj/project.pbxproj b/scrup.xcodeproj/project.pbxproj index 3d53ce5..b171c86 100644 --- a/scrup.xcodeproj/project.pbxproj +++ b/scrup.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 45; + objectVersion = 46; objects = { /* Begin PBXAggregateTarget section */ @@ -554,8 +554,11 @@ /* Begin PBXProject section */ 29B97313FDCFA39411CA2CEA /* Project object */ = { isa = PBXProject; + attributes = { + LastUpgradeCheck = 0430; + }; buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "scrup" */; - compatibilityVersion = "Xcode 3.1"; + compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 1; knownRegions = ( @@ -774,7 +777,6 @@ buildSettings = { COPY_PHASE_STRIP = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_ENABLE_FIX_AND_CONTINUE = NO; PRODUCT_NAME = Distribution; ZERO_LINK = NO; }; @@ -787,14 +789,12 @@ ARCHS = "$(NATIVE_ARCH_ACTUAL)"; COPY_PHASE_STRIP = NO; GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; GCC_ENABLE_OBJC_GC = supported; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 0; INSTALL_PATH = /usr/local/lib; - PREBINDING = NO; PRODUCT_NAME = pngcrush; - SDKROOT = macosx10.6; + SDKROOT = macosx; VALID_ARCHS = "i386 ppc ppc64 ppc7400 ppc970 x86_64"; }; name = Debug; @@ -810,7 +810,6 @@ GCC_DEBUGGING_SYMBOLS = used; GCC_DYNAMIC_NO_PIC = YES; GCC_ENABLE_CPP_EXCEPTIONS = NO; - GCC_ENABLE_FIX_AND_CONTINUE = NO; GCC_ENABLE_OBJC_GC = supported; GCC_ENABLE_SSE3_EXTENSIONS = YES; GCC_ENABLE_SSE41_EXTENSIONS = YES; @@ -820,9 +819,8 @@ GCC_OPTIMIZATION_LEVEL = 3; GCC_UNROLL_LOOPS = YES; INSTALL_PATH = /usr/local/lib; - PREBINDING = NO; PRODUCT_NAME = pngcrush; - SDKROOT = macosx10.6; + SDKROOT = macosx; VALID_ARCHS = "i386 ppc ppc64 ppc7400 ppc970 x86_64"; ZERO_LINK = NO; }; @@ -839,7 +837,6 @@ "\"$(SRCROOT)/frameworks\"", ); GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; GCC_ENABLE_OBJC_GC = required; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 0; @@ -853,7 +850,7 @@ INFOPLIST_FILE = resources/Info.plist; INSTALL_PATH = "$(HOME)/Applications"; PRODUCT_NAME = Scrup; - SDKROOT = macosx10.6; + SDKROOT = macosx; }; name = Debug; }; @@ -881,7 +878,7 @@ INFOPLIST_FILE = resources/Info.plist; INSTALL_PATH = "$(HOME)/Applications"; PRODUCT_NAME = Scrup; - SDKROOT = macosx10.6; + SDKROOT = macosx; }; name = Release; }; @@ -894,8 +891,7 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; ONLY_ACTIVE_ARCH = YES; - PREBINDING = NO; - SDKROOT = macosx10.5; + SDKROOT = macosx; }; name = Debug; }; @@ -906,8 +902,7 @@ GCC_C_LANGUAGE_STANDARD = c99; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; - PREBINDING = NO; - SDKROOT = macosx10.5; + SDKROOT = macosx; }; name = Release; }; From 2ef2929609d96a2ebc3ef805be6d356d9f5ab552 Mon Sep 17 00:00:00 2001 From: Valentin Dornauer Date: Tue, 10 Apr 2012 17:18:56 +0200 Subject: [PATCH 2/6] Send base64 encoded security token in the HTTP-Header This adds a new NSTextfield for a "secret key" which is sent with the image's upload request. OpenSSL is used to base64-encode the token, as a HTTP Header needs to be 7Bit ASCII clean, as per RFC1945. --- resources/MainMenu.xib | 2155 ++++++++++++------------------- scrup.xcodeproj/project.pbxproj | 4 + src/DPAppDelegate.h | 1 + src/DPAppDelegate.m | 28 + 4 files changed, 850 insertions(+), 1338 deletions(-) diff --git a/resources/MainMenu.xib b/resources/MainMenu.xib index b1cdb43..031a594 100644 --- a/resources/MainMenu.xib +++ b/resources/MainMenu.xib @@ -2,10 +2,10 @@ 1050 - 10C540 - 740 - 1038.25 - 458.00 + 11D50 + 2182 + 1138.32 + 568.00 YES @@ -13,33 +13,39 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.imagekit.ibplugin - + YES - 740 - 1.1 + 2182 + 1117 - + YES - - - - - + NSSegmentedCell + NSToolbar + NSSegmentedControl + NSMenuItem + NSMenu + NSTextFieldCell + NSButtonCell + NSButton + NSBox + IKImageView + NSCustomView + NSCustomObject + NSView + NSWindowTemplate + NSTextField + NSUserDefaultsController YES - com.apple.imagekit.ibplugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.imagekit.ibplugin - YES - - YES - - - YES - + PluginDependencyRecalculationVersion + YES @@ -994,7 +1000,7 @@ 3 2 - {{452, 634}, {542, 210}} + {{452, 634}, {542, 258}} 1677721600 Scrup NSWindow @@ -1011,31 +1017,29 @@ 1 YES - - + YES + - - YES - - - YES - + + - {1.79769e+308, 1.79769e+308} + {542, 210} - + 256 YES 268 - {{17, 171}, {101, 17}} + {{17, 219}, {101, 17}} + + YES 68288064 @@ -1070,8 +1074,10 @@ 266 - {{123, 168}, {399, 22}} + {{123, 216}, {399, 22}} + + YES -1804468671 @@ -1101,8 +1107,10 @@ 268 - {{120, 143}, {120, 17}} + {{120, 191}, {120, 17}} + + YES 68288064 @@ -1117,8 +1125,10 @@ 268 - {{120, 121}, {76, 14}} + {{120, 169}, {76, 14}} + + YES 70385217 @@ -1137,8 +1147,10 @@ 266 - {{198, 107}, {327, 28}} + {{198, 155}, {327, 28}} + + YES 67239424 @@ -1157,8 +1169,10 @@ 265 - {{277, 144}, {248, 11}} + {{277, 192}, {248, 11}} + + YES 68288064 @@ -1180,8 +1194,10 @@ 268 - {{17, 67}, {101, 17}} + {{17, 65}, {101, 17}} + + YES 68288064 @@ -1196,8 +1212,10 @@ 268 - {{123, 22}, {399, 60}} + {{123, 20}, {399, 60}} + + YES -2078147071 @@ -1215,7 +1233,7 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA NSFont NSParagraphStyle - + YES Helvetica @@ -1275,7 +1293,7 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA NSLink NSParagraphStyle - + YES @@ -1303,13 +1321,79 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA + + + 268 + {{71, 128}, {47, 17}} + + + + _NS:1505 + YES + + 68288064 + 272630784 + Secret: + + _NS:1505 + + + + + + + + 268 + {{123, 125}, {399, 22}} + + + + _NS:9 + YES + + -1804468671 + 272630784 + + + _NS:9 + + YES + + + + + + + 265 + {{120, 95}, {405, 22}} + + + + YES + + 67239424 + 4460544 + Pre-shared secret which authenticates you to the server. Be sure to use a secure connection (i.e. HTTPS) or someone might capture your secret key. + + + + + 4 + MCAwLjUzAA + + + - {542, 210} + {542, 258} + + + - {{0, 0}, {1440, 878}} + {{0, 0}, {1680, 1028}} {542, 251} - {1.79769e+308, 1.79769e+308} + {10000000000000, 10000000000000} mainWindow + YES @@ -1906,7 +1990,7 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA NSView - + 268 YES @@ -1961,7 +2045,7 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA 290 - {{199.405, 51}, {435.595, 23}} + {{199.405, 51}, {435.59500000000003, 23}} YES @@ -2026,7 +2110,6 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA 17 {{632, 73}, {5, 406}} - {{0, 27.285}, {5, 406}} {0, 0} @@ -2324,7 +2407,6 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA {646, 520} - NSView @@ -2334,6 +2416,38 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA YES + + + delegate + + + + 524 + + + + orderFrontStandardAboutPanel: + + + + 142 + + + + terminate: + + + + 448 + + + + terminate: + + + + 518 + performMiniaturize: @@ -2350,14 +2464,6 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA 39 - - - orderFrontStandardAboutPanel: - - - - 142 - toggleContinuousSpellChecking: @@ -2552,19 +2658,35 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA - terminate: - - + performClose: + + - 448 + 860 - - terminate: - - + + delegate + + - 518 + 546 + + + + value: paused + + + + + + value: paused + value + paused + 2 + + + 698 @@ -2582,30 +2704,6 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA 523 - - - delegate - - - - 524 - - - - delegate - - - - 546 - - - - delegate - - - - 627 - toolbar @@ -2638,6 +2736,78 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA 639 + + + orderFrontSettingsWindow: + + + + 988 + + + + generalSettingsView + + + + 1018 + + + + receiverURL + + + + 1038 + + + + pauseMenuItem + + + + 1043 + + + + processingSettingsView + + + + 1135 + + + + preprocessingUIView + + + + 1176 + + + + preprocessingWindowController + + + + 1182 + + + + receiverSecret + + + + 1300 + + + + delegate + + + + 627 + value: showInMenuBar @@ -2658,7 +2828,7 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA NSNotApplicablePlaceholder NSNullPlaceholder - + YES @@ -2671,6 +2841,22 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA 668 + + + enabled: showInDock + + + + + + enabled: showInDock + enabled + showInDock + 2 + + + 873 + enabled: showInMenuBar @@ -2691,7 +2877,7 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA NSNotApplicablePlaceholder NSNullPlaceholder - + YES @@ -2724,7 +2910,7 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA NSNotApplicablePlaceholder NSNullPlaceholder - + YES @@ -2739,39 +2925,15 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA - value: paused - + value: openAtLogin + - + - value: paused + value: openAtLogin value - paused - 2 - - - 698 - - - - performClose: - - - - 860 - - - - value: showInDock - - - - - - value: showInDock - value - showInDock + openAtLogin YES @@ -2780,35 +2942,54 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA NSNoSelectionPlaceholder NSNotApplicablePlaceholder NSNullPlaceholder + NSValidatesImmediately - + YES + 2 - 871 + 980 - enabled: showInDock - + value: showInDock + - + - enabled: showInDock - enabled + value: showInDock + value showInDock + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + + + YES + + + + + + 2 - 873 + 871 @@ -2834,49 +3015,6 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA 953 - - - value: openAtLogin - - - - - - value: openAtLogin - value - openAtLogin - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - NSValidatesImmediately - - - YES - - - - - - - - 2 - - - 980 - - - - orderFrontSettingsWindow: - - - - 988 - checkForUpdates: @@ -2887,15 +3025,15 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA - value: automaticallyDownloadsUpdates - + value: automaticallyChecksForUpdates + - + - value: automaticallyDownloadsUpdates + value: automaticallyChecksForUpdates value - automaticallyDownloadsUpdates + automaticallyChecksForUpdates YES @@ -2906,7 +3044,7 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA NSNullPlaceholder NSValidatesImmediately - + YES @@ -2918,19 +3056,19 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA 2 - 1005 + 1006 - value: automaticallyChecksForUpdates - + value: automaticallyDownloadsUpdates + - + - value: automaticallyChecksForUpdates + value: automaticallyDownloadsUpdates value - automaticallyChecksForUpdates + automaticallyDownloadsUpdates YES @@ -2941,7 +3079,7 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA NSNullPlaceholder NSValidatesImmediately - + YES @@ -2953,7 +3091,7 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA 2 - 1006 + 1005 @@ -2975,7 +3113,7 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA NSNotApplicablePlaceholder NSNullPlaceholder - + YES @@ -2989,28 +3127,35 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA 1007 - - generalSettingsView - - - - 1018 - - - - receiverURL - - - - 1038 - - - - pauseMenuItem - - + + value: values.recvURL + + + + + + value: values.recvURL + value + values.recvURL + + YES + + YES + NSMultipleValuesPlaceholder + NSNullPlaceholder + NSValidatesImmediately + + + YES + <multiple values> + http://your.host/recv.php?name={filename} + + + + 2 + - 1043 + 1134 @@ -3033,7 +3178,7 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA NSNullPlaceholder NSValidatesImmediately - + YES @@ -3088,7 +3233,7 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA NSNullPlaceholder NSValidatesImmediately - + YES @@ -3123,7 +3268,7 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA NSNullPlaceholder NSValidatesImmediately - + YES @@ -3137,45 +3282,6 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA 1123 - - - value: values.recvURL - - - - - - value: values.recvURL - value - values.recvURL - - YES - - YES - NSMultipleValuesPlaceholder - NSNullPlaceholder - NSValidatesImmediately - - - YES - <multiple values> - http://your.host/recv.php?name={filename} - - - - 2 - - - 1134 - - - - processingSettingsView - - - - 1135 - value: trashAfterSuccessfulUpload @@ -3197,7 +3303,7 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA NSNullPlaceholder NSValidatesImmediately - + YES @@ -3211,41 +3317,6 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA 1143 - - - value: enablePostProcessShellCommand - - - - - - value: enablePostProcessShellCommand - value - enablePostProcessShellCommand - - YES - - YES - NSMultipleValuesPlaceholder - NSNoSelectionPlaceholder - NSNotApplicablePlaceholder - NSNullPlaceholder - NSValidatesImmediately - - - YES - - - - - - - - 2 - - - 1165 - value: postProcessShellCommand @@ -3286,7 +3357,7 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA NSNotApplicablePlaceholder NSNullPlaceholder - + YES @@ -3299,73 +3370,17 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA 1167 - - - preprocessingUIView - - - - 1176 - - - - filenameTextField - - - - 1178 - - - - performCommit: - - - - 1179 - - - - performCancel: - - - - 1180 - - - - imageView - - - - 1181 - - - - preprocessingWindowController - - - - 1182 - - - - appDelegate - - - - 1183 - - value: enablePreprocessingUI - + value: enablePostProcessShellCommand + - + - value: enablePreprocessingUI + value: enablePostProcessShellCommand value - enablePreprocessingUI + enablePostProcessShellCommand YES @@ -3376,19 +3391,19 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA NSNullPlaceholder NSValidatesImmediately - + YES - - - - + + + + 2 - 1191 + 1165 @@ -3408,19 +3423,59 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA - switchToolMode: + crop: + + + + 1247 + + + + filenameTextField - + - 1227 + 1178 - crop: - - + performCommit: + + - 1247 + 1179 + + + + performCancel: + + + + 1180 + + + + imageView + + + + 1181 + + + + appDelegate + + + + 1183 + + + + switchToolMode: + + + + 1227 @@ -3470,6 +3525,41 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA 1293 + + + value: enablePreprocessingUI + + + + + + value: enablePreprocessingUI + value + enablePreprocessingUI + + YES + + YES + NSMultipleValuesPlaceholder + NSNoSelectionPlaceholder + NSNotApplicablePlaceholder + NSNullPlaceholder + NSValidatesImmediately + + + YES + + + + + + + + 2 + + + 1191 + @@ -3853,12 +3943,15 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA YES - - + + + + + @@ -5068,12 +5161,56 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA + + 1294 + + + YES + + + + + + 1295 + + + + + 1296 + + + YES + + + + + + 1297 + + + + + 1298 + + + YES + + + + + + 1299 + + + YES YES + -1.IBPluginDependency + -2.IBPluginDependency -3.IBPluginDependency 1000.IBPluginDependency 1001.IBPluginDependency @@ -5090,7 +5227,6 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA 1028.IBPluginDependency 1029.IBPluginDependency 103.IBPluginDependency - 103.ImportedFromIB2 1030.IBPluginDependency 1041.IBPluginDependency 1042.IBPluginDependency @@ -5102,12 +5238,8 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA 1052.IBPluginDependency 1053.IBPluginDependency 1054.IBPluginDependency - 106.IBEditorWindowLastContentRect 106.IBPluginDependency - 106.ImportedFromIB2 - 106.editorWindowContentRectSynchronizationRect 1061.IBPluginDependency - 1107.IBEditorWindowLastContentRect 1107.IBPluginDependency 1109.IBPluginDependency 1110.IBPluginDependency @@ -5131,7 +5263,6 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA 1150.IBPluginDependency 1152.IBPluginDependency 1153.IBPluginDependency - 1168.IBEditorWindowLastContentRect 1168.IBPluginDependency 1169.IBAttributePlaceholdersKey 1169.IBPluginDependency @@ -5141,6 +5272,7 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA 1173.IBPluginDependency 1174.IBPluginDependency 1175.IBPluginDependency + 1177.IBPluginDependency 1184.IBPluginDependency 1185.IBPluginDependency 1186.IBPluginDependency @@ -5161,9 +5293,6 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA 1213.IBPluginDependency 1214.IBPluginDependency 1225.IBPluginDependency - 1225.IBSegmentedControlTracker.RoundRobinState - 1225.IBSegmentedControlTracker.WasGrowing - 1225.ImportedFromIB2 1226.IBPluginDependency 1226.IBSegmentedControlInspectorSelectedSegmentMetadataKey 1231.IBPluginDependency @@ -5175,156 +5304,81 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA 1246.IBPluginDependency 1289.IBPluginDependency 129.IBPluginDependency - 129.ImportedFromIB2 1290.IBPluginDependency - 130.IBEditorWindowLastContentRect + 1294.IBPluginDependency + 1295.IBPluginDependency + 1296.IBPluginDependency + 1297.IBPluginDependency + 1298.IBPluginDependency + 1299.IBPluginDependency 130.IBPluginDependency - 130.ImportedFromIB2 - 130.editorWindowContentRectSynchronizationRect 131.IBPluginDependency - 131.ImportedFromIB2 134.IBPluginDependency - 134.ImportedFromIB2 136.IBPluginDependency - 136.ImportedFromIB2 143.IBPluginDependency - 143.ImportedFromIB2 144.IBPluginDependency - 144.ImportedFromIB2 145.IBPluginDependency - 145.ImportedFromIB2 149.IBPluginDependency - 149.ImportedFromIB2 150.IBPluginDependency - 150.ImportedFromIB2 19.IBPluginDependency - 19.ImportedFromIB2 195.IBPluginDependency - 195.ImportedFromIB2 196.IBPluginDependency - 196.ImportedFromIB2 197.IBPluginDependency - 197.ImportedFromIB2 198.IBPluginDependency - 198.ImportedFromIB2 199.IBPluginDependency - 199.ImportedFromIB2 - 200.IBEditorWindowLastContentRect 200.IBPluginDependency - 200.ImportedFromIB2 - 200.editorWindowContentRectSynchronizationRect 201.IBPluginDependency - 201.ImportedFromIB2 202.IBPluginDependency - 202.ImportedFromIB2 203.IBPluginDependency - 203.ImportedFromIB2 204.IBPluginDependency - 204.ImportedFromIB2 - 205.IBEditorWindowLastContentRect 205.IBPluginDependency - 205.ImportedFromIB2 - 205.editorWindowContentRectSynchronizationRect 206.IBPluginDependency - 206.ImportedFromIB2 207.IBPluginDependency - 207.ImportedFromIB2 208.IBPluginDependency - 208.ImportedFromIB2 209.IBPluginDependency - 209.ImportedFromIB2 210.IBPluginDependency - 210.ImportedFromIB2 211.IBPluginDependency - 211.ImportedFromIB2 - 212.IBEditorWindowLastContentRect 212.IBPluginDependency - 212.ImportedFromIB2 - 212.editorWindowContentRectSynchronizationRect 213.IBPluginDependency - 213.ImportedFromIB2 214.IBPluginDependency - 214.ImportedFromIB2 215.IBPluginDependency - 215.ImportedFromIB2 216.IBPluginDependency - 216.ImportedFromIB2 217.IBPluginDependency - 217.ImportedFromIB2 218.IBPluginDependency - 218.ImportedFromIB2 219.IBPluginDependency - 219.ImportedFromIB2 - 220.IBEditorWindowLastContentRect 220.IBPluginDependency - 220.ImportedFromIB2 - 220.editorWindowContentRectSynchronizationRect 221.IBPluginDependency - 221.ImportedFromIB2 23.IBPluginDependency - 23.ImportedFromIB2 236.IBPluginDependency - 236.ImportedFromIB2 239.IBPluginDependency - 239.ImportedFromIB2 - 24.IBEditorWindowLastContentRect 24.IBPluginDependency - 24.ImportedFromIB2 - 24.editorWindowContentRectSynchronizationRect - 29.IBEditorWindowLastContentRect 29.IBPluginDependency - 29.ImportedFromIB2 - 29.WindowOrigin - 29.editorWindowContentRectSynchronizationRect 295.IBPluginDependency - 296.IBEditorWindowLastContentRect 296.IBPluginDependency - 296.editorWindowContentRectSynchronizationRect 297.IBPluginDependency 298.IBPluginDependency 346.IBPluginDependency - 346.ImportedFromIB2 348.IBPluginDependency - 348.ImportedFromIB2 - 349.IBEditorWindowLastContentRect 349.IBPluginDependency - 349.ImportedFromIB2 - 349.editorWindowContentRectSynchronizationRect 350.IBPluginDependency - 350.ImportedFromIB2 351.IBPluginDependency - 351.ImportedFromIB2 354.IBPluginDependency - 354.ImportedFromIB2 - 367.IBEditorWindowLastContentRect 367.IBPluginDependency 367.IBWindowTemplateEditedContentRect 367.NSWindowTemplate.visibleAtLaunch - 367.editorWindowContentRectSynchronizationRect - 367.windowTemplate.hasMaxSize - 367.windowTemplate.hasMinSize - 367.windowTemplate.maxSize - 367.windowTemplate.minSize 368.IBPluginDependency + 373.IBPluginDependency 375.IBPluginDependency 5.IBPluginDependency - 5.ImportedFromIB2 - 513.IBEditorWindowLastContentRect 513.IBPluginDependency 514.IBPluginDependency 515.IBPluginDependency 516.IBPluginDependency + 521.IBPluginDependency 56.IBPluginDependency - 56.ImportedFromIB2 - 57.IBEditorWindowLastContentRect 57.IBPluginDependency - 57.ImportedFromIB2 - 57.editorWindowContentRectSynchronizationRect 58.IBPluginDependency - 58.ImportedFromIB2 - 619.IBEditorWindowLastContentRect 619.IBPluginDependency - 629.IBEditorWindowLastContentRect 629.IBPluginDependency 634.IBPluginDependency 635.IBPluginDependency @@ -5339,7 +5393,6 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA 649.IBPluginDependency 676.IBPluginDependency 677.IBPluginDependency - 757.IBEditorWindowLastContentRect 757.IBPluginDependency 758.IBPluginDependency 759.IBPluginDependency @@ -5352,7 +5405,6 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA 766.IBPluginDependency 767.IBPluginDependency 768.IBPluginDependency - 769.IBEditorWindowLastContentRect 769.IBPluginDependency 770.IBPluginDependency 771.IBPluginDependency @@ -5386,21 +5438,16 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA 799.IBPluginDependency 800.IBPluginDependency 801.IBPluginDependency - 846.IBEditorWindowLastContentRect 846.IBPluginDependency - 846.ImportedFromIB2 - 846.editorWindowContentRectSynchronizationRect 850.IBPluginDependency - 850.ImportedFromIB2 883.IBPluginDependency 92.IBPluginDependency - 92.ImportedFromIB2 + 951.IBPluginDependency 952.IBPluginDependency - 952.ImportedFromIB2 991.IBPluginDependency 999.IBPluginDependency - + YES com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -5418,7 +5465,6 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -5430,12 +5476,8 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{431, 830}, {64, 6}} com.apple.InterfaceBuilder.CocoaPlugin - - {{596, 852}, {216, 23}} com.apple.InterfaceBuilder.CocoaPlugin - {{128, 163}, {542, 374}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -5459,7 +5501,8 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{191, 282}, {646, 520}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin ToolTip @@ -5483,6 +5526,7 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin ToolTip @@ -5524,9 +5568,6 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - - - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -5538,156 +5579,79 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{509, 573}, {64, 6}} com.apple.InterfaceBuilder.CocoaPlugin - - {{436, 809}, {64, 6}} com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - {{442, 573}, {272, 83}} com.apple.InterfaceBuilder.CocoaPlugin - - {{608, 612}, {275, 83}} com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - {{200, 593}, {242, 243}} com.apple.InterfaceBuilder.CocoaPlugin - - {{365, 632}, {243, 243}} com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - {{442, 573}, {152, 43}} com.apple.InterfaceBuilder.CocoaPlugin - - {{608, 612}, {167, 43}} com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - {{442, 573}, {238, 103}} com.apple.InterfaceBuilder.CocoaPlugin - - {{608, 612}, {241, 103}} com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - {{360, 763}, {193, 73}} com.apple.InterfaceBuilder.CocoaPlugin - - {{525, 802}, {197, 73}} - {{14, 836}, {478, 20}} com.apple.InterfaceBuilder.CocoaPlugin - - {74, 862} - {{11, 977}, {478, 20}} com.apple.InterfaceBuilder.CocoaPlugin - {{310, 793}, {231, 43}} com.apple.InterfaceBuilder.CocoaPlugin - {{475, 832}, {234, 43}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - {{442, 573}, {213, 63}} com.apple.InterfaceBuilder.CocoaPlugin - - {{608, 612}, {215, 63}} com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - {{260, 579}, {542, 210}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin {{260, 579}, {542, 210}} - {{11, 666}, {480, 270}} - - - {542, 210} - {542, 210} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - - {{865, 696}, {190, 123}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - - {{26, 633}, {228, 203}} com.apple.InterfaceBuilder.CocoaPlugin - - {{23, 794}, {245, 183}} com.apple.InterfaceBuilder.CocoaPlugin - - {{192, 603}, {616, 0}} com.apple.InterfaceBuilder.CocoaPlugin - {{234, 338}, {542, 218}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -5702,7 +5666,6 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{244, 793}, {86, 43}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -5715,7 +5678,6 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{330, 553}, {176, 283}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -5749,17 +5711,14 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{158, 813}, {118, 23}} com.apple.InterfaceBuilder.CocoaPlugin - - {{323, 672}, {199, 203}} com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -5767,20 +5726,16 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA YES - - YES - + YES - - YES - + - 1293 + 1301 @@ -5802,7 +5757,7 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA saveState: updateMenuItem: - + YES id id @@ -5815,6 +5770,60 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA id + + YES + + YES + disableMenuItem: + displayViewForAdvancedSettings: + displayViewForGeneralSettings: + displayViewForProcessingSettings: + enableMenuItem: + enableOrDisableMenuItem: + orderFrontSettingsWindow: + saveState: + updateMenuItem: + + + YES + + disableMenuItem: + id + + + displayViewForAdvancedSettings: + id + + + displayViewForGeneralSettings: + id + + + displayViewForProcessingSettings: + id + + + enableMenuItem: + id + + + enableOrDisableMenuItem: + id + + + orderFrontSettingsWindow: + id + + + saveState: + id + + + updateMenuItem: + id + + + YES @@ -5827,12 +5836,13 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA preprocessingUIView preprocessingWindowController processingSettingsView + receiverSecret receiverURL statusItemMenu toolbar updater - + YES NSView NSView @@ -5843,14 +5853,89 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA DPPreprocessingWindowController NSView NSTextField + NSTextField NSMenu NSToolbar SUUpdater + + YES + + YES + advancedSettingsView + generalSettingsView + mainMenu + mainWindow + pauseMenuItem + preprocessingUIView + preprocessingWindowController + processingSettingsView + receiverSecret + receiverURL + statusItemMenu + toolbar + updater + + + YES + + advancedSettingsView + NSView + + + generalSettingsView + NSView + + + mainMenu + NSMenu + + + mainWindow + NSWindow + + + pauseMenuItem + NSMenuItem + + + preprocessingUIView + NSView + + + preprocessingWindowController + DPPreprocessingWindowController + + + processingSettingsView + NSView + + + receiverSecret + NSTextField + + + receiverURL + NSTextField + + + statusItemMenu + NSMenu + + + toolbar + NSToolbar + + + updater + SUUpdater + + + IBProjectSource - src/DPAppDelegate.h + ./Classes/DPAppDelegate.h @@ -5858,7 +5943,7 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA NSView IBProjectSource - src/DPCheckerView.h + ./Classes/DPCheckerView.h @@ -5876,7 +5961,7 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA zoomIn: zoomOut: - + YES id id @@ -5887,789 +5972,131 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA id - + YES YES - appDelegate - commitActionButton - defaultButton - filenameTextField - imageView - toolbarSegmentedControl + crop: + performCancel: + performCommit: + switchToolMode: + toggleIKInspector: + zoomIn: + zoomOut: - + YES - DPAppDelegate - NSButton - NSButton - NSTextField - IKImageView - NSSegmentedControl + + crop: + id + + + performCancel: + id + + + performCommit: + id + + + switchToolMode: + id + + + toggleIKInspector: + id + + + zoomIn: + id + + + zoomOut: + id + - - IBProjectSource - src/DPPreprocessingWindowController.h - - - - NSWindow - - IBProjectSource - src/NSWindow+DPAdditions.h - - - - - YES - - NSObject - - IBDocumentRelativeSource - ../frameworks/Sparkle.framework/Versions/A/Headers/SUAppcast.h - - - - NSObject - - IBDocumentRelativeSource - ../frameworks/Sparkle.framework/Versions/A/Headers/SUUpdater.h - - - - SUUpdater - NSObject - - checkForUpdates: - id - - delegate - id - - - - - - YES - - IKImageView - NSView - YES YES - crop: - flipImageHorizontal: - flipImageVertical: - rotateImageLeft: - rotateImageRight: - zoomImageToActualSize: - zoomImageToFit: - zoomIn: - zoomOut: + appDelegate + commitActionButton + defaultButton + filenameTextField + imageView + toolbarSegmentedControl - + YES - id - id - id - id - id - id - id - id - id + DPAppDelegate + NSButton + NSButton + NSTextField + IKImageView + NSSegmentedControl - - IBFrameworkSource - ImageKit.framework/Headers/IKImageView.h - - - - NSActionCell - NSCell - - IBFrameworkSource - AppKit.framework/Headers/NSActionCell.h - - - - NSApplication - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSApplication.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSApplicationScripting.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSColorPanel.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSHelpManager.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSPageLayout.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSUserInterfaceItemSearching.h - - - - NSBox - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSBox.h - - - - NSBrowser - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSBrowser.h - - - - NSButton - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSButton.h - - - - NSButtonCell - NSActionCell - - IBFrameworkSource - AppKit.framework/Headers/NSButtonCell.h - - - - NSCell - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSCell.h - - - - NSControl - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSControl.h - - - - NSController - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSController.h - - - - NSFontManager - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSFontManager.h - - - - NSFormatter - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSFormatter.h - - - - NSMatrix - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSMatrix.h - - - - NSMenu - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSMenu.h - - - - NSMenuItem - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSMenuItem.h - - - - NSMovieView - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSMovieView.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSAccessibility.h - - - - NSObject - - - - NSObject - - - - NSObject - - - - NSObject - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSDictionaryController.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSDragging.h - - - - NSObject - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSFontPanel.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSKeyValueBinding.h - - - - NSObject - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSNibLoading.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSOutlineView.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSPasteboard.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSSavePanel.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSTableView.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSToolbarItem.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSView.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSArchiver.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSClassDescription.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSError.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSFileManager.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyValueCoding.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyValueObserving.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyedArchiver.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSObject.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSObjectScripting.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSPortCoder.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSRunLoop.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptClassDescription.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptKeyValueCoding.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptObjectSpecifiers.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptWhoseTests.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSThread.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSURL.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSURLConnection.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSURLDownload.h - - - - NSObject - - IBFrameworkSource - ImageKit.framework/Headers/IKImageBrowserView.h - - - - NSObject - - IBFrameworkSource - ImageKit.framework/Headers/IKSaveOptions.h - - - - NSObject - - IBFrameworkSource - ImageKit.framework/Headers/ImageKitDeprecated.h - - - - NSObject - - IBFrameworkSource - PDFKit.framework/Headers/PDFDocument.h - - - - NSObject - - IBFrameworkSource - PDFKit.framework/Headers/PDFView.h - - - - NSObject - - IBFrameworkSource - QuartzComposer.framework/Headers/QCCompositionParameterView.h - - - - NSObject - - IBFrameworkSource - QuartzComposer.framework/Headers/QCCompositionPickerView.h - - - - NSObject - - IBFrameworkSource - QuartzCore.framework/Headers/CAAnimation.h - - - - NSObject - - IBFrameworkSource - QuartzCore.framework/Headers/CALayer.h - - - - NSObject - - IBFrameworkSource - QuartzCore.framework/Headers/CIImageProvider.h - - - - NSObject - - IBFrameworkSource - QuartzFilters.framework/Headers/QuartzFilterManager.h - - - - NSObject - - IBFrameworkSource - QuickLookUI.framework/Headers/QLPreviewPanel.h - - - - NSObject - - IBFrameworkSource - Sparkle.framework/Headers/SUAppcast.h - - - - NSObject - - IBFrameworkSource - Sparkle.framework/Headers/SUUpdater.h - - - - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSInterfaceStyle.h - - - - NSResponder - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSResponder.h - - - - NSSegmentedCell - NSActionCell - - IBFrameworkSource - AppKit.framework/Headers/NSSegmentedCell.h - - - - NSSegmentedControl - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSSegmentedControl.h - - - - NSTableView - NSControl - - - - NSText - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSText.h - - - - NSTextField - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSTextField.h - - - - NSTextFieldCell - NSActionCell - - IBFrameworkSource - AppKit.framework/Headers/NSTextFieldCell.h - - - - NSToolbar - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSToolbar.h - - - - NSUserDefaultsController - NSController - - IBFrameworkSource - AppKit.framework/Headers/NSUserDefaultsController.h - - - - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSClipView.h - - - - NSView - - - - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSRulerView.h - - - - NSView - NSResponder - - - - NSWindow - - IBFrameworkSource - AppKit.framework/Headers/NSDrawer.h - - - - NSWindow - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSWindow.h - - - - NSWindow - - IBFrameworkSource - AppKit.framework/Headers/NSWindowScripting.h - - - - NSWindowController - NSResponder - - showWindow: - id - - - IBFrameworkSource - AppKit.framework/Headers/NSWindowController.h - - - - PDFView - NSView - + YES YES - goBack: - goForward: - goToFirstPage: - goToLastPage: - goToNextPage: - goToPreviousPage: - selectAll: - takeBackgroundColorFrom: - zoomIn: - zoomOut: + appDelegate + commitActionButton + defaultButton + filenameTextField + imageView + toolbarSegmentedControl - + YES - id - id - id - id - id - id - id - id - id - id + + appDelegate + DPAppDelegate + + + commitActionButton + NSButton + + + defaultButton + NSButton + + + filenameTextField + NSTextField + + + imageView + IKImageView + + + toolbarSegmentedControl + NSSegmentedControl + - + + IBProjectSource + ./Classes/DPPreprocessingWindowController.h + - QCView - NSView + IKImageView - YES - - YES - play: - start: - stop: - - - YES - id - id - id + crop: + id + + + crop: + + crop: + id - IBFrameworkSource - QuartzComposer.framework/Headers/QCView.h + IBProjectSource + ./Classes/IKImageView.h @@ -6679,29 +6106,81 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA checkForUpdates: id + + checkForUpdates: + + checkForUpdates: + id + + delegate id - + + delegate + + delegate + id + + + + IBProjectSource + ./Classes/SUUpdater.h + 0 + IBCocoaFramework com.apple.InterfaceBuilder.CocoaPlugin.macosx - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 YES - ../scrup.xcodeproj 3 + + YES + + YES + BottomTB_ellipse + BottomTB_freeText + BottomTB_inspector + BottomTB_line + BottomTB_rectangle + NSAddTemplate + NSMenuCheckmark + NSMenuMixedState + NSRemoveTemplate + NSSwitch + crop + move + rect + zoom-actual + zoom-to-fit + + + YES + {13, 11} + {18, 14} + {16, 16} + {13, 8} + {13, 9} + {8, 8} + {11, 11} + {10, 3} + {8, 8} + {15, 15} + {16, 16} + {16, 16} + {16, 16} + {8, 8} + {8, 8} + + diff --git a/scrup.xcodeproj/project.pbxproj b/scrup.xcodeproj/project.pbxproj index b171c86..dcda1a0 100644 --- a/scrup.xcodeproj/project.pbxproj +++ b/scrup.xcodeproj/project.pbxproj @@ -849,6 +849,7 @@ GCC_WARN_UNUSED_VALUE = YES; INFOPLIST_FILE = resources/Info.plist; INSTALL_PATH = "$(HOME)/Applications"; + OTHER_LDFLAGS = "-lcrypto"; PRODUCT_NAME = Scrup; SDKROOT = macosx; }; @@ -877,6 +878,7 @@ GCC_WARN_UNUSED_VALUE = YES; INFOPLIST_FILE = resources/Info.plist; INSTALL_PATH = "$(HOME)/Applications"; + OTHER_LDFLAGS = "-lcrypto"; PRODUCT_NAME = Scrup; SDKROOT = macosx; }; @@ -891,6 +893,7 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; ONLY_ACTIVE_ARCH = YES; + OTHER_LDFLAGS = ""; SDKROOT = macosx; }; name = Debug; @@ -902,6 +905,7 @@ GCC_C_LANGUAGE_STANDARD = c99; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; + OTHER_LDFLAGS = ""; SDKROOT = macosx; }; name = Release; diff --git a/src/DPAppDelegate.h b/src/DPAppDelegate.h index 253d6d1..9a7653e 100644 --- a/src/DPAppDelegate.h +++ b/src/DPAppDelegate.h @@ -15,6 +15,7 @@ IBOutlet NSView *advancedSettingsView; IBOutlet SUUpdater *updater; IBOutlet NSTextField *receiverURL; + IBOutlet NSTextField *receiverSecret; IBOutlet NSMenuItem *pauseMenuItem; BOOL openAtLogin, showInDock, diff --git a/src/DPAppDelegate.m b/src/DPAppDelegate.m index 6d55f54..6327795 100644 --- a/src/DPAppDelegate.m +++ b/src/DPAppDelegate.m @@ -10,6 +10,11 @@ #include #include +/* For base64 encoding */ +#include +#include + + #define SCREENSHOT_LOG_LIMIT 10 /* todo: make configurable */ /*@interface NSStatusBar (Unofficial) @@ -491,6 +496,26 @@ -(void)processScreenshotAtPath:(NSString *)path modifiedAtDate:(NSDate *)dateMod return; } + // Check for a secret and base64 encode it + NSString *secret = [receiverSecret stringValue]; + NSString *encodedSecret = NULL; + if([secret length] > 0) { + BIO *context = BIO_new(BIO_s_mem()); + + BIO *command = BIO_new(BIO_f_base64()); + context = BIO_push(command, context); + + // Encode all the data + BIO_write(context, [[secret dataUsingEncoding:NSUTF8StringEncoding] bytes], [[secret dataUsingEncoding:NSUTF8StringEncoding] length]); + BIO_flush(context); + + char *outputBuffer; + long outputLength = BIO_get_mem_data(context, &outputBuffer); + encodedSecret = [NSString stringWithCString:outputBuffer length:outputLength]; + BIO_free_all(context); + } + + // Register NSMutableDictionary *rec = [uploadedScreenshots objectForKey:fn]; if (rec) { @@ -505,6 +530,9 @@ -(void)processScreenshotAtPath:(NSString *)path modifiedAtDate:(NSDate *)dateMod void (^continue_block)(NSString *) = ^(NSString *actualPath){ HTTPPOSTOperation *postOp = [HTTPPOSTOperation alloc]; [postOp initWithPath:actualPath URL:url delegate:self]; + if(encodedSecret != NULL) + [postOp.request setValue:[encodedSecret stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]] forHTTPHeaderField:@"X-Scrup-Auth"]; + nCurrOps++; [self updateMenuItem:self]; [statusItem setImage:iconSending]; From 016353bd77e9338348cc00f0e0b203f34bef872a Mon Sep 17 00:00:00 2001 From: Valentin Dornauer Date: Tue, 10 Apr 2012 17:39:04 +0200 Subject: [PATCH 3/6] Make recv.php check for the secret Use the $_SERVER array to get to the HTTP-Request-Header data. --- recv.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/recv.php b/recv.php index fb776af..ae0c5c8 100644 --- a/recv.php +++ b/recv.php @@ -4,6 +4,7 @@ # Install by putting this file on your web server and give the web server # user write permissions to the directory in which you put this script. # +$SECRET = "secret!"; # Set to "" if you don't want authentication $MAXLENGTH = 4096000; # 4 MB function rsperr($msg='', $st='400 Bad Request') { header('HTTP/1.1 '.$st); @@ -22,6 +23,11 @@ function pathfromid($id, $suffix='') { $url = (isset($_SERVER['HTTPS']) ? 'https://' : 'http://') . $_SERVER['SERVER_NAME'] . dirname($_SERVER['SCRIPT_NAME']) . '/' . $path; +// Check if the secret is correct +if(!empty($SECRET) && $_SERVER['HTTP_X_SCRUP_AUTH'] != base64_encode($SECRET)) { + rsperr("Bad authentication credentials!", "401 Unauthorized"); +} + # make dir if needed $dirpath = dirname($abspath); if (!file_exists($dirpath) && @mkdir($dirpath, 0775) === false) From 682a0f904b1cf315879319ac859d1561d0d3272b Mon Sep 17 00:00:00 2001 From: Valentin Dornauer Date: Tue, 10 Apr 2012 17:48:45 +0200 Subject: [PATCH 4/6] Save the secret to the dictionary so it doesn't get lost on restarts --- resources/MainMenu.xib | 34 ++++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/resources/MainMenu.xib b/resources/MainMenu.xib index 031a594..7f7bc25 100644 --- a/resources/MainMenu.xib +++ b/resources/MainMenu.xib @@ -58,6 +58,9 @@ NSApplication + + YES + NSFontManager @@ -1467,7 +1470,7 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA DPAppDelegate - + 292 YES @@ -1702,17 +1705,13 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA {542, 218} - NSView - - YES - SUUpdater - + 292 YES @@ -1986,7 +1985,6 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA {542, 374} - NSView @@ -3560,6 +3558,26 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA 1191 + + + value: values.recvSecret + + + + + + value: values.recvSecret + value + values.recvSecret + + NSValidatesImmediately + + + 2 + + + 1305 + @@ -5735,7 +5753,7 @@ ZCBzb3VyY2UgY29kZSBhdCBodHRwOi8vZ2l0aHViLmNvbS9yc21zL3NjcnVwA - 1301 + 1305 From 4ebc06443d476e1abdf328ea3d06db69cc77be79 Mon Sep 17 00:00:00 2001 From: Valentin Dornauer Date: Wed, 11 Apr 2012 17:17:31 +0200 Subject: [PATCH 5/6] Make it possible to return the http-link over HTTPS This may be usefull to people with a self-signed SSL certificate, which they themselves have marked as valid, but other people receiving the link might not. --- recv.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/recv.php b/recv.php index ae0c5c8..0ded369 100644 --- a/recv.php +++ b/recv.php @@ -4,8 +4,9 @@ # Install by putting this file on your web server and give the web server # user write permissions to the directory in which you put this script. # -$SECRET = "secret!"; # Set to "" if you don't want authentication +$SECRET = ""; # Set to "" if you don't want authentication $MAXLENGTH = 4096000; # 4 MB +$HTTP_LINK = true; # Set to true if you want all image links to point to the unsecure version function rsperr($msg='', $st='400 Bad Request') { header('HTTP/1.1 '.$st); exit($msg); @@ -20,7 +21,7 @@ function pathfromid($id, $suffix='') { $suffix = strrchr($_GET['name'], '.'); $path = pathfromid($id, $suffix); $abspath = dirname(realpath(__FILE__)).'/'.$path; -$url = (isset($_SERVER['HTTPS']) ? 'https://' : 'http://') +$url = (isset($_SERVER['HTTPS'] && $HTTP_LINK != true) ? 'https://' : 'http://') . $_SERVER['SERVER_NAME'] . dirname($_SERVER['SCRIPT_NAME']) . '/' . $path; // Check if the secret is correct From 837d0db541620f0713e279c47092527326dc67d6 Mon Sep 17 00:00:00 2001 From: Valentin Dornauer Date: Wed, 11 Apr 2012 19:53:25 +0200 Subject: [PATCH 6/6] Warn user about the security issue when using HTTP + Auth The user may choose to re-edit the URL or ignore the error, for ever (saved to NSUserDefaults). --- src/DPAppDelegate.m | 47 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/src/DPAppDelegate.m b/src/DPAppDelegate.m index 6327795..d7c93fb 100644 --- a/src/DPAppDelegate.m +++ b/src/DPAppDelegate.m @@ -158,6 +158,12 @@ - (void)awakeFromNib { [self performSelectorInBackground:@selector(debugPerpetualStateCheck) withObject:nil]; #endif + /* In order to check for http/https if the secret is set. + XXX The user is still not warned if the preferences window is closed without "ending" + the input session (because then controlTextDidEndEditing doesn't get called, for some reason */ + [receiverSecret setDelegate:self]; + [receiverURL setDelegate:self]; + // XXX /*[self displayPreprocessingUIForScreenshotAtPath:@"" meta:[NSDictionary dictionaryWithObjectsAndKeys:[NSDate date], @"du", nil] @@ -166,6 +172,47 @@ - (void)awakeFromNib { }];*/ } +-(void) controlTextDidEndEditing:(NSNotification *)aNotification { + if([aNotification object] == receiverSecret || [aNotification object] == receiverURL) { + /* If we're losing focus because sslAlertEnd switched to receiverURL, don't display another sheet. + Also check user preference. */ + if([mainWindow attachedSheet] != NULL + || [defaults boolForKey:@"sslDontAskAgain"]) { + return; + } + + /* If a secret is set, check if receiverURL contains 'https://' and alert if it doesn't */ + if(!([[receiverSecret stringValue] isEqualToString:@""] || [[receiverURL stringValue] isEqualToString:@""])) { + NSRange matchHTTPS = [[receiverURL stringValue] rangeOfString:@"https://"]; + if(matchHTTPS.length <= 0) { + NSAlert *sslAlert = [[[NSAlert alloc] init] autorelease]; + [sslAlert setMessageText:@"Security Tip"]; + [sslAlert setInformativeText:@"Great, you set a secret key! But you should really use a secure connection (SSL, \"https://\") in this case. Otherwise anyone eavesdropping on your connection can easily filter out the key."]; + [sslAlert addButtonWithTitle:@"Re-Edit Receiver URL ..."]; + [sslAlert addButtonWithTitle:@"No! Don't ever ask again."]; + [sslAlert beginSheetModalForWindow:mainWindow modalDelegate:self didEndSelector:@selector(sslAlertEnd:returnCode:contextInfo:) contextInfo:nil]; + } + } + } +} + +-(void)sslAlertEnd:(NSWindow *)sheet returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfo { + switch(returnCode) { + case NSAlertFirstButtonReturn: + /* Select the URL field's 'http://' portion */ + [receiverURL becomeFirstResponder]; + NSText* textEditor = [mainWindow fieldEditor:YES forObject:receiverURL]; + NSRange range = {0, 7}; + [textEditor setSelectedRange:range]; + + break; + case NSAlertSecondButtonReturn: + [defaults setBool:YES forKey:@"sslDontAskAgain"]; + break; + } + return; +} + - (NSRect)menuItemFrame { // ugly, ugly hack... damn you Apple.