forked from gobbledegook/creevey
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathREADME
More file actions
224 lines (199 loc) · 9.76 KB
/
README
File metadata and controls
224 lines (199 loc) · 9.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
Phoenix Slides source code README
by Dominic Yu
created 2005 June 8
modified 2012 October
creevey was the code name for Phoenix Slides. Colin Creevey is the
kid in Harry Potter who keeps taking pictures.
I put my source code out in the hopes that people might contribute
to the project, and also so others may benefit from my hours of
blood, sweat, and code (as the old CodeWarrior mantra goes).
Sorry for the messy source code. I've tried to make things modular
and reusable, though a lot of classes are rather application-specific.
Let's see, the wrapping matrix is kinda cool. The dir browser could
be useful (NSBrowser quirks notwithstanding). And the
Carbon Goodies are definitely useful.
If anyone wants to contribute their coding talent and make this
program come along more quickly, help is always welcome.
Aliases: a pain to deal with. Why can't the OS just use symbolic links?
Anyway, things to keep in mind re aliases:
1. the thumbs image cache always stores images using the resolved filename as
the key. This prevents duplication somewhat, but it means when you look
things up you need to make a call to ResolveAliasToPath.
2. for some reason, i decided to store images using unresolved filenames
in the slideshow cache. Oh, I think it's in case there are multiple
slideshows in the future, each one should have its own cache.
So anyway, it's different than for the thumbnails, which is one global cache
for all the windows.
3. file operations should of course operate on the original file.
Everything in the JPEG and EXIF menus call rotateTest:; get exiforientation etc.
and set desktop should also resolve to the original path.
But move to trash, reveal in finder should not. Get Info is weird, since
you want to show that it's an alias, but also show the original info.
Plus there's two places where you get info, once in the slideshow and
once in the get info window.
TO DO:
- play movies
- lossless jpeg cropping?
- speed, speed, speed. i've noticed a slight lag sometimes when going forward
in the slideshow, which disappears if you go back over those pics again.
can't figure out why...
Enjoy!
Version History
---------------
1.2.8
-----
make universal binary again (you have to compile with XCode 3.2.6)
info bar now hidden by default
info bar visibility is now sticky
1.2.7
-----
thumbnail view now auto-rotates JPEG images with orientation tags
- you can turn this off in a menu item
for better consistency...
- JPEGs are now rotated relative to their currently displayed orientation
- in the slideshow you can save the current rotation (cmd-shift-S);
(in the browser view, use "Rotate by Tag", since you can't rotate thumbnails in the browser)
sort thumbnails by either name or date
directory names in browser sorted by name.
columns now resize individually (hold option to do all at once). see setPrefersAllColumnUserResizing.
made the "orientation" menu items more sensitive to context (specifically, during slideshows they only activate if the orientation > 1)
'*' now resets rotation and flip (used to be just zoom)
added hidden pref: defaults write net.blyt.phoenixslides Slideshow:RerandomizeOnLoop -boolean NO
fixed bug where super-skinny images might crash the browser (thanks to Luis Lozano)
fixed bug where you're stuck in a slideshow if you dragged something to the
Phoenix Slides icon, then switch to view a particular category, then
switched away from that window (e.g. another app) and back again (thanks to Doc O'Leary)
fixed bug where a jpeg would remain flipped in the slideshow after modifying it
fixed bug where slideshow rotations would be stored incorrectly after flipping
fixed: aliases in slideshows can now show EXIF info
fixed: replace thumb works with aliases
fixed: white line on the right side of some 180-degree rotations
got rid of annoying NSLock warnings in the console
updated localizations (except French!)
fixed "type" field as shown in Get Info in the Finder
1.2.6
-----
fixed - work around Snow Leopard's NSBrowser bug(?)
if slideshow is running, don't switch to different monitor
when in random mode AND loop mode, re-randomize at the start of each loop
fixed crash on EXIF field type mismatch
Italian localization improved (thanks to Silvano Dotti)
1.2.5
-----
thumbs bg color
pref to move files/make alias
allows flipping with 'f'
shift-space goes back
in EXIF menu, "Auto-rotate JPEG Files" changed to "Rotate JPEG File by EXIF tag"
made slideshow auto-rotate by exif orientation, but not the thumbnails
fixed bug when reading JPEG Comments with 8-bit characters
fixed - dragging to trash can now removes thumbnail from view (bug introduced in 1.2, I think)
fixed - banished that annoying white line when showing cached, scaled-down images
fixed - typo "Focal Lenght In 35mm Film"
1.2.4
-----
possible fix for intel hanging (same nsbrowser bug as 1.0)
- we should check if it happens in 10.5
worked around non-standard EXIF header crash
got rid of extra white line on some thumbnails
resolution independence stuff (percent means pixels)
1.2.3
-----
changes:
Selected thumbnail now matches last viewed slide
items sorted by filename (in Finder order)
skips folders named "Thumbs" (for better iPhoto library browsing)
icon (Takeshi Gondo)
Italian
fixes:
now hides exif thumb popup menu correctly when info window collapsed
ghost of last thumbnail no longer remains when deleting a file
jpeg ops no longer cause menubar/dock to show during slideshows
1.2.2
-----
jpeg rotations (not grayscale) now also apply to exif thumbs
(there seems to be some extraneous stuff in the ifd1 of the exif, seems safe to delete)
can reset orientation tag and auto-rotate by them
rotating resets orientation tag
better prefs window, can set slideshow defaults
left- and right-click now go next/back
dbl-click to end
scroll wheel to navigate, but it conflicts with scroll wheel to scroll zoomed images
+-= w/ cmd key held down can now zoom (= on numeric keypad only)
hand cursor shows up for dragging zoomed images
set bg color, transparency for slideshow
fixed: jpeg files with non-EXIF APP1 tags would cause problems with selection/info display
fixed: jpeg rotation during slideshow didn't update if "don't change modification date" was checked
fixed: rotating and trashing in thumbs window will now cause slideshow to update too
fixed crash when exiting slideshow with images waiting to be cached (also made currentIndex volatile)
changed supported file types from imageFileTypes to imageUnfilteredFileTypes
(seems to make no difference, 106 types both ways)
'@' to auto-advance 1.5 secs (not official... try to have better interface in future)
made columns resizable
1.2.1
-----
show EXIF info during slideshow ('i' cycles; shift-i for more EXIF)
fixed 2 4 6 8 to not scroll orthogonal to intended dir (uninitialized vars.)
fixed incorrectly enabled menu items during slideshow
fixed drawing glitch when hiding cheat sheet (non-integral coords)
made vars volatile where necessary (i.e., when accessed from multiple threads)
zoom sticks until quit (like rotations)
show all at actual size
fat(x86) binary - especially useful: TN2137
opening a file starts slideshow immediately
option to not change mod dates for lossless jpeg (grayscale/markers still does)
fixed multiple monitor bug - dimensions but not lower left corner were used for mainScreen (the one with the key window)
1.2
---
lossless jpeg rotation and other transformations
get info window: name, alias, size, progressive, jpeg comments, exif info
- localizations from /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/
multiple windows! (this was a cr@pload of work)
save prefs on exit (i forgot to call synchronize)
tried to make thumbnail loading faster, but can't seem to make significant
improvements. Epeg is nice, tho i can't seem to get anywhere near the promised
25 thumbs/second, but I think that figure's just for small (<1MP) jpegs.
fixed a problem when releasing a UKKQueue that only became apparent
when closing multiple windows (up to 5-second hang)
double-click on empty trailing whitespace or with cmd or shift no longer sends action
German localization, thanks to Thomas Steg.
removed help indexes--they were just taking up space, and it's a one-page doc anyway.
cheat sheet rect now calculated to fit text exactly
random slideshows
categories
auto vers check
zoom in slideshow - if flush to edge, zoom in on edges
otherwise zooming in zooms in on center
faster image loading - use NSImage's setScalesWhenResized and setSize
1.1
---
info bar
resize thumbnails
change (single-)selection in matrix using arrow keys
speed/memory optimizations in wrapping matrix
- now reuses a single NSImageCell
- setNeedsDisplayInRect redraws only what's needed (selections are faster)
fixed view/thread bugs (setNeedsDisplay is not thread-safe)
animated GIFs - ridiculously simple to implement.
dir listing shows volumes at the top level
dir listing updates on volume mounting, dir renaming/deletion
(using kqueue - it's too much to refresh for any and every
dir content change, i think)
space now pause/continues auto-advance
pressing 1-9 now starts auto-advance right away
added scale up for small images
While optimizing the drawing in the wrapping matrix,
I discovered another Apple bug: needsToDrawRect: sometimes
returns NO when it should return YES. Supposedly fixed in 10.4,
and it's documented (TN2107), but it took me a while to figure out.
1.0
---
first release, day before Tiger (2005.04.28 Thursday).
As of June 12, there've been about 800 downloads. ONE person
has emailed me thanking me for the program. I guess that means
no one's found anything wrong with it...
The most annoying bugs are the ones in Apple's frameworks.
(cuz you assume there aren't any...)
NSBrowser seems to crash if you click on it too much (something
about the horizontal scrolling animation). I've made a poser subclass
to disable the animation.