Revision: 14505
http://sourceforge.net/p/skim-app/code/14505
Author: hofman
Date: 2024-10-02 16:44:29 +0000 (Wed, 02 Oct 2024)
Log Message:
-----------
Convert between transition names and styles privately, add properties to get
transition name(s)
Modified Paths:
--------------
trunk/Base.lproj/TransitionSheet.xib
trunk/SKPresentationOptionsSheetController.m
trunk/SKTransitionController.m
trunk/SKTransitionInfo.h
trunk/SKTransitionInfo.m
Modified: trunk/Base.lproj/TransitionSheet.xib
===================================================================
--- trunk/Base.lproj/TransitionSheet.xib 2024-10-02 09:42:36 UTC (rev
14504)
+++ trunk/Base.lproj/TransitionSheet.xib 2024-10-02 16:44:29 UTC (rev
14505)
@@ -355,8 +355,8 @@
</textFieldCell>
<connections>
<binding
destination="Ak4-gE-KVg" name="value" keyPath="objectValue.label"
id="QOb-NM-lZB"/>
- <binding
destination="Ak4-gE-KVg" name="toolTip" keyPath="objectValue.transitionName"
id="Gvs-OW-G88"/>
<binding
destination="Ak4-gE-KVg" name="fontBold" keyPath="objectValue.transitionStyle"
id="HAc-6M-JP4"/>
+ <binding
destination="Ak4-gE-KVg" name="toolTip"
keyPath="objectValue.localizedTransitionName" id="PlU-bc-Rc8"/>
</connections>
</textField>
</subviews>
Modified: trunk/SKPresentationOptionsSheetController.m
===================================================================
--- trunk/SKPresentationOptionsSheetController.m 2024-10-02 09:42:36 UTC
(rev 14504)
+++ trunk/SKPresentationOptionsSheetController.m 2024-10-02 16:44:29 UTC
(rev 14505)
@@ -142,17 +142,15 @@
- (void)windowDidLoad {
// add the filter names to the popup
- NSUInteger i, count = [[SKTransitionInfo transitionNames] count];
NSMutableSet *titles = [NSMutableSet set];
[stylePopUpButton removeAllItems];
- for (i = 0; i < count; i++) {
- NSString *title = [SKTransitionInfo localizedNameForStyle:i];
+ [[SKTransitionInfo localizedTransitionNames]
enumerateObjectsUsingBlock:^(NSString *title, SKTransitionStyle style, BOOL
*stop){
while ([titles containsObject:title])
title = [title stringByAppendingString:@" "];
[titles addObject:title];
[stylePopUpButton addItemWithTitle:title];
- [[stylePopUpButton lastItem] setTag:i];
- }
+ [[stylePopUpButton lastItem] setTag:style];
+ }];
[stylePopUpButton addItemWithTitle:NSLocalizedString(@"Multiple effects",
@"Menu item title")];
[[stylePopUpButton lastItem] setTag:-1];
[[stylePopUpButton lastItem] setHidden:YES];
@@ -331,7 +329,7 @@
[previewView setPage:[[controller pdfDocument] pageAtIndex:idx]];
[[previewView transitionController] setTransition:info];
- [previewWindow setTitle:[SKTransitionInfo localizedNameForStyle:[info
transitionStyle]]];
+ [previewWindow setTitle:[info localizedTransitionName]];
CGFloat titleHeight = NSHeight([previewWindow frame]) -
NSHeight([previewWindow contentLayoutRect]);
rect.size.height += titleHeight - 28.0;
[previewWindow setFrame:rect display:NO];
Modified: trunk/SKTransitionController.m
===================================================================
--- trunk/SKTransitionController.m 2024-10-02 09:42:36 UTC (rev 14504)
+++ trunk/SKTransitionController.m 2024-10-02 16:44:29 UTC (rev 14505)
@@ -225,7 +225,7 @@
CGRect cgRect =
CGRectIntegral(scaleRect(NSIntersectionRect(NSUnionRect(rect, toRect), bounds),
imageScale));
CGRect cgBounds = scaleRect(bounds, imageScale);
CGRect extent = [currentTransition shouldRestrict] ? cgRect : cgBounds;
- NSString *filterName = [SKTransitionInfo
nameForStyle:[currentTransition transitionStyle]];
+ NSString *filterName = [currentTransition transitionName];
CGFloat scale = shouldScale ? imageScale * NSHeight(bounds) /
NSHeight([[[view window] screen] frame]) : imageScale;
CIFilter *transitionFilter = [self transitionFilterWithName:filterName
rect:cgRect
Modified: trunk/SKTransitionInfo.h
===================================================================
--- trunk/SKTransitionInfo.h 2024-10-02 09:42:36 UTC (rev 14504)
+++ trunk/SKTransitionInfo.h 2024-10-02 16:44:29 UTC (rev 14505)
@@ -61,15 +61,14 @@
@property (nonatomic) CGFloat duration;
@property (nonatomic) BOOL shouldRestrict;
+@property (nonatomic, nullable, readonly) NSString *transitionName;
+@property (nonatomic, nullable, readonly) NSString *localizedTransitionName;
+
@property (nonatomic, nullable, readonly) NSString *label;
@property (nonatomic, readonly) NSString *title;
-@property (class, nonatomic, readonly) NSArray<NSString *> *transitionNames;
+@property (class, nonatomic, readonly) NSArray *localizedTransitionNames;
-+ (NSString *)nameForStyle:(SKTransitionStyle)style;
-+ (SKTransitionStyle)styleForName:(NSString *)name;
-+ (NSString *)localizedNameForStyle:(SKTransitionStyle)style;
-
@end
#pragma mark -
@@ -83,8 +82,6 @@
@property (nonatomic, nullable, strong) SKThumbnail *thumbnail, *toThumbnail;
-@property (nonatomic, readonly) NSString *transitionName;
-
@end
NS_ASSUME_NONNULL_END
Modified: trunk/SKTransitionInfo.m
===================================================================
--- trunk/SKTransitionInfo.m 2024-10-02 09:42:36 UTC (rev 14504)
+++ trunk/SKTransitionInfo.m 2024-10-02 16:44:29 UTC (rev 14505)
@@ -52,7 +52,7 @@
@implementation SKTransitionInfo
@synthesize transitionStyle, duration, shouldRestrict;
-@dynamic properties, label, title;
+@dynamic properties, transitionName, localizedTransitionName, label, title;
static NSDictionary *oldStyleNames = nil;
@@ -90,45 +90,24 @@
static NSArray *transitionNames = nil;
if (transitionNames == nil) {
- NSMutableArray *names = [NSMutableArray arrayWithObjects:
- @"", nil];
// get our transitions
NSURL *transitionsURL = [[[NSBundle mainBundle] builtInPlugInsURL]
URLByAppendingPathComponent:TRANSITIONS_PLUGIN isDirectory:YES];
[CIPlugIn loadPlugIn:transitionsURL allowExecutableCode:YES];
// get all the transition filters
[CIPlugIn loadAllPlugIns];
- [names addObjectsFromArray:[CIFilter
filterNamesInCategory:kCICategoryTransition]];
- transitionNames = [names copy];
+ transitionNames = [NSArray arrayWithArray:[CIFilter
filterNamesInCategory:kCICategoryTransition]];
}
return transitionNames;
}
-+ (NSString *)nameForStyle:(SKTransitionStyle)style {
- if (style > SKNoTransition && style < [[self transitionNames] count])
- return [[self transitionNames] objectAtIndex:style];
- else
- return nil;
++ (NSArray *)localizedTransitionNames {
+ NSMutableArray *names = [NSMutableArray
arrayWithObject:NSLocalizedString(@"No Transition", @"Transition name")];
+ for (NSString *name in [self transitionNames])
+ [names addObject:[CIFilter localizedNameForFilterName:name]];
+ return names;
}
-+ (SKTransitionStyle)styleForName:(NSString *)name {
- NSUInteger idx = [[self transitionNames] indexOfObject:name];
- if (idx == NSNotFound) {
- NSString *altName = [oldStyleNames objectForKey:name];
- if (altName)
- idx = [[self transitionNames] indexOfObject:altName];
- }
- return idx == NSNotFound ? SKNoTransition : idx;
-}
-
-+ (NSString *)localizedNameForStyle:(SKTransitionStyle)style {
- if (style == SKNoTransition)
- return NSLocalizedString(@"No Transition", @"Transition name");
- else
- return [CIFilter localizedNameForFilterName:[self nameForStyle:style]];
- return @"";
-}
-
- (instancetype)init {
self = [super init];
if (self) {
@@ -179,7 +158,7 @@
}
- (NSDictionary *)properties {
- return @{SKStyleNameKey:([SKTransitionInfo nameForStyle:transitionStyle]
?: @""),
+ return @{SKStyleNameKey:([self transitionName] ?: @""),
SKDurationKey:[NSNumber numberWithDouble:duration],
SKShouldRestrictKey:[NSNumber numberWithBool:shouldRestrict]};
}
@@ -186,14 +165,44 @@
- (void)setProperties:(NSDictionary *)dictionary {
id value;
- if ((value = [dictionary objectForKey:SKStyleNameKey]))
- [self setTransitionStyle:[SKTransitionInfo styleForName:value]];
- if ((value = [dictionary objectForKey:SKDurationKey]))
+ if ((value = [dictionary objectForKey:SKStyleNameKey])) {
+ SKTransitionStyle style = SKNoTransition;
+ if ([value length]) {
+ NSArray *names = [[self class] transitionNames];
+ NSUInteger idx = [names indexOfObject:value];
+ if (idx == NSNotFound) {
+ if ((value = [oldStyleNames objectForKey:value]))
+ idx = [names indexOfObject:value];
+ }
+ if (idx != NSNotFound)
+ style = idx + 1;
+ }
+ [self setTransitionStyle:style];
+ }
+ if ((value = [dictionary objectForKey:SKDurationKey])) {
[self setDuration:[value doubleValue]];
- if ((value = [dictionary objectForKey:SKShouldRestrictKey]))
+ }
+ if ((value = [dictionary objectForKey:SKShouldRestrictKey])) {
[self setShouldRestrict:[value boolValue]];
+ }
}
+- (NSString *)transitionName {
+ if (transitionStyle > SKNoTransition) {
+ NSArray *names = [[self class] transitionNames];
+ if (transitionStyle <= [names count])
+ return [names objectAtIndex:transitionStyle - 1];
+ }
+ return nil;
+}
+
+- (NSString *)localizedTransitionName {
+ NSString *name = [self transitionName];
+ if (name)
+ return [CIFilter localizedNameForFilterName:name];
+ return nil;
+}
+
- (NSString *)label {
return nil;
}
@@ -209,11 +218,10 @@
@implementation SKLabeledTransitionInfo
@synthesize thumbnail, toThumbnail;
-@dynamic transitionName;
+ (NSSet *)keyPathsForValuesAffectingValueForKey:(NSString *)key {
NSSet *keyPaths = [super keyPathsForValuesAffectingValueForKey:key];
- if ([key isEqualToString:@"transitionName"])
+ if ([key isEqualToString:@"localizedTransitionName"])
keyPaths = [keyPaths setByAddingObjectsFromSet:[NSSet
setWithObjects:@"transitionStyle", nil]];
else if ([key isEqualToString:@"label"])
keyPaths = [keyPaths setByAddingObjectsFromSet:[NSSet
setWithObjects:@"thumbnail.label", @"toThumbnail.label", nil]];
@@ -226,8 +234,4 @@
return nil;
}
-- (NSString *)transitionName {
- return [SKTransitionInfo localizedNameForStyle:[self transitionStyle]];
-}
-
@end
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit