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

Reply via email to