diff --git a/Transmission.xcodeproj/project.pbxproj b/Transmission.xcodeproj/project.pbxproj index 0d6a07cf9..f3710a21a 100644 --- a/Transmission.xcodeproj/project.pbxproj +++ b/Transmission.xcodeproj/project.pbxproj @@ -137,6 +137,7 @@ A27A53570A06A76400E1F16F /* StatusSep.png in Resources */ = {isa = PBXBuildFile; fileRef = A27A53560A06A76400E1F16F /* StatusSep.png */; }; A27ABC240A6ADE410020EC71 /* ImageBackgroundView.m in Sources */ = {isa = PBXBuildFile; fileRef = A27ABC220A6ADE410020EC71 /* ImageBackgroundView.m */; }; A289EB0C0A33C56D00B082A3 /* ButtonBorder.png in Resources */ = {isa = PBXBuildFile; fileRef = A289EB0B0A33C56D00B082A3 /* ButtonBorder.png */; }; + A28D565A0B57F1CC008E0DF1 /* DisableTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = A28D56580B57F1CC008E0DF1 /* DisableTextField.m */; }; A28DBADC0A33C1D800F4B4A7 /* ActionButton.png in Resources */ = {isa = PBXBuildFile; fileRef = A28DBADB0A33C1D800F4B4A7 /* ActionButton.png */; }; A2912C540A2956E80097A0CA /* PrefsWindow.nib in Resources */ = {isa = PBXBuildFile; fileRef = A2912C520A2956E80097A0CA /* PrefsWindow.nib */; }; A291DAAF0AC8BEB6003385E9 /* PiecesView.m in Sources */ = {isa = PBXBuildFile; fileRef = A291DAAD0AC8BEB6003385E9 /* PiecesView.m */; }; @@ -283,7 +284,7 @@ 4DFBC2DD09C0970D00D5C571 /* Torrent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Torrent.h; path = macosx/Torrent.h; sourceTree = ""; }; 4DFBC2DE09C0970D00D5C571 /* Torrent.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Torrent.m; path = macosx/Torrent.m; sourceTree = ""; }; 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; name = Info.plist; path = macosx/Info.plist; sourceTree = ""; }; - 8D1107320486CEB800E47090 /* Transmission.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Transmission.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 8D1107320486CEB800E47090 /* Transmission.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = Transmission.app; sourceTree = BUILT_PRODUCTS_DIR; }; A200B8390A2263BA007BBB1E /* InfoWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = InfoWindowController.h; path = macosx/InfoWindowController.h; sourceTree = ""; }; A200B83A0A2263BA007BBB1E /* InfoWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = InfoWindowController.m; path = macosx/InfoWindowController.m; sourceTree = ""; }; A200B9630A227FD0007BBB1E /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = macosx/English.lproj/InfoWindow.nib; sourceTree = ""; }; @@ -343,6 +344,8 @@ A27ABC210A6ADE410020EC71 /* ImageBackgroundView.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ImageBackgroundView.h; path = macosx/ImageBackgroundView.h; sourceTree = ""; }; A27ABC220A6ADE410020EC71 /* ImageBackgroundView.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = ImageBackgroundView.m; path = macosx/ImageBackgroundView.m; sourceTree = ""; }; A289EB0B0A33C56D00B082A3 /* ButtonBorder.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ButtonBorder.png; path = macosx/Images/ButtonBorder.png; sourceTree = ""; }; + A28D56570B57F1CC008E0DF1 /* DisableTextField.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = DisableTextField.h; path = macosx/DisableTextField.h; sourceTree = ""; }; + A28D56580B57F1CC008E0DF1 /* DisableTextField.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = DisableTextField.m; path = macosx/DisableTextField.m; sourceTree = ""; }; A28DBADB0A33C1D800F4B4A7 /* ActionButton.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ActionButton.png; path = macosx/Images/ActionButton.png; sourceTree = ""; }; A2912C530A2956E80097A0CA /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = macosx/English.lproj/PrefsWindow.nib; sourceTree = ""; }; A291DAAC0AC8BEB6003385E9 /* PiecesView.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = PiecesView.h; path = macosx/PiecesView.h; sourceTree = ""; }; @@ -464,6 +467,8 @@ A2AA579B0ADFCAB400CA59F6 /* PiecesImageView.m */, A24999200B49F1B5001EADA3 /* ActionPopUpButton.h */, A24999210B49F1B5001EADA3 /* ActionPopUpButton.m */, + A28D56570B57F1CC008E0DF1 /* DisableTextField.h */, + A28D56580B57F1CC008E0DF1 /* DisableTextField.m */, ); name = Sources; sourceTree = ""; @@ -929,6 +934,7 @@ A25E74660AF5097D006F11AE /* ExpandedPathToIconTransformer.m in Sources */, A2BF07910B066E0800757C92 /* SpeedLimitToTurtleIconTransformer.m in Sources */, A24999230B49F1B5001EADA3 /* ActionPopUpButton.m in Sources */, + A28D565A0B57F1CC008E0DF1 /* DisableTextField.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/macosx/DisableTextField.h b/macosx/DisableTextField.h new file mode 100644 index 000000000..f39364006 --- /dev/null +++ b/macosx/DisableTextField.h @@ -0,0 +1,8 @@ +/* DisableTextField */ + +#import + +@interface DisableTextField : NSTextField +{ +} +@end diff --git a/macosx/DisableTextField.m b/macosx/DisableTextField.m new file mode 100644 index 000000000..ffc738745 --- /dev/null +++ b/macosx/DisableTextField.m @@ -0,0 +1,15 @@ +#import "DisableTextField.h" + +@implementation DisableTextField + +- (void) setEnabled: (BOOL) enabled +{ + [super setEnabled: enabled]; + + if (!enabled) + [self setTextColor: [NSColor secondarySelectedControlColor]]; + else + [self setTextColor: [NSColor controlTextColor]]; +} + +@end diff --git a/macosx/English.lproj/InfoWindow.nib/classes.nib b/macosx/English.lproj/InfoWindow.nib/classes.nib index 047d71e9e..90181c9e2 100644 --- a/macosx/English.lproj/InfoWindow.nib/classes.nib +++ b/macosx/English.lproj/InfoWindow.nib/classes.nib @@ -1,5 +1,6 @@ { IBClasses = ( + {CLASS = DisableTextField; LANGUAGE = ObjC; SUPERCLASS = NSTextField; }, { CLASS = FileTableView; LANGUAGE = ObjC; @@ -31,6 +32,7 @@ fDateStartedField = NSTextField; fDownloadLimitCheck = NSButton; fDownloadLimitField = NSTextField; + fDownloadLimitLabel = NSTextField; fDownloadedTotalField = NSTextField; fDownloadedValidField = NSTextField; fDownloadingFromField = NSTextField; @@ -61,6 +63,7 @@ fTrackerField = NSTextField; fUploadLimitCheck = NSButton; fUploadLimitField = NSTextField; + fUploadLimitLabel = NSTextField; fUploadedTotalField = NSTextField; fUploadingToField = NSTextField; }; diff --git a/macosx/English.lproj/InfoWindow.nib/keyedobjects.nib b/macosx/English.lproj/InfoWindow.nib/keyedobjects.nib index ae799db88..03517d7e5 100644 Binary files a/macosx/English.lproj/InfoWindow.nib/keyedobjects.nib and b/macosx/English.lproj/InfoWindow.nib/keyedobjects.nib differ diff --git a/macosx/InfoWindowController.h b/macosx/InfoWindowController.h index 63120c582..e10c48e85 100644 --- a/macosx/InfoWindowController.h +++ b/macosx/InfoWindowController.h @@ -58,7 +58,8 @@ IBOutlet NSButton * fRatioCustomCheck, * fRatioStopCheck, * fLimitCustomCheck, * fUploadLimitCheck, * fDownloadLimitCheck; - IBOutlet NSTextField * fUploadLimitField, * fDownloadLimitField, * fRatioLimitField; + IBOutlet NSTextField * fUploadLimitField, * fDownloadLimitField, * fRatioLimitField, + * fUploadLimitLabel, * fDownloadLimitLabel; } - (void) updateInfoForTorrents: (NSArray *) torrents; diff --git a/macosx/InfoWindowController.m b/macosx/InfoWindowController.m index 364f663f6..b8cbb3a87 100644 --- a/macosx/InfoWindowController.m +++ b/macosx/InfoWindowController.m @@ -412,10 +412,12 @@ : (limitCustom == 1 ? NSOnState : NSOffState)]; [fUploadLimitCheck setEnabled: limitCustom == 1]; + [fUploadLimitLabel setEnabled: limitCustom == 1]; [fUploadLimitCheck setState: checkUpload == INVALID ? NSMixedState : (checkUpload == 1 ? NSOnState : NSOffState)]; [fDownloadLimitCheck setEnabled: limitCustom == 1]; + [fDownloadLimitLabel setEnabled: limitCustom == 1]; [fDownloadLimitCheck setState: checkDownload == INVALID ? NSMixedState : (checkDownload == 1 ? NSOnState : NSOffState)]; @@ -475,11 +477,13 @@ [fUploadLimitCheck setState: NSOffState]; [fUploadLimitField setEnabled: NO]; [fUploadLimitField setStringValue: @""]; + [fUploadLimitLabel setEnabled: NO]; [fDownloadLimitCheck setEnabled: NO]; [fDownloadLimitCheck setState: NSOffState]; [fDownloadLimitField setEnabled: NO]; [fDownloadLimitField setStringValue: @""]; + [fDownloadLimitLabel setEnabled: NO]; [fRatioCustomCheck setEnabled: NO]; [fRatioCustomCheck setState: NSOffState]; @@ -704,9 +708,11 @@ [torrent setCustomLimitSetting: custom]; [fUploadLimitCheck setEnabled: custom]; + [fUploadLimitLabel setEnabled: custom]; [fUploadLimitField setEnabled: custom && [fUploadLimitCheck state] == NSOnState]; [fDownloadLimitCheck setEnabled: custom]; + [fDownloadLimitLabel setEnabled: custom]; [fDownloadLimitField setEnabled: custom && [fDownloadLimitCheck state] == NSOnState]; }