diff --git a/macosx/Base.lproj/MainMenu.xib b/macosx/Base.lproj/MainMenu.xib
index 0ea595860..bacb0c91b 100644
--- a/macosx/Base.lproj/MainMenu.xib
+++ b/macosx/Base.lproj/MainMenu.xib
@@ -151,14 +151,35 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -208,26 +229,26 @@
-
-
-
+
-
+
+
-
+
+
-
-
+
+
@@ -237,6 +258,9 @@
+
+
+
@@ -274,14 +298,35 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -289,7 +334,7 @@
-
+
@@ -321,22 +366,22 @@
-
+
-
+
+
-
@@ -345,6 +390,9 @@
+
+
+
diff --git a/macosx/SmallTorrentCell.h b/macosx/SmallTorrentCell.h
index 3af100116..2cfa56f22 100644
--- a/macosx/SmallTorrentCell.h
+++ b/macosx/SmallTorrentCell.h
@@ -15,7 +15,11 @@
@property(nonatomic) IBOutlet NSImageView* fIconView;
@property(nonatomic) IBOutlet NSImageView* fGroupIndicatorView;
+@property(nonatomic) IBOutlet NSStackView* fStackView;
@property(nonatomic) IBOutlet NSTextField* fTorrentTitleField;
+@property(nonatomic) IBOutlet NSImageView* fTorrentPriorityView;
+@property(nonatomic) IBOutlet NSLayoutConstraint* fTorrentPriorityViewWidthConstraint;
+
@property(nonatomic) IBOutlet NSTextField* fTorrentStatusField;
@property(nonatomic) IBOutlet NSView* fTorrentProgressBarView;
diff --git a/macosx/SmallTorrentCell.mm b/macosx/SmallTorrentCell.mm
index 2078c9415..c5ac93fa2 100644
--- a/macosx/SmallTorrentCell.mm
+++ b/macosx/SmallTorrentCell.mm
@@ -7,6 +7,9 @@
#import "ProgressGradients.h"
#import "TorrentTableView.h"
#import "Torrent.h"
+#import "NSImageAdditions.h"
+
+static CGFloat const kPriorityIconWidth = 12.0;
@interface SmallTorrentCell ()
@property(nonatomic) NSTrackingArea* fTrackingArea;
@@ -24,6 +27,24 @@
Torrent* torrent = (Torrent*)self.objectValue;
[progressBar drawBarInRect:barRect forTableView:self.fTorrentTableView withTorrent:torrent];
+
+ // set priority icon
+ if (torrent.priority != TR_PRI_NORMAL)
+ {
+ NSColor* priorityColor = self.backgroundStyle == NSBackgroundStyleEmphasized ? NSColor.whiteColor : NSColor.labelColor;
+ NSImage* priorityImage = [[NSImage imageNamed:(torrent.priority == TR_PRI_HIGH ? @"PriorityHighTemplate" : @"PriorityLowTemplate")]
+ imageWithColor:priorityColor];
+
+ self.fTorrentPriorityView.image = priorityImage;
+ self.fStackView.spacing = 4;
+ self.fTorrentPriorityViewWidthConstraint.constant = kPriorityIconWidth;
+ }
+ else
+ {
+ self.fTorrentPriorityView.image = nil;
+ self.fStackView.spacing = 0;
+ self.fTorrentPriorityViewWidthConstraint.constant = 0;
+ }
}
[super drawRect:dirtyRect];
diff --git a/macosx/TorrentCell.h b/macosx/TorrentCell.h
index ab6caf4ae..45b3dac3a 100644
--- a/macosx/TorrentCell.h
+++ b/macosx/TorrentCell.h
@@ -14,7 +14,11 @@
@property(nonatomic) IBOutlet NSImageView* fIconView;
@property(nonatomic) IBOutlet NSImageView* fGroupIndicatorView;
+@property(nonatomic) IBOutlet NSStackView* fStackView;
@property(nonatomic) IBOutlet NSTextField* fTorrentTitleField;
+@property(nonatomic) IBOutlet NSImageView* fTorrentPriorityView;
+@property(nonatomic) IBOutlet NSLayoutConstraint* fTorrentPriorityViewWidthConstraint;
+
@property(nonatomic) IBOutlet NSTextField* fTorrentProgressField;
@property(nonatomic) IBOutlet NSTextField* fTorrentStatusField;
diff --git a/macosx/TorrentCell.mm b/macosx/TorrentCell.mm
index 92944e3cb..dbb2726e3 100644
--- a/macosx/TorrentCell.mm
+++ b/macosx/TorrentCell.mm
@@ -6,6 +6,9 @@
#import "ProgressBarView.h"
#import "ProgressGradients.h"
#import "Torrent.h"
+#import "NSImageAdditions.h"
+
+static CGFloat const kPriorityIconWidth = 12.0;
@implementation TorrentCell
@@ -19,6 +22,24 @@
Torrent* torrent = (Torrent*)self.objectValue;
[progressBar drawBarInRect:barRect forTableView:self.fTorrentTableView withTorrent:torrent];
+
+ // set priority icon
+ if (torrent.priority != TR_PRI_NORMAL)
+ {
+ NSColor* priorityColor = self.backgroundStyle == NSBackgroundStyleEmphasized ? NSColor.whiteColor : NSColor.labelColor;
+ NSImage* priorityImage = [[NSImage imageNamed:(torrent.priority == TR_PRI_HIGH ? @"PriorityHighTemplate" : @"PriorityLowTemplate")]
+ imageWithColor:priorityColor];
+
+ self.fTorrentPriorityView.image = priorityImage;
+ self.fStackView.spacing = 4;
+ self.fTorrentPriorityViewWidthConstraint.constant = kPriorityIconWidth;
+ }
+ else
+ {
+ self.fTorrentPriorityView.image = nil;
+ self.fStackView.spacing = 0;
+ self.fTorrentPriorityViewWidthConstraint.constant = 0;
+ }
}
[super drawRect:dirtyRect];