r80839 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r80838‎ | r80839 | r80840 >
Date:23:47, 23 January 2011
Author:hartman
Status:deferred
Tags:
Comment:
Cleanup the interface of WikiSnaps.

* Split up the original PhotoPickerViewController into seperate classes and views
* Use NSLocalizedString to prepare for localization.
Modified paths:
  • /trunk/tools/WikiSnaps/Classes/CommonsUpload.h (modified) (history)
  • /trunk/tools/WikiSnaps/Classes/CommonsUpload.m (modified) (history)
  • /trunk/tools/WikiSnaps/Classes/Configuration.h (modified) (history)
  • /trunk/tools/WikiSnaps/Classes/Configuration.m (modified) (history)
  • /trunk/tools/WikiSnaps/Classes/ImageDetailsViewController.h (modified) (history)
  • /trunk/tools/WikiSnaps/Classes/ImageDetailsViewController.m (modified) (history)
  • /trunk/tools/WikiSnaps/Classes/ImageUploadViewController.h (added) (history)
  • /trunk/tools/WikiSnaps/Classes/ImageUploadViewController.m (added) (history)
  • /trunk/tools/WikiSnaps/Classes/ImageUploadViewController.xib (added) (history)
  • /trunk/tools/WikiSnaps/Classes/NSData%2BPhotoPicker.h (modified) (history)
  • /trunk/tools/WikiSnaps/Classes/NSData%2BPhotoPicker.m (modified) (history)
  • /trunk/tools/WikiSnaps/Classes/PhotoPickerAppDelegate.h (modified) (history)
  • /trunk/tools/WikiSnaps/Classes/PhotoPickerAppDelegate.m (modified) (history)
  • /trunk/tools/WikiSnaps/Classes/PhotoPickerViewController.h (deleted) (history)
  • /trunk/tools/WikiSnaps/Classes/PhotoPickerViewController.m (deleted) (history)
  • /trunk/tools/WikiSnaps/Classes/SourcePickerViewController.h (added) (history)
  • /trunk/tools/WikiSnaps/Classes/SourcePickerViewController.m (added) (history)
  • /trunk/tools/WikiSnaps/Classes/SourcePickerViewController.xib (added) (history)
  • /trunk/tools/WikiSnaps/Classes/UIImage%2BPhotoPicker.h (modified) (history)
  • /trunk/tools/WikiSnaps/Classes/UIImage%2BPhotoPicker.m (modified) (history)
  • /trunk/tools/WikiSnaps/MainWindow.xib (modified) (history)
  • /trunk/tools/WikiSnaps/PhotoPickerViewController.xib (deleted) (history)
  • /trunk/tools/WikiSnaps/SettingsViewController.h (modified) (history)
  • /trunk/tools/WikiSnaps/SettingsViewController.m (modified) (history)
  • /trunk/tools/WikiSnaps/WikiSnaps.xcodeproj/project.pbxproj (modified) (history)

Diff [purge]

Index: trunk/tools/WikiSnaps/PhotoPickerViewController.xib
@@ -1,753 +0,0 @@
2 -<?xml version="1.0" encoding="UTF-8"?>
3 -<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
4 - <data>
5 - <int key="IBDocument.SystemTarget">1056</int>
6 - <string key="IBDocument.SystemVersion">10H574</string>
7 - <string key="IBDocument.InterfaceBuilderVersion">823</string>
8 - <string key="IBDocument.AppKitVersion">1038.35</string>
9 - <string key="IBDocument.HIToolboxVersion">461.00</string>
10 - <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
11 - <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
12 - <string key="NS.object.0">132</string>
13 - </object>
14 - <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
15 - <bool key="EncodedWithXMLCoder">YES</bool>
16 - </object>
17 - <object class="NSArray" key="IBDocument.PluginDependencies">
18 - <bool key="EncodedWithXMLCoder">YES</bool>
19 - <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
20 - </object>
21 - <object class="NSMutableDictionary" key="IBDocument.Metadata">
22 - <bool key="EncodedWithXMLCoder">YES</bool>
23 - <object class="NSArray" key="dict.sortedKeys" id="0">
24 - <bool key="EncodedWithXMLCoder">YES</bool>
25 - </object>
26 - <object class="NSMutableArray" key="dict.values">
27 - <bool key="EncodedWithXMLCoder">YES</bool>
28 - </object>
29 - </object>
30 - <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
31 - <bool key="EncodedWithXMLCoder">YES</bool>
32 - <object class="IBProxyObject" id="372490531">
33 - <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
34 - <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
35 - </object>
36 - <object class="IBProxyObject" id="843779117">
37 - <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
38 - <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
39 - </object>
40 - <object class="IBUIView" id="774585933">
41 - <reference key="NSNextResponder"/>
42 - <int key="NSvFlags">274</int>
43 - <string key="NSFrameSize">{320, 460}</string>
44 - <reference key="NSSuperview"/>
45 - <reference key="NSWindow"/>
46 - <object class="NSColor" key="IBUIBackgroundColor">
47 - <int key="NSColorSpace">5</int>
48 - <bytes key="NSCMYK">MCAwIDAgMAA</bytes>
49 - <object class="NSColorSpace" key="NSCustomColorSpace">
50 - <int key="NSID">3</int>
51 - </object>
52 - <characters key="NSComponents">0 0 0 0 1</characters>
53 - </object>
54 - <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
55 - <object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
56 - <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
57 - </object>
58 - <object class="IBUIView" id="79809793">
59 - <reference key="NSNextResponder"/>
60 - <int key="NSvFlags">292</int>
61 - <object class="NSMutableArray" key="NSSubviews">
62 - <bool key="EncodedWithXMLCoder">YES</bool>
63 - <object class="IBUINavigationBar" id="923235693">
64 - <reference key="NSNextResponder" ref="79809793"/>
65 - <int key="NSvFlags">290</int>
66 - <string key="NSFrameSize">{320, 44}</string>
67 - <reference key="NSSuperview" ref="79809793"/>
68 - <reference key="NSWindow"/>
69 - <bool key="IBUIOpaque">NO</bool>
70 - <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
71 - <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
72 - <int key="IBUIBarStyle">1</int>
73 - <object class="NSArray" key="IBUIItems">
74 - <bool key="EncodedWithXMLCoder">YES</bool>
75 - <object class="IBUINavigationItem" id="766765125">
76 - <reference key="IBUINavigationBar" ref="923235693"/>
77 - <string key="IBUITitle"/>
78 - <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
79 - </object>
80 - </object>
81 - </object>
82 - <object class="IBUIImageView" id="398436398">
83 - <reference key="NSNextResponder" ref="79809793"/>
84 - <int key="NSvFlags">292</int>
85 - <string key="NSFrame">{{20, 64}, {279, 310}}</string>
86 - <reference key="NSSuperview" ref="79809793"/>
87 - <reference key="NSWindow"/>
88 - <bool key="IBUIOpaque">NO</bool>
89 - <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
90 - <int key="IBUIContentMode">1</int>
91 - <bool key="IBUIUserInteractionEnabled">NO</bool>
92 - <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
93 - </object>
94 - <object class="IBUIButton" id="106179972">
95 - <reference key="NSNextResponder" ref="79809793"/>
96 - <int key="NSvFlags">292</int>
97 - <string key="NSFrame">{{21, 394}, {278, 46}}</string>
98 - <reference key="NSSuperview" ref="79809793"/>
99 - <reference key="NSWindow"/>
100 - <bool key="IBUIOpaque">NO</bool>
101 - <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
102 - <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
103 - <int key="IBUIContentHorizontalAlignment">0</int>
104 - <int key="IBUIContentVerticalAlignment">0</int>
105 - <object class="NSFont" key="IBUIFont">
106 - <string key="NSName">Helvetica-Bold</string>
107 - <double key="NSSize">15</double>
108 - <int key="NSfFlags">16</int>
109 - </object>
110 - <object class="NSColor" key="IBUIHighlightedTitleColor">
111 - <int key="NSColorSpace">3</int>
112 - <bytes key="NSWhite">MQA</bytes>
113 - </object>
114 - <object class="NSColor" key="IBUINormalTitleColor">
115 - <int key="NSColorSpace">1</int>
116 - <bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
117 - </object>
118 - <object class="NSColor" key="IBUINormalTitleShadowColor">
119 - <int key="NSColorSpace">3</int>
120 - <bytes key="NSWhite">MC41AA</bytes>
121 - </object>
122 - <object class="NSCustomResource" key="IBUIHighlightedBackgroundImage">
123 - <string key="NSClassName">NSImage</string>
124 - <string key="NSResourceName">cancel-button-pressed.png</string>
125 - </object>
126 - <object class="NSCustomResource" key="IBUINormalBackgroundImage">
127 - <string key="NSClassName">NSImage</string>
128 - <string key="NSResourceName">cancel-button.png</string>
129 - </object>
130 - </object>
131 - <object class="IBUIProgressView" id="680833711">
132 - <reference key="NSNextResponder" ref="79809793"/>
133 - <int key="NSvFlags">292</int>
134 - <string key="NSFrame">{{78, 26}, {164, 11}}</string>
135 - <reference key="NSSuperview" ref="79809793"/>
136 - <reference key="NSWindow"/>
137 - <bool key="IBUIOpaque">NO</bool>
138 - <bool key="IBUIClipsSubviews">YES</bool>
139 - <bool key="IBUIMultipleTouchEnabled">YES</bool>
140 - <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
141 - <float key="IBUIProgress">0.5</float>
142 - <int key="IBUIProgressViewStyle">1</int>
143 - </object>
144 - <object class="IBUILabel" id="27668303">
145 - <reference key="NSNextResponder" ref="79809793"/>
146 - <int key="NSvFlags">292</int>
147 - <string key="NSFrameSize">{320, 23}</string>
148 - <reference key="NSSuperview" ref="79809793"/>
149 - <reference key="NSWindow"/>
150 - <bool key="IBUIOpaque">NO</bool>
151 - <bool key="IBUIClipsSubviews">YES</bool>
152 - <bool key="IBUIUserInteractionEnabled">NO</bool>
153 - <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
154 - <string key="IBUIText">uploading</string>
155 - <object class="NSFont" key="IBUIFont">
156 - <string key="NSName">Helvetica</string>
157 - <double key="NSSize">14</double>
158 - <int key="NSfFlags">16</int>
159 - </object>
160 - <object class="NSColor" key="IBUITextColor">
161 - <int key="NSColorSpace">3</int>
162 - <bytes key="NSWhite">MQA</bytes>
163 - <object class="NSColorSpace" key="NSCustomColorSpace" id="234927620">
164 - <int key="NSID">2</int>
165 - </object>
166 - </object>
167 - <nil key="IBUIHighlightedColor"/>
168 - <object class="NSColor" key="IBUIShadowColor">
169 - <int key="NSColorSpace">3</int>
170 - <bytes key="NSWhite">MAA</bytes>
171 - <reference key="NSCustomColorSpace" ref="234927620"/>
172 - </object>
173 - <int key="IBUIBaselineAdjustment">1</int>
174 - <bool key="IBUIAdjustsFontSizeToFit">NO</bool>
175 - <float key="IBUIMinimumFontSize">10</float>
176 - <int key="IBUITextAlignment">1</int>
177 - </object>
178 - </object>
179 - <string key="NSFrameSize">{320, 460}</string>
180 - <reference key="NSSuperview"/>
181 - <reference key="NSWindow"/>
182 - <object class="NSColor" key="IBUIBackgroundColor">
183 - <int key="NSColorSpace">3</int>
184 - <bytes key="NSWhite">MC4xMzMwNjQ1MTYxAA</bytes>
185 - </object>
186 - <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
187 - <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
188 - </object>
189 - </object>
190 - <object class="IBObjectContainer" key="IBDocument.Objects">
191 - <object class="NSMutableArray" key="connectionRecords">
192 - <bool key="EncodedWithXMLCoder">YES</bool>
193 - <object class="IBConnectionRecord">
194 - <object class="IBCocoaTouchOutletConnection" key="connection">
195 - <string key="label">view</string>
196 - <reference key="source" ref="372490531"/>
197 - <reference key="destination" ref="774585933"/>
198 - </object>
199 - <int key="connectionID">7</int>
200 - </object>
201 - <object class="IBConnectionRecord">
202 - <object class="IBCocoaTouchOutletConnection" key="connection">
203 - <string key="label">uploadPhotoOverlay</string>
204 - <reference key="source" ref="372490531"/>
205 - <reference key="destination" ref="79809793"/>
206 - </object>
207 - <int key="connectionID">18</int>
208 - </object>
209 - <object class="IBConnectionRecord">
210 - <object class="IBCocoaTouchOutletConnection" key="connection">
211 - <string key="label">uploadProgress</string>
212 - <reference key="source" ref="372490531"/>
213 - <reference key="destination" ref="680833711"/>
214 - </object>
215 - <int key="connectionID">19</int>
216 - </object>
217 - <object class="IBConnectionRecord">
218 - <object class="IBCocoaTouchOutletConnection" key="connection">
219 - <string key="label">uploadOverlayImage</string>
220 - <reference key="source" ref="372490531"/>
221 - <reference key="destination" ref="398436398"/>
222 - </object>
223 - <int key="connectionID">21</int>
224 - </object>
225 - <object class="IBConnectionRecord">
226 - <object class="IBCocoaTouchEventConnection" key="connection">
227 - <string key="label">onCancelUploadClicked</string>
228 - <reference key="source" ref="106179972"/>
229 - <reference key="destination" ref="372490531"/>
230 - <int key="IBEventType">7</int>
231 - </object>
232 - <int key="connectionID">22</int>
233 - </object>
234 - <object class="IBConnectionRecord">
235 - <object class="IBCocoaTouchOutletConnection" key="connection">
236 - <string key="label">uploadProgressMessage</string>
237 - <reference key="source" ref="372490531"/>
238 - <reference key="destination" ref="27668303"/>
239 - </object>
240 - <int key="connectionID">32</int>
241 - </object>
242 - </object>
243 - <object class="IBMutableOrderedSet" key="objectRecords">
244 - <object class="NSArray" key="orderedObjects">
245 - <bool key="EncodedWithXMLCoder">YES</bool>
246 - <object class="IBObjectRecord">
247 - <int key="objectID">0</int>
248 - <reference key="object" ref="0"/>
249 - <reference key="children" ref="1000"/>
250 - <nil key="parent"/>
251 - </object>
252 - <object class="IBObjectRecord">
253 - <int key="objectID">-1</int>
254 - <reference key="object" ref="372490531"/>
255 - <reference key="parent" ref="0"/>
256 - <string key="objectName">File's Owner</string>
257 - </object>
258 - <object class="IBObjectRecord">
259 - <int key="objectID">-2</int>
260 - <reference key="object" ref="843779117"/>
261 - <reference key="parent" ref="0"/>
262 - </object>
263 - <object class="IBObjectRecord">
264 - <int key="objectID">6</int>
265 - <reference key="object" ref="774585933"/>
266 - <object class="NSMutableArray" key="children">
267 - <bool key="EncodedWithXMLCoder">YES</bool>
268 - </object>
269 - <reference key="parent" ref="0"/>
270 - </object>
271 - <object class="IBObjectRecord">
272 - <int key="objectID">13</int>
273 - <reference key="object" ref="79809793"/>
274 - <object class="NSMutableArray" key="children">
275 - <bool key="EncodedWithXMLCoder">YES</bool>
276 - <reference ref="680833711"/>
277 - <reference ref="106179972"/>
278 - <reference ref="923235693"/>
279 - <reference ref="27668303"/>
280 - <reference ref="398436398"/>
281 - </object>
282 - <reference key="parent" ref="0"/>
283 - <string key="objectName">Upload Photo Overlay</string>
284 - </object>
285 - <object class="IBObjectRecord">
286 - <int key="objectID">14</int>
287 - <reference key="object" ref="398436398"/>
288 - <reference key="parent" ref="79809793"/>
289 - </object>
290 - <object class="IBObjectRecord">
291 - <int key="objectID">15</int>
292 - <reference key="object" ref="106179972"/>
293 - <reference key="parent" ref="79809793"/>
294 - </object>
295 - <object class="IBObjectRecord">
296 - <int key="objectID">16</int>
297 - <reference key="object" ref="680833711"/>
298 - <reference key="parent" ref="79809793"/>
299 - </object>
300 - <object class="IBObjectRecord">
301 - <int key="objectID">28</int>
302 - <reference key="object" ref="923235693"/>
303 - <object class="NSMutableArray" key="children">
304 - <bool key="EncodedWithXMLCoder">YES</bool>
305 - <reference ref="766765125"/>
306 - </object>
307 - <reference key="parent" ref="79809793"/>
308 - </object>
309 - <object class="IBObjectRecord">
310 - <int key="objectID">29</int>
311 - <reference key="object" ref="766765125"/>
312 - <reference key="parent" ref="923235693"/>
313 - </object>
314 - <object class="IBObjectRecord">
315 - <int key="objectID">30</int>
316 - <reference key="object" ref="27668303"/>
317 - <reference key="parent" ref="79809793"/>
318 - </object>
319 - </object>
320 - </object>
321 - <object class="NSMutableDictionary" key="flattenedProperties">
322 - <bool key="EncodedWithXMLCoder">YES</bool>
323 - <object class="NSArray" key="dict.sortedKeys">
324 - <bool key="EncodedWithXMLCoder">YES</bool>
325 - <string>-1.CustomClassName</string>
326 - <string>-2.CustomClassName</string>
327 - <string>13.IBEditorWindowLastContentRect</string>
328 - <string>13.IBPluginDependency</string>
329 - <string>14.IBPluginDependency</string>
330 - <string>15.IBPluginDependency</string>
331 - <string>16.IBPluginDependency</string>
332 - <string>28.IBPluginDependency</string>
333 - <string>29.IBPluginDependency</string>
334 - <string>30.IBPluginDependency</string>
335 - <string>6.IBEditorWindowLastContentRect</string>
336 - <string>6.IBPluginDependency</string>
337 - </object>
338 - <object class="NSMutableArray" key="dict.values">
339 - <bool key="EncodedWithXMLCoder">YES</bool>
340 - <string>PhotoPickerViewController</string>
341 - <string>UIResponder</string>
342 - <string>{{793, 359}, {320, 460}}</string>
343 - <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
344 - <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
345 - <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
346 - <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
347 - <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
348 - <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
349 - <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
350 - <string>{{329, 209}, {320, 480}}</string>
351 - <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
352 - </object>
353 - </object>
354 - <object class="NSMutableDictionary" key="unlocalizedProperties">
355 - <bool key="EncodedWithXMLCoder">YES</bool>
356 - <reference key="dict.sortedKeys" ref="0"/>
357 - <object class="NSMutableArray" key="dict.values">
358 - <bool key="EncodedWithXMLCoder">YES</bool>
359 - </object>
360 - </object>
361 - <nil key="activeLocalization"/>
362 - <object class="NSMutableDictionary" key="localizations">
363 - <bool key="EncodedWithXMLCoder">YES</bool>
364 - <reference key="dict.sortedKeys" ref="0"/>
365 - <object class="NSMutableArray" key="dict.values">
366 - <bool key="EncodedWithXMLCoder">YES</bool>
367 - </object>
368 - </object>
369 - <nil key="sourceID"/>
370 - <int key="maxID">40</int>
371 - </object>
372 - <object class="IBClassDescriber" key="IBDocument.Classes">
373 - <object class="NSMutableArray" key="referencedPartialClassDescriptions">
374 - <bool key="EncodedWithXMLCoder">YES</bool>
375 - <object class="IBPartialClassDescription">
376 - <string key="className">PhotoPickerViewController</string>
377 - <string key="superclassName">UIViewController</string>
378 - <object class="NSMutableDictionary" key="actions">
379 - <bool key="EncodedWithXMLCoder">YES</bool>
380 - <object class="NSArray" key="dict.sortedKeys">
381 - <bool key="EncodedWithXMLCoder">YES</bool>
382 - <string>onCameraClicked</string>
383 - <string>onCancelUploadClicked</string>
384 - <string>onPhotoLibraryClicked</string>
385 - <string>onSettingsClicked</string>
386 - </object>
387 - <object class="NSMutableArray" key="dict.values">
388 - <bool key="EncodedWithXMLCoder">YES</bool>
389 - <string>id</string>
390 - <string>id</string>
391 - <string>id</string>
392 - <string>id</string>
393 - </object>
394 - </object>
395 - <object class="NSMutableDictionary" key="actionInfosByName">
396 - <bool key="EncodedWithXMLCoder">YES</bool>
397 - <object class="NSArray" key="dict.sortedKeys">
398 - <bool key="EncodedWithXMLCoder">YES</bool>
399 - <string>onCameraClicked</string>
400 - <string>onCancelUploadClicked</string>
401 - <string>onPhotoLibraryClicked</string>
402 - <string>onSettingsClicked</string>
403 - </object>
404 - <object class="NSMutableArray" key="dict.values">
405 - <bool key="EncodedWithXMLCoder">YES</bool>
406 - <object class="IBActionInfo">
407 - <string key="name">onCameraClicked</string>
408 - <string key="candidateClassName">id</string>
409 - </object>
410 - <object class="IBActionInfo">
411 - <string key="name">onCancelUploadClicked</string>
412 - <string key="candidateClassName">id</string>
413 - </object>
414 - <object class="IBActionInfo">
415 - <string key="name">onPhotoLibraryClicked</string>
416 - <string key="candidateClassName">id</string>
417 - </object>
418 - <object class="IBActionInfo">
419 - <string key="name">onSettingsClicked</string>
420 - <string key="candidateClassName">id</string>
421 - </object>
422 - </object>
423 - </object>
424 - <object class="NSMutableDictionary" key="outlets">
425 - <bool key="EncodedWithXMLCoder">YES</bool>
426 - <object class="NSArray" key="dict.sortedKeys">
427 - <bool key="EncodedWithXMLCoder">YES</bool>
428 - <string>takePhotoButton</string>
429 - <string>uploadOverlayImage</string>
430 - <string>uploadPhotoOverlay</string>
431 - <string>uploadProgress</string>
432 - <string>uploadProgressMessage</string>
433 - </object>
434 - <object class="NSMutableArray" key="dict.values">
435 - <bool key="EncodedWithXMLCoder">YES</bool>
436 - <string>UIButton</string>
437 - <string>UIImageView</string>
438 - <string>UIView</string>
439 - <string>UIProgressView</string>
440 - <string>UILabel</string>
441 - </object>
442 - </object>
443 - <object class="NSMutableDictionary" key="toOneOutletInfosByName">
444 - <bool key="EncodedWithXMLCoder">YES</bool>
445 - <object class="NSArray" key="dict.sortedKeys">
446 - <bool key="EncodedWithXMLCoder">YES</bool>
447 - <string>takePhotoButton</string>
448 - <string>uploadOverlayImage</string>
449 - <string>uploadPhotoOverlay</string>
450 - <string>uploadProgress</string>
451 - <string>uploadProgressMessage</string>
452 - </object>
453 - <object class="NSMutableArray" key="dict.values">
454 - <bool key="EncodedWithXMLCoder">YES</bool>
455 - <object class="IBToOneOutletInfo">
456 - <string key="name">takePhotoButton</string>
457 - <string key="candidateClassName">UIButton</string>
458 - </object>
459 - <object class="IBToOneOutletInfo">
460 - <string key="name">uploadOverlayImage</string>
461 - <string key="candidateClassName">UIImageView</string>
462 - </object>
463 - <object class="IBToOneOutletInfo">
464 - <string key="name">uploadPhotoOverlay</string>
465 - <string key="candidateClassName">UIView</string>
466 - </object>
467 - <object class="IBToOneOutletInfo">
468 - <string key="name">uploadProgress</string>
469 - <string key="candidateClassName">UIProgressView</string>
470 - </object>
471 - <object class="IBToOneOutletInfo">
472 - <string key="name">uploadProgressMessage</string>
473 - <string key="candidateClassName">UILabel</string>
474 - </object>
475 - </object>
476 - </object>
477 - <object class="IBClassDescriptionSource" key="sourceIdentifier">
478 - <string key="majorKey">IBProjectSource</string>
479 - <string key="minorKey">Classes/PhotoPickerViewController.h</string>
480 - </object>
481 - </object>
482 - </object>
483 - <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
484 - <bool key="EncodedWithXMLCoder">YES</bool>
485 - <object class="IBPartialClassDescription">
486 - <string key="className">NSObject</string>
487 - <object class="IBClassDescriptionSource" key="sourceIdentifier">
488 - <string key="majorKey">IBFrameworkSource</string>
489 - <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
490 - </object>
491 - </object>
492 - <object class="IBPartialClassDescription">
493 - <string key="className">NSObject</string>
494 - <object class="IBClassDescriptionSource" key="sourceIdentifier">
495 - <string key="majorKey">IBFrameworkSource</string>
496 - <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
497 - </object>
498 - </object>
499 - <object class="IBPartialClassDescription">
500 - <string key="className">NSObject</string>
501 - <object class="IBClassDescriptionSource" key="sourceIdentifier">
502 - <string key="majorKey">IBFrameworkSource</string>
503 - <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
504 - </object>
505 - </object>
506 - <object class="IBPartialClassDescription">
507 - <string key="className">NSObject</string>
508 - <object class="IBClassDescriptionSource" key="sourceIdentifier">
509 - <string key="majorKey">IBFrameworkSource</string>
510 - <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
511 - </object>
512 - </object>
513 - <object class="IBPartialClassDescription">
514 - <string key="className">NSObject</string>
515 - <object class="IBClassDescriptionSource" key="sourceIdentifier">
516 - <string key="majorKey">IBFrameworkSource</string>
517 - <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
518 - </object>
519 - </object>
520 - <object class="IBPartialClassDescription">
521 - <string key="className">NSObject</string>
522 - <object class="IBClassDescriptionSource" key="sourceIdentifier">
523 - <string key="majorKey">IBFrameworkSource</string>
524 - <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
525 - </object>
526 - </object>
527 - <object class="IBPartialClassDescription">
528 - <string key="className">NSObject</string>
529 - <object class="IBClassDescriptionSource" key="sourceIdentifier">
530 - <string key="majorKey">IBFrameworkSource</string>
531 - <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
532 - </object>
533 - </object>
534 - <object class="IBPartialClassDescription">
535 - <string key="className">NSObject</string>
536 - <object class="IBClassDescriptionSource" key="sourceIdentifier">
537 - <string key="majorKey">IBFrameworkSource</string>
538 - <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
539 - </object>
540 - </object>
541 - <object class="IBPartialClassDescription">
542 - <string key="className">NSObject</string>
543 - <object class="IBClassDescriptionSource" key="sourceIdentifier">
544 - <string key="majorKey">IBFrameworkSource</string>
545 - <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
546 - </object>
547 - </object>
548 - <object class="IBPartialClassDescription">
549 - <string key="className">NSObject</string>
550 - <object class="IBClassDescriptionSource" key="sourceIdentifier">
551 - <string key="majorKey">IBFrameworkSource</string>
552 - <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
553 - </object>
554 - </object>
555 - <object class="IBPartialClassDescription">
556 - <string key="className">NSObject</string>
557 - <object class="IBClassDescriptionSource" key="sourceIdentifier">
558 - <string key="majorKey">IBFrameworkSource</string>
559 - <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
560 - </object>
561 - </object>
562 - <object class="IBPartialClassDescription">
563 - <string key="className">NSObject</string>
564 - <object class="IBClassDescriptionSource" key="sourceIdentifier">
565 - <string key="majorKey">IBFrameworkSource</string>
566 - <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
567 - </object>
568 - </object>
569 - <object class="IBPartialClassDescription">
570 - <string key="className">NSObject</string>
571 - <object class="IBClassDescriptionSource" key="sourceIdentifier" id="47070934">
572 - <string key="majorKey">IBFrameworkSource</string>
573 - <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
574 - </object>
575 - </object>
576 - <object class="IBPartialClassDescription">
577 - <string key="className">UIBarButtonItem</string>
578 - <string key="superclassName">UIBarItem</string>
579 - <object class="IBClassDescriptionSource" key="sourceIdentifier">
580 - <string key="majorKey">IBFrameworkSource</string>
581 - <string key="minorKey">UIKit.framework/Headers/UIBarButtonItem.h</string>
582 - </object>
583 - </object>
584 - <object class="IBPartialClassDescription">
585 - <string key="className">UIBarItem</string>
586 - <string key="superclassName">NSObject</string>
587 - <object class="IBClassDescriptionSource" key="sourceIdentifier">
588 - <string key="majorKey">IBFrameworkSource</string>
589 - <string key="minorKey">UIKit.framework/Headers/UIBarItem.h</string>
590 - </object>
591 - </object>
592 - <object class="IBPartialClassDescription">
593 - <string key="className">UIButton</string>
594 - <string key="superclassName">UIControl</string>
595 - <object class="IBClassDescriptionSource" key="sourceIdentifier">
596 - <string key="majorKey">IBFrameworkSource</string>
597 - <string key="minorKey">UIKit.framework/Headers/UIButton.h</string>
598 - </object>
599 - </object>
600 - <object class="IBPartialClassDescription">
601 - <string key="className">UIControl</string>
602 - <string key="superclassName">UIView</string>
603 - <object class="IBClassDescriptionSource" key="sourceIdentifier">
604 - <string key="majorKey">IBFrameworkSource</string>
605 - <string key="minorKey">UIKit.framework/Headers/UIControl.h</string>
606 - </object>
607 - </object>
608 - <object class="IBPartialClassDescription">
609 - <string key="className">UIImageView</string>
610 - <string key="superclassName">UIView</string>
611 - <object class="IBClassDescriptionSource" key="sourceIdentifier">
612 - <string key="majorKey">IBFrameworkSource</string>
613 - <string key="minorKey">UIKit.framework/Headers/UIImageView.h</string>
614 - </object>
615 - </object>
616 - <object class="IBPartialClassDescription">
617 - <string key="className">UILabel</string>
618 - <string key="superclassName">UIView</string>
619 - <object class="IBClassDescriptionSource" key="sourceIdentifier">
620 - <string key="majorKey">IBFrameworkSource</string>
621 - <string key="minorKey">UIKit.framework/Headers/UILabel.h</string>
622 - </object>
623 - </object>
624 - <object class="IBPartialClassDescription">
625 - <string key="className">UINavigationBar</string>
626 - <string key="superclassName">UIView</string>
627 - <object class="IBClassDescriptionSource" key="sourceIdentifier" id="307069690">
628 - <string key="majorKey">IBFrameworkSource</string>
629 - <string key="minorKey">UIKit.framework/Headers/UINavigationBar.h</string>
630 - </object>
631 - </object>
632 - <object class="IBPartialClassDescription">
633 - <string key="className">UINavigationItem</string>
634 - <string key="superclassName">NSObject</string>
635 - <reference key="sourceIdentifier" ref="307069690"/>
636 - </object>
637 - <object class="IBPartialClassDescription">
638 - <string key="className">UIProgressView</string>
639 - <string key="superclassName">UIView</string>
640 - <object class="IBClassDescriptionSource" key="sourceIdentifier">
641 - <string key="majorKey">IBFrameworkSource</string>
642 - <string key="minorKey">UIKit.framework/Headers/UIProgressView.h</string>
643 - </object>
644 - </object>
645 - <object class="IBPartialClassDescription">
646 - <string key="className">UIResponder</string>
647 - <string key="superclassName">NSObject</string>
648 - <reference key="sourceIdentifier" ref="47070934"/>
649 - </object>
650 - <object class="IBPartialClassDescription">
651 - <string key="className">UISearchBar</string>
652 - <string key="superclassName">UIView</string>
653 - <object class="IBClassDescriptionSource" key="sourceIdentifier">
654 - <string key="majorKey">IBFrameworkSource</string>
655 - <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
656 - </object>
657 - </object>
658 - <object class="IBPartialClassDescription">
659 - <string key="className">UISearchDisplayController</string>
660 - <string key="superclassName">NSObject</string>
661 - <object class="IBClassDescriptionSource" key="sourceIdentifier">
662 - <string key="majorKey">IBFrameworkSource</string>
663 - <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
664 - </object>
665 - </object>
666 - <object class="IBPartialClassDescription">
667 - <string key="className">UIView</string>
668 - <object class="IBClassDescriptionSource" key="sourceIdentifier">
669 - <string key="majorKey">IBFrameworkSource</string>
670 - <string key="minorKey">UIKit.framework/Headers/UIPrintFormatter.h</string>
671 - </object>
672 - </object>
673 - <object class="IBPartialClassDescription">
674 - <string key="className">UIView</string>
675 - <object class="IBClassDescriptionSource" key="sourceIdentifier">
676 - <string key="majorKey">IBFrameworkSource</string>
677 - <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
678 - </object>
679 - </object>
680 - <object class="IBPartialClassDescription">
681 - <string key="className">UIView</string>
682 - <string key="superclassName">UIResponder</string>
683 - <object class="IBClassDescriptionSource" key="sourceIdentifier">
684 - <string key="majorKey">IBFrameworkSource</string>
685 - <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
686 - </object>
687 - </object>
688 - <object class="IBPartialClassDescription">
689 - <string key="className">UIViewController</string>
690 - <object class="IBClassDescriptionSource" key="sourceIdentifier">
691 - <string key="majorKey">IBFrameworkSource</string>
692 - <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
693 - </object>
694 - </object>
695 - <object class="IBPartialClassDescription">
696 - <string key="className">UIViewController</string>
697 - <object class="IBClassDescriptionSource" key="sourceIdentifier">
698 - <string key="majorKey">IBFrameworkSource</string>
699 - <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
700 - </object>
701 - </object>
702 - <object class="IBPartialClassDescription">
703 - <string key="className">UIViewController</string>
704 - <object class="IBClassDescriptionSource" key="sourceIdentifier">
705 - <string key="majorKey">IBFrameworkSource</string>
706 - <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
707 - </object>
708 - </object>
709 - <object class="IBPartialClassDescription">
710 - <string key="className">UIViewController</string>
711 - <object class="IBClassDescriptionSource" key="sourceIdentifier">
712 - <string key="majorKey">IBFrameworkSource</string>
713 - <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
714 - </object>
715 - </object>
716 - <object class="IBPartialClassDescription">
717 - <string key="className">UIViewController</string>
718 - <string key="superclassName">UIResponder</string>
719 - <object class="IBClassDescriptionSource" key="sourceIdentifier">
720 - <string key="majorKey">IBFrameworkSource</string>
721 - <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
722 - </object>
723 - </object>
724 - </object>
725 - </object>
726 - <int key="IBDocument.localizationMode">0</int>
727 - <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
728 - <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
729 - <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
730 - <integer value="1056" key="NS.object.0"/>
731 - </object>
732 - <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
733 - <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
734 - <integer value="3100" key="NS.object.0"/>
735 - </object>
736 - <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
737 - <string key="IBDocument.LastKnownRelativeProjectPath">photopicker.xcodeproj</string>
738 - <int key="IBDocument.defaultPropertyAccessControl">3</int>
739 - <object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
740 - <bool key="EncodedWithXMLCoder">YES</bool>
741 - <object class="NSArray" key="dict.sortedKeys">
742 - <bool key="EncodedWithXMLCoder">YES</bool>
743 - <string>cancel-button-pressed.png</string>
744 - <string>cancel-button.png</string>
745 - </object>
746 - <object class="NSMutableArray" key="dict.values">
747 - <bool key="EncodedWithXMLCoder">YES</bool>
748 - <string>{278, 46}</string>
749 - <string>{278, 46}</string>
750 - </object>
751 - </object>
752 - <string key="IBCocoaTouchPluginVersion">132</string>
753 - </data>
754 -</archive>
Index: trunk/tools/WikiSnaps/SettingsViewController.h
@@ -1,16 +1,17 @@
22 //
33 // SettingsViewController.h
4 -// photopicker
 4+// WikiSnaps
55 //
66 // Created by Derk-Jan Hartman on 14-01-11.
7 -// Copyright 2011 Wikimedia Commons. All rights reserved.
 7+// Copyright 2011 Derk-Jan Hartman
88 //
 9+// Dual-licensed MIT and BSD
910
1011 #import <UIKit/UIKit.h>
1112 #import "Configuration.h"
1213
1314 @interface SettingsViewController : UIViewController <UINavigationControllerDelegate,
14 - UITextFieldDelegate>{
 15+ UITextFieldDelegate>{
1516
1617 IBOutlet UITextField *username;
1718 IBOutlet UITextField *password;
Index: trunk/tools/WikiSnaps/SettingsViewController.m
@@ -1,13 +1,13 @@
22 //
33 // SettingsViewController.m
4 -// photopicker
 4+// WikiSnaps
55 //
66 // Created by Derk-Jan Hartman on 14-01-11.
7 -// Copyright 2011 Wikimedia Commons. All rights reserved.
 7+// Copyright 2011 Derk-Jan Hartman
88 //
 9+// Dual-licensed MIT and BSD
910
1011 #import "SettingsViewController.h"
11 -#import "PhotoPickerViewController.h"
1212 #import "ASIFormDataRequest.h"
1313
1414
@@ -30,12 +30,38 @@
3131 // Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
3232 - (void)viewDidLoad {
3333 [super viewDidLoad];
34 - username.text = [[NSUserDefaults standardUserDefaults] valueForKey: COMMONS_USERNAME_KEY];
35 - password.text = [[NSUserDefaults standardUserDefaults] valueForKey: COMMONS_PASSWORD_KEY];
 34+ self.title = NSLocalizedString( @"Settings", @"Title of the settings view" );
 35+ username.text = [[NSUserDefaults standardUserDefaults] valueForKey: COMMONS_USERNAME_KEY];
 36+ password.text = [[NSUserDefaults standardUserDefaults] valueForKey: COMMONS_PASSWORD_KEY];
3637
3738 }
3839
3940 /*
 41+- (void)viewWillAppear:(BOOL)animated {
 42+ [super viewWillAppear:animated];
 43+}
 44+*/
 45+/*
 46+- (void)viewDidAppear:(BOOL)animated {
 47+ [super viewDidAppear:animated];
 48+}
 49+*/
 50+
 51+- (void)viewWillDisappear:(BOOL)animated {
 52+ [super viewWillDisappear:animated];
 53+ /* Save the data */
 54+ [[NSUserDefaults standardUserDefaults] setObject:username.text forKey:COMMONS_USERNAME_KEY];
 55+ // FIXME insecure
 56+ [[NSUserDefaults standardUserDefaults] setObject:password.text forKey:COMMONS_PASSWORD_KEY];
 57+}
 58+
 59+/*
 60+- (void)viewDidDisappear:(BOOL)animated {
 61+ [super viewDidDisappear:animated];
 62+}
 63+*/
 64+
 65+/*
4066 // Override to allow orientations other than the default portrait orientation.
4167 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
4268 // Return YES for supported orientations.
@@ -58,34 +84,24 @@
5985
6086
6187 - (void)dealloc {
62 - [username release];
63 - [password release];
64 - [save release];
 88+ [username release];
 89+ [password release];
 90+ [save release];
6591 [super dealloc];
6692 }
6793
6894
6995 -(IBAction)textFieldDidEnd:(id)sender {
70 - if(sender == username ) {
71 - [password becomeFirstResponder];
72 - return;
73 - }
74 - [sender resignFirstResponder];
 96+ if(sender == username ) {
 97+ [password becomeFirstResponder];
 98+ return;
 99+ }
 100+ [sender resignFirstResponder];
75101 }
76102
77103 -(IBAction)saveAction:(id)sender {
78 -
79 - [[NSUserDefaults standardUserDefaults] setObject:username.text forKey:COMMONS_USERNAME_KEY];
80 - // FIXME insecure
81 - [[NSUserDefaults standardUserDefaults] setObject:password.text forKey:COMMONS_PASSWORD_KEY];
82 -
83 - PhotoPickerViewController *photopickerController = [[PhotoPickerViewController alloc] init];
84 - //photopickerController.title = @"hoi";
85 - //photopickerController.view.backgroundColor = [UIColor redColor];
86 -
87 - //to push the UIView.
88 - [self.navigationController pushViewController:photopickerController animated:YES];
89 - [photopickerController release];
 104+ /* Return to Primary view */
 105+ [self.navigationController popViewControllerAnimated:YES];
90106 }
91107
92108 @end
Index: trunk/tools/WikiSnaps/Classes/PhotoPickerViewController.m
@@ -1,253 +0,0 @@
2 -//
3 -// PhotoPickerViewController.m
4 -//
5 -// Copyright yourcompanyname 2009. All rights reserved.
6 -//
7 -
8 -#import "PhotoPickerViewController.h"
9 -
10 -#import "NSData+PhotoPicker.h"
11 -#import "PhotoPickerAppDelegate.h"
12 -#import "UIImage+PhotoPicker.h"
13 -#import "CommonsUpload.h"
14 -#import "ImageDetailsViewController.h"
15 -
16 -static int kPhotoPickerViewControllerSourceIndexCamera = 0;
17 -static int kPhotoPickerViewControllerSourceIndexPhotoLibrary = 1;
18 -static int kPhotoPickerViewControllerSettings = 2;
19 -
20 -
21 -@interface PhotoPickerViewController ()
22 - @property (nonatomic, retain) NSData *imageData;
23 - - (void)cancelApp;
24 - - (void)pickPhoto:(UIImagePickerControllerSourceType)sourceType;
25 - - (void)showPhotoSourceMenu;
26 - - (void)showPhotoSourceMenuOrPhotoSourceDirectly;
27 -@end
28 -
29 -
30 -@implementation PhotoPickerViewController
31 -
32 -@synthesize imageData;
33 -
34 -
35 -#pragma mark UIActionSheetDelegate Methods
36 -
37 -
38 -- (void)actionSheet:(UIActionSheet *)anActionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
39 - [anActionSheet dismissWithClickedButtonIndex:buttonIndex animated:NO];
40 -
41 - if (buttonIndex == [anActionSheet cancelButtonIndex]) {
42 - [self cancelApp];
43 - }
44 -
45 - if (buttonIndex == kPhotoPickerViewControllerSourceIndexCamera) {
46 - [self onCameraClicked];
47 - } else if (buttonIndex == kPhotoPickerViewControllerSourceIndexPhotoLibrary) {
48 - [self onPhotoLibraryClicked];
49 - } else if (buttonIndex == kPhotoPickerViewControllerSettings) {
50 - [self onSettingsClicked];
51 - }
52 -}
53 -
54 -
55 -- (void)actionSheetCancel:(UIActionSheet *)actionSheet {
56 - // Do nothing. Overriding default of simulating clicking cancel, when user hits home button.
57 -}
58 -
59 -
60 -#pragma mark UIImagePickerControllerDelegate Methods
61 -
62 -
63 -- (void)imagePickerController:(UIImagePickerController *)picker
64 - didFinishPickingMediaWithInfo:(NSDictionary *)info {
65 - UIImage *image = [info valueForKey:UIImagePickerControllerOriginalImage];
66 -
67 - image = [image correctOrientation:image];
68 -
69 - CommonsUpload *ourUpload = [[CommonsUpload alloc] init];
70 - ourUpload.imageData = UIImageJPEGRepresentation(image, 0.85f);
71 -
72 - //uploadOverlayImage.image = image;
73 - //uploadProgressMessage.text = @"uploading";
74 - //uploadProgress.progress = 0.0f;
75 -
76 - //uploadPhotoOverlay.frame = CGRectMake(0, 20, 320, 460);
77 - //[[UIApplication sharedApplication].keyWindow addSubview:uploadPhotoOverlay];
78 -
79 - ImageDetailsViewController *detailsController = [[ImageDetailsViewController alloc] init];
80 -
81 - detailsController.upload = ourUpload;
82 - [ourUpload release];
83 -
84 - //to push the UIView.
85 - [self.navigationController pushViewController:detailsController animated:YES];
86 - [detailsController release];
87 -
88 - [picker.view removeFromSuperview];
89 - [picker release];
90 -}
91 -
92 -
93 -- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
94 - BOOL shouldCancelApp = !cameraAvailable;
95 - #ifndef SHOW_SOURCE_MENU_IF_DEFAULT_SOURCE_CANCELLED
96 - PhotoPickerAppDelegate *appDelegate =
97 - (PhotoPickerAppDelegate *) [UIApplication sharedApplication].delegate;
98 -
99 - shouldCancelApp = shouldCancelApp || appDelegate.defaultImageSource >= 0;
100 - #endif
101 -
102 - if (shouldCancelApp) {
103 - [self cancelApp];
104 - } else {
105 - [picker.view removeFromSuperview];
106 - [picker release];
107 -
108 - [self showPhotoSourceMenuOrPhotoSourceDirectly];
109 - }
110 -}
111 -
112 -
113 -#pragma mark UIViewController Methods
114 -
115 -
116 -- (void)viewDidLoad {
117 - [super viewDidLoad];
118 -
119 - #ifdef FORCE_ENABLE_CAMERA
120 - cameraAvailable = YES;
121 - fakeCameraAvailable = ![UIImagePickerController
122 - isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera];
123 - #else
124 - cameraAvailable =
125 - [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera];
126 - #endif
127 - takePhotoButton.enabled = cameraAvailable;
128 -}
129 -
130 -
131 -- (void)viewDidAppear:(BOOL)animated {
132 - [self showPhotoSourceMenuOrPhotoSourceDirectly];
133 -
134 - #ifdef SHOW_SOURCE_MENU_IF_DEFAULT_SOURCE_CANCELLED
135 - PhotoPickerAppDelegate *appDelegate =
136 - (PhotoPickerAppDelegate *) [UIApplication sharedApplication].delegate;
137 -
138 - // Clearing the default image source in case the user goes back to the menu.
139 - appDelegate.defaultImageSource = -1;
140 - #endif
141 -}
142 -
143 -#pragma mark Public
144 -
145 -
146 -- (IBAction)onCameraClicked {
147 - [self pickPhoto:UIImagePickerControllerSourceTypeCamera];
148 -}
149 -
150 -- (IBAction)onPhotoLibraryClicked {
151 - [self pickPhoto:UIImagePickerControllerSourceTypePhotoLibrary];
152 -}
153 -
154 -- (IBAction)onSettingsClicked {
155 - [self.navigationController popToRootViewControllerAnimated:YES];
156 -}
157 -
158 -- (IBAction)onCancelUploadClicked {
159 -/*
160 - [NSObject cancelPreviousPerformRequestsWithTarget:self
161 - selector:@selector(uploadImage)
162 - object:nil];
163 -*/
164 - [uploadPhotoOverlay removeFromSuperview];
165 -
166 - [self showPhotoSourceMenuOrPhotoSourceDirectly];
167 -}
168 -
169 -
170 -- (IBAction)onContinueRecommendationClicked {
171 - [self showPhotoSourceMenu];
172 -}
173 -
174 -
175 -
176 -
177 -#pragma mark Private
178 -
179 -
180 -- (void)cancelApp {
181 - [self.navigationController popToRootViewControllerAnimated:YES];
182 -}
183 -
184 -
185 -- (void)pickPhoto:(UIImagePickerControllerSourceType)sourceType {
186 - PhotoPickerAppDelegate *appDelegate =
187 - (PhotoPickerAppDelegate *) [UIApplication sharedApplication].delegate;
188 -
189 - UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
190 - imagePickerController.delegate = self;
191 -
192 - // If the camera is force enabled, show the library instead.
193 - #ifdef FORCE_ENABLE_CAMERA
194 - if (fakeCameraAvailable && sourceType == UIImagePickerControllerSourceTypeCamera) {
195 - sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
196 - }
197 - #endif
198 -
199 - imagePickerController.sourceType = sourceType;
200 -
201 - [appDelegate.window addSubview:imagePickerController.view];
202 -}
203 -
204 -
205 -- (void)showPhotoSourceMenu {
206 - if (cameraAvailable) {
207 - photoSourceActionSheet = [[UIActionSheet alloc]
208 - initWithTitle:nil
209 - delegate:self
210 - cancelButtonTitle:@"Cancel"
211 - destructiveButtonTitle:nil
212 - otherButtonTitles:@"Camera", @"Photo Library", @"Settings", nil];
213 - kPhotoPickerViewControllerSourceIndexCamera = 0;
214 - kPhotoPickerViewControllerSourceIndexPhotoLibrary = 1;
215 - kPhotoPickerViewControllerSettings = 2;
216 - } else {
217 - photoSourceActionSheet = [[UIActionSheet alloc]
218 - initWithTitle:nil
219 - delegate:self
220 - cancelButtonTitle:@"Cancel"
221 - destructiveButtonTitle:nil
222 - otherButtonTitles:@"Choose Photo", @"Settings", nil];
223 - kPhotoPickerViewControllerSourceIndexCamera = -99;
224 - kPhotoPickerViewControllerSourceIndexPhotoLibrary = 0;
225 - kPhotoPickerViewControllerSettings = 1;
226 - }
227 - photoSourceActionSheet.actionSheetStyle = UIBarStyleDefault;
228 -
229 - UIImage *backgroundImage = [UIImage imageNamed:@"home-background.png"];
230 - UIView *background = [[UIImageView alloc] initWithImage:backgroundImage];
231 - background.frame = CGRectMake(0, cameraAvailable ? -253 : -320, 320, 460);
232 -
233 - [photoSourceActionSheet insertSubview:background atIndex:0];
234 -
235 - [photoSourceActionSheet showInView:self.view];
236 -}
237 -
238 -
239 -- (void)showPhotoSourceMenuOrPhotoSourceDirectly {
240 - PhotoPickerAppDelegate *appDelegate =
241 - (PhotoPickerAppDelegate *) [UIApplication sharedApplication].delegate;
242 -
243 - if (!cameraAvailable ||
244 - appDelegate.defaultImageSource == UIImagePickerControllerSourceTypePhotoLibrary) {
245 - [self onPhotoLibraryClicked];
246 - } else if (appDelegate.defaultImageSource == UIImagePickerControllerSourceTypeCamera &&
247 - cameraAvailable) {
248 - [self onCameraClicked];
249 - } else {
250 - [self showPhotoSourceMenu];
251 - }
252 -}
253 -
254 -@end
Index: trunk/tools/WikiSnaps/Classes/PhotoPickerViewController.h
@@ -1,32 +0,0 @@
2 -//
3 -// PhotoPickerViewController.h
4 -//
5 -// Copyright yourcompanyname 2009. All rights reserved.
6 -//
7 -
8 -#import <UIKit/UIKit.h>
9 -
10 -#import "Configuration.h"
11 -
12 -
13 -@interface PhotoPickerViewController : UIViewController <UIActionSheetDelegate,
14 - UIImagePickerControllerDelegate,
15 - UINavigationControllerDelegate> {
16 - BOOL cameraAvailable;
17 - BOOL fakeCameraAvailable;
18 - NSData *imageData;
19 - UIActionSheet *photoSourceActionSheet;
20 - IBOutlet UIButton *takePhotoButton;
21 - IBOutlet UIView *uploadPhotoOverlay;
22 - IBOutlet UIImageView *uploadOverlayImage;
23 - IBOutlet UIProgressView *uploadProgress;
24 - IBOutlet UILabel *uploadProgressMessage;
25 -
26 -}
27 -
28 -- (IBAction)onCameraClicked;
29 -- (IBAction)onPhotoLibraryClicked;
30 -- (IBAction)onSettingsClicked;
31 -- (IBAction)onCancelUploadClicked;
32 -@end
33 -
Index: trunk/tools/WikiSnaps/Classes/ImageUploadViewController.m
@@ -0,0 +1,112 @@
 2+//
 3+// ImageUploadViewController.m
 4+// WikiSnaps
 5+//
 6+// Created by Derk-Jan Hartman on 23-01-11.
 7+// Copyright 2011 Derk-Jan Hartman
 8+//
 9+// Dual-licensed MIT and BSD
 10+// Based on Photopicker (MIT)
 11+
 12+#import "ImageUploadViewController.h"
 13+#import "Configuration.h"
 14+
 15+
 16+@implementation ImageUploadViewController
 17+
 18+@synthesize upload;
 19+
 20+
 21+// The designated initializer. Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad.
 22+/*
 23+- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
 24+ self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
 25+ if (self) {
 26+ // Custom initialization.
 27+ }
 28+ return self;
 29+}
 30+*/
 31+
 32+
 33+// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
 34+- (void)viewDidLoad {
 35+ [super viewDidLoad];
 36+
 37+ uploadOverlayImage.image = [UIImage imageWithData:upload.imageData];
 38+ uploadProgressMessage.text = NSLocalizedString( @"uploading", @"Upload progress message" );
 39+ uploadProgress.progress = 0.0f;
 40+
 41+ // view.frame = CGRectMake(0, 20, 320, 460);
 42+ // [[UIApplication sharedApplication].keyWindow addSubview:uploadPhotoOverlay];
 43+
 44+ // Start the actual upload
 45+ upload.delegate = self;
 46+ [upload uploadImage];
 47+}
 48+
 49+- (void) viewWillAppear:(BOOL)animated{
 50+ [[self navigationController] setNavigationBarHidden:YES animated:YES];
 51+}
 52+
 53+- (void) viewWillDisappear:(BOOL)animated{
 54+ [[self navigationController] setNavigationBarHidden:NO animated:YES];
 55+}
 56+
 57+
 58+/*
 59+// Override to allow orientations other than the default portrait orientation.
 60+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
 61+ // Return YES for supported orientations.
 62+ return (interfaceOrientation == UIInterfaceOrientationPortrait);
 63+}
 64+*/
 65+
 66+- (void)didReceiveMemoryWarning {
 67+ // Releases the view if it doesn't have a superview.
 68+ [super didReceiveMemoryWarning];
 69+
 70+ // Release any cached data, images, etc. that aren't in use.
 71+}
 72+
 73+- (void)viewDidUnload {
 74+ [super viewDidUnload];
 75+ // Release any retained subviews of the main view.
 76+ // e.g. self.myOutlet = nil;
 77+}
 78+
 79+
 80+- (void)dealloc {
 81+ [upload release];
 82+ [super dealloc];
 83+}
 84+
 85+- (IBAction)onCancelUploadClicked: (id)sender {
 86+ [self.navigationController popToRootViewControllerAnimated:YES];
 87+}
 88+
 89+
 90+- (void)uploadSucceeded {
 91+ UIAlertView *alert =
 92+ [[UIAlertView alloc] initWithTitle: NSLocalizedString( @"Upload succeeded", @"Title for upload succeeded alert" )
 93+ message: nil
 94+ delegate: self
 95+ cancelButtonTitle: NSLocalizedString( @"Show upload", @"Title for Show upload button in alert view after upload succeeded" )
 96+ otherButtonTitles: nil];
 97+ [alert show];
 98+ [alert release];
 99+ [self.navigationController popToRootViewControllerAnimated:YES];
 100+}
 101+
 102+- (void)uploadFailed:(NSString *)error {
 103+ NSLog(error);
 104+ [self.navigationController popToRootViewControllerAnimated:YES];
 105+}
 106+
 107+- (void) alertView: (UIAlertView *) alertView clickedButtonAtIndex: (NSInteger) buttonIndex {
 108+ [[UIApplication sharedApplication] openURL:[NSURL URLWithString: [NSString stringWithFormat: COMMONS_DESTINATION_URL, [upload.title stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]]];
 109+ //[self.navigationController popToRootViewControllerAnimated:YES];
 110+} // clickedButtonAtIndex
 111+
 112+
 113+@end
Index: trunk/tools/WikiSnaps/Classes/ImageDetailsViewController.m
@@ -1,13 +1,15 @@
22 //
33 // ImageDetailsViewController.m
4 -// photopicker
 4+// WikiSnaps
55 //
66 // Created by Derk-Jan Hartman on 15-01-11.
7 -// Copyright 2011 Wikimedia Commons. All rights reserved.
 7+// Copyright 2011 Derk-Jan Hartman
88 //
 9+// Dual-licensed MIT and BSD
910
1011 #import "ImageDetailsViewController.h"
1112
 13+#import "ImageUploadViewController.h"
1214
1315 @implementation ImageDetailsViewController
1416
@@ -30,7 +32,10 @@
3133 // Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
3234 - (void)viewDidLoad {
3335 [super viewDidLoad];
34 - self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle: @"Upload" style: UIBarButtonItemStyleDone target: self action: @selector( doUpload: ) ];
 36+ self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle: NSLocalizedString( @"Upload", @"Title for upload buton on image details view" )
 37+ style: UIBarButtonItemStyleDone
 38+ target: self
 39+ action: @selector( doUpload: ) ];
3540 }
3641
3742
@@ -57,18 +62,18 @@
5863
5964
6065 - (void)dealloc {
61 - [titleField release];
62 - [descriptionText release];
63 - [upload release];
 66+ [titleField release];
 67+ [descriptionText release];
 68+ [upload release];
6469 [super dealloc];
6570 }
6671
6772 -(IBAction)textFieldDidEnd:(id)sender {
68 - if(sender == titleField ) {
69 - [descriptionText becomeFirstResponder];
70 - return;
71 - }
72 - [sender resignFirstResponder];
 73+ if(sender == titleField ) {
 74+ [descriptionText becomeFirstResponder];
 75+ return;
 76+ }
 77+ [sender resignFirstResponder];
7378 }
7479
7580 - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range
@@ -78,33 +83,14 @@
7984 }
8085
8186 - (void)doUpload:(id)sender {
82 - upload.title = [NSString stringWithFormat: @"%@.jpg", titleField.text];
83 - upload.description = descriptionText.text;
84 - [descriptionText resignFirstResponder];
85 - upload.delegate = self;
86 -
87 - [upload uploadImage];
 87+ upload.title = [NSString stringWithFormat: @"%@.jpg", titleField.text];
 88+ upload.description = descriptionText.text;
 89+ [descriptionText resignFirstResponder];
 90+
 91+ ImageUploadViewController *uploadViewController = [[ImageUploadViewController alloc] init];
 92+ uploadViewController.upload = upload;
 93+ [self.navigationController pushViewController:uploadViewController animated:YES];
 94+ [uploadViewController release];
8895 }
8996
90 -- (void)uploadSucceeded {
91 - UIAlertView *alert =
92 - [[UIAlertView alloc] initWithTitle: @"Upload succeeded"
93 - message: nil
94 - delegate: self
95 - cancelButtonTitle: @"Show upload"
96 - otherButtonTitles: nil];
97 - [alert show];
98 - [alert release];
99 -}
100 -
101 -- (void)uploadFailed:(NSString *)error {
102 - NSLog(error);
103 - [self.navigationController popToRootViewControllerAnimated:YES];
104 -}
105 -
106 -- (void) alertView: (UIAlertView *) alertView clickedButtonAtIndex: (NSInteger) buttonIndex {
107 - [[UIApplication sharedApplication] openURL:[NSURL URLWithString: [NSString stringWithFormat:@"http://commons.wikimedia.org/wiki/File:%@", [upload.title stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]]];
108 - //[self.navigationController popToRootViewControllerAnimated:YES];
109 -} // clickedButtonAtIndex
110 -
11197 @end
Index: trunk/tools/WikiSnaps/Classes/NSData+PhotoPicker.h
@@ -1,8 +1,7 @@
22 //
33 // NSData+PhotoPicker.h
44 //
5 -// Copyright 2009 yourcompanyname. All rights reserved.
6 -//
 5+// Based on Photopicker (MIT)
76
87 #import <UIKit/UIKit.h>
98
Index: trunk/tools/WikiSnaps/Classes/SourcePickerViewController.h
@@ -0,0 +1,27 @@
 2+//
 3+// SourcePickerViewController.h
 4+// WikiSnaps
 5+//
 6+// Created by Derk-Jan Hartman on 20-01-11.
 7+// Copyright 2011 Derk-Jan Hartman
 8+//
 9+// Dual-licensed MIT and BSD
 10+// Based on Photopicker (MIT)
 11+
 12+#import <UIKit/UIKit.h>
 13+
 14+#import "Configuration.h"
 15+
 16+@interface SourcePickerViewController : UITableViewController <UINavigationControllerDelegate,
 17+ UIImagePickerControllerDelegate> {
 18+ BOOL cameraAvailable;
 19+ BOOL fakeCameraAvailable;
 20+ NSData *imageData;
 21+}
 22+
 23+- (IBAction)settingsPressed:(id)sender;
 24+- (IBAction)infoPressed:(id)sender;
 25+- (IBAction)onCameraClicked:(id)sender;
 26+- (IBAction)onPhotoLibraryClicked:(id)sender;
 27+
 28+@end
Property changes on: trunk/tools/WikiSnaps/Classes/SourcePickerViewController.h
___________________________________________________________________
Added: svn:eol-style
129 + native
Index: trunk/tools/WikiSnaps/Classes/SourcePickerViewController.m
@@ -0,0 +1,277 @@
 2+//
 3+// SourcePickerViewController.m
 4+// WikiSnaps
 5+//
 6+// Created by Derk-Jan Hartman on 20-01-11.
 7+// Copyright 2011 Derk-Jan Hartman
 8+//
 9+// Dual-licensed MIT and BSD
 10+// Based on Photopicker (MIT)
 11+
 12+#import "PhotoPickerAppDelegate.h"
 13+
 14+#import "SourcePickerViewController.h"
 15+#import "SettingsViewController.h"
 16+//#import "AboutViewController.h"
 17+#import "ImageDetailsViewController.h"
 18+
 19+#import "UIImage+PhotoPicker.h"
 20+#import "NSData+PhotoPicker.h"
 21+#import "CommonsUpload.h"
 22+
 23+static int kSourcePickerViewControllerSourceIndexCamera = 0;
 24+static int kSourcePickerViewControllerSourceIndexPhotoLibrary = 1;
 25+
 26+/* Private */
 27+@interface SourcePickerViewController ()
 28+ @property (nonatomic, retain) NSData *imageData;
 29+ - (void)pickPhoto:(UIImagePickerControllerSourceType)sourceType;
 30+@end
 31+
 32+@implementation SourcePickerViewController
 33+
 34+@synthesize imageData;
 35+
 36+#pragma mark -
 37+#pragma mark Actions
 38+
 39+/* Load the settings panel */
 40+- (IBAction)settingsPressed:(id)sender {
 41+ SettingsViewController *settingsController = [[SettingsViewController alloc] init];
 42+ [self.navigationController pushViewController:settingsController animated:YES];
 43+ [settingsController release];
 44+}
 45+
 46+/* Load the About panel */
 47+- (IBAction)infoPressed:(id)sender {
 48+ return;
 49+
 50+// AboutViewController *aboutController = [[AboutViewController alloc] init];
 51+// [self.navigationController pushViewController:AboutViewController animated:YES];
 52+// [AboutViewController release];
 53+}
 54+
 55+/* Open the camera */
 56+- (IBAction)onCameraClicked: (id)sender {
 57+ [self pickPhoto:UIImagePickerControllerSourceTypeCamera];
 58+}
 59+
 60+/* Open the photo library */
 61+- (IBAction)onPhotoLibraryClicked: (id)sender {
 62+ [self pickPhoto:UIImagePickerControllerSourceTypePhotoLibrary];
 63+}
 64+
 65+/* Open a photopicker */
 66+- (void)pickPhoto:(UIImagePickerControllerSourceType)sourceType {
 67+ UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
 68+ imagePickerController.delegate = self;
 69+
 70+ // If the camera is force enabled, show the library instead.
 71+ #ifdef FORCE_ENABLE_CAMERA
 72+ if (fakeCameraAvailable && sourceType == UIImagePickerControllerSourceTypeCamera) {
 73+ sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
 74+ }
 75+ #endif
 76+
 77+ imagePickerController.sourceType = sourceType;
 78+ // imagePickerController.allowsImageEditing = YES;
 79+
 80+ [self presentModalViewController:imagePickerController animated:YES];
 81+ [imagePickerController release];
 82+}
 83+
 84+#pragma mark -
 85+#pragma mark View lifecycle
 86+
 87+
 88+- (void)viewDidLoad {
 89+ [super viewDidLoad];
 90+
 91+ // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
 92+ // self.navigationItem.rightBarButtonItem = self.editButtonItem;
 93+ self.title = NSLocalizedString( @"Image source", @"Title for image source picker view" );
 94+
 95+ // Add a settings button etc
 96+ UIBarButtonItem *settingsButton = [[UIBarButtonItem alloc]
 97+ initWithTitle: NSLocalizedString( @"Settings", @"A button to go to the settings view" )
 98+ style: UIBarButtonItemStylePlain
 99+ target:self
 100+ action: @selector(settingsPressed:)];
 101+ self.navigationItem.leftBarButtonItem = settingsButton;
 102+ [settingsButton release];
 103+
 104+ UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
 105+ [infoButton addTarget:self action:@selector(infoPressed:) forControlEvents:UIControlEventTouchUpInside];
 106+ UIBarButtonItem *infoBarButton = [[UIBarButtonItem alloc] initWithCustomView: infoButton];
 107+ self.navigationItem.rightBarButtonItem = infoBarButton;
 108+ [infoBarButton release];
 109+
 110+ #ifdef FORCE_ENABLE_CAMERA
 111+ cameraAvailable = YES;
 112+ fakeCameraAvailable = ![UIImagePickerController
 113+ isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera];
 114+ #else
 115+ cameraAvailable =
 116+ [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera];
 117+ #endif
 118+}
 119+
 120+
 121+/*
 122+- (void)viewWillAppear:(BOOL)animated {
 123+ [super viewWillAppear:animated];
 124+}
 125+*/
 126+
 127+- (void)viewDidAppear:(BOOL)animated {
 128+ [super viewDidAppear:animated];
 129+
 130+ #ifdef SHOW_SOURCE_MENU_IF_DEFAULT_SOURCE_CANCELLED
 131+ PhotoPickerAppDelegate *appDelegate =
 132+ (PhotoPickerAppDelegate *) [UIApplication sharedApplication].delegate;
 133+
 134+ // Clearing the default image source in case the user goes back to the menu.
 135+ appDelegate.defaultImageSource = -1;
 136+ #endif
 137+}
 138+
 139+/*
 140+- (void)viewWillDisappear:(BOOL)animated {
 141+ [super viewWillDisappear:animated];
 142+}
 143+*/
 144+/*
 145+- (void)viewDidDisappear:(BOOL)animated {
 146+ [super viewDidDisappear:animated];
 147+}
 148+*/
 149+/*
 150+// Override to allow orientations other than the default portrait orientation.
 151+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
 152+ // Return YES for supported orientations.
 153+ return (interfaceOrientation == UIInterfaceOrientationPortrait);
 154+}
 155+*/
 156+
 157+
 158+#pragma mark -
 159+#pragma mark Table view data source
 160+
 161+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
 162+ // Return the number of sections.
 163+ return 1;
 164+}
 165+
 166+
 167+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
 168+ // Return the number of rows in the section.
 169+ if (cameraAvailable) {
 170+ return 2;
 171+ }
 172+
 173+ return 1;
 174+}
 175+
 176+
 177+// Customize the appearance of table view cells.
 178+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
 179+
 180+ static NSString *CellIdentifier = @"Cell";
 181+
 182+ UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
 183+ if (cell == nil) {
 184+ cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
 185+ }
 186+
 187+ cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
 188+
 189+ if (indexPath.row == kSourcePickerViewControllerSourceIndexCamera ) {
 190+ cell.textLabel.text = NSLocalizedString( @"Camera", @"Title for source selection item; Camera");
 191+ } else if (indexPath.row == kSourcePickerViewControllerSourceIndexPhotoLibrary ) {
 192+ cell.textLabel.text = NSLocalizedString( @"Photo Library", @"Title for source selection item; Photo Library");
 193+ }
 194+ return cell;
 195+}
 196+
 197+
 198+#pragma mark -
 199+#pragma mark Table view delegate
 200+
 201+- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
 202+ [tableView deselectRowAtIndexPath:indexPath animated:YES];
 203+
 204+ if (indexPath.row == kSourcePickerViewControllerSourceIndexCamera) {
 205+ [self onCameraClicked: tableView];
 206+ } else if (indexPath.row == kSourcePickerViewControllerSourceIndexPhotoLibrary) {
 207+ [self onPhotoLibraryClicked: tableView];
 208+ }
 209+}
 210+
 211+#pragma mark UIImagePickerControllerDelegate Methods
 212+
 213+
 214+- (void)imagePickerController:(UIImagePickerController *)picker
 215+ didFinishPickingMediaWithInfo:(NSDictionary *)info {
 216+ NSLog(@"Image info: %@",info);
 217+
 218+ UIImage *image = [info valueForKey:UIImagePickerControllerOriginalImage];
 219+
 220+ image = [image correctOrientation:image];
 221+
 222+ CommonsUpload *ourUpload = [[CommonsUpload alloc] init];
 223+ ourUpload.imageData = UIImageJPEGRepresentation(image, 0.85f);
 224+
 225+ ImageDetailsViewController *detailsController = [[ImageDetailsViewController alloc] init];
 226+
 227+ detailsController.upload = ourUpload;
 228+ [ourUpload release];
 229+
 230+ //to push the UIView.
 231+ [self.navigationController pushViewController:detailsController animated:YES];
 232+ [detailsController release];
 233+
 234+ [picker dismissModalViewControllerAnimated:YES];
 235+}
 236+
 237+
 238+- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
 239+ BOOL shouldCancelApp = !cameraAvailable;
 240+ #ifndef SHOW_SOURCE_MENU_IF_DEFAULT_SOURCE_CANCELLED
 241+ PhotoPickerAppDelegate *appDelegate =
 242+ (PhotoPickerAppDelegate *) [UIApplication sharedApplication].delegate;
 243+
 244+ shouldCancelApp = shouldCancelApp || appDelegate.defaultImageSource >= 0;
 245+ #endif
 246+
 247+ if (shouldCancelApp) {
 248+ //[self cancelApp];
 249+ } else {
 250+ [picker dismissModalViewControllerAnimated:YES];
 251+
 252+ //[self showPhotoSourceMenuOrPhotoSourceDirectly];
 253+ }
 254+}
 255+
 256+#pragma mark -
 257+#pragma mark Memory management
 258+
 259+- (void)didReceiveMemoryWarning {
 260+ // Releases the view if it doesn't have a superview.
 261+ [super didReceiveMemoryWarning];
 262+
 263+ // Relinquish ownership any cached data, images, etc. that aren't in use.
 264+}
 265+
 266+- (void)viewDidUnload {
 267+ // Relinquish ownership of anything that can be recreated in viewDidLoad or on demand.
 268+ // For example: self.myOutlet = nil;
 269+}
 270+
 271+
 272+- (void)dealloc {
 273+ [super dealloc];
 274+}
 275+
 276+
 277+@end
 278+
Index: trunk/tools/WikiSnaps/Classes/NSData+PhotoPicker.m
@@ -1,8 +1,7 @@
22 //
33 // NSData+PhotoPicker.m
44 //
5 -// Copyright 2009 yourcompanyname. All rights reserved.
6 -//
 5+// Based on Photopicker (MIT)
76
87 #import "NSData+PhotoPicker.h"
98
Index: trunk/tools/WikiSnaps/Classes/UIImage+PhotoPicker.h
@@ -1,8 +1,7 @@
22 //
33 // UIImage+PhotoPicker.h
44 //
5 -// Copyright 2009 yourcompanyname. All rights reserved.
6 -//
 5+// Based on Photopicker (MIT)
76
87 #import <UIKit/UIKit.h>
98
Index: trunk/tools/WikiSnaps/Classes/Configuration.h
@@ -1,21 +1,21 @@
22 //
33 // Configuration.h
44 //
5 -// Copyright 2009 yourcompanyname. All rights reserved.
 5+// Created by Derk-Jan Hartman on 14-01-11.
 6+// Copyright 2011 Derk-Jan Hartman
67 //
 8+// Dual-licensed MIT and BSD
79
810 #define FORCE_ENABLE_CAMERA
911 //#define SHOW_SOURCE_MENU_IF_DEFAULT_SOURCE_CANCELLED
1012
11 -#define UPLOAD_URL @"http://www.yourcompany.com/upload/"
12 -#define CONTINUE_URL @"http://www.yourcompany.com/continue/"
13 -
1413 // Keys for preferences
1514 #define COMMONS_USERNAME_KEY @"CommonsUsernameKey"
1615 // FIXME insecure
1716 #define COMMONS_PASSWORD_KEY @"CommonsPasswordKey"
1817
1918 // Constants
20 -#define API_URL @"http://commons.wikimedia.org/w/api.php"
 19+#define COMMONS_DESTINATION_URL @"http://commons.wikimedia.org/wiki/File:%@"
 20+#define COMMONS_API_URL @"http://commons.wikimedia.org/w/api.php"
2121 #define DEFAULT_LICENSE @"{{self|cc-by-sa-3.0}}"
2222 #define APPLICATION_CATEGORY @"Images uploaded with WikiSnaps"
\ No newline at end of file
Index: trunk/tools/WikiSnaps/Classes/UIImage+PhotoPicker.m
@@ -1,8 +1,7 @@
22 //
33 // UIImage+PhotoPicker.m
44 //
5 -// Copyright 2009 yourcompanyname. All rights reserved.
6 -//
 5+// Based on Photopicker (MIT)
76
87 #import "UIImage+PhotoPicker.h"
98
Index: trunk/tools/WikiSnaps/Classes/Configuration.m
@@ -1,7 +1,9 @@
22 //
33 // Configuration.m
44 //
5 -// Copyright 2009 yourcompanyname. All rights reserved.
 5+// Created by Derk-Jan Hartman on 14-01-11.
 6+// Copyright 2011 Derk-Jan Hartman
67 //
 8+// Dual-licensed MIT and BSD
79
810 #import "Configuration.h"
Index: trunk/tools/WikiSnaps/Classes/CommonsUpload.h
@@ -1,10 +1,11 @@
22 //
33 // CommonsUpload.h
4 -// photopicker
 4+// WikiSnaps
55 //
66 // Created by Derk-Jan Hartman on 15-01-11.
7 -// Copyright 2011 Wikimedia Commons. All rights reserved.
 7+// Copyright 2011 Derk-Jan Hartman
88 //
 9+// Dual-licensed MIT and BSD
910
1011 #import <Foundation/Foundation.h>
1112
Index: trunk/tools/WikiSnaps/Classes/ImageUploadViewController.xib
@@ -0,0 +1,668 @@
 2+<?xml version="1.0" encoding="UTF-8"?>
 3+<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
 4+ <data>
 5+ <int key="IBDocument.SystemTarget">1056</int>
 6+ <string key="IBDocument.SystemVersion">10J567</string>
 7+ <string key="IBDocument.InterfaceBuilderVersion">823</string>
 8+ <string key="IBDocument.AppKitVersion">1038.35</string>
 9+ <string key="IBDocument.HIToolboxVersion">462.00</string>
 10+ <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
 11+ <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
 12+ <string key="NS.object.0">132</string>
 13+ </object>
 14+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
 15+ <bool key="EncodedWithXMLCoder">YES</bool>
 16+ <integer value="4"/>
 17+ </object>
 18+ <object class="NSArray" key="IBDocument.PluginDependencies">
 19+ <bool key="EncodedWithXMLCoder">YES</bool>
 20+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
 21+ </object>
 22+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
 23+ <bool key="EncodedWithXMLCoder">YES</bool>
 24+ <object class="NSArray" key="dict.sortedKeys" id="0">
 25+ <bool key="EncodedWithXMLCoder">YES</bool>
 26+ </object>
 27+ <object class="NSMutableArray" key="dict.values">
 28+ <bool key="EncodedWithXMLCoder">YES</bool>
 29+ </object>
 30+ </object>
 31+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
 32+ <bool key="EncodedWithXMLCoder">YES</bool>
 33+ <object class="IBProxyObject" id="372490531">
 34+ <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
 35+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
 36+ </object>
 37+ <object class="IBProxyObject" id="975951072">
 38+ <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
 39+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
 40+ </object>
 41+ <object class="IBUIView" id="1015022196">
 42+ <reference key="NSNextResponder"/>
 43+ <int key="NSvFlags">292</int>
 44+ <object class="NSMutableArray" key="NSSubviews">
 45+ <bool key="EncodedWithXMLCoder">YES</bool>
 46+ <object class="IBUINavigationBar" id="748685327">
 47+ <reference key="NSNextResponder" ref="1015022196"/>
 48+ <int key="NSvFlags">290</int>
 49+ <string key="NSFrameSize">{320, 44}</string>
 50+ <reference key="NSSuperview" ref="1015022196"/>
 51+ <bool key="IBUIOpaque">NO</bool>
 52+ <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
 53+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
 54+ <int key="IBUIBarStyle">1</int>
 55+ <object class="NSArray" key="IBUIItems">
 56+ <bool key="EncodedWithXMLCoder">YES</bool>
 57+ <object class="IBUINavigationItem" id="746867970">
 58+ <reference key="IBUINavigationBar" ref="748685327"/>
 59+ <string key="IBUITitle"/>
 60+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
 61+ </object>
 62+ </object>
 63+ </object>
 64+ <object class="IBUIImageView" id="182060304">
 65+ <reference key="NSNextResponder" ref="1015022196"/>
 66+ <int key="NSvFlags">292</int>
 67+ <string key="NSFrame">{{20, 64}, {279, 310}}</string>
 68+ <reference key="NSSuperview" ref="1015022196"/>
 69+ <bool key="IBUIOpaque">NO</bool>
 70+ <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
 71+ <int key="IBUIContentMode">1</int>
 72+ <bool key="IBUIUserInteractionEnabled">NO</bool>
 73+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
 74+ </object>
 75+ <object class="IBUIButton" id="860458292">
 76+ <reference key="NSNextResponder" ref="1015022196"/>
 77+ <int key="NSvFlags">292</int>
 78+ <string key="NSFrame">{{21, 394}, {278, 46}}</string>
 79+ <reference key="NSSuperview" ref="1015022196"/>
 80+ <bool key="IBUIOpaque">NO</bool>
 81+ <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
 82+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
 83+ <int key="IBUIContentHorizontalAlignment">0</int>
 84+ <int key="IBUIContentVerticalAlignment">0</int>
 85+ <object class="NSFont" key="IBUIFont">
 86+ <string key="NSName">Helvetica-Bold</string>
 87+ <double key="NSSize">15</double>
 88+ <int key="NSfFlags">16</int>
 89+ </object>
 90+ <object class="NSColor" key="IBUIHighlightedTitleColor">
 91+ <int key="NSColorSpace">3</int>
 92+ <bytes key="NSWhite">MQA</bytes>
 93+ </object>
 94+ <object class="NSColor" key="IBUINormalTitleColor">
 95+ <int key="NSColorSpace">1</int>
 96+ <bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
 97+ </object>
 98+ <object class="NSColor" key="IBUINormalTitleShadowColor">
 99+ <int key="NSColorSpace">3</int>
 100+ <bytes key="NSWhite">MC41AA</bytes>
 101+ </object>
 102+ <object class="NSCustomResource" key="IBUIHighlightedBackgroundImage">
 103+ <string key="NSClassName">NSImage</string>
 104+ <string key="NSResourceName">cancel-button-pressed.png</string>
 105+ </object>
 106+ <object class="NSCustomResource" key="IBUINormalBackgroundImage">
 107+ <string key="NSClassName">NSImage</string>
 108+ <string key="NSResourceName">cancel-button.png</string>
 109+ </object>
 110+ </object>
 111+ <object class="IBUIProgressView" id="413664359">
 112+ <reference key="NSNextResponder" ref="1015022196"/>
 113+ <int key="NSvFlags">292</int>
 114+ <string key="NSFrame">{{78, 26}, {164, 11}}</string>
 115+ <reference key="NSSuperview" ref="1015022196"/>
 116+ <bool key="IBUIOpaque">NO</bool>
 117+ <bool key="IBUIClipsSubviews">YES</bool>
 118+ <bool key="IBUIMultipleTouchEnabled">YES</bool>
 119+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
 120+ <float key="IBUIProgress">0.5</float>
 121+ <int key="IBUIProgressViewStyle">1</int>
 122+ </object>
 123+ <object class="IBUILabel" id="329379503">
 124+ <reference key="NSNextResponder" ref="1015022196"/>
 125+ <int key="NSvFlags">292</int>
 126+ <string key="NSFrameSize">{320, 23}</string>
 127+ <reference key="NSSuperview" ref="1015022196"/>
 128+ <bool key="IBUIOpaque">NO</bool>
 129+ <bool key="IBUIClipsSubviews">YES</bool>
 130+ <bool key="IBUIUserInteractionEnabled">NO</bool>
 131+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
 132+ <string key="IBUIText">uploading</string>
 133+ <object class="NSFont" key="IBUIFont">
 134+ <string key="NSName">Helvetica</string>
 135+ <double key="NSSize">14</double>
 136+ <int key="NSfFlags">16</int>
 137+ </object>
 138+ <object class="NSColor" key="IBUITextColor">
 139+ <int key="NSColorSpace">3</int>
 140+ <bytes key="NSWhite">MQA</bytes>
 141+ <object class="NSColorSpace" key="NSCustomColorSpace" id="89421018">
 142+ <int key="NSID">2</int>
 143+ </object>
 144+ </object>
 145+ <nil key="IBUIHighlightedColor"/>
 146+ <object class="NSColor" key="IBUIShadowColor">
 147+ <int key="NSColorSpace">3</int>
 148+ <bytes key="NSWhite">MAA</bytes>
 149+ <reference key="NSCustomColorSpace" ref="89421018"/>
 150+ </object>
 151+ <int key="IBUIBaselineAdjustment">1</int>
 152+ <bool key="IBUIAdjustsFontSizeToFit">NO</bool>
 153+ <float key="IBUIMinimumFontSize">10</float>
 154+ <int key="IBUITextAlignment">1</int>
 155+ </object>
 156+ </object>
 157+ <string key="NSFrameSize">{320, 460}</string>
 158+ <reference key="NSSuperview"/>
 159+ <object class="NSColor" key="IBUIBackgroundColor">
 160+ <int key="NSColorSpace">3</int>
 161+ <bytes key="NSWhite">MC4xMzMwNjQ1MTYxAA</bytes>
 162+ </object>
 163+ <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
 164+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
 165+ </object>
 166+ </object>
 167+ <object class="IBObjectContainer" key="IBDocument.Objects">
 168+ <object class="NSMutableArray" key="connectionRecords">
 169+ <bool key="EncodedWithXMLCoder">YES</bool>
 170+ <object class="IBConnectionRecord">
 171+ <object class="IBCocoaTouchOutletConnection" key="connection">
 172+ <string key="label">view</string>
 173+ <reference key="source" ref="372490531"/>
 174+ <reference key="destination" ref="1015022196"/>
 175+ </object>
 176+ <int key="connectionID">11</int>
 177+ </object>
 178+ <object class="IBConnectionRecord">
 179+ <object class="IBCocoaTouchOutletConnection" key="connection">
 180+ <string key="label">uploadOverlayImage</string>
 181+ <reference key="source" ref="372490531"/>
 182+ <reference key="destination" ref="182060304"/>
 183+ </object>
 184+ <int key="connectionID">12</int>
 185+ </object>
 186+ <object class="IBConnectionRecord">
 187+ <object class="IBCocoaTouchOutletConnection" key="connection">
 188+ <string key="label">uploadProgress</string>
 189+ <reference key="source" ref="372490531"/>
 190+ <reference key="destination" ref="413664359"/>
 191+ </object>
 192+ <int key="connectionID">13</int>
 193+ </object>
 194+ <object class="IBConnectionRecord">
 195+ <object class="IBCocoaTouchOutletConnection" key="connection">
 196+ <string key="label">uploadProgressMessage</string>
 197+ <reference key="source" ref="372490531"/>
 198+ <reference key="destination" ref="329379503"/>
 199+ </object>
 200+ <int key="connectionID">14</int>
 201+ </object>
 202+ <object class="IBConnectionRecord">
 203+ <object class="IBCocoaTouchEventConnection" key="connection">
 204+ <string key="label">onCancelUploadClicked:</string>
 205+ <reference key="source" ref="860458292"/>
 206+ <reference key="destination" ref="372490531"/>
 207+ <int key="IBEventType">7</int>
 208+ </object>
 209+ <int key="connectionID">17</int>
 210+ </object>
 211+ </object>
 212+ <object class="IBMutableOrderedSet" key="objectRecords">
 213+ <object class="NSArray" key="orderedObjects">
 214+ <bool key="EncodedWithXMLCoder">YES</bool>
 215+ <object class="IBObjectRecord">
 216+ <int key="objectID">0</int>
 217+ <reference key="object" ref="0"/>
 218+ <reference key="children" ref="1000"/>
 219+ <nil key="parent"/>
 220+ </object>
 221+ <object class="IBObjectRecord">
 222+ <int key="objectID">-1</int>
 223+ <reference key="object" ref="372490531"/>
 224+ <reference key="parent" ref="0"/>
 225+ <string key="objectName">File's Owner</string>
 226+ </object>
 227+ <object class="IBObjectRecord">
 228+ <int key="objectID">-2</int>
 229+ <reference key="object" ref="975951072"/>
 230+ <reference key="parent" ref="0"/>
 231+ </object>
 232+ <object class="IBObjectRecord">
 233+ <int key="objectID">4</int>
 234+ <reference key="object" ref="1015022196"/>
 235+ <object class="NSMutableArray" key="children">
 236+ <bool key="EncodedWithXMLCoder">YES</bool>
 237+ <reference ref="182060304"/>
 238+ <reference ref="329379503"/>
 239+ <reference ref="748685327"/>
 240+ <reference ref="860458292"/>
 241+ <reference ref="413664359"/>
 242+ </object>
 243+ <reference key="parent" ref="0"/>
 244+ <string key="objectName">Upload Photo Overlay</string>
 245+ </object>
 246+ <object class="IBObjectRecord">
 247+ <int key="objectID">5</int>
 248+ <reference key="object" ref="182060304"/>
 249+ <reference key="parent" ref="1015022196"/>
 250+ </object>
 251+ <object class="IBObjectRecord">
 252+ <int key="objectID">6</int>
 253+ <reference key="object" ref="329379503"/>
 254+ <reference key="parent" ref="1015022196"/>
 255+ </object>
 256+ <object class="IBObjectRecord">
 257+ <int key="objectID">7</int>
 258+ <reference key="object" ref="748685327"/>
 259+ <object class="NSMutableArray" key="children">
 260+ <bool key="EncodedWithXMLCoder">YES</bool>
 261+ <reference ref="746867970"/>
 262+ </object>
 263+ <reference key="parent" ref="1015022196"/>
 264+ </object>
 265+ <object class="IBObjectRecord">
 266+ <int key="objectID">8</int>
 267+ <reference key="object" ref="860458292"/>
 268+ <reference key="parent" ref="1015022196"/>
 269+ </object>
 270+ <object class="IBObjectRecord">
 271+ <int key="objectID">9</int>
 272+ <reference key="object" ref="413664359"/>
 273+ <reference key="parent" ref="1015022196"/>
 274+ </object>
 275+ <object class="IBObjectRecord">
 276+ <int key="objectID">10</int>
 277+ <reference key="object" ref="746867970"/>
 278+ <reference key="parent" ref="748685327"/>
 279+ </object>
 280+ </object>
 281+ </object>
 282+ <object class="NSMutableDictionary" key="flattenedProperties">
 283+ <bool key="EncodedWithXMLCoder">YES</bool>
 284+ <object class="NSArray" key="dict.sortedKeys">
 285+ <bool key="EncodedWithXMLCoder">YES</bool>
 286+ <string>-1.CustomClassName</string>
 287+ <string>-2.CustomClassName</string>
 288+ <string>10.IBPluginDependency</string>
 289+ <string>4.IBEditorWindowLastContentRect</string>
 290+ <string>4.IBPluginDependency</string>
 291+ <string>5.IBPluginDependency</string>
 292+ <string>6.IBPluginDependency</string>
 293+ <string>7.IBPluginDependency</string>
 294+ <string>8.IBPluginDependency</string>
 295+ <string>9.IBPluginDependency</string>
 296+ </object>
 297+ <object class="NSMutableArray" key="dict.values">
 298+ <bool key="EncodedWithXMLCoder">YES</bool>
 299+ <string>ImageUploadViewController</string>
 300+ <string>UIResponder</string>
 301+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
 302+ <string>{{551, 85}, {320, 460}}</string>
 303+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
 304+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
 305+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
 306+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
 307+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
 308+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
 309+ </object>
 310+ </object>
 311+ <object class="NSMutableDictionary" key="unlocalizedProperties">
 312+ <bool key="EncodedWithXMLCoder">YES</bool>
 313+ <reference key="dict.sortedKeys" ref="0"/>
 314+ <object class="NSMutableArray" key="dict.values">
 315+ <bool key="EncodedWithXMLCoder">YES</bool>
 316+ </object>
 317+ </object>
 318+ <nil key="activeLocalization"/>
 319+ <object class="NSMutableDictionary" key="localizations">
 320+ <bool key="EncodedWithXMLCoder">YES</bool>
 321+ <reference key="dict.sortedKeys" ref="0"/>
 322+ <object class="NSMutableArray" key="dict.values">
 323+ <bool key="EncodedWithXMLCoder">YES</bool>
 324+ </object>
 325+ </object>
 326+ <nil key="sourceID"/>
 327+ <int key="maxID">17</int>
 328+ </object>
 329+ <object class="IBClassDescriber" key="IBDocument.Classes">
 330+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
 331+ <bool key="EncodedWithXMLCoder">YES</bool>
 332+ <object class="IBPartialClassDescription">
 333+ <string key="className">ImageUploadViewController</string>
 334+ <string key="superclassName">UIViewController</string>
 335+ <object class="NSMutableDictionary" key="actions">
 336+ <string key="NS.key.0">onCancelUploadClicked:</string>
 337+ <string key="NS.object.0">id</string>
 338+ </object>
 339+ <object class="NSMutableDictionary" key="actionInfosByName">
 340+ <string key="NS.key.0">onCancelUploadClicked:</string>
 341+ <object class="IBActionInfo" key="NS.object.0">
 342+ <string key="name">onCancelUploadClicked:</string>
 343+ <string key="candidateClassName">id</string>
 344+ </object>
 345+ </object>
 346+ <object class="NSMutableDictionary" key="outlets">
 347+ <bool key="EncodedWithXMLCoder">YES</bool>
 348+ <object class="NSArray" key="dict.sortedKeys">
 349+ <bool key="EncodedWithXMLCoder">YES</bool>
 350+ <string>uploadOverlayImage</string>
 351+ <string>uploadProgress</string>
 352+ <string>uploadProgressMessage</string>
 353+ <string>view</string>
 354+ </object>
 355+ <object class="NSMutableArray" key="dict.values">
 356+ <bool key="EncodedWithXMLCoder">YES</bool>
 357+ <string>UIImageView</string>
 358+ <string>UIProgressView</string>
 359+ <string>UILabel</string>
 360+ <string>UIView</string>
 361+ </object>
 362+ </object>
 363+ <object class="NSMutableDictionary" key="toOneOutletInfosByName">
 364+ <bool key="EncodedWithXMLCoder">YES</bool>
 365+ <object class="NSArray" key="dict.sortedKeys">
 366+ <bool key="EncodedWithXMLCoder">YES</bool>
 367+ <string>uploadOverlayImage</string>
 368+ <string>uploadProgress</string>
 369+ <string>uploadProgressMessage</string>
 370+ <string>view</string>
 371+ </object>
 372+ <object class="NSMutableArray" key="dict.values">
 373+ <bool key="EncodedWithXMLCoder">YES</bool>
 374+ <object class="IBToOneOutletInfo">
 375+ <string key="name">uploadOverlayImage</string>
 376+ <string key="candidateClassName">UIImageView</string>
 377+ </object>
 378+ <object class="IBToOneOutletInfo">
 379+ <string key="name">uploadProgress</string>
 380+ <string key="candidateClassName">UIProgressView</string>
 381+ </object>
 382+ <object class="IBToOneOutletInfo">
 383+ <string key="name">uploadProgressMessage</string>
 384+ <string key="candidateClassName">UILabel</string>
 385+ </object>
 386+ <object class="IBToOneOutletInfo">
 387+ <string key="name">view</string>
 388+ <string key="candidateClassName">UIView</string>
 389+ </object>
 390+ </object>
 391+ </object>
 392+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 393+ <string key="majorKey">IBProjectSource</string>
 394+ <string key="minorKey">Classes/ImageUploadViewController.h</string>
 395+ </object>
 396+ </object>
 397+ </object>
 398+ <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
 399+ <bool key="EncodedWithXMLCoder">YES</bool>
 400+ <object class="IBPartialClassDescription">
 401+ <string key="className">NSObject</string>
 402+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 403+ <string key="majorKey">IBFrameworkSource</string>
 404+ <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
 405+ </object>
 406+ </object>
 407+ <object class="IBPartialClassDescription">
 408+ <string key="className">NSObject</string>
 409+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 410+ <string key="majorKey">IBFrameworkSource</string>
 411+ <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
 412+ </object>
 413+ </object>
 414+ <object class="IBPartialClassDescription">
 415+ <string key="className">NSObject</string>
 416+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 417+ <string key="majorKey">IBFrameworkSource</string>
 418+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
 419+ </object>
 420+ </object>
 421+ <object class="IBPartialClassDescription">
 422+ <string key="className">NSObject</string>
 423+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 424+ <string key="majorKey">IBFrameworkSource</string>
 425+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
 426+ </object>
 427+ </object>
 428+ <object class="IBPartialClassDescription">
 429+ <string key="className">NSObject</string>
 430+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 431+ <string key="majorKey">IBFrameworkSource</string>
 432+ <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
 433+ </object>
 434+ </object>
 435+ <object class="IBPartialClassDescription">
 436+ <string key="className">NSObject</string>
 437+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 438+ <string key="majorKey">IBFrameworkSource</string>
 439+ <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
 440+ </object>
 441+ </object>
 442+ <object class="IBPartialClassDescription">
 443+ <string key="className">NSObject</string>
 444+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 445+ <string key="majorKey">IBFrameworkSource</string>
 446+ <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
 447+ </object>
 448+ </object>
 449+ <object class="IBPartialClassDescription">
 450+ <string key="className">NSObject</string>
 451+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 452+ <string key="majorKey">IBFrameworkSource</string>
 453+ <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
 454+ </object>
 455+ </object>
 456+ <object class="IBPartialClassDescription">
 457+ <string key="className">NSObject</string>
 458+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 459+ <string key="majorKey">IBFrameworkSource</string>
 460+ <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
 461+ </object>
 462+ </object>
 463+ <object class="IBPartialClassDescription">
 464+ <string key="className">NSObject</string>
 465+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 466+ <string key="majorKey">IBFrameworkSource</string>
 467+ <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
 468+ </object>
 469+ </object>
 470+ <object class="IBPartialClassDescription">
 471+ <string key="className">NSObject</string>
 472+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 473+ <string key="majorKey">IBFrameworkSource</string>
 474+ <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
 475+ </object>
 476+ </object>
 477+ <object class="IBPartialClassDescription">
 478+ <string key="className">NSObject</string>
 479+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 480+ <string key="majorKey">IBFrameworkSource</string>
 481+ <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
 482+ </object>
 483+ </object>
 484+ <object class="IBPartialClassDescription">
 485+ <string key="className">NSObject</string>
 486+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="401822615">
 487+ <string key="majorKey">IBFrameworkSource</string>
 488+ <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
 489+ </object>
 490+ </object>
 491+ <object class="IBPartialClassDescription">
 492+ <string key="className">UIBarButtonItem</string>
 493+ <string key="superclassName">UIBarItem</string>
 494+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 495+ <string key="majorKey">IBFrameworkSource</string>
 496+ <string key="minorKey">UIKit.framework/Headers/UIBarButtonItem.h</string>
 497+ </object>
 498+ </object>
 499+ <object class="IBPartialClassDescription">
 500+ <string key="className">UIBarItem</string>
 501+ <string key="superclassName">NSObject</string>
 502+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 503+ <string key="majorKey">IBFrameworkSource</string>
 504+ <string key="minorKey">UIKit.framework/Headers/UIBarItem.h</string>
 505+ </object>
 506+ </object>
 507+ <object class="IBPartialClassDescription">
 508+ <string key="className">UIButton</string>
 509+ <string key="superclassName">UIControl</string>
 510+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 511+ <string key="majorKey">IBFrameworkSource</string>
 512+ <string key="minorKey">UIKit.framework/Headers/UIButton.h</string>
 513+ </object>
 514+ </object>
 515+ <object class="IBPartialClassDescription">
 516+ <string key="className">UIControl</string>
 517+ <string key="superclassName">UIView</string>
 518+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 519+ <string key="majorKey">IBFrameworkSource</string>
 520+ <string key="minorKey">UIKit.framework/Headers/UIControl.h</string>
 521+ </object>
 522+ </object>
 523+ <object class="IBPartialClassDescription">
 524+ <string key="className">UIImageView</string>
 525+ <string key="superclassName">UIView</string>
 526+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 527+ <string key="majorKey">IBFrameworkSource</string>
 528+ <string key="minorKey">UIKit.framework/Headers/UIImageView.h</string>
 529+ </object>
 530+ </object>
 531+ <object class="IBPartialClassDescription">
 532+ <string key="className">UILabel</string>
 533+ <string key="superclassName">UIView</string>
 534+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 535+ <string key="majorKey">IBFrameworkSource</string>
 536+ <string key="minorKey">UIKit.framework/Headers/UILabel.h</string>
 537+ </object>
 538+ </object>
 539+ <object class="IBPartialClassDescription">
 540+ <string key="className">UINavigationBar</string>
 541+ <string key="superclassName">UIView</string>
 542+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="29722818">
 543+ <string key="majorKey">IBFrameworkSource</string>
 544+ <string key="minorKey">UIKit.framework/Headers/UINavigationBar.h</string>
 545+ </object>
 546+ </object>
 547+ <object class="IBPartialClassDescription">
 548+ <string key="className">UINavigationItem</string>
 549+ <string key="superclassName">NSObject</string>
 550+ <reference key="sourceIdentifier" ref="29722818"/>
 551+ </object>
 552+ <object class="IBPartialClassDescription">
 553+ <string key="className">UIProgressView</string>
 554+ <string key="superclassName">UIView</string>
 555+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 556+ <string key="majorKey">IBFrameworkSource</string>
 557+ <string key="minorKey">UIKit.framework/Headers/UIProgressView.h</string>
 558+ </object>
 559+ </object>
 560+ <object class="IBPartialClassDescription">
 561+ <string key="className">UIResponder</string>
 562+ <string key="superclassName">NSObject</string>
 563+ <reference key="sourceIdentifier" ref="401822615"/>
 564+ </object>
 565+ <object class="IBPartialClassDescription">
 566+ <string key="className">UISearchBar</string>
 567+ <string key="superclassName">UIView</string>
 568+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 569+ <string key="majorKey">IBFrameworkSource</string>
 570+ <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
 571+ </object>
 572+ </object>
 573+ <object class="IBPartialClassDescription">
 574+ <string key="className">UISearchDisplayController</string>
 575+ <string key="superclassName">NSObject</string>
 576+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 577+ <string key="majorKey">IBFrameworkSource</string>
 578+ <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
 579+ </object>
 580+ </object>
 581+ <object class="IBPartialClassDescription">
 582+ <string key="className">UIView</string>
 583+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 584+ <string key="majorKey">IBFrameworkSource</string>
 585+ <string key="minorKey">UIKit.framework/Headers/UIPrintFormatter.h</string>
 586+ </object>
 587+ </object>
 588+ <object class="IBPartialClassDescription">
 589+ <string key="className">UIView</string>
 590+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 591+ <string key="majorKey">IBFrameworkSource</string>
 592+ <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
 593+ </object>
 594+ </object>
 595+ <object class="IBPartialClassDescription">
 596+ <string key="className">UIView</string>
 597+ <string key="superclassName">UIResponder</string>
 598+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 599+ <string key="majorKey">IBFrameworkSource</string>
 600+ <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
 601+ </object>
 602+ </object>
 603+ <object class="IBPartialClassDescription">
 604+ <string key="className">UIViewController</string>
 605+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 606+ <string key="majorKey">IBFrameworkSource</string>
 607+ <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
 608+ </object>
 609+ </object>
 610+ <object class="IBPartialClassDescription">
 611+ <string key="className">UIViewController</string>
 612+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 613+ <string key="majorKey">IBFrameworkSource</string>
 614+ <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
 615+ </object>
 616+ </object>
 617+ <object class="IBPartialClassDescription">
 618+ <string key="className">UIViewController</string>
 619+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 620+ <string key="majorKey">IBFrameworkSource</string>
 621+ <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
 622+ </object>
 623+ </object>
 624+ <object class="IBPartialClassDescription">
 625+ <string key="className">UIViewController</string>
 626+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 627+ <string key="majorKey">IBFrameworkSource</string>
 628+ <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
 629+ </object>
 630+ </object>
 631+ <object class="IBPartialClassDescription">
 632+ <string key="className">UIViewController</string>
 633+ <string key="superclassName">UIResponder</string>
 634+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 635+ <string key="majorKey">IBFrameworkSource</string>
 636+ <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
 637+ </object>
 638+ </object>
 639+ </object>
 640+ </object>
 641+ <int key="IBDocument.localizationMode">0</int>
 642+ <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
 643+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
 644+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
 645+ <integer value="1056" key="NS.object.0"/>
 646+ </object>
 647+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
 648+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
 649+ <integer value="3000" key="NS.object.0"/>
 650+ </object>
 651+ <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
 652+ <string key="IBDocument.LastKnownRelativeProjectPath">../WikiSnaps.xcodeproj</string>
 653+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
 654+ <object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
 655+ <bool key="EncodedWithXMLCoder">YES</bool>
 656+ <object class="NSArray" key="dict.sortedKeys">
 657+ <bool key="EncodedWithXMLCoder">YES</bool>
 658+ <string>cancel-button-pressed.png</string>
 659+ <string>cancel-button.png</string>
 660+ </object>
 661+ <object class="NSMutableArray" key="dict.values">
 662+ <bool key="EncodedWithXMLCoder">YES</bool>
 663+ <string>{278, 46}</string>
 664+ <string>{278, 46}</string>
 665+ </object>
 666+ </object>
 667+ <string key="IBCocoaTouchPluginVersion">132</string>
 668+ </data>
 669+</archive>
Index: trunk/tools/WikiSnaps/Classes/PhotoPickerAppDelegate.h
@@ -1,8 +1,11 @@
22 //
33 // PhotoPickerAppDelegate.h
44 //
5 -// Copyright yourcompanyname 2009. All rights reserved.
 5+// Created by Derk-Jan Hartman on 14-01-11.
 6+// Copyright 2011 Derk-Jan Hartman
67 //
 8+// Dual-licensed MIT and BSD
 9+// Based on Photopicker (MIT)
710
811 #import <UIKit/UIKit.h>
912
Index: trunk/tools/WikiSnaps/Classes/CommonsUpload.m
@@ -1,10 +1,11 @@
22 //
33 // CommonsUpload.m
4 -// photopicker
 4+// WikiSnaps
55 //
66 // Created by Derk-Jan Hartman on 15-01-11.
7 -// Copyright 2011 Wikimedia Commons. All rights reserved.
 7+// Copyright 2011 Derk-Jan Hartman
88 //
 9+// Dual-licensed MIT and BSD
910
1011 #import "CommonsUpload.h"
1112 #import "Configuration.h"
@@ -37,7 +38,7 @@
3839 }
3940
4041 - (void)uploadImage {
41 - NSURL *url = [NSURL URLWithString:API_URL];
 42+ NSURL *url = [NSURL URLWithString:COMMONS_API_URL];
4243 ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
4344 [request setPostFormat:ASIURLEncodedPostFormat];
4445
@@ -64,7 +65,7 @@
6566 NSString *result;
6667 [aScanner scanUpToString:@"\"" intoString:&result];
6768 if( ![result isEqualToString:@"NeedToken"] ) {
68 - NSLog( @"no needtoken response: %@", result);
 69+ [delegate uploadFailed: [NSString stringWithFormat:@"no needtoken response: %@", result]];
6970 return;
7071 }
7172
@@ -73,7 +74,7 @@
7475 [aScanner scanUpToString:@"\"" intoString:&token];
7576
7677 //New request
77 - NSURL *url = [NSURL URLWithString:API_URL];
 78+ NSURL *url = [NSURL URLWithString:COMMONS_API_URL];
7879 ASIFormDataRequest *newRequest = [ASIFormDataRequest requestWithURL:url];
7980 [newRequest setPostFormat:ASIURLEncodedPostFormat];
8081
@@ -98,6 +99,7 @@
99100 - (void)requestTokenFailed:(ASIHTTPRequest *)request
100101 {
101102 NSError *error = [request error];
 103+ [delegate uploadFailed: [error localizedDescription]];
102104 }
103105
104106
@@ -113,7 +115,7 @@
114116 NSString *result;
115117 [aScanner scanUpToString:@"\"" intoString:&result];
116118 if( ![result isEqualToString:@"Success"] ) {
117 - NSLog( @"no success response, %@", result);
 119+ [delegate uploadFailed: [NSString stringWithFormat:@"no success response, %@", result]];
118120 return;
119121 }
120122
@@ -122,7 +124,7 @@
123125 [aScanner scanUpToString:@"\"" intoString:&token];
124126
125127 //New request
126 - NSURL *url = [NSURL URLWithString:API_URL];
 128+ NSURL *url = [NSURL URLWithString:COMMONS_API_URL];
127129 ASIFormDataRequest *newRequest = [ASIFormDataRequest requestWithURL:url];
128130 [newRequest setPostFormat:ASIURLEncodedPostFormat];
129131
@@ -146,6 +148,7 @@
147149 - (void)requestLoginFailed:(ASIHTTPRequest *)request
148150 {
149151 NSError *error = [request error];
 152+ [delegate uploadFailed:[error localizedDescription]];
150153 }
151154
152155 - (void)requestEditTokenFinished:(ASIHTTPRequest *)request
@@ -161,12 +164,12 @@
162165 BOOL res;
163166 res = [aScanner scanUpToString:@"\"" intoString:&editToken];
164167 if( !res ) {
165 - NSLog( @"could not find edittoken");
 168+ [delegate uploadFailed: [NSString stringWithFormat:@"could not find edittoken"]];
166169 return;
167170 }
168171
169172 //New request
170 - NSURL *url = [NSURL URLWithString:API_URL];
 173+ NSURL *url = [NSURL URLWithString:COMMONS_API_URL];
171174 ASIFormDataRequest *newRequest = [ASIFormDataRequest requestWithURL:url];
172175 [newRequest setPostFormat:ASIMultipartFormDataPostFormat];
173176
@@ -192,6 +195,7 @@
193196 - (void)requestEditTokenFailed:(ASIHTTPRequest *)request
194197 {
195198 NSError *error = [request error];
 199+ [delegate uploadFailed:[error localizedDescription]];
196200 }
197201
198202 - (void)requestUploadFinished:(ASIHTTPRequest *)request
@@ -205,6 +209,7 @@
206210 - (void)requestUploadFailed:(ASIHTTPRequest *)request
207211 {
208212 NSError *error = [request error];
 213+ [delegate uploadFailed:[error localizedDescription]];
209214 }
210215
211216
Index: trunk/tools/WikiSnaps/Classes/ImageUploadViewController.h
@@ -0,0 +1,32 @@
 2+//
 3+// ImageUploadViewController.h
 4+// WikiSnaps
 5+//
 6+// Created by Derk-Jan Hartman on 23-01-11.
 7+// Copyright 2011 Derk-Jan Hartman
 8+//
 9+// Dual-licensed MIT and BSD
 10+// Based on Photopicker (MIT)
 11+
 12+#import <UIKit/UIKit.h>
 13+
 14+#import "CommonsUpload.h"
 15+
 16+
 17+@interface ImageUploadViewController : UIViewController <UINavigationControllerDelegate,
 18+ CommonsUploadDelegate,
 19+ UIAlertViewDelegate> {
 20+ IBOutlet UIView *view;
 21+ IBOutlet UIImageView *uploadOverlayImage;
 22+ IBOutlet UIProgressView *uploadProgress;
 23+ IBOutlet UILabel *uploadProgressMessage;
 24+
 25+ CommonsUpload *upload;
 26+
 27+}
 28+@property (nonatomic, retain) CommonsUpload *upload;
 29+
 30+
 31+- (IBAction)onCancelUploadClicked: (id)sender;
 32+
 33+@end
Property changes on: trunk/tools/WikiSnaps/Classes/ImageUploadViewController.h
___________________________________________________________________
Added: svn:eol-style
134 + native
Index: trunk/tools/WikiSnaps/Classes/ImageDetailsViewController.h
@@ -1,20 +1,20 @@
22 //
33 // ImageDetailsViewController.h
4 -// photopicker
 4+// WikiSnaps
55 //
66 // Created by Derk-Jan Hartman on 15-01-11.
7 -// Copyright 2011 Wikimedia Commons. All rights reserved.
 7+// Copyright 2011 Derk-Jan Hartman
88 //
 9+// Dual-licensed MIT and BSD
910
1011 #import <UIKit/UIKit.h>
1112 #import "CommonsUpload.h"
1213
1314
1415 @interface ImageDetailsViewController : UIViewController <UINavigationControllerDelegate,
15 - UITextFieldDelegate,
16 - UITextViewDelegate,
17 - CommonsUploadDelegate,
18 - UIAlertViewDelegate> {
 16+ UITextFieldDelegate,
 17+ UITextViewDelegate,
 18+ UIAlertViewDelegate> {
1919 IBOutlet UITextField *titleField;
2020 IBOutlet UITextView *descriptionText;
2121 CommonsUpload *upload;
Index: trunk/tools/WikiSnaps/Classes/PhotoPickerAppDelegate.m
@@ -1,14 +1,15 @@
22 //
33 // PhotoPickerAppDelegate.m
44 //
5 -// Copyright yourcompanyname 2009. All rights reserved.
 5+// Created by Derk-Jan Hartman on 14-01-11.
 6+// Copyright 2011 Derk-Jan Hartman
67 //
 8+// Dual-licensed MIT and BSD
 9+// Based on Photopicker (MIT)
710
811 #import "PhotoPickerAppDelegate.h"
912
10 -#import "PhotoPickerViewController.h"
1113
12 -
1314 @interface PhotoPickerAppDelegate ()
1415 - (void)checkIfJustInstalled;
1516 @end
@@ -40,7 +41,7 @@
4142
4243 - (void)dealloc {
4344 self.viewController = nil;
44 - self.navController = nil;
 45+ self.navController = nil;
4546 self.window = nil;
4647
4748 [super dealloc];
Index: trunk/tools/WikiSnaps/Classes/SourcePickerViewController.xib
@@ -0,0 +1,410 @@
 2+<?xml version="1.0" encoding="UTF-8"?>
 3+<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
 4+ <data>
 5+ <int key="IBDocument.SystemTarget">1056</int>
 6+ <string key="IBDocument.SystemVersion">10J567</string>
 7+ <string key="IBDocument.InterfaceBuilderVersion">823</string>
 8+ <string key="IBDocument.AppKitVersion">1038.35</string>
 9+ <string key="IBDocument.HIToolboxVersion">462.00</string>
 10+ <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
 11+ <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
 12+ <string key="NS.object.0">132</string>
 13+ </object>
 14+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
 15+ <bool key="EncodedWithXMLCoder">YES</bool>
 16+ <integer value="4"/>
 17+ </object>
 18+ <object class="NSArray" key="IBDocument.PluginDependencies">
 19+ <bool key="EncodedWithXMLCoder">YES</bool>
 20+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
 21+ </object>
 22+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
 23+ <bool key="EncodedWithXMLCoder">YES</bool>
 24+ <object class="NSArray" key="dict.sortedKeys" id="0">
 25+ <bool key="EncodedWithXMLCoder">YES</bool>
 26+ </object>
 27+ <object class="NSMutableArray" key="dict.values">
 28+ <bool key="EncodedWithXMLCoder">YES</bool>
 29+ </object>
 30+ </object>
 31+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
 32+ <bool key="EncodedWithXMLCoder">YES</bool>
 33+ <object class="IBProxyObject" id="372490531">
 34+ <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
 35+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
 36+ </object>
 37+ <object class="IBProxyObject" id="975951072">
 38+ <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
 39+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
 40+ </object>
 41+ <object class="IBUITableView" id="873029372">
 42+ <reference key="NSNextResponder"/>
 43+ <int key="NSvFlags">274</int>
 44+ <string key="NSFrameSize">{320, 416}</string>
 45+ <reference key="NSSuperview"/>
 46+ <object class="NSColor" key="IBUIBackgroundColor">
 47+ <int key="NSColorSpace">10</int>
 48+ <object class="NSImage" key="NSImage">
 49+ <int key="NSImageFlags">549453824</int>
 50+ <string key="NSSize">{84, 1}</string>
 51+ <object class="NSMutableArray" key="NSReps">
 52+ <bool key="EncodedWithXMLCoder">YES</bool>
 53+ <object class="NSArray">
 54+ <bool key="EncodedWithXMLCoder">YES</bool>
 55+ <integer value="0"/>
 56+ <object class="NSBitmapImageRep">
 57+ <object class="NSData" key="NSTIFFRepresentation">
 58+ <bytes key="NS.bytes">TU0AKgAAAVjFzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/
 59+y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/
 60+xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/
 61+xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/
 62+xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/
 63+xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P8ADQEAAAMAAAABAFQAAAEB
 64+AAMAAAABAAEAAAECAAMAAAAEAAAB+gEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES
 65+AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABAAEAAAEXAAQAAAABAAABUAEcAAMAAAABAAEAAAFS
 66+AAMAAAABAAEAAAFTAAMAAAAEAAACAgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
 67+ </object>
 68+ </object>
 69+ </object>
 70+ </object>
 71+ <object class="NSColor" key="NSColor">
 72+ <int key="NSColorSpace">3</int>
 73+ <bytes key="NSWhite">MCAwAA</bytes>
 74+ </object>
 75+ </object>
 76+ <string key="IBUIColorCocoaTouchKeyPath">groupTableViewBackgroundColor</string>
 77+ </object>
 78+ <bool key="IBUIOpaque">NO</bool>
 79+ <bool key="IBUIClipsSubviews">YES</bool>
 80+ <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
 81+ <object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
 82+ <object class="IBUISimulatedNavigationBarMetrics" key="IBUISimulatedTopBarMetrics">
 83+ <bool key="IBUIPrompted">NO</bool>
 84+ </object>
 85+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
 86+ <bool key="IBUIBouncesZoom">NO</bool>
 87+ <int key="IBUIStyle">1</int>
 88+ <int key="IBUISeparatorStyle">2</int>
 89+ <int key="IBUISectionIndexMinimumDisplayRowCount">0</int>
 90+ <bool key="IBUIShowsSelectionImmediatelyOnTouchBegin">YES</bool>
 91+ <float key="IBUIRowHeight">44</float>
 92+ <float key="IBUISectionHeaderHeight">10</float>
 93+ <float key="IBUISectionFooterHeight">10</float>
 94+ </object>
 95+ </object>
 96+ <object class="IBObjectContainer" key="IBDocument.Objects">
 97+ <object class="NSMutableArray" key="connectionRecords">
 98+ <bool key="EncodedWithXMLCoder">YES</bool>
 99+ <object class="IBConnectionRecord">
 100+ <object class="IBCocoaTouchOutletConnection" key="connection">
 101+ <string key="label">view</string>
 102+ <reference key="source" ref="372490531"/>
 103+ <reference key="destination" ref="873029372"/>
 104+ </object>
 105+ <int key="connectionID">5</int>
 106+ </object>
 107+ <object class="IBConnectionRecord">
 108+ <object class="IBCocoaTouchOutletConnection" key="connection">
 109+ <string key="label">dataSource</string>
 110+ <reference key="source" ref="873029372"/>
 111+ <reference key="destination" ref="372490531"/>
 112+ </object>
 113+ <int key="connectionID">6</int>
 114+ </object>
 115+ <object class="IBConnectionRecord">
 116+ <object class="IBCocoaTouchOutletConnection" key="connection">
 117+ <string key="label">delegate</string>
 118+ <reference key="source" ref="873029372"/>
 119+ <reference key="destination" ref="372490531"/>
 120+ </object>
 121+ <int key="connectionID">7</int>
 122+ </object>
 123+ </object>
 124+ <object class="IBMutableOrderedSet" key="objectRecords">
 125+ <object class="NSArray" key="orderedObjects">
 126+ <bool key="EncodedWithXMLCoder">YES</bool>
 127+ <object class="IBObjectRecord">
 128+ <int key="objectID">0</int>
 129+ <reference key="object" ref="0"/>
 130+ <reference key="children" ref="1000"/>
 131+ <nil key="parent"/>
 132+ </object>
 133+ <object class="IBObjectRecord">
 134+ <int key="objectID">-1</int>
 135+ <reference key="object" ref="372490531"/>
 136+ <reference key="parent" ref="0"/>
 137+ <string key="objectName">File's Owner</string>
 138+ </object>
 139+ <object class="IBObjectRecord">
 140+ <int key="objectID">-2</int>
 141+ <reference key="object" ref="975951072"/>
 142+ <reference key="parent" ref="0"/>
 143+ </object>
 144+ <object class="IBObjectRecord">
 145+ <int key="objectID">4</int>
 146+ <reference key="object" ref="873029372"/>
 147+ <reference key="parent" ref="0"/>
 148+ </object>
 149+ </object>
 150+ </object>
 151+ <object class="NSMutableDictionary" key="flattenedProperties">
 152+ <bool key="EncodedWithXMLCoder">YES</bool>
 153+ <object class="NSArray" key="dict.sortedKeys">
 154+ <bool key="EncodedWithXMLCoder">YES</bool>
 155+ <string>-1.CustomClassName</string>
 156+ <string>-2.CustomClassName</string>
 157+ <string>4.IBEditorWindowLastContentRect</string>
 158+ <string>4.IBPluginDependency</string>
 159+ </object>
 160+ <object class="NSMutableArray" key="dict.values">
 161+ <bool key="EncodedWithXMLCoder">YES</bool>
 162+ <string>SourcePickerViewController</string>
 163+ <string>UIResponder</string>
 164+ <string>{{305, 225}, {320, 480}}</string>
 165+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
 166+ </object>
 167+ </object>
 168+ <object class="NSMutableDictionary" key="unlocalizedProperties">
 169+ <bool key="EncodedWithXMLCoder">YES</bool>
 170+ <reference key="dict.sortedKeys" ref="0"/>
 171+ <object class="NSMutableArray" key="dict.values">
 172+ <bool key="EncodedWithXMLCoder">YES</bool>
 173+ </object>
 174+ </object>
 175+ <nil key="activeLocalization"/>
 176+ <object class="NSMutableDictionary" key="localizations">
 177+ <bool key="EncodedWithXMLCoder">YES</bool>
 178+ <reference key="dict.sortedKeys" ref="0"/>
 179+ <object class="NSMutableArray" key="dict.values">
 180+ <bool key="EncodedWithXMLCoder">YES</bool>
 181+ </object>
 182+ </object>
 183+ <nil key="sourceID"/>
 184+ <int key="maxID">7</int>
 185+ </object>
 186+ <object class="IBClassDescriber" key="IBDocument.Classes">
 187+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
 188+ <bool key="EncodedWithXMLCoder">YES</bool>
 189+ <object class="IBPartialClassDescription">
 190+ <string key="className">SourcePickerViewController</string>
 191+ <string key="superclassName">UITableViewController</string>
 192+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 193+ <string key="majorKey">IBProjectSource</string>
 194+ <string key="minorKey">Classes/SourcePickerViewController.h</string>
 195+ </object>
 196+ </object>
 197+ </object>
 198+ <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
 199+ <bool key="EncodedWithXMLCoder">YES</bool>
 200+ <object class="IBPartialClassDescription">
 201+ <string key="className">NSObject</string>
 202+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 203+ <string key="majorKey">IBFrameworkSource</string>
 204+ <string key="minorKey">Foundation.framework/Headers/NSError.h</string>
 205+ </object>
 206+ </object>
 207+ <object class="IBPartialClassDescription">
 208+ <string key="className">NSObject</string>
 209+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 210+ <string key="majorKey">IBFrameworkSource</string>
 211+ <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
 212+ </object>
 213+ </object>
 214+ <object class="IBPartialClassDescription">
 215+ <string key="className">NSObject</string>
 216+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 217+ <string key="majorKey">IBFrameworkSource</string>
 218+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
 219+ </object>
 220+ </object>
 221+ <object class="IBPartialClassDescription">
 222+ <string key="className">NSObject</string>
 223+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 224+ <string key="majorKey">IBFrameworkSource</string>
 225+ <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
 226+ </object>
 227+ </object>
 228+ <object class="IBPartialClassDescription">
 229+ <string key="className">NSObject</string>
 230+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 231+ <string key="majorKey">IBFrameworkSource</string>
 232+ <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
 233+ </object>
 234+ </object>
 235+ <object class="IBPartialClassDescription">
 236+ <string key="className">NSObject</string>
 237+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 238+ <string key="majorKey">IBFrameworkSource</string>
 239+ <string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
 240+ </object>
 241+ </object>
 242+ <object class="IBPartialClassDescription">
 243+ <string key="className">NSObject</string>
 244+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 245+ <string key="majorKey">IBFrameworkSource</string>
 246+ <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
 247+ </object>
 248+ </object>
 249+ <object class="IBPartialClassDescription">
 250+ <string key="className">NSObject</string>
 251+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 252+ <string key="majorKey">IBFrameworkSource</string>
 253+ <string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
 254+ </object>
 255+ </object>
 256+ <object class="IBPartialClassDescription">
 257+ <string key="className">NSObject</string>
 258+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 259+ <string key="majorKey">IBFrameworkSource</string>
 260+ <string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
 261+ </object>
 262+ </object>
 263+ <object class="IBPartialClassDescription">
 264+ <string key="className">NSObject</string>
 265+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 266+ <string key="majorKey">IBFrameworkSource</string>
 267+ <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
 268+ </object>
 269+ </object>
 270+ <object class="IBPartialClassDescription">
 271+ <string key="className">NSObject</string>
 272+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 273+ <string key="majorKey">IBFrameworkSource</string>
 274+ <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
 275+ </object>
 276+ </object>
 277+ <object class="IBPartialClassDescription">
 278+ <string key="className">NSObject</string>
 279+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 280+ <string key="majorKey">IBFrameworkSource</string>
 281+ <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
 282+ </object>
 283+ </object>
 284+ <object class="IBPartialClassDescription">
 285+ <string key="className">NSObject</string>
 286+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="940679074">
 287+ <string key="majorKey">IBFrameworkSource</string>
 288+ <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
 289+ </object>
 290+ </object>
 291+ <object class="IBPartialClassDescription">
 292+ <string key="className">UIResponder</string>
 293+ <string key="superclassName">NSObject</string>
 294+ <reference key="sourceIdentifier" ref="940679074"/>
 295+ </object>
 296+ <object class="IBPartialClassDescription">
 297+ <string key="className">UIScrollView</string>
 298+ <string key="superclassName">UIView</string>
 299+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 300+ <string key="majorKey">IBFrameworkSource</string>
 301+ <string key="minorKey">UIKit.framework/Headers/UIScrollView.h</string>
 302+ </object>
 303+ </object>
 304+ <object class="IBPartialClassDescription">
 305+ <string key="className">UISearchBar</string>
 306+ <string key="superclassName">UIView</string>
 307+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 308+ <string key="majorKey">IBFrameworkSource</string>
 309+ <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
 310+ </object>
 311+ </object>
 312+ <object class="IBPartialClassDescription">
 313+ <string key="className">UISearchDisplayController</string>
 314+ <string key="superclassName">NSObject</string>
 315+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 316+ <string key="majorKey">IBFrameworkSource</string>
 317+ <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
 318+ </object>
 319+ </object>
 320+ <object class="IBPartialClassDescription">
 321+ <string key="className">UITableView</string>
 322+ <string key="superclassName">UIScrollView</string>
 323+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 324+ <string key="majorKey">IBFrameworkSource</string>
 325+ <string key="minorKey">UIKit.framework/Headers/UITableView.h</string>
 326+ </object>
 327+ </object>
 328+ <object class="IBPartialClassDescription">
 329+ <string key="className">UITableViewController</string>
 330+ <string key="superclassName">UIViewController</string>
 331+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 332+ <string key="majorKey">IBFrameworkSource</string>
 333+ <string key="minorKey">UIKit.framework/Headers/UITableViewController.h</string>
 334+ </object>
 335+ </object>
 336+ <object class="IBPartialClassDescription">
 337+ <string key="className">UIView</string>
 338+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 339+ <string key="majorKey">IBFrameworkSource</string>
 340+ <string key="minorKey">UIKit.framework/Headers/UIPrintFormatter.h</string>
 341+ </object>
 342+ </object>
 343+ <object class="IBPartialClassDescription">
 344+ <string key="className">UIView</string>
 345+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 346+ <string key="majorKey">IBFrameworkSource</string>
 347+ <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
 348+ </object>
 349+ </object>
 350+ <object class="IBPartialClassDescription">
 351+ <string key="className">UIView</string>
 352+ <string key="superclassName">UIResponder</string>
 353+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 354+ <string key="majorKey">IBFrameworkSource</string>
 355+ <string key="minorKey">UIKit.framework/Headers/UIView.h</string>
 356+ </object>
 357+ </object>
 358+ <object class="IBPartialClassDescription">
 359+ <string key="className">UIViewController</string>
 360+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 361+ <string key="majorKey">IBFrameworkSource</string>
 362+ <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
 363+ </object>
 364+ </object>
 365+ <object class="IBPartialClassDescription">
 366+ <string key="className">UIViewController</string>
 367+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 368+ <string key="majorKey">IBFrameworkSource</string>
 369+ <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
 370+ </object>
 371+ </object>
 372+ <object class="IBPartialClassDescription">
 373+ <string key="className">UIViewController</string>
 374+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 375+ <string key="majorKey">IBFrameworkSource</string>
 376+ <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
 377+ </object>
 378+ </object>
 379+ <object class="IBPartialClassDescription">
 380+ <string key="className">UIViewController</string>
 381+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 382+ <string key="majorKey">IBFrameworkSource</string>
 383+ <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
 384+ </object>
 385+ </object>
 386+ <object class="IBPartialClassDescription">
 387+ <string key="className">UIViewController</string>
 388+ <string key="superclassName">UIResponder</string>
 389+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 390+ <string key="majorKey">IBFrameworkSource</string>
 391+ <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
 392+ </object>
 393+ </object>
 394+ </object>
 395+ </object>
 396+ <int key="IBDocument.localizationMode">0</int>
 397+ <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
 398+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
 399+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
 400+ <integer value="1056" key="NS.object.0"/>
 401+ </object>
 402+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
 403+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
 404+ <integer value="3000" key="NS.object.0"/>
 405+ </object>
 406+ <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
 407+ <string key="IBDocument.LastKnownRelativeProjectPath">../WikiSnaps.xcodeproj</string>
 408+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
 409+ <string key="IBCocoaTouchPluginVersion">132</string>
 410+ </data>
 411+</archive>
Index: trunk/tools/WikiSnaps/MainWindow.xib
@@ -2,17 +2,17 @@
33 <archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
44 <data>
55 <int key="IBDocument.SystemTarget">1056</int>
6 - <string key="IBDocument.SystemVersion">10H574</string>
 6+ <string key="IBDocument.SystemVersion">10J567</string>
77 <string key="IBDocument.InterfaceBuilderVersion">823</string>
88 <string key="IBDocument.AppKitVersion">1038.35</string>
9 - <string key="IBDocument.HIToolboxVersion">461.00</string>
 9+ <string key="IBDocument.HIToolboxVersion">462.00</string>
1010 <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
1111 <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
1212 <string key="NS.object.0">132</string>
1313 </object>
1414 <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
1515 <bool key="EncodedWithXMLCoder">YES</bool>
16 - <integer value="15"/>
 16+ <integer value="16"/>
1717 </object>
1818 <object class="NSArray" key="IBDocument.PluginDependencies">
1919 <bool key="EncodedWithXMLCoder">YES</bool>
@@ -78,21 +78,16 @@
7979 <bool key="IBUIMultipleTouchEnabled">YES</bool>
8080 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
8181 </object>
82 - <object class="NSArray" key="IBUIViewControllers">
 82+ <object class="NSMutableArray" key="IBUIViewControllers">
8383 <bool key="EncodedWithXMLCoder">YES</bool>
8484 <object class="IBUIViewController" id="383586554">
8585 <object class="IBUINavigationItem" key="IBUINavigationItem" id="269835144">
8686 <reference key="IBUINavigationBar"/>
8787 <string key="IBUITitle">Settings</string>
88 - <object class="IBUIBarButtonItem" key="IBUIBackBarButtonItem" id="932536103">
89 - <string key="IBUITitle">Settings</string>
90 - <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
91 - <int key="IBUIStyle">1</int>
92 - </object>
9388 <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
9489 </object>
9590 <reference key="IBUIParentViewController" ref="331448774"/>
96 - <string key="IBUINibName">SettingsViewController</string>
 91+ <string key="IBUINibName">SourcePickerViewController</string>
9792 <object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
9893 <int key="interfaceOrientation">1</int>
9994 </object>
@@ -211,15 +206,9 @@
212207 <reference key="object" ref="269835144"/>
213208 <object class="NSMutableArray" key="children">
214209 <bool key="EncodedWithXMLCoder">YES</bool>
215 - <reference ref="932536103"/>
216210 </object>
217211 <reference key="parent" ref="383586554"/>
218212 </object>
219 - <object class="IBObjectRecord">
220 - <int key="objectID">23</int>
221 - <reference key="object" ref="932536103"/>
222 - <reference key="parent" ref="269835144"/>
223 - </object>
224213 </object>
225214 </object>
226215 <object class="NSMutableDictionary" key="flattenedProperties">
@@ -251,9 +240,9 @@
252241 <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
253242 <string>{{525, 346}, {320, 480}}</string>
254243 <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
255 - <string>{{1068, 526}, {320, 480}}</string>
 244+ <string>{{577, 526}, {320, 480}}</string>
256245 <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
257 - <string>SettingsViewController</string>
 246+ <string>SourcePickerViewController</string>
258247 <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
259248 <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
260249 <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
@@ -347,12 +336,14 @@
348337 <string>onCameraClicked</string>
349338 <string>onCancelUploadClicked</string>
350339 <string>onPhotoLibraryClicked</string>
 340+ <string>onSettingsClicked</string>
351341 </object>
352342 <object class="NSMutableArray" key="dict.values">
353343 <bool key="EncodedWithXMLCoder">YES</bool>
354344 <string>id</string>
355345 <string>id</string>
356346 <string>id</string>
 347+ <string>id</string>
357348 </object>
358349 </object>
359350 <object class="NSMutableDictionary" key="actionInfosByName">
@@ -362,6 +353,7 @@
363354 <string>onCameraClicked</string>
364355 <string>onCancelUploadClicked</string>
365356 <string>onPhotoLibraryClicked</string>
 357+ <string>onSettingsClicked</string>
366358 </object>
367359 <object class="NSMutableArray" key="dict.values">
368360 <bool key="EncodedWithXMLCoder">YES</bool>
@@ -377,6 +369,10 @@
378370 <string key="name">onPhotoLibraryClicked</string>
379371 <string key="candidateClassName">id</string>
380372 </object>
 373+ <object class="IBActionInfo">
 374+ <string key="name">onSettingsClicked</string>
 375+ <string key="candidateClassName">id</string>
 376+ </object>
381377 </object>
382378 </object>
383379 <object class="NSMutableDictionary" key="outlets">
@@ -438,14 +434,14 @@
439435 </object>
440436 </object>
441437 <object class="IBPartialClassDescription">
442 - <string key="className">SettingsViewController</string>
443 - <string key="superclassName">UIViewController</string>
 438+ <string key="className">SourcePickerViewController</string>
 439+ <string key="superclassName">UITableViewController</string>
444440 <object class="NSMutableDictionary" key="actions">
445441 <bool key="EncodedWithXMLCoder">YES</bool>
446442 <object class="NSArray" key="dict.sortedKeys">
447443 <bool key="EncodedWithXMLCoder">YES</bool>
448 - <string>saveAction:</string>
449 - <string>textFieldDidEnd:</string>
 444+ <string>infoPressed:</string>
 445+ <string>settingsPressed:</string>
450446 </object>
451447 <object class="NSMutableArray" key="dict.values">
452448 <bool key="EncodedWithXMLCoder">YES</bool>
@@ -457,63 +453,24 @@
458454 <bool key="EncodedWithXMLCoder">YES</bool>
459455 <object class="NSArray" key="dict.sortedKeys">
460456 <bool key="EncodedWithXMLCoder">YES</bool>
461 - <string>saveAction:</string>
462 - <string>textFieldDidEnd:</string>
 457+ <string>infoPressed:</string>
 458+ <string>settingsPressed:</string>
463459 </object>
464460 <object class="NSMutableArray" key="dict.values">
465461 <bool key="EncodedWithXMLCoder">YES</bool>
466462 <object class="IBActionInfo">
467 - <string key="name">saveAction:</string>
 463+ <string key="name">infoPressed:</string>
468464 <string key="candidateClassName">id</string>
469465 </object>
470466 <object class="IBActionInfo">
471 - <string key="name">textFieldDidEnd:</string>
 467+ <string key="name">settingsPressed:</string>
472468 <string key="candidateClassName">id</string>
473469 </object>
474470 </object>
475471 </object>
476 - <object class="NSMutableDictionary" key="outlets">
477 - <bool key="EncodedWithXMLCoder">YES</bool>
478 - <object class="NSArray" key="dict.sortedKeys">
479 - <bool key="EncodedWithXMLCoder">YES</bool>
480 - <string>password</string>
481 - <string>save</string>
482 - <string>username</string>
483 - </object>
484 - <object class="NSMutableArray" key="dict.values">
485 - <bool key="EncodedWithXMLCoder">YES</bool>
486 - <string>UITextField</string>
487 - <string>UIButton</string>
488 - <string>UITextField</string>
489 - </object>
490 - </object>
491 - <object class="NSMutableDictionary" key="toOneOutletInfosByName">
492 - <bool key="EncodedWithXMLCoder">YES</bool>
493 - <object class="NSArray" key="dict.sortedKeys">
494 - <bool key="EncodedWithXMLCoder">YES</bool>
495 - <string>password</string>
496 - <string>save</string>
497 - <string>username</string>
498 - </object>
499 - <object class="NSMutableArray" key="dict.values">
500 - <bool key="EncodedWithXMLCoder">YES</bool>
501 - <object class="IBToOneOutletInfo">
502 - <string key="name">password</string>
503 - <string key="candidateClassName">UITextField</string>
504 - </object>
505 - <object class="IBToOneOutletInfo">
506 - <string key="name">save</string>
507 - <string key="candidateClassName">UIButton</string>
508 - </object>
509 - <object class="IBToOneOutletInfo">
510 - <string key="name">username</string>
511 - <string key="candidateClassName">UITextField</string>
512 - </object>
513 - </object>
514 - </object>
515472 <object class="IBClassDescriptionSource" key="sourceIdentifier">
516473 <string key="majorKey">IBProjectSource</string>
517 - <string key="minorKey">SettingsViewController.h</string>
 474+ <string key="minorKey">Classes/SourcePickerViewController.h</string>
518475 </object>
519476 </object>
520477 </object>
@@ -717,11 +674,11 @@
718675 </object>
719676 </object>
720677 <object class="IBPartialClassDescription">
721 - <string key="className">UITextField</string>
722 - <string key="superclassName">UIControl</string>
723 - <object class="IBClassDescriptionSource" key="sourceIdentifier" id="280785718">
 678+ <string key="className">UITableViewController</string>
 679+ <string key="superclassName">UIViewController</string>
 680+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
724681 <string key="majorKey">IBFrameworkSource</string>
725 - <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
 682+ <string key="minorKey">UIKit.framework/Headers/UITableViewController.h</string>
726683 </object>
727684 </object>
728685 <object class="IBPartialClassDescription">
@@ -733,7 +690,10 @@
734691 </object>
735692 <object class="IBPartialClassDescription">
736693 <string key="className">UIView</string>
737 - <reference key="sourceIdentifier" ref="280785718"/>
 694+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
 695+ <string key="majorKey">IBFrameworkSource</string>
 696+ <string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
 697+ </object>
738698 </object>
739699 <object class="IBPartialClassDescription">
740700 <string key="className">UIView</string>
@@ -797,7 +757,7 @@
798758 <integer value="3100" key="NS.object.0"/>
799759 </object>
800760 <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
801 - <string key="IBDocument.LastKnownRelativeProjectPath">photopicker.xcodeproj</string>
 761+ <string key="IBDocument.LastKnownRelativeProjectPath">WikiSnaps.xcodeproj</string>
802762 <int key="IBDocument.defaultPropertyAccessControl">3</int>
803763 <string key="IBCocoaTouchPluginVersion">132</string>
804764 </data>
Index: trunk/tools/WikiSnaps/WikiSnaps.xcodeproj/project.pbxproj
@@ -12,11 +12,14 @@
1313 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };
1414 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; };
1515 288765A50DF7441C002DB57D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765A40DF7441C002DB57D /* CoreGraphics.framework */; };
16 - 2899E5220DE3E06400AC0155 /* PhotoPickerViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2899E5210DE3E06400AC0155 /* PhotoPickerViewController.xib */; };
1716 28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28AD733E0D9D9553002E5188 /* MainWindow.xib */; };
18 - 28D7ACF80DDB3853001CB0EB /* PhotoPickerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 28D7ACF70DDB3853001CB0EB /* PhotoPickerViewController.m */; };
1917 3A113EC910CF3C5500C9DDCF /* Entitlements.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3A113EC810CF3C5500C9DDCF /* Entitlements.plist */; };
2018 494C81E212E8DBAD000931F2 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = 494C81E112E8DBAD000931F2 /* Default.png */; };
 19+ 494C821212E8E385000931F2 /* SourcePickerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 494C821012E8E385000931F2 /* SourcePickerViewController.m */; };
 20+ 494C821312E8E385000931F2 /* SourcePickerViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 494C821112E8E385000931F2 /* SourcePickerViewController.xib */; };
 21+ 494C82C812ECBEB6000931F2 /* ImageUploadViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 494C82C612ECBEB6000931F2 /* ImageUploadViewController.m */; };
 22+ 494C82C912ECBEB6000931F2 /* ImageUploadViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 494C82C712ECBEB6000931F2 /* ImageUploadViewController.xib */; };
 23+ 494C834E12ECEAB3000931F2 /* XMLReader.m in Sources */ = {isa = PBXBuildFile; fileRef = 494C834D12ECEAB3000931F2 /* XMLReader.m */; };
2124 A127DA4012E0DF9700149FC9 /* SettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A127DA3E12E0DF9700149FC9 /* SettingsViewController.m */; };
2225 A127DA4112E0DF9700149FC9 /* SettingsViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = A127DA3F12E0DF9700149FC9 /* SettingsViewController.xib */; };
2326 A1338B8612E0F01700662B28 /* ASIAuthenticationDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = A1338B7312E0F01700662B28 /* ASIAuthenticationDialog.m */; };
@@ -52,14 +55,19 @@
5356 1D6058910D05DD3D006BFB54 /* WikiSnaps.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = WikiSnaps.app; sourceTree = BUILT_PRODUCTS_DIR; };
5457 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
5558 288765A40DF7441C002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
56 - 2899E5210DE3E06400AC0155 /* PhotoPickerViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PhotoPickerViewController.xib; sourceTree = "<group>"; };
5759 28AD733E0D9D9553002E5188 /* MainWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainWindow.xib; sourceTree = "<group>"; };
58 - 28D7ACF60DDB3853001CB0EB /* PhotoPickerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PhotoPickerViewController.h; sourceTree = "<group>"; };
59 - 28D7ACF70DDB3853001CB0EB /* PhotoPickerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PhotoPickerViewController.m; sourceTree = "<group>"; };
6060 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
6161 32CA4F630368D1EE00C91783 /* WikiSnaps_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WikiSnaps_Prefix.pch; sourceTree = "<group>"; };
6262 3A113EC810CF3C5500C9DDCF /* Entitlements.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Entitlements.plist; sourceTree = "<group>"; };
6363 494C81E112E8DBAD000931F2 /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = "<group>"; };
 64+ 494C820F12E8E385000931F2 /* SourcePickerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SourcePickerViewController.h; sourceTree = "<group>"; };
 65+ 494C821012E8E385000931F2 /* SourcePickerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SourcePickerViewController.m; sourceTree = "<group>"; };
 66+ 494C821112E8E385000931F2 /* SourcePickerViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = SourcePickerViewController.xib; path = Classes/SourcePickerViewController.xib; sourceTree = "<group>"; };
 67+ 494C82C512ECBEB6000931F2 /* ImageUploadViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImageUploadViewController.h; sourceTree = "<group>"; };
 68+ 494C82C612ECBEB6000931F2 /* ImageUploadViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ImageUploadViewController.m; sourceTree = "<group>"; };
 69+ 494C82C712ECBEB6000931F2 /* ImageUploadViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ImageUploadViewController.xib; path = Classes/ImageUploadViewController.xib; sourceTree = "<group>"; };
 70+ 494C834C12ECEAB3000931F2 /* XMLReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = XMLReader.h; path = XMLtoDict/XMLReader.h; sourceTree = "<group>"; };
 71+ 494C834D12ECEAB3000931F2 /* XMLReader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = XMLReader.m; path = XMLtoDict/XMLReader.m; sourceTree = "<group>"; };
6472 8D1107310486CEB800E47090 /* WikiSnaps-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "WikiSnaps-Info.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = "<group>"; };
6573 A127DA3D12E0DF9700149FC9 /* SettingsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SettingsViewController.h; path = ../SettingsViewController.h; sourceTree = "<group>"; };
6674 A127DA3E12E0DF9700149FC9 /* SettingsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SettingsViewController.m; path = ../SettingsViewController.m; sourceTree = "<group>"; };
@@ -131,22 +139,25 @@
132140 isa = PBXGroup;
133141 children = (
134142 A1338B7112E0EFFF00662B28 /* ASI */,
 143+ 494C833E12ECE900000931F2 /* XMLtoDict */,
135144 F130561D10CEDBAC00271CD6 /* Configuration.h */,
136145 F130561E10CEDBAC00271CD6 /* Configuration.m */,
137146 F1A2691010C9D8EE0044762E /* NSData+PhotoPicker.h */,
138147 F1A2691110C9D8EE0044762E /* NSData+PhotoPicker.m */,
 148+ F1A269AF10C9EA8A0044762E /* UIImage+PhotoPicker.h */,
 149+ F1A269B010C9EA8A0044762E /* UIImage+PhotoPicker.m */,
 150+ A1FECB3C12E1105B007CF08C /* CommonsUpload.h */,
 151+ A1FECB3D12E1105B007CF08C /* CommonsUpload.m */,
139152 1D3623240D0F684500981E51 /* PhotoPickerAppDelegate.h */,
140153 1D3623250D0F684500981E51 /* PhotoPickerAppDelegate.m */,
141 - 28D7ACF60DDB3853001CB0EB /* PhotoPickerViewController.h */,
142 - 28D7ACF70DDB3853001CB0EB /* PhotoPickerViewController.m */,
143 - F1A269AF10C9EA8A0044762E /* UIImage+PhotoPicker.h */,
144 - F1A269B010C9EA8A0044762E /* UIImage+PhotoPicker.m */,
145154 A127DA3D12E0DF9700149FC9 /* SettingsViewController.h */,
146155 A127DA3E12E0DF9700149FC9 /* SettingsViewController.m */,
 156+ 494C820F12E8E385000931F2 /* SourcePickerViewController.h */,
 157+ 494C821012E8E385000931F2 /* SourcePickerViewController.m */,
147158 A1FECB2912E10DCA007CF08C /* ImageDetailsViewController.h */,
148159 A1FECB2A12E10DCA007CF08C /* ImageDetailsViewController.m */,
149 - A1FECB3C12E1105B007CF08C /* CommonsUpload.h */,
150 - A1FECB3D12E1105B007CF08C /* CommonsUpload.m */,
 160+ 494C82C512ECBEB6000931F2 /* ImageUploadViewController.h */,
 161+ 494C82C612ECBEB6000931F2 /* ImageUploadViewController.m */,
151162 );
152163 path = Classes;
153164 sourceTree = "<group>";
@@ -185,17 +196,9 @@
186197 29B97317FDCFA39411CA2CEA /* Resources */ = {
187198 isa = PBXGroup;
188199 children = (
189 - 494C81E112E8DBAD000931F2 /* Default.png */,
190 - A1FECB2712E10D41007CF08C /* icon@2x.png */,
191 - F1A2672F10C9C04A0044762E /* icon.png */,
192 - F13056ED10CEEB3100271CD6 /* cancel-button-pressed.png */,
193 - F13056EE10CEEB3100271CD6 /* cancel-button.png */,
194 - F130561B10CEDA5C00271CD6 /* home-background.png */,
 200+ 494C82FA12ECDE94000931F2 /* Images */,
 201+ 494C82FB12ECDEA6000931F2 /* Xibs */,
195202 8D1107310486CEB800E47090 /* WikiSnaps-Info.plist */,
196 - 28AD733E0D9D9553002E5188 /* MainWindow.xib */,
197 - A127DA3F12E0DF9700149FC9 /* SettingsViewController.xib */,
198 - 2899E5210DE3E06400AC0155 /* PhotoPickerViewController.xib */,
199 - A1FECB2B12E10DCA007CF08C /* ImageDetailsViewController.xib */,
200203 );
201204 name = Resources;
202205 sourceTree = "<group>";
@@ -214,6 +217,40 @@
215218 name = Frameworks;
216219 sourceTree = "<group>";
217220 };
 221+ 494C82FA12ECDE94000931F2 /* Images */ = {
 222+ isa = PBXGroup;
 223+ children = (
 224+ 494C81E112E8DBAD000931F2 /* Default.png */,
 225+ A1FECB2712E10D41007CF08C /* icon@2x.png */,
 226+ F1A2672F10C9C04A0044762E /* icon.png */,
 227+ F13056ED10CEEB3100271CD6 /* cancel-button-pressed.png */,
 228+ F13056EE10CEEB3100271CD6 /* cancel-button.png */,
 229+ F130561B10CEDA5C00271CD6 /* home-background.png */,
 230+ );
 231+ name = Images;
 232+ sourceTree = "<group>";
 233+ };
 234+ 494C82FB12ECDEA6000931F2 /* Xibs */ = {
 235+ isa = PBXGroup;
 236+ children = (
 237+ 28AD733E0D9D9553002E5188 /* MainWindow.xib */,
 238+ 494C821112E8E385000931F2 /* SourcePickerViewController.xib */,
 239+ A127DA3F12E0DF9700149FC9 /* SettingsViewController.xib */,
 240+ A1FECB2B12E10DCA007CF08C /* ImageDetailsViewController.xib */,
 241+ 494C82C712ECBEB6000931F2 /* ImageUploadViewController.xib */,
 242+ );
 243+ name = Xibs;
 244+ sourceTree = "<group>";
 245+ };
 246+ 494C833E12ECE900000931F2 /* XMLtoDict */ = {
 247+ isa = PBXGroup;
 248+ children = (
 249+ 494C834C12ECEAB3000931F2 /* XMLReader.h */,
 250+ 494C834D12ECEAB3000931F2 /* XMLReader.m */,
 251+ );
 252+ name = XMLtoDict;
 253+ sourceTree = "<group>";
 254+ };
218255 A1338B7112E0EFFF00662B28 /* ASI */ = {
219256 isa = PBXGroup;
220257 children = (
@@ -296,7 +333,6 @@
297334 buildActionMask = 2147483647;
298335 files = (
299336 28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */,
300 - 2899E5220DE3E06400AC0155 /* PhotoPickerViewController.xib in Resources */,
301337 F1A2673110C9C04A0044762E /* icon.png in Resources */,
302338 F130561C10CEDA5C00271CD6 /* home-background.png in Resources */,
303339 F13056EF10CEEB3100271CD6 /* cancel-button-pressed.png in Resources */,
@@ -306,6 +342,8 @@
307343 A1FECB2812E10D41007CF08C /* icon@2x.png in Resources */,
308344 A1FECB2D12E10DCA007CF08C /* ImageDetailsViewController.xib in Resources */,
309345 494C81E212E8DBAD000931F2 /* Default.png in Resources */,
 346+ 494C821312E8E385000931F2 /* SourcePickerViewController.xib in Resources */,
 347+ 494C82C912ECBEB6000931F2 /* ImageUploadViewController.xib in Resources */,
310348 );
311349 runOnlyForDeploymentPostprocessing = 0;
312350 };
@@ -318,7 +356,6 @@
319357 files = (
320358 1D60589B0D05DD56006BFB54 /* main.m in Sources */,
321359 1D3623260D0F684500981E51 /* PhotoPickerAppDelegate.m in Sources */,
322 - 28D7ACF80DDB3853001CB0EB /* PhotoPickerViewController.m in Sources */,
323360 F1A2691210C9D8EE0044762E /* NSData+PhotoPicker.m in Sources */,
324361 F1A269B110C9EA8A0044762E /* UIImage+PhotoPicker.m in Sources */,
325362 F130561F10CEDBAC00271CD6 /* Configuration.m in Sources */,
@@ -334,6 +371,9 @@
335372 A159143312E0F6410003BBE2 /* Reachability.m in Sources */,
336373 A1FECB2C12E10DCA007CF08C /* ImageDetailsViewController.m in Sources */,
337374 A1FECB3E12E1105B007CF08C /* CommonsUpload.m in Sources */,
 375+ 494C821212E8E385000931F2 /* SourcePickerViewController.m in Sources */,
 376+ 494C82C812ECBEB6000931F2 /* ImageUploadViewController.m in Sources */,
 377+ 494C834E12ECEAB3000931F2 /* XMLReader.m in Sources */,
338378 );
339379 runOnlyForDeploymentPostprocessing = 0;
340380 };

Status & tagging log