• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

「プロジェクト終了」 BathyScapheのプレビューアプラグインを複数使用出来るようにするプラグイン


Commit MetaInfo

Revisionc790d9135fc24e175f695264b4b6d2fe309c96df (tree)
Time2010-09-14 00:18:41
Authormasakih <masakih@user...>
Commitermasakih

Log Message

[Fix] 起動時に正しくプラグインを読み込めていなかった問題を解消。
[Mod] プラグインのロードを別クラスで行うようにした。
[Mod] PSPreviewerInterfaceの実装を別ファイルに移動。
[Mod] 不要なコードの削除。

git-svn-id: svn+ssh://macmini/usr/local/svnrepos/PreviewerSelector/PreviewerSelector@29 42e33f61-e417-4bac-a148-64f5df846d20

Change Summary

Incremental Difference

--- a/English.lproj/InfoPlist.strings
+++ b/English.lproj/InfoPlist.strings
@@ -9,6 +9,6 @@
99 <key>CFBundleShortVersionString</key>
1010 <string>%%%%VERSION%%%%</string>
1111 <key>NSHumanReadableCopyright</key>
12- <string>© masakih, 2006-2009</string>
12+ <string>© masakih, 2006-2010</string>
1313 </dict>
1414 </plist>
--- a/Info.plist
+++ b/Info.plist
@@ -19,7 +19,7 @@
1919 <key>CFBundleSignature</key>
2020 <string>????</string>
2121 <key>CFBundleVersion</key>
22- <string>4.0</string>
22+ <string>4.1</string>
2323 <key>NSPrincipalClass</key>
2424 <string>PreviewerSelector</string>
2525 </dict>
--- a/Japanese.lproj/InfoPlist.strings
+++ b/Japanese.lproj/InfoPlist.strings
@@ -9,6 +9,6 @@
99 <key>CFBundleShortVersionString</key>
1010 <string>%%%%VERSION%%%%</string>
1111 <key>NSHumanReadableCopyright</key>
12- <string>© masakih, 2006-2009</string>
12+ <string>© masakih, 2006-2010</string>
1313 </dict>
1414 </plist>
--- /dev/null
+++ b/PSPreviewerInterface.m
@@ -0,0 +1,162 @@
1+//
2+// PSPreviewerInterface.m
3+// PreviewerSelector
4+//
5+// Created by Hori,Masaki on 10/09/13.
6+// Copyright 2010 masakih. All rights reserved.
7+//
8+
9+#import "PSPreviewerInterface.h"
10+#import "PreviewerSelector.h"
11+#import "PSPreviewerItem.h"
12+
13+@interface PreviewerSelector (PSPreviewerInterface) <PSPreviewerInterface>
14+@end
15+
16+@implementation PreviewerSelector (PSPreviewerInterface)
17+static NSArray *previewerDisplayNames = nil;
18+static NSArray *previewerIdentifiers = nil;
19+static NSArray *previewers = nil;
20+
21+- (void)buildArrays
22+{
23+ NSMutableArray *names = [NSMutableArray array];
24+ NSMutableArray *ids = [NSMutableArray array];
25+
26+ for(PSPreviewerItem *item in [self loadedPlugInsInfo]) {
27+ id name = [item displayName];
28+ [names addObject:name];
29+
30+ id identifier = [item identifier];
31+ [ids addObject:identifier];
32+ }
33+
34+ previewerDisplayNames = [[NSArray arrayWithArray:names] retain];
35+ previewerIdentifiers = [[NSArray arrayWithArray:ids] retain];
36+}
37+- (NSArray *)previewerDisplayNames
38+{
39+ if(previewerDisplayNames) return previewerDisplayNames;
40+
41+ [self buildArrays];
42+
43+ return previewerDisplayNames;
44+}
45+
46+- (NSArray *)previewerIdentifires
47+{
48+ if(previewerIdentifiers) return previewerIdentifiers;
49+
50+ [self buildArrays];
51+
52+ return previewerIdentifiers;
53+}
54+- (BOOL)openURL:(NSURL *)url withPreviewer:(id)previewer
55+{
56+ if([previewer conformsToProtocol:@protocol(BSLinkPreviewing)]) {
57+ return [previewer previewLink:url];
58+ }
59+
60+ return [previewer showImageWithURL:url];
61+}
62+- (BOOL)openURLs:(NSArray *)url withPreviewer:(id)previewer
63+{
64+ if([previewer respondsToSelector:@selector(previewLinks:)]) {
65+ return [previewer previewLinks:url];
66+ }
67+ if([previewer respondsToSelector:@selector(showImagesWithURLs:)]) {
68+ return [previewer showImagesWithURLs:url];
69+ }
70+ return NO;
71+}
72+
73+- (BOOL)openURL:(NSURL *)url inPreviewerByName:(NSString *)previewerName
74+{
75+ BOOL result = NO;
76+
77+ for(PSPreviewerItem *item in [self loadedPlugInsInfo]) {
78+ NSString *displayName = [item displayName];
79+
80+ if([displayName isEqualToString:previewerName]) {
81+ id previewer = [item previewer];
82+ if([previewer validateLink:url]) {
83+ result = [self openURL:url withPreviewer:previewer];;
84+ }
85+ return result;
86+ }
87+ }
88+
89+ return NO;
90+}
91+- (BOOL)openURL:(NSURL *)url inPreviewerByIdentifier:(NSString *)target
92+{
93+ BOOL result = NO;
94+
95+ for(PSPreviewerItem *item in [self loadedPlugInsInfo]) {
96+ NSString *identifier = [item identifier];
97+
98+ if([identifier isEqualToString:target]) {
99+ id previewer = [item previewer];
100+ if([previewer validateLink:url]) {
101+ result = [self openURL:url withPreviewer:previewer];;
102+ }
103+ return result;
104+ }
105+ }
106+
107+ return NO;
108+}
109+
110+- (NSArray *)previewerItems
111+{
112+ return [NSArray arrayWithArray:[self loadedPlugInsInfo]];
113+}
114+
115+// for direct controll previewers.
116+- (NSArray *)previewers
117+{
118+ if(previewers) return previewers;
119+
120+ NSMutableArray *pvs = [NSMutableArray array];
121+
122+ for(PSPreviewerItem *item in [self loadedPlugInsInfo]) {
123+ id pv = [item previewer];
124+ [pvs addObject:pv];
125+ }
126+
127+ previewers = [NSArray arrayWithArray:pvs];
128+
129+ return previewers;
130+}
131+- (id <BSImagePreviewerProtocol>)previewerByName:(NSString *)previewerName
132+{
133+ for(PSPreviewerItem *item in [self loadedPlugInsInfo]) {
134+ NSString *displayName = [item displayName];
135+
136+ if([displayName isEqualToString:previewerName]) {
137+ return [item previewer];
138+ }
139+ }
140+
141+ return nil;
142+}
143+- (id <BSImagePreviewerProtocol>)previewerByIdentifier:(NSString *)previewerIdentifier
144+{
145+ for(PSPreviewerItem *item in [self loadedPlugInsInfo]) {
146+ NSString *identifier = [item identifier];
147+
148+ if([identifier isEqualToString:previewerIdentifier]) {
149+ return [item previewer];
150+ }
151+ }
152+
153+ return nil;
154+}
155+@end
156+
157+@implementation NSObject (PSPreviewerInterface)
158++ (id <PSPreviewerInterface>)PSPreviewerSelector
159+{
160+ return [PreviewerSelector sharedInstance];
161+}
162+@end
--- a/PSPreviewerItem.m
+++ b/PSPreviewerItem.m
@@ -66,11 +66,31 @@ static NSMutableDictionary *previewerInfo = nil;
6666 if(previewer == newPreviewer) return;
6767
6868 [previewer autorelease];
69- previewer = [newPreviewer retain];
7069
70+ if(!newPreviewer) return;
71+
72+ previewer = [newPreviewer retain];
7173 [previewerInfo setObject:previewer forKey:identifier];
7274 }
7375
76+- (BOOL)isEqual:(id)object
77+{
78+ if(self == object) return YES;
79+ if(![object isMemberOfClass:[self class]]) return NO;
80+
81+ return [self.identifier isEqualToString:[object identifier]];
82+}
83+- (NSUInteger)hash
84+{
85+ return [self.identifier hash];
86+}
87+
88+- (id)description
89+{
90+ return [NSString stringWithFormat:@"%@ <%p> identifier = %@",
91+ NSStringFromClass([self class]), self, self.identifier];
92+}
93+
7494 - (id)copyWithZone:(NSZone *)zone
7595 {
7696 PSPreviewerItem *result = [[[self class] allocWithZone:zone] initWithIdentifier:identifier];
--- /dev/null
+++ b/PSPreviewerItems.h
@@ -0,0 +1,22 @@
1+//
2+// PSPreviewerItems.h
3+// PreviewerSelector
4+//
5+// Created by Hori,Masaki on 10/09/12.
6+// Copyright 2010 masakih. All rights reserved.
7+//
8+
9+#import <Cocoa/Cocoa.h>
10+
11+#import "PSPreviewerItem.h"
12+
13+
14+@interface PSPreviewerItems : NSObject
15+{
16+ NSMutableArray *previewerItems;
17+}
18+
19+- (void)setPreference:(id)pref;
20+
21+@property (nonatomic, readonly) NSArray *previewerItems;
22+@end
--- /dev/null
+++ b/PSPreviewerItems.m
@@ -0,0 +1,167 @@
1+//
2+// PSPreviewerItems.m
3+// PreviewerSelector
4+//
5+// Created by Hori,Masaki on 10/09/12.
6+// Copyright 2010 masakih. All rights reserved.
7+//
8+
9+#import "PSPreviewerItems.h"
10+#import "PSPreviewerItem.h"
11+
12+
13+#import "PreviewerSelector.h"
14+
15+
16+#define AppIdentifierString @"com.masakih.previewerSelector"
17+static NSString *keyPrefPlugInsInfo2 = AppIdentifierString @"." @"PlugInsInfo2";
18+
19+static NSString *builtInPreviewerName = @"BuiltIn";
20+static NSString *noarmalImagePreviewerName = @"ImagePreviewer";
21+
22+
23+@interface PSPreviewerItems ()
24+- (void)loadPlugIns;
25+@end
26+
27+@implementation PSPreviewerItems
28+
29+- (id)init
30+{
31+ [super init];
32+ previewerItems = [[NSMutableArray alloc] init];
33+
34+ return self;
35+}
36+
37+- (NSArray *)previewerItems
38+{
39+ return previewerItems;
40+}
41+- (void)setPreference:(id)pref
42+{
43+ [self loadPlugIns];
44+
45+ NSMutableArray *newItems = [NSMutableArray array];
46+ NSArray *retoredItems = nil;
47+
48+ NSData *itemsData = [[[[PreviewerSelector sharedInstance] preferences] imagePreviewerPrefsDict] objectForKey:keyPrefPlugInsInfo2];
49+ if(!itemsData) {
50+ return;
51+ } else {
52+ retoredItems = [[NSKeyedUnarchiver unarchiveObjectWithData:itemsData] retain];
53+ }
54+
55+ for(PSPreviewerItem *item in retoredItems) {
56+ if([previewerItems containsObject:item]) {
57+ [newItems addObject:item];
58+ }
59+ }
60+
61+ for(PSPreviewerItem *item in previewerItems) {
62+ if(![newItems containsObject:item]) {
63+ [newItems addObject:item];
64+ }
65+ }
66+
67+ [previewerItems autorelease];
68+ previewerItems = [newItems retain];
69+
70+}
71+
72+- (void)awakePreviewers
73+{
74+ for(PSPreviewerItem *item in previewerItems) {
75+ id previewer = [item previewer];
76+ if([previewer respondsToSelector:@selector(awakeByPreviewerSelector:)]) {
77+ [previewer performSelector:@selector(awakeByPreviewerSelector:) withObject:self];
78+ }
79+ }
80+}
81+
82+- (void)registPlugIn:(NSBundle *)pluginBundle name:(NSString *)name path:(NSString *)fullpath
83+{
84+ Class pluginClass;
85+ id plugin;
86+ PSPreviewerItem *item;
87+
88+ if([pluginBundle isLoaded]) return;
89+
90+ [pluginBundle load];
91+ pluginClass = [pluginBundle principalClass];
92+ if(!pluginClass) return;
93+ if(![pluginClass conformsToProtocol:@protocol(BSImagePreviewerProtocol)]
94+ && ![pluginClass conformsToProtocol:@protocol(BSLinkPreviewing)]) return;
95+ plugin = [[[pluginClass alloc] initWithPreferences:[[PreviewerSelector sharedInstance] preferences]] autorelease];
96+ if(!plugin) return;
97+
98+ item = [[[PSPreviewerItem alloc] initWithIdentifier:[pluginBundle bundleIdentifier]] autorelease];
99+ [item setTryCheck:YES];
100+ [item setDisplayInMenu:YES];
101+ [item setPreviewer:plugin];
102+ [item setPath:fullpath];
103+
104+ id v = [pluginBundle objectForInfoDictionaryKey:@"CFBundleShortVersionString"];
105+ if(v) {
106+ [item setVersion:v];
107+ } else {
108+ [item setVersion:@""];
109+ }
110+
111+ v = [pluginBundle objectForInfoDictionaryKey:@"BSPreviewerDisplayName"];
112+ if(v) {
113+ [item setDisplayName:v];
114+ } else {
115+ [item setDisplayName:name];
116+ }
117+
118+ if(![previewerItems containsObject:item]) {
119+ [previewerItems addObject:item];
120+ }
121+}
122+- (void)loadDefaultPreviewer
123+{
124+ NSBundle *b = [NSBundle mainBundle];
125+ id pluginDirPath = [b builtInPlugInsPath];
126+ NSFileManager *dfm = [NSFileManager defaultManager];
127+ NSArray *files = [dfm directoryContentsAtPath:pluginDirPath];
128+
129+ for(NSString *file in files) {
130+ NSString *fullpath = [pluginDirPath stringByAppendingPathComponent:file];
131+ NSString *name = [file stringByDeletingPathExtension];
132+ NSBundle *pluginBundle;
133+
134+ if(![name isEqualToString:noarmalImagePreviewerName]) continue;
135+
136+ pluginBundle = [NSBundle bundleWithPath:fullpath];
137+ if(!pluginBundle) return;
138+
139+ [self registPlugIn:pluginBundle name:builtInPreviewerName path:fullpath];
140+ }
141+}
142+
143+- (void)loadPlugIns
144+{
145+ NSString *path = [[PreviewerSelector sharedInstance] plugInsDirectory];
146+ NSFileManager *dfm = [NSFileManager defaultManager];
147+ NSArray *files = [dfm directoryContentsAtPath:path];
148+
149+ [self loadDefaultPreviewer];
150+
151+ for(NSString *file in files) {
152+ NSString *fullpath = [path stringByAppendingPathComponent:file];
153+ NSString *name = [file stringByDeletingPathExtension];
154+ NSBundle *pluginBundle;
155+
156+ if([name isEqualToString:noarmalImagePreviewerName]) continue;
157+
158+ pluginBundle = [NSBundle bundleWithPath:fullpath];
159+ if(!pluginBundle) continue;
160+
161+ [self registPlugIn:pluginBundle name:name path:fullpath];
162+ }
163+
164+ [self awakePreviewers];
165+}
166+
167+@end
--- a/PreviewerSelector.h
+++ b/PreviewerSelector.h
@@ -11,14 +11,12 @@
1111 #import "BSImagePreviewerInterface.h"
1212 #import "BSPreviewPluginInterface.h"
1313
14+@class PSPreviewerItems;
15+
1416 @interface PreviewerSelector : NSObject <BSImagePreviewerProtocol, BSLinkPreviewing>
1517 {
1618 AppDefaults *preferences;
17-
18- NSMutableArray *loadedPlugInsInfo;
19- NSMutableDictionary *itemsDict;
20-
21-// id<BSImagePreviewerProtocol> defaultPreviewer;
19+ PSPreviewerItems *items;
2220 }
2321
2422 + (id)sharedInstance;
@@ -26,15 +24,11 @@
2624 - (NSMenuItem *)previewMenuItemForLink:(id)link;
2725
2826 - (NSString *)plugInsDirectory;
29-// - (void)setPlugInsDirectory:(NSString *)path;
3027
3128 - (NSArray *)loadedPlugInsInfo;
3229
3330 - (void)savePlugInsInfo;
34-- (void)restorePlugInsInfo;
35-
36-//- (NSString *)defaultPreviewerName;
37-//- (void)setDefaultPreviewerName:(NSString *)name;
31+//- (void)restorePlugInsInfo;
3832
3933 - (id)preferenceForKey:(id)key;
4034 - (void)setPreference:(id)pref forKey:(id)key;
--- a/PreviewerSelector.m
+++ b/PreviewerSelector.m
@@ -11,28 +11,11 @@
1111 #import <objc/objc-class.h>
1212
1313 #import "PSPreviewerItem.h"
14-
15-#import "PSPreviewerInterface.h"
14+#import "PSPreviewerItems.h"
1615
1716 #pragma mark## Static Variable ##
1817 static IMP orignalIMP;
1918
20-NSMenuItem *psCommandItemWithLink(id self, SEL _cmd, id link, Class class, NSString *title)
21-{
22- id obj = [PreviewerSelector sharedInstance];
23- Class class_ = NSClassFromString(@"SGPreviewLinkCommand");
24- NSMenuItem *res;
25-
26- if(class_ == class) {
27- res = [obj previewMenuItemForLink:link];
28- [res setTitle:title];
29- } else {
30- res = orignalIMP(self, _cmd, link, class, title);
31- }
32-
33- return res;
34-}
35-
3619 @implementation PreviewerSelector(MethodExchange)
3720 - (NSMenuItem *)replacementCommandItemWithLink:(id)link command:(Class)class title:(NSString *)title
3821 {
@@ -58,12 +41,8 @@ static void psSwapMethod()
5841
5942 method = class_getInstanceMethod(target, @selector(commandItemWithLink:command:title:));
6043 orignalIMP = class_getMethodImplementation(target, @selector(commandItemWithLink:command:title:));
61- if(method) {
62-// orignalIMP = method->method_imp;
63-// method->method_imp = (IMP)psCommandItemWithLink;
64-
44+ if(method) {
6545 Method newMethod = class_getInstanceMethod([PreviewerSelector class], @selector(replacementCommandItemWithLink:command:title:));
66-
6746 method_exchangeImplementations(method, newMethod);
6847 }
6948 }
@@ -74,27 +53,14 @@ static PreviewerSelector *sSharedInstance;
7453
7554 #pragma mark-
7655 #pragma mark## NSDictionary Keys ##
77-//static NSString *keyPlugInPath = @"PlugInPathKey";
7856 static NSString *keyPlugInObject = @"PlugInObjectKey";
79-//static NSString *keyPlugInName = @"PlugInNameKey";
80-//static NSString *keyPlugInDisplayName = @"PlugInDisplayNameKey";
81-//static NSString *keyPlugInVersion = @"PlugInVersionKey";
82-//static NSString *keyPlugInID = @"PlugInIDKey";
83-//static NSString *keyPlugInIsUse = @"PlugInIsUseKey";
84-//static NSString *keyPlugInIsDefault = @"PlugInIsDefaultKey";
85-
8657 static NSString *keyActionLink = @"ActionLinkKey";
8758
8859 #define AppIdentifierString @"com.masakih.previewerSelector"
8960 static NSString *keyPrefPlugInsDir = AppIdentifierString @"." @"PlugInsDir";
9061 static NSString *keyPrefPlugInsInfo2 = AppIdentifierString @"." @"PlugInsInfo2";
9162
92-#pragma mark## NSString Literals ##
93-static NSString *builtInPreviewerName = @"BuiltIn";
94-static NSString *noarmalImagePreviewerName = @"ImagePreviewer";
95-
9663 @interface PreviewerSelector(PSPrivate)
97-- (void)loadPlugIns;
9864 - (BOOL)openURL:(NSURL *)url withPreviewer:(id)previewer;
9965 - (BOOL)openURLs:(NSArray *)url withPreviewer:(id)previewer;
10066 @end
@@ -193,156 +159,18 @@ final:
193159 {
194160 return self;
195161 }
196-- (id)init
197-{
198- if(self = [super init]) {
199- loadedPlugInsInfo = [[NSMutableArray array] retain];
200- }
201-
202- return self;
203-}
204162
205-- (void)awakePreviewers
206-{
207- for(PSPreviewerItem *item in loadedPlugInsInfo) {
208- id previewer = [item previewer];
209- if([previewer respondsToSelector:@selector(awakeByPreviewerSelector:)]) {
210- [previewer performSelector:@selector(awakeByPreviewerSelector:) withObject:self];
211- }
212- }
213-}
214-- (void)registPlugIn:(NSBundle *)pluginBundle name:(NSString *)name path:(NSString *)fullpath
215-{
216- Class pluginClass;
217- id plugin;
218- PSPreviewerItem *item;
219-
220- if([pluginBundle isLoaded]) return;
221-
222- [pluginBundle load];
223- pluginClass = [pluginBundle principalClass];
224- if(!pluginClass) return;
225- if(![pluginClass conformsToProtocol:@protocol(BSImagePreviewerProtocol)]
226- && ![pluginClass conformsToProtocol:@protocol(BSLinkPreviewing)]) return;
227- plugin = [[[pluginClass alloc] initWithPreferences:[self preferences]] autorelease];
228- if(!plugin) return;
229-
230- item = [itemsDict objectForKey:[pluginBundle bundleIdentifier]];
231- if(!item) {
232- item = [[[PSPreviewerItem alloc] initWithIdentifier:[pluginBundle bundleIdentifier]] autorelease];
233- [item setTryCheck:YES];
234- [item setDisplayInMenu:YES];
235-
236- [loadedPlugInsInfo addObject:item];
237- [itemsDict setObject:item forKey:[item identifier]];
238- }
239- [item setPreviewer:plugin];
240- [item setPath:fullpath];
241-
242- id v = [pluginBundle objectForInfoDictionaryKey:@"CFBundleShortVersionString"];
243- if(v) {
244- [item setVersion:v];
245- } else {
246- [item setVersion:@""];
247- }
248-
249- v = [pluginBundle objectForInfoDictionaryKey:@"BSPreviewerDisplayName"];
250- if(v) {
251- [item setDisplayName:v];
252- } else {
253- [item setDisplayName:name];
254- }
255-
256- // ???
257-// [item addObserver:self
258-// forKeyPath:@"tryCheck"
259-// options:NSKeyValueObservingOptionNew
260-// context:NULL];
261-// [item addObserver:self
262-// forKeyPath:@"displayInMenu"
263-// options:NSKeyValueObservingOptionNew
264-// context:NULL];
265-
266-// [loadedPlugInsInfo addObject:item];
267-}
268-- (void)loadDefaultPreviewer
269-{
270- NSBundle *b = [NSBundle mainBundle];
271- id pluginDirPath = [b builtInPlugInsPath];
272- NSFileManager *dfm = [NSFileManager defaultManager];
273- NSArray *files = [dfm directoryContentsAtPath:pluginDirPath];
274-
275- for(NSString *file in files) {
276- NSString *fullpath = [pluginDirPath stringByAppendingPathComponent:file];
277- NSString *name = [file stringByDeletingPathExtension];
278- NSBundle *pluginBundle;
279-
280- if(![name isEqualToString:noarmalImagePreviewerName]) continue;
281-
282- pluginBundle = [NSBundle bundleWithPath:fullpath];
283- if(!pluginBundle) return;
284-
285- [self registPlugIn:pluginBundle name:builtInPreviewerName path:fullpath];
286- }
287-}
288-
289-- (void)loadPlugIns
290-{
291- NSString *path = [self plugInsDirectory];
292- NSFileManager *dfm = [NSFileManager defaultManager];
293- NSArray *files = [dfm directoryContentsAtPath:path];
294-
295-// if([[self loadedPlugInsInfo] count] == 0) {
296- [self loadDefaultPreviewer];
297-// }
298-
299- for(NSString *file in files) {
300- NSString *fullpath = [path stringByAppendingPathComponent:file];
301- NSString *name = [file stringByDeletingPathExtension];
302- NSBundle *pluginBundle;
303-
304- if([name isEqualToString:noarmalImagePreviewerName]) continue;
305-
306- pluginBundle = [NSBundle bundleWithPath:fullpath];
307- if(!pluginBundle) continue;
308-
309- [self registPlugIn:pluginBundle name:name path:fullpath];
310- }
311-
312- [self awakePreviewers];
313-}
314163
315164 - (NSArray *)loadedPlugInsInfo
316165 {
317- return loadedPlugInsInfo;
166+ return [items previewerItems];
318167 }
319168
320169 - (void)savePlugInsInfo
321170 {
322- NSData *itemsData = [NSKeyedArchiver archivedDataWithRootObject:loadedPlugInsInfo];
171+ NSData *itemsData = [NSKeyedArchiver archivedDataWithRootObject:[self loadedPlugInsInfo]];
323172
324173 [self setPreference:itemsData forKey:keyPrefPlugInsInfo2];
325-
326-// NSLog(@"Save information.");
327-}
328-- (void)restorePlugInsInfo
329-{
330- [loadedPlugInsInfo autorelease];
331- NSData *itemsData = [self preferenceForKey:keyPrefPlugInsInfo2];
332- if(!itemsData) {
333- loadedPlugInsInfo = [[NSMutableArray alloc] init];
334- } else {
335- loadedPlugInsInfo = [[NSKeyedUnarchiver unarchiveObjectWithData:itemsData] retain];
336- if(!loadedPlugInsInfo) {
337- loadedPlugInsInfo = [[NSMutableArray alloc] init];
338- }
339- }
340-
341- [itemsDict autorelease];
342- itemsDict = [[NSMutableDictionary alloc] init];
343- for(PSPreviewerItem *item in loadedPlugInsInfo) {
344- [itemsDict setObject:item forKey:[item identifier]];
345- }
346174 }
347175
348176 - (NSMenuItem *)preferenceMenuItem
@@ -460,27 +288,15 @@ final:
460288 return resolveAlias(path);
461289 }
462290
463-//- (void)observeValueForKeyPath:(NSString *)keyPath
464-// ofObject:(id)object
465-// change:(NSDictionary *)change
466-// context:(void *)context
467-//{
468-// if([keyPath isEqualToString:@"tryCheck"]) {
469-// [self savePlugInsInfo];
470-// }
471-// if([keyPath isEqualToString:@"displayInMenu"]) {
472-// [self savePlugInsInfo];
473-// }
474-//}
475-
476291 #pragma mark-
477292 // Designated Initializer
478293 - (id)initWithPreferences:(AppDefaults *)prefs
479294 {
480295 self = [self init];
481296
297+ items = [[PSPreviewerItems alloc] init];
298+
482299 [self setPreferences:prefs];
483- [self loadPlugIns];
484300
485301 return self;
486302 }
@@ -495,17 +311,14 @@ final:
495311 preferences = [aPreferences retain];
496312 [temp release];
497313
498- id info = [self preferenceForKey:keyPrefPlugInsInfo2];
499- if(info) {
500- [self restorePlugInsInfo];
501- }
314+ [items setPreference:preferences];
502315 }
503316 // Action
504317 - (BOOL)showImageWithURL:(NSURL *)imageURL
505318 {
506319 BOOL result = NO;
507320
508- for(PSPreviewerItem *item in loadedPlugInsInfo) {
321+ for(PSPreviewerItem *item in [self loadedPlugInsInfo]) {
509322 id previewer = [item previewer];
510323 if(![item isTryCheck]) continue;
511324 if([previewer validateLink:imageURL]) {
@@ -541,7 +354,7 @@ final:
541354 {
542355 BOOL result = NO;
543356
544- for(PSPreviewerItem *item in loadedPlugInsInfo) {
357+ for(PSPreviewerItem *item in [self loadedPlugInsInfo]) {
545358 result = [self openURLs:urls withPreviewer:[item previewer]];
546359 if(result) return YES;
547360 }
@@ -554,154 +367,3 @@ final:
554367 [self openPSPreference:sender];
555368 }
556369 @end
557-
558-@interface PreviewerSelector (PSPreviewerInterface) <PSPreviewerInterface>
559-@end
560-
561-@implementation PreviewerSelector (PSPreviewerInterface)
562-static NSArray *previewerDisplayNames = nil;
563-static NSArray *previewerIdentifiers = nil;
564-static NSArray *previewers = nil;
565-
566-- (void)buildArrays
567-{
568- NSMutableArray *names = [NSMutableArray array];
569- NSMutableArray *ids = [NSMutableArray array];
570-
571- for(PSPreviewerItem *item in loadedPlugInsInfo) {
572- id name = [item displayName];
573- [names addObject:name];
574-
575- id identifier = [item identifier];
576- [ids addObject:identifier];
577- }
578-
579- previewerDisplayNames = [[NSArray arrayWithArray:names] retain];
580- previewerIdentifiers = [[NSArray arrayWithArray:ids] retain];
581-}
582-- (NSArray *)previewerDisplayNames
583-{
584- if(previewerDisplayNames) return previewerDisplayNames;
585-
586- [self buildArrays];
587-
588- return previewerDisplayNames;
589-}
590-
591-- (NSArray *)previewerIdentifires
592-{
593- if(previewerIdentifiers) return previewerIdentifiers;
594-
595- [self buildArrays];
596-
597- return previewerIdentifiers;
598-}
599-- (BOOL)openURL:(NSURL *)url withPreviewer:(id)previewer
600-{
601- if([previewer conformsToProtocol:@protocol(BSLinkPreviewing)]) {
602- return [previewer previewLink:url];
603- }
604-
605- return [previewer showImageWithURL:url];
606-}
607-- (BOOL)openURLs:(NSArray *)url withPreviewer:(id)previewer
608-{
609- if([previewer respondsToSelector:@selector(previewLinks:)]) {
610- return [previewer previewLinks:url];
611- }
612- if([previewer respondsToSelector:@selector(showImagesWithURLs:)]) {
613- return [previewer showImagesWithURLs:url];
614- }
615- return NO;
616-}
617-
618-- (BOOL)openURL:(NSURL *)url inPreviewerByName:(NSString *)previewerName
619-{
620- BOOL result = NO;
621-
622- for(PSPreviewerItem *item in loadedPlugInsInfo) {
623- NSString *displayName = [item displayName];
624-
625- if([displayName isEqualToString:previewerName]) {
626- id previewer = [item previewer];
627- if([previewer validateLink:url]) {
628- result = [self openURL:url withPreviewer:previewer];;
629- }
630- return result;
631- }
632- }
633-
634- return NO;
635-}
636-- (BOOL)openURL:(NSURL *)url inPreviewerByIdentifier:(NSString *)target
637-{
638- BOOL result = NO;
639-
640- for(PSPreviewerItem *item in loadedPlugInsInfo) {
641- NSString *identifier = [item identifier];
642-
643- if([identifier isEqualToString:target]) {
644- id previewer = [item previewer];
645- if([previewer validateLink:url]) {
646- result = [self openURL:url withPreviewer:previewer];;
647- }
648- return result;
649- }
650- }
651-
652- return NO;
653-}
654-
655-- (NSArray *)previewerItems
656-{
657- return [NSArray arrayWithArray:loadedPlugInsInfo];
658-}
659-
660-// for direct controll previewers.
661-- (NSArray *)previewers
662-{
663- if(previewers) return previewers;
664-
665- NSMutableArray *pvs = [NSMutableArray array];
666-
667- for(PSPreviewerItem *item in loadedPlugInsInfo) {
668- id pv = [item previewer];
669- [pvs addObject:pv];
670- }
671-
672- previewers = [NSArray arrayWithArray:pvs];
673-
674- return previewers;
675-}
676-- (id <BSImagePreviewerProtocol>)previewerByName:(NSString *)previewerName
677-{
678- for(PSPreviewerItem *item in loadedPlugInsInfo) {
679- NSString *displayName = [item displayName];
680-
681- if([displayName isEqualToString:previewerName]) {
682- return [item previewer];
683- }
684- }
685-
686- return nil;
687-}
688-- (id <BSImagePreviewerProtocol>)previewerByIdentifier:(NSString *)previewerIdentifier
689-{
690- for(PSPreviewerItem *item in loadedPlugInsInfo) {
691- NSString *identifier = [item identifier];
692-
693- if([identifier isEqualToString:previewerIdentifier]) {
694- return [item previewer];
695- }
696- }
697-
698- return nil;
699-}
700-@end
701-
702-@implementation NSObject (PSPreviewerInterface)
703-+ (id <PSPreviewerInterface>)PSPreviewerSelector
704-{
705- return [PreviewerSelector sharedInstance];
706-}
707-@end
--- a/PreviewerSelector.xcodeproj/masaki.mode1v3
+++ b/PreviewerSelector.xcodeproj/masaki.mode1v3
@@ -335,7 +335,7 @@
335335 <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
336336 <array>
337337 <real>22</real>
338- <real>164</real>
338+ <real>267</real>
339339 </array>
340340 <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
341341 <array>
@@ -350,7 +350,6 @@
350350 <string>089C166AFE841209C02AAC07</string>
351351 <string>08FB77AFFE84173DC02AAC07</string>
352352 <string>089C167CFE841241C02AAC07</string>
353- <string>F4E0BA8F0CF7350E003E4686</string>
354353 <string>089C1671FE841209C02AAC07</string>
355354 <string>1058C7AEFEA557BF11CA2CBB</string>
356355 <string>1C37FBAC04509CD000000102</string>
@@ -360,13 +359,13 @@
360359 <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
361360 <array>
362361 <array>
363- <integer>5</integer>
362+ <integer>13</integer>
364363 <integer>1</integer>
365364 <integer>0</integer>
366365 </array>
367366 </array>
368367 <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
369- <string>{{0, 0}, {186, 666}}</string>
368+ <string>{{0, 0}, {289, 666}}</string>
370369 </dict>
371370 <key>PBXTopSmartGroupGIDs</key>
372371 <array/>
@@ -378,13 +377,13 @@
378377 <key>GeometryConfiguration</key>
379378 <dict>
380379 <key>Frame</key>
381- <string>{{0, 0}, {203, 684}}</string>
380+ <string>{{0, 0}, {306, 684}}</string>
382381 <key>GroupTreeTableConfiguration</key>
383382 <array>
384383 <string>SCMStatusColumn</string>
385384 <real>22</real>
386385 <string>MainColumn</string>
387- <real>164</real>
386+ <real>267</real>
388387 </array>
389388 <key>RubberWindowFrame</key>
390389 <string>192 145 1126 725 0 0 1440 878 </string>
@@ -392,7 +391,7 @@
392391 <key>Module</key>
393392 <string>PBXSmartGroupTreeModule</string>
394393 <key>Proportion</key>
395- <string>203pt</string>
394+ <string>306pt</string>
396395 </dict>
397396 <dict>
398397 <key>Dock</key>
@@ -405,7 +404,7 @@
405404 <key>PBXProjectModuleGUID</key>
406405 <string>1CE0B20306471E060097A5F4</string>
407406 <key>PBXProjectModuleLabel</key>
408- <string>PSPreviewerItem.h</string>
407+ <string>PreviewerSelector.m</string>
409408 <key>PBXSplitModuleInNavigatorKey</key>
410409 <dict>
411410 <key>Split0</key>
@@ -413,15 +412,13 @@
413412 <key>PBXProjectModuleGUID</key>
414413 <string>1CE0B20406471E060097A5F4</string>
415414 <key>PBXProjectModuleLabel</key>
416- <string>PSPreviewerItem.h</string>
415+ <string>PreviewerSelector.m</string>
417416 <key>_historyCapacity</key>
418417 <integer>0</integer>
419418 <key>bookmark</key>
420- <string>F458F36F123C8CB800A546E4</string>
419+ <string>F4AA270A123E4A090065CF68</string>
421420 <key>history</key>
422421 <array>
423- <string>F4C6F3B00F470B4F0078E711</string>
424- <string>F450329E0F66AB5A00B0B042</string>
425422 <string>F4D2550111C79FF800232358</string>
426423 <string>F4D2553411C7A46800232358</string>
427424 <string>F4D2553611C7A46800232358</string>
@@ -430,21 +427,29 @@
430427 <string>F4D2566611C7B31D00232358</string>
431428 <string>F46DB903121C1E8F006F8C6D</string>
432429 <string>F46DB90A121D6294006F8C6D</string>
433- <string>F46DB90C121D6294006F8C6D</string>
434- <string>F423361A12334362005BA1B8</string>
435- <string>F49061F5123A7C0800458627</string>
436- <string>F49061F6123A7C0800458627</string>
437- <string>F4906224123A7E4D00458627</string>
438- <string>F458F2D3123C84F400A546E4</string>
439- <string>F458F2D5123C84F400A546E4</string>
440- <string>F458F2D6123C84F400A546E4</string>
441- <string>F458F2D7123C84F400A546E4</string>
442- <string>F458F2D8123C84F400A546E4</string>
443- <string>F458F324123C884800A546E4</string>
444- <string>F458F36A123C8CB800A546E4</string>
445- <string>F458F36C123C8CB800A546E4</string>
446- <string>F458F36D123C8CB800A546E4</string>
447- <string>F458F36E123C8CB800A546E4</string>
430+ <string>F458F384123C8F7100A546E4</string>
431+ <string>F458F385123C8F7100A546E4</string>
432+ <string>F458F3AB123C92AE00A546E4</string>
433+ <string>F458F4F3123CD56100A546E4</string>
434+ <string>F458F4F5123CD56100A546E4</string>
435+ <string>F458F4F7123CD56100A546E4</string>
436+ <string>F458F4F9123CD56100A546E4</string>
437+ <string>F458F5C1123D162C00A546E4</string>
438+ <string>F458F665123D217600A546E4</string>
439+ <string>F4AA26B5123D26780065CF68</string>
440+ <string>F4AA26B6123D26780065CF68</string>
441+ <string>F4AA26B8123D26780065CF68</string>
442+ <string>F4AA26B9123D26780065CF68</string>
443+ <string>F4AA26BA123D26780065CF68</string>
444+ <string>F4AA26CF123D27BE0065CF68</string>
445+ <string>F4AA26D7123D285A0065CF68</string>
446+ <string>F4AA26D8123D285A0065CF68</string>
447+ <string>F4AA26D9123D285A0065CF68</string>
448+ <string>F4AA26DA123D285A0065CF68</string>
449+ <string>F4AA26DB123D285A0065CF68</string>
450+ <string>F4AA26DC123D285A0065CF68</string>
451+ <string>F4AA26DD123D285A0065CF68</string>
452+ <string>F4AA26DE123D285A0065CF68</string>
448453 </array>
449454 </dict>
450455 <key>SplitCount</key>
@@ -456,7 +461,7 @@
456461 <key>GeometryConfiguration</key>
457462 <dict>
458463 <key>Frame</key>
459- <string>{{0, 0}, {918, 679}}</string>
464+ <string>{{0, 0}, {815, 679}}</string>
460465 <key>RubberWindowFrame</key>
461466 <string>192 145 1126 725 0 0 1440 878 </string>
462467 </dict>
@@ -476,7 +481,7 @@
476481 <key>GeometryConfiguration</key>
477482 <dict>
478483 <key>Frame</key>
479- <string>{{0, 684}, {918, 0}}</string>
484+ <string>{{0, 684}, {815, 0}}</string>
480485 <key>RubberWindowFrame</key>
481486 <string>192 145 1126 725 0 0 1440 878 </string>
482487 </dict>
@@ -487,7 +492,7 @@
487492 </dict>
488493 </array>
489494 <key>Proportion</key>
490- <string>918pt</string>
495+ <string>815pt</string>
491496 </dict>
492497 </array>
493498 <key>Name</key>
@@ -502,9 +507,9 @@
502507 </array>
503508 <key>TableOfContents</key>
504509 <array>
505- <string>F458F28D123C58A600A546E4</string>
510+ <string>F4AA26AE123D26020065CF68</string>
506511 <string>1CE0B1FE06471DED0097A5F4</string>
507- <string>F458F28E123C58A600A546E4</string>
512+ <string>F4AA26AF123D26020065CF68</string>
508513 <string>1CE0B20306471E060097A5F4</string>
509514 <string>1CE0B20506471E060097A5F4</string>
510515 </array>
@@ -623,7 +628,7 @@
623628 <key>StatusbarIsVisible</key>
624629 <true/>
625630 <key>TimeStamp</key>
626- <real>305958072.30567902</real>
631+ <real>306072073.68529397</real>
627632 <key>ToolbarDisplayMode</key>
628633 <integer>2</integer>
629634 <key>ToolbarIsVisible</key>
@@ -638,14 +643,11 @@
638643 <integer>5</integer>
639644 <key>WindowOrderList</key>
640645 <array>
641- <string>F4C6F3920F47034D0078E711</string>
642- <string>1C530D57069F1CE1000CFCEE</string>
643- <string>1C0AD2AF069F1E9B00FABCE6</string>
644- <string>F458F291123C58A600A546E4</string>
645- <string>F458F292123C58A600A546E4</string>
646+ <string>F4AA26E8123D285A0065CF68</string>
647+ <string>F4AA26E9123D285A0065CF68</string>
646648 <string>1CD10A99069EF8BA00B06720</string>
647649 <string>F4F4DDE80F67D5AD00C75461</string>
648- <string>F458F2A4123C5B5E00A546E4</string>
650+ <string>F4C6F3920F47034D0078E711</string>
649651 <string>1C78EAAD065D492600B07095</string>
650652 <string>/Users/masaki/Projects/PreviewerSelector/PreviewerSelector.xcodeproj</string>
651653 </array>
@@ -671,7 +673,7 @@
671673 <key>PBXProjectModuleGUID</key>
672674 <string>1CD0528F0623707200166675</string>
673675 <key>PBXProjectModuleLabel</key>
674- <string>PreviewerSelector.m</string>
676+ <string></string>
675677 <key>StatusBarVisibility</key>
676678 <true/>
677679 </dict>
@@ -729,7 +731,7 @@
729731 <key>TableOfContents</key>
730732 <array>
731733 <string>F4F4DDE80F67D5AD00C75461</string>
732- <string>F458F284123C58A300A546E4</string>
734+ <string>F4AA26B0123D26020065CF68</string>
733735 <string>1CD0528F0623707200166675</string>
734736 <string>XCMainBuildResultsModuleGUID</string>
735737 </array>
@@ -849,13 +851,13 @@
849851 <key>TableOfContents</key>
850852 <array>
851853 <string>1CD10A99069EF8BA00B06720</string>
852- <string>F458F285123C58A300A546E4</string>
854+ <string>F4AA26E0123D285A0065CF68</string>
853855 <string>1C162984064C10D400B95A72</string>
854- <string>F458F286123C58A300A546E4</string>
855- <string>F458F287123C58A300A546E4</string>
856- <string>F458F288123C58A300A546E4</string>
857- <string>F458F289123C58A300A546E4</string>
858- <string>F458F28A123C58A300A546E4</string>
856+ <string>F4AA26E1123D285A0065CF68</string>
857+ <string>F4AA26E2123D285A0065CF68</string>
858+ <string>F4AA26E3123D285A0065CF68</string>
859+ <string>F4AA26E4123D285A0065CF68</string>
860+ <string>F4AA26E5123D285A0065CF68</string>
859861 </array>
860862 <key>ToolbarConfiguration</key>
861863 <string>xcode.toolbar.config.debugV3</string>
@@ -1013,7 +1015,7 @@
10131015 <key>TableOfContents</key>
10141016 <array>
10151017 <string>1C78EAAD065D492600B07095</string>
1016- <string>F458F28F123C58A600A546E4</string>
1018+ <string>F4AA26E6123D285A0065CF68</string>
10171019 <string>1C78EAAC065D492600B07095</string>
10181020 </array>
10191021 <key>ToolbarConfiguration</key>
@@ -1154,7 +1156,7 @@
11541156 <key>TableOfContents</key>
11551157 <array>
11561158 <string>F4C6F3920F47034D0078E711</string>
1157- <string>F458F2CE123C82B100A546E4</string>
1159+ <string>F4AA26BC123D26780065CF68</string>
11581160 <string>1C78EAB2065D492600B07095</string>
11591161 <string>1CD052920623707200166675</string>
11601162 </array>
@@ -1165,7 +1167,7 @@
11651167 <key>WindowToolGUID</key>
11661168 <string>F4C6F3920F47034D0078E711</string>
11671169 <key>WindowToolIsVisible</key>
1168- <false/>
1170+ <true/>
11691171 </dict>
11701172 <dict>
11711173 <key>FirstTimeWindowDisplayed</key>
--- a/PreviewerSelector.xcodeproj/masaki.pbxuser
+++ b/PreviewerSelector.xcodeproj/masaki.pbxuser
@@ -8,11 +8,6 @@
88 8D5B49AC048680CD000E48DA /* PreviewerSelector */,
99 );
1010 breakpoints = (
11- F468C2A4121D7D01009EFA3E /* PreviewerSelector.m:289 */,
12- F468C2CC121D7D87009EFA3E /* PreviewerSelector.m:214 */,
13- F423360912334249005BA1B8 /* PreviewerSelector.m:268 */,
14- F423360F1233432B005BA1B8 /* PreviewerSelector.m:328 */,
15- F458F295123C58E100A546E4 /* PreviewerSelector.m:478 */,
1611 );
1712 codeSenseManager = F4F15C460A0CEC2300C7526C /* Code sense */;
1813 executables = (
@@ -60,7 +55,7 @@
6055 PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
6156 PBXFileTableDataSourceColumnWidthsKey = (
6257 20,
63- 679,
58+ 576,
6459 20,
6560 48,
6661 43,
@@ -113,97 +108,36 @@
113108 PBXFileDataSource_Target_ColumnID,
114109 );
115110 };
116- PBXPerProjectTemplateStateSaveDate = 305944466;
117- PBXWorkspaceStateSaveDate = 305944466;
111+ PBXPerProjectTemplateStateSaveDate = 306083688;
112+ PBXWorkspaceStateSaveDate = 306083688;
118113 };
119114 perUserProjectItems = {
120- F423361A12334362005BA1B8 = F423361A12334362005BA1B8 /* PlistBookmark */;
121- F423362812334BB7005BA1B8 = F423362812334BB7005BA1B8 /* PBXTextBookmark */;
122- F423362912334BB7005BA1B8 = F423362912334BB7005BA1B8 /* PBXTextBookmark */;
123- F450329E0F66AB5A00B0B042 = F450329E0F66AB5A00B0B042 /* PlistBookmark */;
124- F458F28B123C58A600A546E4 /* PBXTextBookmark */ = F458F28B123C58A600A546E4 /* PBXTextBookmark */;
125- F458F28C123C58A600A546E4 /* PBXTextBookmark */ = F458F28C123C58A600A546E4 /* PBXTextBookmark */;
126- F458F299123C58EA00A546E4 /* PBXTextBookmark */ = F458F299123C58EA00A546E4 /* PBXTextBookmark */;
127- F458F29A123C58EA00A546E4 /* PBXTextBookmark */ = F458F29A123C58EA00A546E4 /* PBXTextBookmark */;
128- F458F2A9123C5B9800A546E4 /* PBXTextBookmark */ = F458F2A9123C5B9800A546E4 /* PBXTextBookmark */;
129- F458F2AA123C5B9800A546E4 /* PBXTextBookmark */ = F458F2AA123C5B9800A546E4 /* PBXTextBookmark */;
130- F458F2AC123C5B9800A546E4 /* PBXTextBookmark */ = F458F2AC123C5B9800A546E4 /* PBXTextBookmark */;
131- F458F2B8123C5C6300A546E4 /* PBXTextBookmark */ = F458F2B8123C5C6300A546E4 /* PBXTextBookmark */;
132- F458F2C1123C603600A546E4 /* PBXTextBookmark */ = F458F2C1123C603600A546E4 /* PBXTextBookmark */;
133- F458F2C9123C617900A546E4 /* PBXTextBookmark */ = F458F2C9123C617900A546E4 /* PBXTextBookmark */;
134- F458F2D3123C84F400A546E4 /* PBXTextBookmark */ = F458F2D3123C84F400A546E4 /* PBXTextBookmark */;
135- F458F2D4123C84F400A546E4 /* PBXTextBookmark */ = F458F2D4123C84F400A546E4 /* PBXTextBookmark */;
136- F458F2D5123C84F400A546E4 /* PBXTextBookmark */ = F458F2D5123C84F400A546E4 /* PBXTextBookmark */;
137- F458F2D6123C84F400A546E4 /* PBXTextBookmark */ = F458F2D6123C84F400A546E4 /* PBXTextBookmark */;
138- F458F2D7123C84F400A546E4 /* PBXTextBookmark */ = F458F2D7123C84F400A546E4 /* PBXTextBookmark */;
139- F458F2D8123C84F400A546E4 /* PBXTextBookmark */ = F458F2D8123C84F400A546E4 /* PBXTextBookmark */;
140- F458F2D9123C84F400A546E4 /* PBXTextBookmark */ = F458F2D9123C84F400A546E4 /* PBXTextBookmark */;
141- F458F2DA123C84F400A546E4 /* PBXTextBookmark */ = F458F2DA123C84F400A546E4 /* PBXTextBookmark */;
142- F458F2DB123C84F400A546E4 /* PBXTextBookmark */ = F458F2DB123C84F400A546E4 /* PBXTextBookmark */;
143- F458F2E2123C855B00A546E4 /* PBXTextBookmark */ = F458F2E2123C855B00A546E4 /* PBXTextBookmark */;
144- F458F2F8123C875900A546E4 /* PBXTextBookmark */ = F458F2F8123C875900A546E4 /* PBXTextBookmark */;
145- F458F2F9123C875900A546E4 /* XCBuildMessageTextBookmark */ = F458F2F9123C875900A546E4 /* XCBuildMessageTextBookmark */;
146- F458F2FA123C875900A546E4 /* PBXTextBookmark */ = F458F2FA123C875900A546E4 /* PBXTextBookmark */;
147- F458F2FD123C875D00A546E4 /* PBXTextBookmark */ = F458F2FD123C875D00A546E4 /* PBXTextBookmark */;
148- F458F300123C876100A546E4 /* PBXTextBookmark */ = F458F300123C876100A546E4 /* PBXTextBookmark */;
149- F458F303123C876900A546E4 /* PBXTextBookmark */ = F458F303123C876900A546E4 /* PBXTextBookmark */;
150- F458F310123C87CE00A546E4 /* PBXTextBookmark */ = F458F310123C87CE00A546E4 /* PBXTextBookmark */;
151- F458F311123C87CE00A546E4 /* XCBuildMessageTextBookmark */ = F458F311123C87CE00A546E4 /* XCBuildMessageTextBookmark */;
152- F458F312123C87CE00A546E4 /* PBXTextBookmark */ = F458F312123C87CE00A546E4 /* PBXTextBookmark */;
153- F458F315123C87D400A546E4 /* PBXTextBookmark */ = F458F315123C87D400A546E4 /* PBXTextBookmark */;
154- F458F318123C87DB00A546E4 /* PBXTextBookmark */ = F458F318123C87DB00A546E4 /* PBXTextBookmark */;
155- F458F31B123C87F300A546E4 /* PBXTextBookmark */ = F458F31B123C87F300A546E4 /* PBXTextBookmark */;
156- F458F31E123C883B00A546E4 /* PBXTextBookmark */ = F458F31E123C883B00A546E4 /* PBXTextBookmark */;
157- F458F321123C884700A546E4 /* PBXTextBookmark */ = F458F321123C884700A546E4 /* PBXTextBookmark */;
158- F458F322123C884800A546E4 /* PBXTextBookmark */ = F458F322123C884800A546E4 /* PBXTextBookmark */;
159- F458F323123C884800A546E4 /* PBXTextBookmark */ = F458F323123C884800A546E4 /* PBXTextBookmark */;
160- F458F324123C884800A546E4 /* PBXTextBookmark */ = F458F324123C884800A546E4 /* PBXTextBookmark */;
161- F458F325123C884800A546E4 /* PBXTextBookmark */ = F458F325123C884800A546E4 /* PBXTextBookmark */;
162- F458F326123C884800A546E4 /* PBXTextBookmark */ = F458F326123C884800A546E4 /* PBXTextBookmark */;
163- F458F32A123C89DD00A546E4 /* PBXTextBookmark */ = F458F32A123C89DD00A546E4 /* PBXTextBookmark */;
164- F458F32D123C89F100A546E4 /* PBXTextBookmark */ = F458F32D123C89F100A546E4 /* PBXTextBookmark */;
165- F458F330123C8A1A00A546E4 /* PBXTextBookmark */ = F458F330123C8A1A00A546E4 /* PBXTextBookmark */;
166- F458F333123C8A3F00A546E4 /* PBXTextBookmark */ = F458F333123C8A3F00A546E4 /* PBXTextBookmark */;
167- F458F336123C8A4A00A546E4 /* PBXTextBookmark */ = F458F336123C8A4A00A546E4 /* PBXTextBookmark */;
168- F458F337123C8A5200A546E4 /* PBXTextBookmark */ = F458F337123C8A5200A546E4 /* PBXTextBookmark */;
169- F458F338123C8A5200A546E4 /* PBXTextBookmark */ = F458F338123C8A5200A546E4 /* PBXTextBookmark */;
170- F458F339123C8A5200A546E4 /* PBXTextBookmark */ = F458F339123C8A5200A546E4 /* PBXTextBookmark */;
171- F458F33A123C8A5200A546E4 /* PBXTextBookmark */ = F458F33A123C8A5200A546E4 /* PBXTextBookmark */;
172- F458F33E123C8ABA00A546E4 /* PBXTextBookmark */ = F458F33E123C8ABA00A546E4 /* PBXTextBookmark */;
173- F458F341123C8ADB00A546E4 /* PBXTextBookmark */ = F458F341123C8ADB00A546E4 /* PBXTextBookmark */;
174- F458F344123C8AE200A546E4 /* PBXTextBookmark */ = F458F344123C8AE200A546E4 /* PBXTextBookmark */;
175- F458F347123C8B0500A546E4 /* PBXTextBookmark */ = F458F347123C8B0500A546E4 /* PBXTextBookmark */;
176- F458F34A123C8B3100A546E4 /* PBXTextBookmark */ = F458F34A123C8B3100A546E4 /* PBXTextBookmark */;
177- F458F34D123C8B5600A546E4 /* PBXTextBookmark */ = F458F34D123C8B5600A546E4 /* PBXTextBookmark */;
178- F458F350123C8B7300A546E4 /* PBXTextBookmark */ = F458F350123C8B7300A546E4 /* PBXTextBookmark */;
179- F458F353123C8B8D00A546E4 /* PBXTextBookmark */ = F458F353123C8B8D00A546E4 /* PBXTextBookmark */;
180- F458F356123C8BA800A546E4 /* PBXTextBookmark */ = F458F356123C8BA800A546E4 /* PBXTextBookmark */;
181- F458F359123C8BBD00A546E4 /* PBXTextBookmark */ = F458F359123C8BBD00A546E4 /* PBXTextBookmark */;
182- F458F35C123C8BC900A546E4 /* PBXTextBookmark */ = F458F35C123C8BC900A546E4 /* PBXTextBookmark */;
183- F458F35F123C8BEF00A546E4 /* PBXTextBookmark */ = F458F35F123C8BEF00A546E4 /* PBXTextBookmark */;
184- F458F362123C8C0400A546E4 /* PBXTextBookmark */ = F458F362123C8C0400A546E4 /* PBXTextBookmark */;
185- F458F365123C8C1900A546E4 /* PBXTextBookmark */ = F458F365123C8C1900A546E4 /* PBXTextBookmark */;
186- F458F367123C8CA100A546E4 /* PBXTextBookmark */ = F458F367123C8CA100A546E4 /* PBXTextBookmark */;
187- F458F36A123C8CB800A546E4 /* PBXTextBookmark */ = F458F36A123C8CB800A546E4 /* PBXTextBookmark */;
188- F458F36C123C8CB800A546E4 /* PBXTextBookmark */ = F458F36C123C8CB800A546E4 /* PBXTextBookmark */;
189- F458F36D123C8CB800A546E4 /* PBXTextBookmark */ = F458F36D123C8CB800A546E4 /* PBXTextBookmark */;
190- F458F36E123C8CB800A546E4 /* PBXTextBookmark */ = F458F36E123C8CB800A546E4 /* PBXTextBookmark */;
191- F458F36F123C8CB800A546E4 /* PBXTextBookmark */ = F458F36F123C8CB800A546E4 /* PBXTextBookmark */;
192- F468C2A6121D7D08009EFA3E = F468C2A6121D7D08009EFA3E /* PBXTextBookmark */;
115+ F458F384123C8F7100A546E4 = F458F384123C8F7100A546E4 /* PBXTextBookmark */;
116+ F458F385123C8F7100A546E4 = F458F385123C8F7100A546E4 /* PBXTextBookmark */;
117+ F458F3AB123C92AE00A546E4 = F458F3AB123C92AE00A546E4 /* PBXTextBookmark */;
118+ F458F4F3123CD56100A546E4 = F458F4F3123CD56100A546E4 /* PBXTextBookmark */;
119+ F458F4F5123CD56100A546E4 = F458F4F5123CD56100A546E4 /* PBXTextBookmark */;
120+ F458F4F7123CD56100A546E4 = F458F4F7123CD56100A546E4 /* PBXTextBookmark */;
121+ F458F4F9123CD56100A546E4 = F458F4F9123CD56100A546E4 /* PBXTextBookmark */;
122+ F458F5C1123D162C00A546E4 = F458F5C1123D162C00A546E4 /* PBXTextBookmark */;
123+ F458F665123D217600A546E4 = F458F665123D217600A546E4 /* PBXTextBookmark */;
193124 F46DB903121C1E8F006F8C6D = F46DB903121C1E8F006F8C6D /* PBXTextBookmark */;
194125 F46DB90A121D6294006F8C6D = F46DB90A121D6294006F8C6D /* PBXTextBookmark */;
195- F46DB90C121D6294006F8C6D = F46DB90C121D6294006F8C6D /* PBXTextBookmark */;
196- F46DB90D121D6294006F8C6D = F46DB90D121D6294006F8C6D /* PBXTextBookmark */;
197- F49061F5123A7C0800458627 = F49061F5123A7C0800458627 /* PBXTextBookmark */;
198- F49061F6123A7C0800458627 = F49061F6123A7C0800458627 /* PBXTextBookmark */;
199- F4906222123A7E4D00458627 = F4906222123A7E4D00458627 /* PBXTextBookmark */;
200- F4906224123A7E4D00458627 = F4906224123A7E4D00458627 /* PBXTextBookmark */;
201- F4906225123A7E4D00458627 = F4906225123A7E4D00458627 /* PBXTextBookmark */;
202- F4906226123A7E4D00458627 = F4906226123A7E4D00458627 /* PBXTextBookmark */;
203- F4906227123A7E4D00458627 = F4906227123A7E4D00458627 /* PBXTextBookmark */;
204- F4906229123B9BFC00458627 = F4906229123B9BFC00458627 /* PBXTextBookmark */;
205- F4C6F3B00F470B4F0078E711 = F4C6F3B00F470B4F0078E711 /* PlistBookmark */;
206- F4C981E00F46C583005499D7 = F4C981E00F46C583005499D7 /* PBXTextBookmark */;
126+ F4AA26B5123D26780065CF68 = F4AA26B5123D26780065CF68 /* PBXTextBookmark */;
127+ F4AA26B6123D26780065CF68 = F4AA26B6123D26780065CF68 /* PBXTextBookmark */;
128+ F4AA26B8123D26780065CF68 = F4AA26B8123D26780065CF68 /* PlistBookmark */;
129+ F4AA26B9123D26780065CF68 = F4AA26B9123D26780065CF68 /* PlistBookmark */;
130+ F4AA26BA123D26780065CF68 = F4AA26BA123D26780065CF68 /* PlistBookmark */;
131+ F4AA26CF123D27BE0065CF68 = F4AA26CF123D27BE0065CF68 /* PBXTextBookmark */;
132+ F4AA26D7123D285A0065CF68 = F4AA26D7123D285A0065CF68 /* PBXTextBookmark */;
133+ F4AA26D8123D285A0065CF68 = F4AA26D8123D285A0065CF68 /* PBXTextBookmark */;
134+ F4AA26D9123D285A0065CF68 = F4AA26D9123D285A0065CF68 /* PBXTextBookmark */;
135+ F4AA26DA123D285A0065CF68 = F4AA26DA123D285A0065CF68 /* PBXTextBookmark */;
136+ F4AA26DB123D285A0065CF68 = F4AA26DB123D285A0065CF68 /* PBXTextBookmark */;
137+ F4AA26DC123D285A0065CF68 = F4AA26DC123D285A0065CF68 /* PBXTextBookmark */;
138+ F4AA26DD123D285A0065CF68 = F4AA26DD123D285A0065CF68 /* PBXTextBookmark */;
139+ F4AA26DE123D285A0065CF68 = F4AA26DE123D285A0065CF68 /* PBXTextBookmark */;
140+ F4AA270A123E4A090065CF68 = F4AA270A123E4A090065CF68 /* PBXTextBookmark */;
207141 F4D2550111C79FF800232358 = F4D2550111C79FF800232358 /* PBXTextBookmark */;
208142 F4D2553411C7A46800232358 = F4D2553411C7A46800232358 /* PBXTextBookmark */;
209143 F4D2553611C7A46800232358 = F4D2553611C7A46800232358 /* PBXTextBookmark */;
@@ -232,259 +166,24 @@
232166 8D5B49AC048680CD000E48DA /* PreviewerSelector */ = {
233167 activeExec = 0;
234168 };
235- F423360912334249005BA1B8 /* PreviewerSelector.m:268 */ = {
236- isa = PBXFileBreakpoint;
237- actions = (
238- );
239- breakpointStyle = 0;
240- continueAfterActions = 0;
241- countType = 0;
242- delayBeforeContinue = 0;
243- fileReference = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
244- functionName = "-loadDefaultPreviewer";
245- hitCount = 0;
246- ignoreCount = 0;
247- lineNumber = 268;
248- location = ImagePreviewer;
249- modificationTime = 305947000.454138;
250- originalNumberOfMultipleMatches = 1;
251- state = 2;
252- };
253- F423360F1233432B005BA1B8 /* PreviewerSelector.m:328 */ = {
254- isa = PBXFileBreakpoint;
255- actions = (
256- );
257- breakpointStyle = 0;
258- continueAfterActions = 0;
259- countType = 0;
260- delayBeforeContinue = 0;
261- fileReference = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
262- functionName = "-restorePlugInsInfo";
263- hitCount = 0;
264- ignoreCount = 0;
265- lineNumber = 328;
266- location = ImagePreviewer;
267- modificationTime = 305947000.454912;
268- originalNumberOfMultipleMatches = 1;
269- state = 2;
270- };
271- F423361A12334362005BA1B8 /* PlistBookmark */ = {
272- isa = PlistBookmark;
273- fRef = 8D5B49B7048680CD000E48DA /* Info.plist */;
274- fallbackIsa = PBXBookmark;
275- isK = 0;
276- kPath = (
277- );
278- name = /Users/masaki/Projects/PreviewerSelector/Info.plist;
279- rLen = 0;
280- rLoc = 9223372036854775808;
281- };
282- F423362812334BB7005BA1B8 /* PBXTextBookmark */ = {
283- isa = PBXTextBookmark;
284- fRef = F4A2FAE40F467CDC00A84E18 /* PSPreviewerItem.m */;
285- name = "PSPreviewerItem.m: 26";
286- rLen = 0;
287- rLoc = 815;
288- rType = 0;
289- vrLen = 620;
290- vrLoc = 715;
291- };
292- F423362912334BB7005BA1B8 /* PBXTextBookmark */ = {
293- isa = PBXTextBookmark;
294- fRef = F4A2FAE30F467CDC00A84E18 /* PSPreviewerItem.h */;
295- name = "PSPreviewerItem.h: 15";
296- rLen = 0;
297- rLoc = 278;
298- rType = 0;
299- vrLen = 810;
300- vrLoc = 25;
301- };
302169 F45032530F669A9500B0B042 /* PSPreviewerInterface.h */ = {
303170 uiCtxt = {
304- sepNavIntBoundsRect = "{{0, 0}, {869, 647}}";
305- sepNavSelRange = "{258, 0}";
171+ sepNavIntBoundsRect = "{{0, 0}, {766, 647}}";
172+ sepNavSelRange = "{680, 0}";
306173 sepNavVisRange = "{0, 1259}";
307174 };
308175 };
309- F450329E0F66AB5A00B0B042 /* PlistBookmark */ = {
310- isa = PlistBookmark;
311- fRef = 089C167EFE841241C02AAC07 /* English */;
312- fallbackIsa = PBXBookmark;
313- isK = 0;
314- kPath = (
315- );
316- name = /Volumes/MachintoshHD/Users/masaki/Project/PreviewerSelector/English.lproj/InfoPlist.strings;
317- rLen = 0;
318- rLoc = 2147483647;
319- };
320- F458F28B123C58A600A546E4 /* PBXTextBookmark */ = {
321- isa = PBXTextBookmark;
322- fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
323- name = "PreviewerSelector.m: 112";
324- rLen = 1;
325- rLoc = 3260;
326- rType = 0;
327- vrLen = 1143;
328- vrLoc = 3111;
329- };
330- F458F28C123C58A600A546E4 /* PBXTextBookmark */ = {
331- isa = PBXTextBookmark;
332- fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
333- name = "PreviewerSelector.m: 492";
334- rLen = 0;
335- rLoc = 12383;
336- rType = 0;
337- vrLen = 1102;
338- vrLoc = 12207;
339- };
340- F458F295123C58E100A546E4 /* PreviewerSelector.m:478 */ = {
341- isa = PBXFileBreakpoint;
342- actions = (
343- );
344- breakpointStyle = 0;
345- continueAfterActions = 0;
346- countType = 0;
347- delayBeforeContinue = 0;
348- fileReference = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
349- functionName = "-initWithPreferences:";
350- hitCount = 0;
351- ignoreCount = 0;
352- lineNumber = 478;
353- location = ImagePreviewer;
354- modificationTime = 305947000.455669;
355- originalNumberOfMultipleMatches = 1;
356- state = 2;
357- };
358- F458F299123C58EA00A546E4 /* PBXTextBookmark */ = {
359- isa = PBXTextBookmark;
360- fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
361- name = "PreviewerSelector.m: 492";
362- rLen = 0;
363- rLoc = 12383;
364- rType = 0;
365- vrLen = 1102;
366- vrLoc = 12207;
367- };
368- F458F29A123C58EA00A546E4 /* PBXTextBookmark */ = {
369- isa = PBXTextBookmark;
370- fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
371- name = "PreviewerSelector.m: 492";
372- rLen = 0;
373- rLoc = 12383;
374- rType = 0;
375- vrLen = 1102;
376- vrLoc = 12207;
377- };
378- F458F2A9123C5B9800A546E4 /* PBXTextBookmark */ = {
379- isa = PBXTextBookmark;
380- fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
381- name = "PreviewerSelector.m: 486";
382- rLen = 0;
383- rLoc = 12285;
384- rType = 0;
385- vrLen = 1060;
386- vrLoc = 12207;
387- };
388- F458F2AA123C5B9800A546E4 /* PBXTextBookmark */ = {
389- isa = PBXTextBookmark;
390- fRef = F458F2AB123C5B9800A546E4 /* NSKeyedArchiver.h */;
391- name = "NSKeyedArchiver.h: 96";
392- rLen = 22;
393- rLoc = 2803;
394- rType = 0;
395- vrLen = 1582;
396- vrLoc = 1794;
397- };
398- F458F2AB123C5B9800A546E4 /* NSKeyedArchiver.h */ = {
399- isa = PBXFileReference;
400- lastKnownFileType = sourcecode.c.h;
401- name = NSKeyedArchiver.h;
402- path = /System/Library/Frameworks/Foundation.framework/Versions/C/Headers/NSKeyedArchiver.h;
403- sourceTree = "<absolute>";
404- };
405- F458F2AC123C5B9800A546E4 /* PBXTextBookmark */ = {
406- isa = PBXTextBookmark;
407- fRef = F458F2AD123C5B9800A546E4 /* NSKeyedArchiver.h */;
408- name = "NSKeyedArchiver.h: 96";
409- rLen = 22;
410- rLoc = 2803;
411- rType = 0;
412- vrLen = 1628;
413- vrLoc = 1651;
414- };
415- F458F2AD123C5B9800A546E4 /* NSKeyedArchiver.h */ = {
416- isa = PBXFileReference;
417- lastKnownFileType = sourcecode.c.h;
418- name = NSKeyedArchiver.h;
419- path = /System/Library/Frameworks/Foundation.framework/Versions/C/Headers/NSKeyedArchiver.h;
420- sourceTree = "<absolute>";
421- uiCtxt = {
422- sepNavIntBoundsRect = "{{0, 0}, {869, 3471}}";
423- sepNavSelRange = "{2803, 22}";
424- sepNavVisRange = "{1651, 1628}";
425- };
426- };
427- F458F2B8123C5C6300A546E4 /* PBXTextBookmark */ = {
428- isa = PBXTextBookmark;
429- fRef = F458F2AD123C5B9800A546E4 /* NSKeyedArchiver.h */;
430- name = "NSKeyedArchiver.h: 96";
431- rLen = 22;
432- rLoc = 2803;
433- rType = 0;
434- vrLen = 1628;
435- vrLoc = 1651;
436- };
437- F458F2C1123C603600A546E4 /* PBXTextBookmark */ = {
438- isa = PBXTextBookmark;
439- fRef = F458F2AD123C5B9800A546E4 /* NSKeyedArchiver.h */;
440- name = "NSKeyedArchiver.h: 96";
441- rLen = 22;
442- rLoc = 2803;
443- rType = 0;
444- vrLen = 1628;
445- vrLoc = 1651;
446- };
447- F458F2C9123C617900A546E4 /* PBXTextBookmark */ = {
176+ F458F384123C8F7100A546E4 /* PBXTextBookmark */ = {
448177 isa = PBXTextBookmark;
449- fRef = F458F2AD123C5B9800A546E4 /* NSKeyedArchiver.h */;
450- name = "NSKeyedArchiver.h: 96";
451- rLen = 22;
452- rLoc = 2803;
453- rType = 0;
454- vrLen = 1628;
455- vrLoc = 1651;
456- };
457- F458F2D3123C84F400A546E4 /* PBXTextBookmark */ = {
458- isa = PBXTextBookmark;
459- fRef = F4F160430A0D1FC000C7526C /* PreviewerSelector.h */;
460- name = "PreviewerSelector.h: 18";
461- rLen = 0;
462- rLoc = 397;
463- rType = 0;
464- vrLen = 1073;
465- vrLoc = 0;
466- };
467- F458F2D4123C84F400A546E4 /* PBXTextBookmark */ = {
468- isa = PBXTextBookmark;
469- fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
470- name = "PreviewerSelector.m: 426";
471- rLen = 0;
472- rLoc = 10764;
473- rType = 0;
474- vrLen = 1251;
475- vrLoc = 13608;
476- };
477- F458F2D5123C84F400A546E4 /* PBXTextBookmark */ = {
478- isa = PBXTextBookmark;
479- fRef = F45032530F669A9500B0B042 /* PSPreviewerInterface.h */;
480- name = "PSPreviewerInterface.h: 13";
178+ fRef = F4E0B9010CF72883003E4686 /* PSPPreviewerTableView.h */;
179+ name = "PSPPreviewerTableView.h: 1";
481180 rLen = 0;
482- rLoc = 258;
181+ rLoc = 0;
483182 rType = 0;
484- vrLen = 1259;
183+ vrLen = 243;
485184 vrLoc = 0;
486185 };
487- F458F2D6123C84F400A546E4 /* PBXTextBookmark */ = {
186+ F458F385123C8F7100A546E4 /* PBXTextBookmark */ = {
488187 isa = PBXTextBookmark;
489188 fRef = F4E0B9020CF72883003E4686 /* PSPPreviewerTableView.m */;
490189 name = "PSPPreviewerTableView.m: 1";
@@ -494,768 +193,327 @@
494193 vrLen = 520;
495194 vrLoc = 0;
496195 };
497- F458F2D7123C84F400A546E4 /* PBXTextBookmark */ = {
196+ F458F3AB123C92AE00A546E4 /* PBXTextBookmark */ = {
498197 isa = PBXTextBookmark;
499- fRef = F4B9F90F0D9BCB0E00535CDD /* Japanese */;
500- name = "Makefile: 1";
198+ fRef = F4F160350A0D1ED000C7526C /* PSPreference.h */;
199+ name = "PSPreference.h: 13";
501200 rLen = 0;
502- rLoc = 0;
201+ rLoc = 230;
503202 rType = 0;
504- vrLen = 521;
203+ vrLen = 318;
505204 vrLoc = 0;
506205 };
507- F458F2D8123C84F400A546E4 /* PBXTextBookmark */ = {
206+ F458F4F3123CD56100A546E4 /* PBXTextBookmark */ = {
508207 isa = PBXTextBookmark;
509- fRef = F47281760CF48168008E5A5B /* English */;
510- name = "Makefile: 14";
208+ fRef = F458F4F4123CD56100A546E4 /* NSArrayController.h */;
209+ name = "NSArrayController.h: 1";
511210 rLen = 0;
512- rLoc = 521;
211+ rLoc = 0;
513212 rType = 0;
514- vrLen = 521;
515- vrLoc = 0;
213+ vrLen = 2221;
214+ vrLoc = 4376;
516215 };
517- F458F2D9123C84F400A546E4 /* PBXTextBookmark */ = {
518- isa = PBXTextBookmark;
519- fRef = F4A2FAE30F467CDC00A84E18 /* PSPreviewerItem.h */;
520- name = "PSPreviewerItem.h: 30";
521- rLen = 0;
522- rLoc = 787;
523- rType = 0;
524- vrLen = 1141;
525- vrLoc = 0;
216+ F458F4F4123CD56100A546E4 /* NSArrayController.h */ = {
217+ isa = PBXFileReference;
218+ lastKnownFileType = sourcecode.c.h;
219+ name = NSArrayController.h;
220+ path = /System/Library/Frameworks/AppKit.framework/Headers/NSArrayController.h;
221+ sourceTree = "<absolute>";
526222 };
527- F458F2DA123C84F400A546E4 /* PBXTextBookmark */ = {
223+ F458F4F5123CD56100A546E4 /* PBXTextBookmark */ = {
528224 isa = PBXTextBookmark;
529- fRef = F4A2FAE40F467CDC00A84E18 /* PSPreviewerItem.m */;
225+ fRef = F458F4F6123CD56100A546E4 /* NSKeyValueCoding.h */;
226+ name = "NSKeyValueCoding.h: 1";
530227 rLen = 0;
531- rLoc = 72;
532- rType = 1;
533- };
534- F458F2DB123C84F400A546E4 /* PBXTextBookmark */ = {
535- isa = PBXTextBookmark;
536- fRef = F4A2FAE40F467CDC00A84E18 /* PSPreviewerItem.m */;
537- name = "PSPreviewerItem.m: 22";
538- rLen = 0;
539- rLoc = 751;
228+ rLoc = 0;
540229 rType = 0;
541- vrLen = 1042;
542- vrLoc = 0;
230+ vrLen = 8485;
231+ vrLoc = 8969;
543232 };
544- F458F2E2123C855B00A546E4 /* PBXTextBookmark */ = {
545- isa = PBXTextBookmark;
546- fRef = F4A2FAE40F467CDC00A84E18 /* PSPreviewerItem.m */;
547- name = "PSPreviewerItem.m: 102";
548- rLen = 0;
549- rLoc = 1473;
550- rType = 0;
551- vrLen = 1207;
552- vrLoc = 1787;
233+ F458F4F6123CD56100A546E4 /* NSKeyValueCoding.h */ = {
234+ isa = PBXFileReference;
235+ lastKnownFileType = sourcecode.c.h;
236+ name = NSKeyValueCoding.h;
237+ path = /System/Library/Frameworks/Foundation.framework/Headers/NSKeyValueCoding.h;
238+ sourceTree = "<absolute>";
553239 };
554- F458F2F8123C875900A546E4 /* PBXTextBookmark */ = {
240+ F458F4F7123CD56100A546E4 /* PBXTextBookmark */ = {
555241 isa = PBXTextBookmark;
556- fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
557- name = "PreviewerSelector.m: 210";
242+ fRef = F458F4F8123CD56100A546E4 /* NSArray.h */;
243+ name = "NSArray.h: 25";
558244 rLen = 0;
559- rLoc = 4995;
245+ rLoc = 667;
560246 rType = 0;
561- vrLen = 492;
562- vrLoc = 4863;
247+ vrLen = 1570;
248+ vrLoc = 220;
563249 };
564- F458F2F9123C875900A546E4 /* XCBuildMessageTextBookmark */ = {
565- isa = PBXTextBookmark;
566- comments = "Accessing unknown 'previewer' getter method";
567- fRef = F4F160340A0D1ED000C7526C /* PSPreference.m */;
568- fallbackIsa = XCBuildMessageTextBookmark;
569- rLen = 1;
570- rLoc = 84;
571- rType = 1;
250+ F458F4F8123CD56100A546E4 /* NSArray.h */ = {
251+ isa = PBXFileReference;
252+ lastKnownFileType = sourcecode.c.h;
253+ name = NSArray.h;
254+ path = /Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/Foundation.framework/Versions/C/Headers/NSArray.h;
255+ sourceTree = "<absolute>";
572256 };
573- F458F2FA123C875900A546E4 /* PBXTextBookmark */ = {
257+ F458F4F9123CD56100A546E4 /* PBXTextBookmark */ = {
574258 isa = PBXTextBookmark;
575- fRef = F4F160340A0D1ED000C7526C /* PSPreference.m */;
576- name = "PSPreference.m: 85";
577- rLen = 0;
578- rLoc = 1805;
259+ fRef = F458F4FA123CD56100A546E4 /* NSObject.h */;
260+ name = "NSObject.h: 65";
261+ rLen = 33;
262+ rLoc = 1205;
579263 rType = 0;
580- vrLen = 471;
581- vrLoc = 1616;
264+ vrLen = 450;
265+ vrLoc = 853;
582266 };
583- F458F2FD123C875D00A546E4 /* PBXTextBookmark */ = {
584- isa = PBXTextBookmark;
585- fRef = F4F160340A0D1ED000C7526C /* PSPreference.m */;
586- name = "PSPreference.m: 85";
587- rLen = 0;
588- rLoc = 1805;
589- rType = 0;
590- vrLen = 471;
591- vrLoc = 1616;
267+ F458F4FA123CD56100A546E4 /* NSObject.h */ = {
268+ isa = PBXFileReference;
269+ lastKnownFileType = sourcecode.c.h;
270+ name = NSObject.h;
271+ path = /Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/Foundation.framework/Versions/C/Headers/NSObject.h;
272+ sourceTree = "<absolute>";
592273 };
593- F458F300123C876100A546E4 /* PBXTextBookmark */ = {
594- isa = PBXTextBookmark;
595- fRef = F4F160340A0D1ED000C7526C /* PSPreference.m */;
596- name = "PSPreference.m: 85";
597- rLen = 0;
598- rLoc = 1805;
599- rType = 0;
600- vrLen = 471;
601- vrLoc = 1616;
274+ F458F521123CEE0900A546E4 /* PSPreviewerItems.h */ = {
275+ uiCtxt = {
276+ sepNavIntBoundsRect = "{{0, 0}, {766, 647}}";
277+ sepNavSelRange = "{371, 0}";
278+ sepNavVisRange = "{0, 371}";
279+ sepNavWindowFrame = "{{38, 125}, {805, 727}}";
280+ };
602281 };
603- F458F303123C876900A546E4 /* PBXTextBookmark */ = {
604- isa = PBXTextBookmark;
605- fRef = F4F160340A0D1ED000C7526C /* PSPreference.m */;
606- name = "PSPreference.m: 85";
607- rLen = 0;
608- rLoc = 1805;
609- rType = 0;
610- vrLen = 471;
611- vrLoc = 1616;
282+ F458F522123CEE0900A546E4 /* PSPreviewerItems.m */ = {
283+ uiCtxt = {
284+ sepNavIntBoundsRect = "{{0, 0}, {950, 2184}}";
285+ sepNavSelRange = "{2888, 0}";
286+ sepNavVisRange = "{2844, 1420}";
287+ };
612288 };
613- F458F310123C87CE00A546E4 /* PBXTextBookmark */ = {
289+ F458F5C1123D162C00A546E4 /* PBXTextBookmark */ = {
614290 isa = PBXTextBookmark;
615291 fRef = F4F160340A0D1ED000C7526C /* PSPreference.m */;
616- name = "PSPreference.m: 85";
292+ name = "PSPreference.m: 223";
617293 rLen = 0;
618- rLoc = 1805;
294+ rLoc = 5714;
619295 rType = 0;
620- vrLen = 471;
621- vrLoc = 1616;
296+ vrLen = 1445;
297+ vrLoc = 875;
622298 };
623- F458F311123C87CE00A546E4 /* XCBuildMessageTextBookmark */ = {
624- isa = PBXTextBookmark;
625- comments = "Unused variable 'itemsEnum'";
626- fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
627- fallbackIsa = XCBuildMessageTextBookmark;
628- rLen = 0;
629- rLoc = 506;
630- rType = 1;
631- };
632- F458F312123C87CE00A546E4 /* PBXTextBookmark */ = {
633- isa = PBXTextBookmark;
634- fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
635- name = "PreviewerSelector.m: 515";
636- rLen = 0;
637- rLoc = 12832;
638- rType = 0;
639- vrLen = 392;
640- vrLoc = 12921;
641- };
642- F458F315123C87D400A546E4 /* PBXTextBookmark */ = {
643- isa = PBXTextBookmark;
644- fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
645- name = "PreviewerSelector.m: 515";
646- rLen = 0;
647- rLoc = 12832;
648- rType = 0;
649- vrLen = 425;
650- vrLoc = 12921;
651- };
652- F458F318123C87DB00A546E4 /* PBXTextBookmark */ = {
653- isa = PBXTextBookmark;
654- fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
655- name = "PreviewerSelector.m: 515";
656- rLen = 0;
657- rLoc = 12832;
658- rType = 0;
659- vrLen = 425;
660- vrLoc = 12921;
661- };
662- F458F31B123C87F300A546E4 /* PBXTextBookmark */ = {
663- isa = PBXTextBookmark;
664- fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
665- name = "PreviewerSelector.m: 515";
666- rLen = 0;
667- rLoc = 12832;
668- rType = 0;
669- vrLen = 425;
670- vrLoc = 12921;
671- };
672- F458F31E123C883B00A546E4 /* PBXTextBookmark */ = {
673- isa = PBXTextBookmark;
674- fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
675- name = "PreviewerSelector.m: 515";
676- rLen = 0;
677- rLoc = 12832;
678- rType = 0;
679- vrLen = 425;
680- vrLoc = 12921;
681- };
682- F458F321123C884700A546E4 /* PBXTextBookmark */ = {
683- isa = PBXTextBookmark;
684- fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
685- name = "PreviewerSelector.m: 515";
686- rLen = 0;
687- rLoc = 12832;
688- rType = 0;
689- vrLen = 425;
690- vrLoc = 12921;
691- };
692- F458F322123C884800A546E4 /* PBXTextBookmark */ = {
299+ F458F665123D217600A546E4 /* PBXTextBookmark */ = {
693300 isa = PBXTextBookmark;
694301 fRef = F4A2FAE30F467CDC00A84E18 /* PSPreviewerItem.h */;
695- name = "PSPreviewerItem.h: 30";
302+ name = "PSPreviewerItem.h: 26";
696303 rLen = 0;
697- rLoc = 710;
304+ rLoc = 532;
698305 rType = 0;
699- vrLen = 1210;
306+ vrLen = 794;
700307 vrLoc = 0;
701308 };
702- F458F323123C884800A546E4 /* PBXTextBookmark */ = {
703- isa = PBXTextBookmark;
704- fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
705- name = "PreviewerSelector.m: 206";
706- rLen = 0;
707- rLoc = 4910;
708- rType = 0;
709- vrLen = 1414;
710- vrLoc = 5779;
711- };
712- F458F324123C884800A546E4 /* PBXTextBookmark */ = {
309+ F46DB903121C1E8F006F8C6D /* PBXTextBookmark */ = {
713310 isa = PBXTextBookmark;
714- fRef = F4F160340A0D1ED000C7526C /* PSPreference.m */;
715- name = "PSPreference.m: 84";
311+ fRef = 32DBCF630370AF2F00C91783 /* PreviewerSelector_Prefix.pch */;
312+ name = "PreviewerSelector_Prefix.pch: 1";
716313 rLen = 0;
717- rLoc = 1784;
718- rType = 0;
719- vrLen = 1484;
720- vrLoc = 1031;
721- };
722- F458F325123C884800A546E4 /* PBXTextBookmark */ = {
723- isa = PBXTextBookmark;
724- fRef = F4A2FAE40F467CDC00A84E18 /* PSPreviewerItem.m */;
725- name = "PSPreviewerItem.m: 21";
726- rLen = 15;
727- rLoc = 610;
314+ rLoc = 0;
728315 rType = 0;
729- vrLen = 1116;
316+ vrLen = 166;
730317 vrLoc = 0;
731318 };
732- F458F326123C884800A546E4 /* PBXTextBookmark */ = {
733- isa = PBXTextBookmark;
734- fRef = F4A2FAE40F467CDC00A84E18 /* PSPreviewerItem.m */;
735- name = "PSPreviewerItem.m: 21";
736- rLen = 15;
737- rLoc = 610;
738- rType = 0;
739- vrLen = 868;
740- vrLoc = 880;
741- };
742- F458F32A123C89DD00A546E4 /* PBXTextBookmark */ = {
743- isa = PBXTextBookmark;
744- fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
745- name = "PreviewerSelector.m: 515";
746- rLen = 0;
747- rLoc = 12832;
748- rType = 0;
749- vrLen = 392;
750- vrLoc = 12921;
751- };
752- F458F32D123C89F100A546E4 /* PBXTextBookmark */ = {
753- isa = PBXTextBookmark;
754- fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
755- name = "PreviewerSelector.m: 515";
756- rLen = 0;
757- rLoc = 12832;
758- rType = 0;
759- vrLen = 392;
760- vrLoc = 12921;
761- };
762- F458F330123C8A1A00A546E4 /* PBXTextBookmark */ = {
763- isa = PBXTextBookmark;
764- fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
765- name = "PreviewerSelector.m: 515";
766- rLen = 0;
767- rLoc = 12832;
768- rType = 0;
769- vrLen = 392;
770- vrLoc = 12921;
771- };
772- F458F333123C8A3F00A546E4 /* PBXTextBookmark */ = {
773- isa = PBXTextBookmark;
774- fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
775- name = "PreviewerSelector.m: 515";
776- rLen = 0;
777- rLoc = 12832;
778- rType = 0;
779- vrLen = 392;
780- vrLoc = 12921;
781- };
782- F458F336123C8A4A00A546E4 /* PBXTextBookmark */ = {
783- isa = PBXTextBookmark;
784- fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
785- name = "PreviewerSelector.m: 515";
786- rLen = 0;
787- rLoc = 12832;
788- rType = 0;
789- vrLen = 392;
790- vrLoc = 12921;
791- };
792- F458F337123C8A5200A546E4 /* PBXTextBookmark */ = {
793- isa = PBXTextBookmark;
794- fRef = F4A2FAE40F467CDC00A84E18 /* PSPreviewerItem.m */;
795- name = "PSPreviewerItem.m: 58";
796- rLen = 0;
797- rLoc = 1223;
798- rType = 0;
799- vrLen = 1500;
800- vrLoc = 1267;
801- };
802- F458F338123C8A5200A546E4 /* PBXTextBookmark */ = {
319+ F46DB90A121D6294006F8C6D /* PBXTextBookmark */ = {
803320 isa = PBXTextBookmark;
804- fRef = F4A2FAE30F467CDC00A84E18 /* PSPreviewerItem.h */;
805- name = "PSPreviewerItem.h: 32";
321+ fRef = F4D254E711C7968100232358 /* BSPreviewPluginInterface.h */;
322+ name = "BSPreviewPluginInterface.h: 30";
806323 rLen = 0;
807- rLoc = 788;
324+ rLoc = 1023;
808325 rType = 0;
809- vrLen = 794;
326+ vrLen = 1324;
810327 vrLoc = 0;
811328 };
812- F458F339123C8A5200A546E4 /* PBXTextBookmark */ = {
813- isa = PBXTextBookmark;
814- fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
815- name = "PreviewerSelector.m: 206";
816- rLen = 0;
817- rLoc = 4910;
818- rType = 0;
819- vrLen = 1414;
820- vrLoc = 5779;
821- };
822- F458F33A123C8A5200A546E4 /* PBXTextBookmark */ = {
823- isa = PBXTextBookmark;
824- fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
825- name = "PreviewerSelector.m: 246";
826- rLen = 10;
827- rLoc = 6239;
828- rType = 0;
829- vrLen = 1414;
830- vrLoc = 5779;
831- };
832- F458F33E123C8ABA00A546E4 /* PBXTextBookmark */ = {
833- isa = PBXTextBookmark;
834- fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
835- name = "PreviewerSelector.m: 515";
836- rLen = 0;
837- rLoc = 12832;
838- rType = 0;
839- vrLen = 501;
840- vrLoc = 12809;
841- };
842- F458F341123C8ADB00A546E4 /* PBXTextBookmark */ = {
843- isa = PBXTextBookmark;
844- fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
845- name = "PreviewerSelector.m: 514";
846- rLen = 0;
847- rLoc = 12832;
848- rType = 0;
849- vrLen = 487;
850- vrLoc = 12805;
851- };
852- F458F344123C8AE200A546E4 /* PBXTextBookmark */ = {
853- isa = PBXTextBookmark;
854- fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
855- name = "PreviewerSelector.m: 512";
856- rLen = 0;
857- rLoc = 12832;
858- rType = 0;
859- vrLen = 500;
860- vrLoc = 12950;
861- };
862- F458F347123C8B0500A546E4 /* PBXTextBookmark */ = {
863- isa = PBXTextBookmark;
864- fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
865- name = "PreviewerSelector.m: 511";
866- rLen = 0;
867- rLoc = 12832;
868- rType = 0;
869- vrLen = 500;
870- vrLoc = 12875;
871- };
872- F458F34A123C8B3100A546E4 /* PBXTextBookmark */ = {
873- isa = PBXTextBookmark;
874- fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
875- name = "PreviewerSelector.m: 508";
876- rLen = 0;
877- rLoc = 12832;
878- rType = 0;
879- vrLen = 500;
880- vrLoc = 12750;
881- };
882- F458F34D123C8B5600A546E4 /* PBXTextBookmark */ = {
883- isa = PBXTextBookmark;
884- fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
885- name = "PreviewerSelector.m: 507";
886- rLen = 0;
887- rLoc = 12832;
888- rType = 0;
889- vrLen = 500;
890- vrLoc = 12750;
891- };
892- F458F350123C8B7300A546E4 /* PBXTextBookmark */ = {
893- isa = PBXTextBookmark;
894- fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
895- name = "PreviewerSelector.m: 507";
896- rLen = 0;
897- rLoc = 12832;
898- rType = 0;
899- vrLen = 500;
900- vrLoc = 12800;
901- };
902- F458F353123C8B8D00A546E4 /* PBXTextBookmark */ = {
903- isa = PBXTextBookmark;
904- fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
905- name = "PreviewerSelector.m: 507";
906- rLen = 0;
907- rLoc = 12832;
908- rType = 0;
909- vrLen = 500;
910- vrLoc = 12750;
911- };
912- F458F356123C8BA800A546E4 /* PBXTextBookmark */ = {
913- isa = PBXTextBookmark;
914- fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
915- name = "PreviewerSelector.m: 507";
916- rLen = 0;
917- rLoc = 12832;
918- rType = 0;
919- vrLen = 500;
920- vrLoc = 12750;
921- };
922- F458F359123C8BBD00A546E4 /* PBXTextBookmark */ = {
923- isa = PBXTextBookmark;
924- fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
925- name = "PreviewerSelector.m: 507";
926- rLen = 0;
927- rLoc = 12832;
928- rType = 0;
929- vrLen = 490;
930- vrLoc = 12597;
931- };
932- F458F35C123C8BC900A546E4 /* PBXTextBookmark */ = {
933- isa = PBXTextBookmark;
934- fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
935- name = "PreviewerSelector.m: 507";
936- rLen = 0;
937- rLoc = 12832;
938- rType = 0;
939- vrLen = 500;
940- vrLoc = 12775;
941- };
942- F458F35F123C8BEF00A546E4 /* PBXTextBookmark */ = {
943- isa = PBXTextBookmark;
944- fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
945- name = "PreviewerSelector.m: 507";
946- rLen = 0;
947- rLoc = 12832;
948- rType = 0;
949- vrLen = 500;
950- vrLoc = 12750;
951- };
952- F458F362123C8C0400A546E4 /* PBXTextBookmark */ = {
953- isa = PBXTextBookmark;
954- fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
955- name = "PreviewerSelector.m: 507";
956- rLen = 0;
957- rLoc = 12832;
958- rType = 0;
959- vrLen = 500;
960- vrLoc = 12750;
329+ F47281760CF48168008E5A5B /* English */ = {
330+ uiCtxt = {
331+ sepNavIntBoundsRect = "{{0, 0}, {789, 647}}";
332+ sepNavSelRange = "{521, 0}";
333+ sepNavVisRange = "{0, 521}";
334+ };
961335 };
962- F458F365123C8C1900A546E4 /* PBXTextBookmark */ = {
963- isa = PBXTextBookmark;
964- fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
965- name = "PreviewerSelector.m: 507";
966- rLen = 0;
967- rLoc = 12832;
968- rType = 0;
969- vrLen = 500;
970- vrLoc = 12750;
336+ F4A2FAE30F467CDC00A84E18 /* PSPreviewerItem.h */ = {
337+ uiCtxt = {
338+ sepNavIntBoundsRect = "{{0, 0}, {869, 446}}";
339+ sepNavSelRange = "{532, 0}";
340+ sepNavVisRange = "{0, 794}";
341+ };
971342 };
972- F458F367123C8CA100A546E4 /* PBXTextBookmark */ = {
973- isa = PBXTextBookmark;
974- fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
975- name = "PreviewerSelector.m: 507";
976- rLen = 0;
977- rLoc = 12832;
978- rType = 0;
979- vrLen = 500;
980- vrLoc = 12750;
343+ F4A2FAE40F467CDC00A84E18 /* PSPreviewerItem.m */ = {
344+ uiCtxt = {
345+ sepNavIntBoundsRect = "{{0, 0}, {766, 1716}}";
346+ sepNavSelRange = "{626, 0}";
347+ sepNavVisRange = "{142, 1080}";
348+ };
981349 };
982- F458F36A123C8CB800A546E4 /* PBXTextBookmark */ = {
350+ F4AA26B5123D26780065CF68 /* PBXTextBookmark */ = {
983351 isa = PBXTextBookmark;
984- fRef = F458F36B123C8CB800A546E4 /* BASE と ローカル — PreviewerSelector.m を diff */;
985- name = "BASE と ローカル — PreviewerSelector.m を diff: 26";
352+ fRef = F4E0BA910CF73521003E4686 /* Japanese */;
353+ name = "Localizable.strings: 10";
986354 rLen = 0;
987- rLoc = 1015;
355+ rLoc = 332;
988356 rType = 0;
989- vrLen = 1186;
357+ vrLen = 375;
990358 vrLoc = 0;
991359 };
992- F458F36B123C8CB800A546E4 /* BASE と ローカル — PreviewerSelector.m を diff */ = {
993- isa = PBXFileReference;
994- name = "BASE と ローカル — PreviewerSelector.m を diff";
995- path = "/F458F366123C8C4D00A546E4/BASE と ローカル — PreviewerSelector.m を diff";
996- sourceTree = "<absolute>";
997- };
998- F458F36C123C8CB800A546E4 /* PBXTextBookmark */ = {
999- isa = PBXTextBookmark;
1000- fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
1001- name = "PreviewerSelector.m: 633";
1002- rLen = 0;
1003- rLoc = 15805;
1004- rType = 0;
1005- vrLen = 1079;
1006- vrLoc = 15390;
1007- };
1008- F458F36D123C8CB800A546E4 /* PBXTextBookmark */ = {
360+ F4AA26B6123D26780065CF68 /* PBXTextBookmark */ = {
1009361 isa = PBXTextBookmark;
1010- fRef = F4A2FAE40F467CDC00A84E18 /* PSPreviewerItem.m */;
1011- name = "PSPreviewerItem.m: 58";
1012- rLen = 0;
1013- rLoc = 1223;
1014- rType = 0;
1015- vrLen = 1500;
1016- vrLoc = 1267;
1017- };
1018- F458F36E123C8CB800A546E4 /* PBXTextBookmark */ = {
1019- isa = PBXTextBookmark;
1020- fRef = F4A2FAE30F467CDC00A84E18 /* PSPreviewerItem.h */;
1021- name = "PSPreviewerItem.h: 32";
362+ fRef = F4E0BA8C0CF73509003E4686 /* English */;
363+ name = "Localizable.strings: 1";
1022364 rLen = 0;
1023- rLoc = 788;
1024- rType = 0;
1025- vrLen = 794;
1026- vrLoc = 0;
1027- };
1028- F458F36F123C8CB800A546E4 /* PBXTextBookmark */ = {
1029- isa = PBXTextBookmark;
1030- fRef = F4A2FAE30F467CDC00A84E18 /* PSPreviewerItem.h */;
1031- name = "PSPreviewerItem.h: 12";
1032- rLen = 15;
1033- rLoc = 180;
365+ rLoc = 0;
1034366 rType = 0;
1035- vrLen = 794;
367+ vrLen = 0;
1036368 vrLoc = 0;
1037369 };
1038- F468C2A4121D7D01009EFA3E /* PreviewerSelector.m:289 */ = {
1039- isa = PBXFileBreakpoint;
1040- actions = (
370+ F4AA26B8123D26780065CF68 /* PlistBookmark */ = {
371+ isa = PlistBookmark;
372+ fRef = 8D5B49B7048680CD000E48DA /* Info.plist */;
373+ fallbackIsa = PBXBookmark;
374+ isK = 0;
375+ kPath = (
1041376 );
1042- breakpointStyle = 0;
1043- continueAfterActions = 0;
1044- countType = 0;
1045- delayBeforeContinue = 0;
1046- fileReference = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
1047- functionName = "-loadPlugIns";
1048- hitCount = 0;
1049- ignoreCount = 0;
1050- lineNumber = 289;
1051- location = ImagePreviewer;
1052- modificationTime = 305947000.451702;
1053- originalNumberOfMultipleMatches = 1;
1054- state = 2;
1055- };
1056- F468C2A6121D7D08009EFA3E /* PBXTextBookmark */ = {
1057- isa = PBXTextBookmark;
1058- fRef = F45032530F669A9500B0B042 /* PSPreviewerInterface.h */;
1059- name = "PSPreviewerInterface.h: 29";
377+ name = /Users/masaki/Projects/PreviewerSelector/Info.plist;
1060378 rLen = 0;
1061- rLoc = 787;
1062- rType = 0;
1063- vrLen = 1229;
1064- vrLoc = 30;
379+ rLoc = 9223372036854775808;
1065380 };
1066- F468C2CC121D7D87009EFA3E /* PreviewerSelector.m:214 */ = {
1067- isa = PBXFileBreakpoint;
1068- actions = (
381+ F4AA26B9123D26780065CF68 /* PlistBookmark */ = {
382+ isa = PlistBookmark;
383+ fRef = F4B9F9110D9BCB2000535CDD /* Japanese */;
384+ fallbackIsa = PBXBookmark;
385+ isK = 0;
386+ kPath = (
1069387 );
1070- breakpointStyle = 0;
1071- continueAfterActions = 0;
1072- countType = 0;
1073- delayBeforeContinue = 0;
1074- fileReference = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
1075- functionName = "-registPlugIn:name:path:";
1076- hitCount = 0;
1077- ignoreCount = 0;
1078- lineNumber = 214;
1079- location = ImagePreviewer;
1080- modificationTime = 305947000.453261;
1081- originalNumberOfMultipleMatches = 1;
1082- state = 2;
388+ name = /Users/masaki/Projects/PreviewerSelector/Japanese.lproj/InfoPlist.strings;
389+ rLen = 0;
390+ rLoc = 9223372036854775808;
1083391 };
1084- F46DB903121C1E8F006F8C6D /* PBXTextBookmark */ = {
1085- isa = PBXTextBookmark;
1086- fRef = 32DBCF630370AF2F00C91783 /* PreviewerSelector_Prefix.pch */;
1087- name = "PreviewerSelector_Prefix.pch: 1";
392+ F4AA26BA123D26780065CF68 /* PlistBookmark */ = {
393+ isa = PlistBookmark;
394+ fRef = 089C167EFE841241C02AAC07 /* English */;
395+ fallbackIsa = PBXBookmark;
396+ isK = 0;
397+ kPath = (
398+ );
399+ name = /Users/masaki/Projects/PreviewerSelector/English.lproj/InfoPlist.strings;
1088400 rLen = 0;
1089- rLoc = 0;
1090- rType = 0;
1091- vrLen = 166;
1092- vrLoc = 0;
401+ rLoc = 9223372036854775808;
1093402 };
1094- F46DB90A121D6294006F8C6D /* PBXTextBookmark */ = {
403+ F4AA26BD123D26C30065CF68 /* PSPreviewerInterface.m */ = {
404+ uiCtxt = {
405+ sepNavIntBoundsRect = "{{0, 0}, {766, 2119}}";
406+ sepNavSelRange = "{238, 0}";
407+ sepNavVisRange = "{0, 1211}";
408+ };
409+ };
410+ F4AA26CF123D27BE0065CF68 /* PBXTextBookmark */ = {
1095411 isa = PBXTextBookmark;
1096- fRef = F4D254E711C7968100232358 /* BSPreviewPluginInterface.h */;
1097- name = "BSPreviewPluginInterface.h: 30";
412+ fRef = F45032530F669A9500B0B042 /* PSPreviewerInterface.h */;
413+ name = "PSPreviewerInterface.h: 26";
1098414 rLen = 0;
1099- rLoc = 1023;
415+ rLoc = 680;
1100416 rType = 0;
1101- vrLen = 1324;
417+ vrLen = 1259;
1102418 vrLoc = 0;
1103419 };
1104- F46DB90C121D6294006F8C6D /* PBXTextBookmark */ = {
420+ F4AA26D7123D285A0065CF68 /* PBXTextBookmark */ = {
1105421 isa = PBXTextBookmark;
1106- fRef = F4E0B9010CF72883003E4686 /* PSPPreviewerTableView.h */;
1107- name = "PSPPreviewerTableView.h: 1";
422+ fRef = F4B9F90F0D9BCB0E00535CDD /* Japanese */;
423+ name = "Makefile: 1";
1108424 rLen = 0;
1109425 rLoc = 0;
1110426 rType = 0;
1111- vrLen = 243;
427+ vrLen = 521;
1112428 vrLoc = 0;
1113429 };
1114- F46DB90D121D6294006F8C6D /* PBXTextBookmark */ = {
430+ F4AA26D8123D285A0065CF68 /* PBXTextBookmark */ = {
1115431 isa = PBXTextBookmark;
1116- fRef = F4E0B9020CF72883003E4686 /* PSPPreviewerTableView.m */;
1117- name = "PSPPreviewerTableView.m: 1";
432+ fRef = F47281760CF48168008E5A5B /* English */;
433+ name = "Makefile: 14";
1118434 rLen = 0;
1119- rLoc = 0;
435+ rLoc = 521;
1120436 rType = 0;
1121- vrLen = 520;
437+ vrLen = 521;
1122438 vrLoc = 0;
1123439 };
1124- F47281760CF48168008E5A5B /* English */ = {
1125- uiCtxt = {
1126- sepNavIntBoundsRect = "{{0, 0}, {869, 647}}";
1127- sepNavSelRange = "{521, 0}";
1128- sepNavVisRange = "{0, 521}";
1129- };
1130- };
1131- F49061F5123A7C0800458627 /* PBXTextBookmark */ = {
440+ F4AA26D9123D285A0065CF68 /* PBXTextBookmark */ = {
1132441 isa = PBXTextBookmark;
1133- fRef = F4E0BA8C0CF73509003E4686 /* English */;
1134- name = "Localizable.strings: 1";
442+ fRef = F4AA26BD123D26C30065CF68 /* PSPreviewerInterface.m */;
443+ name = "PSPreviewerInterface.m: 11";
1135444 rLen = 0;
1136- rLoc = 0;
445+ rLoc = 238;
1137446 rType = 0;
1138- vrLen = 0;
447+ vrLen = 1211;
1139448 vrLoc = 0;
1140449 };
1141- F49061F6123A7C0800458627 /* PBXTextBookmark */ = {
450+ F4AA26DA123D285A0065CF68 /* PBXTextBookmark */ = {
1142451 isa = PBXTextBookmark;
1143- fRef = F4E0BA910CF73521003E4686 /* Japanese */;
1144- name = "Localizable.strings: 10";
452+ fRef = F4A2FAE40F467CDC00A84E18 /* PSPreviewerItem.m */;
453+ name = "PSPreviewerItem.m: 22";
1145454 rLen = 0;
1146- rLoc = 332;
455+ rLoc = 626;
1147456 rType = 0;
1148- vrLen = 375;
1149- vrLoc = 0;
457+ vrLen = 1080;
458+ vrLoc = 142;
1150459 };
1151- F4906222123A7E4D00458627 /* PBXTextBookmark */ = {
460+ F4AA26DB123D285A0065CF68 /* PBXTextBookmark */ = {
1152461 isa = PBXTextBookmark;
1153- fRef = F4906223123A7E4D00458627 /* BASE と ローカル — PSPreference.m を diff */;
1154- name = "BASE と ローカル — PSPreference.m を diff: 24";
1155- rLen = 35;
1156- rLoc = 679;
462+ fRef = F458F521123CEE0900A546E4 /* PSPreviewerItems.h */;
463+ name = "PSPreviewerItems.h: 23";
464+ rLen = 0;
465+ rLoc = 371;
1157466 rType = 0;
1158- vrLen = 1065;
467+ vrLen = 371;
1159468 vrLoc = 0;
1160469 };
1161- F4906223123A7E4D00458627 /* BASE と ローカル — PSPreference.m を diff */ = {
1162- isa = PBXFileReference;
1163- lastKnownFileType = file;
1164- path = "BASE と ローカル — PSPreference.m を diff";
1165- sourceTree = "<group>";
1166- };
1167- F4906224123A7E4D00458627 /* PBXTextBookmark */ = {
470+ F4AA26DC123D285A0065CF68 /* PBXTextBookmark */ = {
1168471 isa = PBXTextBookmark;
1169- fRef = F4F160350A0D1ED000C7526C /* PSPreference.h */;
1170- name = "PSPreference.h: 13";
472+ fRef = F458F522123CEE0900A546E4 /* PSPreviewerItems.m */;
473+ name = "PSPreviewerItems.m: 118";
1171474 rLen = 0;
1172- rLoc = 230;
475+ rLoc = 2888;
1173476 rType = 0;
1174- vrLen = 318;
1175- vrLoc = 0;
477+ vrLen = 1420;
478+ vrLoc = 2844;
1176479 };
1177- F4906225123A7E4D00458627 /* PBXTextBookmark */ = {
480+ F4AA26DD123D285A0065CF68 /* PBXTextBookmark */ = {
1178481 isa = PBXTextBookmark;
1179482 fRef = F4F160430A0D1FC000C7526C /* PreviewerSelector.h */;
1180- name = "PreviewerSelector.h: 14";
1181- rLen = 17;
1182- rLoc = 257;
1183- rType = 0;
1184- vrLen = 1073;
1185- vrLoc = 0;
1186- };
1187- F4906226123A7E4D00458627 /* PBXTextBookmark */ = {
1188- isa = PBXTextBookmark;
1189- fRef = F4F160340A0D1ED000C7526C /* PSPreference.m */;
1190- name = "PSPreference.m: 25";
483+ name = "PreviewerSelector.h: 25";
1191484 rLen = 0;
1192- rLoc = 537;
485+ rLoc = 487;
1193486 rType = 0;
1194- vrLen = 839;
487+ vrLen = 864;
1195488 vrLoc = 0;
1196489 };
1197- F4906227123A7E4D00458627 /* PBXTextBookmark */ = {
490+ F4AA26DE123D285A0065CF68 /* PBXTextBookmark */ = {
1198491 isa = PBXTextBookmark;
1199492 fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
1200- name = "PreviewerSelector.m: 161";
493+ name = "PreviewerSelector.m: 386";
1201494 rLen = 0;
1202- rLoc = 4339;
495+ rLoc = 8566;
1203496 rType = 0;
1204- vrLen = 834;
1205- vrLoc = 3745;
497+ vrLen = 1356;
498+ vrLoc = 210;
1206499 };
1207- F4906229123B9BFC00458627 /* PBXTextBookmark */ = {
500+ F4AA270A123E4A090065CF68 /* PBXTextBookmark */ = {
1208501 isa = PBXTextBookmark;
1209502 fRef = F4F160440A0D1FC000C7526C /* PreviewerSelector.m */;
1210- name = "PreviewerSelector.m: 161";
503+ name = "PreviewerSelector.m: 18";
1211504 rLen = 0;
1212- rLoc = 4339;
505+ rLoc = 354;
1213506 rType = 0;
1214- vrLen = 971;
1215- vrLoc = 3541;
1216- };
1217- F4A2FAE30F467CDC00A84E18 /* PSPreviewerItem.h */ = {
1218- uiCtxt = {
1219- sepNavIntBoundsRect = "{{0, 0}, {869, 647}}";
1220- sepNavSelRange = "{180, 15}";
1221- sepNavVisRange = "{0, 794}";
1222- };
1223- };
1224- F4A2FAE40F467CDC00A84E18 /* PSPreviewerItem.m */ = {
1225- uiCtxt = {
1226- sepNavIntBoundsRect = "{{0, 0}, {869, 1456}}";
1227- sepNavSelRange = "{1223, 0}";
1228- sepNavVisRange = "{1267, 1500}";
1229- };
507+ vrLen = 1002;
508+ vrLoc = 6953;
1230509 };
1231510 F4B9F90F0D9BCB0E00535CDD /* Japanese */ = {
1232511 uiCtxt = {
1233- sepNavIntBoundsRect = "{{0, 0}, {869, 647}}";
512+ sepNavIntBoundsRect = "{{0, 0}, {789, 647}}";
1234513 sepNavSelRange = "{0, 0}";
1235514 sepNavVisRange = "{0, 521}";
1236515 };
1237516 };
1238- F4C6F3B00F470B4F0078E711 /* PlistBookmark */ = {
1239- isa = PlistBookmark;
1240- fRef = F4B9F9110D9BCB2000535CDD /* Japanese */;
1241- fallbackIsa = PBXBookmark;
1242- isK = 0;
1243- kPath = (
1244- );
1245- name = /Volumes/MachintoshHD/Users/masaki/Project/PreviewerSelector/Japanese.lproj/InfoPlist.strings;
1246- rLen = 0;
1247- rLoc = 2147483647;
1248- };
1249- F4C981E00F46C583005499D7 /* PBXTextBookmark */ = {
1250- isa = PBXTextBookmark;
1251- fRef = F47281760CF48168008E5A5B /* English */;
1252- name = "Makefile: 14";
1253- rLen = 0;
1254- rLoc = 521;
1255- rType = 0;
1256- vrLen = 521;
1257- vrLoc = 0;
1258- };
1259517 F4D254E711C7968100232358 /* BSPreviewPluginInterface.h */ = {
1260518 uiCtxt = {
1261519 sepNavIntBoundsRect = "{{0, 0}, {929, 537}}";
@@ -1360,7 +618,7 @@
1360618 };
1361619 F4E0B9010CF72883003E4686 /* PSPPreviewerTableView.h */ = {
1362620 uiCtxt = {
1363- sepNavIntBoundsRect = "{{0, 0}, {869, 531}}";
621+ sepNavIntBoundsRect = "{{0, 0}, {869, 647}}";
1364622 sepNavSelRange = "{0, 0}";
1365623 sepNavVisRange = "{0, 243}";
1366624 sepNavVisRect = "{{0, 0}, {633, 757}}";
@@ -1377,14 +635,14 @@
1377635 };
1378636 F4E0BA8C0CF73509003E4686 /* English */ = {
1379637 uiCtxt = {
1380- sepNavIntBoundsRect = "{{0, 0}, {869, 519}}";
638+ sepNavIntBoundsRect = "{{0, 0}, {869, 437}}";
1381639 sepNavSelRange = "{0, 0}";
1382640 sepNavVisRange = "{0, 0}";
1383641 };
1384642 };
1385643 F4E0BA910CF73521003E4686 /* Japanese */ = {
1386644 uiCtxt = {
1387- sepNavIntBoundsRect = "{{0, 0}, {869, 519}}";
645+ sepNavIntBoundsRect = "{{0, 0}, {869, 437}}";
1388646 sepNavSelRange = "{332, 0}";
1389647 sepNavVisRange = "{0, 375}";
1390648 sepNavWindowFrame = "{{15, 55}, {746, 772}}";
@@ -1408,9 +666,9 @@
1408666 };
1409667 F4F160340A0D1ED000C7526C /* PSPreference.m */ = {
1410668 uiCtxt = {
1411- sepNavIntBoundsRect = "{{0, 0}, {880, 3159}}";
1412- sepNavSelRange = "{1784, 0}";
1413- sepNavVisRange = "{1031, 1484}";
669+ sepNavIntBoundsRect = "{{0, 0}, {880, 2951}}";
670+ sepNavSelRange = "{1809, 0}";
671+ sepNavVisRange = "{1633, 475}";
1414672 sepNavVisRect = "{{0, 1201}, {764, 759}}";
1415673 sepNavWindowFrame = "{{368, 67}, {809, 765}}";
1416674 };
@@ -1427,17 +685,17 @@
1427685 F4F160430A0D1FC000C7526C /* PreviewerSelector.h */ = {
1428686 uiCtxt = {
1429687 sepNavIntBoundsRect = "{{0, 0}, {873, 647}}";
1430- sepNavSelRange = "{397, 0}";
1431- sepNavVisRange = "{0, 1073}";
688+ sepNavSelRange = "{487, 0}";
689+ sepNavVisRange = "{0, 864}";
1432690 sepNavVisRect = "{{0, 0}, {764, 759}}";
1433691 sepNavWindowFrame = "{{15, -5}, {809, 832}}";
1434692 };
1435693 };
1436694 F4F160440A0D1FC000C7526C /* PreviewerSelector.m */ = {
1437695 uiCtxt = {
1438- sepNavIntBoundsRect = "{{0, 0}, {869, 9334}}";
1439- sepNavSelRange = "{15805, 0}";
1440- sepNavVisRange = "{15390, 1079}";
696+ sepNavIntBoundsRect = "{{0, 0}, {964, 4680}}";
697+ sepNavSelRange = "{354, 0}";
698+ sepNavVisRange = "{6953, 943}";
1441699 sepNavVisRect = "{{0, 534}, {764, 759}}";
1442700 sepNavWindowFrame = "{{263, 77}, {809, 768}}";
1443701 };
@@ -1485,6 +743,11 @@
1485743 dylibVariantSuffix = "";
1486744 enableDebugStr = 1;
1487745 environmentEntries = (
746+ {
747+ active = YES;
748+ name = NSZombieEnabled;
749+ value = YES;
750+ },
1488751 );
1489752 executableSystemSymbolLevel = 0;
1490753 executableUserSymbolLevel = 0;
--- a/PreviewerSelector.xcodeproj/project.pbxproj
+++ b/PreviewerSelector.xcodeproj/project.pbxproj
@@ -9,7 +9,9 @@
99 /* Begin PBXBuildFile section */
1010 8D5B49B0048680CD000E48DA /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C167DFE841241C02AAC07 /* InfoPlist.strings */; };
1111 8D5B49B4048680CD000E48DA /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */; };
12+ F458F523123CEE0900A546E4 /* PSPreviewerItems.m in Sources */ = {isa = PBXBuildFile; fileRef = F458F522123CEE0900A546E4 /* PSPreviewerItems.m */; };
1213 F4A2FAE50F467CDC00A84E18 /* PSPreviewerItem.m in Sources */ = {isa = PBXBuildFile; fileRef = F4A2FAE40F467CDC00A84E18 /* PSPreviewerItem.m */; };
14+ F4AA26BE123D26C30065CF68 /* PSPreviewerInterface.m in Sources */ = {isa = PBXBuildFile; fileRef = F4AA26BD123D26C30065CF68 /* PSPreviewerInterface.m */; };
1315 F4E0B9030CF72883003E4686 /* PSPPreviewerTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = F4E0B9020CF72883003E4686 /* PSPPreviewerTableView.m */; };
1416 F4E0BA900CF7350E003E4686 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = F4E0BA8F0CF7350E003E4686 /* Localizable.strings */; };
1517 F4F160330A0D1D1B00C7526C /* Preference.nib in Resources */ = {isa = PBXBuildFile; fileRef = F4F160320A0D1D1B00C7526C /* Preference.nib */; };
@@ -27,9 +29,12 @@
2729 8D5B49B7048680CD000E48DA /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
2830 D2F7E65807B2D6F200F64583 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = "<absolute>"; };
2931 F45032530F669A9500B0B042 /* PSPreviewerInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PSPreviewerInterface.h; sourceTree = "<group>"; };
32+ F458F521123CEE0900A546E4 /* PSPreviewerItems.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PSPreviewerItems.h; sourceTree = "<group>"; };
33+ F458F522123CEE0900A546E4 /* PSPreviewerItems.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PSPreviewerItems.m; sourceTree = "<group>"; };
3034 F47281760CF48168008E5A5B /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.make; name = English; path = English.lproj/Makefile; sourceTree = "<group>"; };
3135 F4A2FAE30F467CDC00A84E18 /* PSPreviewerItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PSPreviewerItem.h; sourceTree = "<group>"; };
3236 F4A2FAE40F467CDC00A84E18 /* PSPreviewerItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PSPreviewerItem.m; sourceTree = "<group>"; };
37+ F4AA26BD123D26C30065CF68 /* PSPreviewerInterface.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PSPreviewerInterface.m; sourceTree = "<group>"; };
3338 F4B9F90F0D9BCB0E00535CDD /* Japanese */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; name = Japanese; path = Japanese.lproj/Makefile; sourceTree = "<group>"; };
3439 F4B9F9110D9BCB2000535CDD /* Japanese */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Japanese; path = Japanese.lproj/InfoPlist.strings; sourceTree = "<group>"; };
3540 F4D254E711C7968100232358 /* BSPreviewPluginInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BSPreviewPluginInterface.h; sourceTree = "<group>"; };
@@ -94,12 +99,15 @@
9499 isa = PBXGroup;
95100 children = (
96101 F45032530F669A9500B0B042 /* PSPreviewerInterface.h */,
102+ F4AA26BD123D26C30065CF68 /* PSPreviewerInterface.m */,
97103 F4F160540A0D200800C7526C /* BSImagePreviewerInterface.h */,
98104 F4D254E711C7968100232358 /* BSPreviewPluginInterface.h */,
99105 F4A2FAE30F467CDC00A84E18 /* PSPreviewerItem.h */,
100106 F4A2FAE40F467CDC00A84E18 /* PSPreviewerItem.m */,
101107 F4F160350A0D1ED000C7526C /* PSPreference.h */,
102108 F4F160340A0D1ED000C7526C /* PSPreference.m */,
109+ F458F521123CEE0900A546E4 /* PSPreviewerItems.h */,
110+ F458F522123CEE0900A546E4 /* PSPreviewerItems.m */,
103111 F4F160430A0D1FC000C7526C /* PreviewerSelector.h */,
104112 F4F160440A0D1FC000C7526C /* PreviewerSelector.m */,
105113 F4E0B9010CF72883003E4686 /* PSPPreviewerTableView.h */,
@@ -249,6 +257,8 @@
249257 F4F160450A0D1FC000C7526C /* PreviewerSelector.m in Sources */,
250258 F4E0B9030CF72883003E4686 /* PSPPreviewerTableView.m in Sources */,
251259 F4A2FAE50F467CDC00A84E18 /* PSPreviewerItem.m in Sources */,
260+ F458F523123CEE0900A546E4 /* PSPreviewerItems.m in Sources */,
261+ F4AA26BE123D26C30065CF68 /* PSPreviewerInterface.m in Sources */,
252262 );
253263 runOnlyForDeploymentPostprocessing = 0;
254264 };