]> granicus.if.org Git - transmission/commitdiff
instead of displaying a star for multiple priorities, display all relevant icons
authorMitchell Livingston <livings124@transmissionbt.com>
Mon, 30 May 2011 00:09:22 +0000 (00:09 +0000)
committerMitchell Livingston <livings124@transmissionbt.com>
Mon, 30 May 2011 00:09:22 +0000 (00:09 +0000)
NEWS
Transmission.xcodeproj/project.pbxproj
macosx/FilePriorityCell.m
macosx/Images/PriorityMixed.png [deleted file]

diff --git a/NEWS b/NEWS
index eee184aeb9f3e65a246908e36bbc9bbbd66d3465..c20a9943db6421e9ef014e4b34423e7c07adc562 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,7 @@
 === Transmission 2.32 (2011/xx/yy) ===
 [http://trac.transmissionbt.com/query?milestone=2.32&group=component&order=severity All tickets closed by this release]
+==== Mac ====
+  * Lion stability fixes
 ==== GTK+ ====
   * Remove GNOME desktop proxy support
 
index 86ed7114a9bcf3ad35ee9376fbe9bcd311a19ec3..29eed540ce20675f87d88c70e19c2aabdc7f7d07 100644 (file)
                A209EE5D1144B51E002B02D1 /* history.h in Headers */ = {isa = PBXBuildFile; fileRef = A209EE5B1144B51E002B02D1 /* history.h */; };
                A20B6F6B0C4D842B0034AB1D /* PriorityLow.png in Resources */ = {isa = PBXBuildFile; fileRef = A20B6F6A0C4D842B0034AB1D /* PriorityLow.png */; };
                A20B6F830C4D8A610034AB1D /* PriorityHigh.png in Resources */ = {isa = PBXBuildFile; fileRef = A20B6F820C4D8A610034AB1D /* PriorityHigh.png */; };
-               A20B6F8C0C4D90980034AB1D /* PriorityMixed.png in Resources */ = {isa = PBXBuildFile; fileRef = A20B6F8B0C4D90980034AB1D /* PriorityMixed.png */; };
                A20B6FA50C4D97840034AB1D /* PriorityNone.png in Resources */ = {isa = PBXBuildFile; fileRef = A20B6FA40C4D97840034AB1D /* PriorityNone.png */; };
                A20B6FAE0C4D9B040034AB1D /* PriorityNormal.png in Resources */ = {isa = PBXBuildFile; fileRef = A20B6FAD0C4D9B040034AB1D /* PriorityNormal.png */; };
                A20BFFB70D091CC700CE5D2B /* ToolbarSegmentedCell.m in Sources */ = {isa = PBXBuildFile; fileRef = A20BFFB60D091CC700CE5D2B /* ToolbarSegmentedCell.m */; };
                A209EE5B1144B51E002B02D1 /* history.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = history.h; path = libtransmission/history.h; sourceTree = "<group>"; };
                A20B6F6A0C4D842B0034AB1D /* PriorityLow.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = PriorityLow.png; path = macosx/Images/PriorityLow.png; sourceTree = "<group>"; };
                A20B6F820C4D8A610034AB1D /* PriorityHigh.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = PriorityHigh.png; path = macosx/Images/PriorityHigh.png; sourceTree = "<group>"; };
-               A20B6F8B0C4D90980034AB1D /* PriorityMixed.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = PriorityMixed.png; path = macosx/Images/PriorityMixed.png; sourceTree = "<group>"; };
                A20B6FA40C4D97840034AB1D /* PriorityNone.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = PriorityNone.png; path = macosx/Images/PriorityNone.png; sourceTree = "<group>"; };
                A20B6FAD0C4D9B040034AB1D /* PriorityNormal.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = PriorityNormal.png; path = macosx/Images/PriorityNormal.png; sourceTree = "<group>"; };
                A20BFFB50D091CC700CE5D2B /* ToolbarSegmentedCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ToolbarSegmentedCell.h; path = macosx/ToolbarSegmentedCell.h; sourceTree = "<group>"; };
                                A209EBD81142F52B002B02D1 /* InfoFileView.xib */,
                                A209EC11114301C6002B02D1 /* InfoOptionsView.xib */,
                                A20B6FA40C4D97840034AB1D /* PriorityNone.png */,
-                               A20B6F8B0C4D90980034AB1D /* PriorityMixed.png */,
                                A20B6FAD0C4D9B040034AB1D /* PriorityNormal.png */,
                                A20B6F6A0C4D842B0034AB1D /* PriorityLow.png */,
                                A20B6F820C4D8A610034AB1D /* PriorityHigh.png */,
                                A2F011990C27418800576FC0 /* CreateLarge.png in Resources */,
                                A20B6F6B0C4D842B0034AB1D /* PriorityLow.png in Resources */,
                                A20B6F830C4D8A610034AB1D /* PriorityHigh.png in Resources */,
-                               A20B6F8C0C4D90980034AB1D /* PriorityMixed.png in Resources */,
                                A20B6FA50C4D97840034AB1D /* PriorityNone.png in Resources */,
                                A20B6FAE0C4D9B040034AB1D /* PriorityNormal.png in Resources */,
                                A277DA0B0C693D9C00DA2CD4 /* ActionOn.png in Resources */,
index 16825b4330a6aac44149e7de62e170e556b83409..ba26a7edbbff496772043584f76ca2be7ae70d5b 100644 (file)
@@ -28,6 +28,8 @@
 #import "NSApplicationAdditions.h"
 #import "Torrent.h"
 
+#define IMAGE_OVERLAP 3.0
+
 @implementation FilePriorityCell
 
 - (id) init
     }
     else
     {
-        NSImage * image;
+        NSMutableArray * images = [NSMutableArray arrayWithCapacity: MAX(count, 1)];
+        CGFloat totalWidth;
+        
         if (count == 0)
-            image = [NSImage imageNamed: @"PriorityNone.png"];
-        else if (count > 1)
-            image = [NSImage imageNamed: @"PriorityMixed.png"];
+        {
+            NSImage * image = [NSImage imageNamed: @"PriorityNone.png"];
+            [images addObject: image];
+            totalWidth = [image size].width;
+        }
         else
         {
-            switch ([[priorities anyObject] integerValue])
+            totalWidth = 0.0;
+            if ([priorities containsObject: [NSNumber numberWithInteger: TR_PRI_LOW]])
+            {
+                NSImage * image = [NSImage imageNamed: @"PriorityLow.png"];
+                [images addObject: image];
+                totalWidth += [image size].width;
+            }
+            if ([priorities containsObject: [NSNumber numberWithInteger: TR_PRI_NORMAL]])
             {
-                case TR_PRI_NORMAL:
-                    image = [NSImage imageNamed: @"PriorityNormal.png"];
-                    break;
-                case TR_PRI_LOW:
-                    image = [NSImage imageNamed: @"PriorityLow.png"];
-                    break;
-                case TR_PRI_HIGH:
-                    image = [NSImage imageNamed: @"PriorityHigh.png"];
-                    break;
+                NSImage * image = [NSImage imageNamed: @"PriorityNormal.png"];
+                [images addObject: image];
+                totalWidth += [image size].width;
+            }
+            if ([priorities containsObject: [NSNumber numberWithInteger: TR_PRI_HIGH]])
+            {
+                NSImage * image = [NSImage imageNamed: @"PriorityHigh.png"];
+                [images addObject: image];
+                totalWidth += [image size].width;
             }
         }
         
-        NSSize imageSize = [image size];
-        NSRect imageRect = NSMakeRect(NSMidX(cellFrame) - imageSize.width * 0.5, NSMidY(cellFrame) - imageSize.height * 0.5,
-                                        imageSize.width, imageSize.height);
+        if (count > 1)
+            totalWidth -= IMAGE_OVERLAP * (count-1);
         
-        if ([NSApp isOnSnowLeopardOrBetter])
-            [image drawInRect: imageRect fromRect: NSZeroRect operation: NSCompositeSourceOver fraction: 1.0
-                respectFlipped: YES hints: nil];
-        else
+        CGFloat currentWidth = floor(NSMidX(cellFrame) - totalWidth * 0.5);
+        
+        for (NSImage * image in images)
         {
-            image = [image copy];
-            [image setFlipped: YES];
-            [image drawInRect: imageRect fromRect: NSZeroRect operation: NSCompositeSourceOver fraction: 1.0];
-            [image release];
+            const NSSize imageSize = [image size];
+            NSRect imageRect = NSMakeRect(currentWidth, floor(NSMidY(cellFrame) - imageSize.height * 0.5), imageSize.width, imageSize.height);
+            
+            if ([NSApp isOnSnowLeopardOrBetter])
+                [image drawInRect: imageRect fromRect: NSZeroRect operation: NSCompositeSourceOver fraction: 1.0 respectFlipped: YES hints: nil];
+            else
+            {
+                image = [image copy];
+                [image setFlipped: YES];
+                [image drawInRect: imageRect fromRect: NSZeroRect operation: NSCompositeSourceOver fraction: 1.0];
+                [image release];
+            }
+            
+            currentWidth += imageSize.width - IMAGE_OVERLAP;
         }
     }
 }
diff --git a/macosx/Images/PriorityMixed.png b/macosx/Images/PriorityMixed.png
deleted file mode 100644 (file)
index 357e86a..0000000
Binary files a/macosx/Images/PriorityMixed.png and /dev/null differ