hopefully this makes the inspector less confusing once and for all....use popup buttons instead of checks
This commit is contained in:
parent
603a374a6b
commit
6c85eee3f8
|
@ -8,7 +8,7 @@
|
||||||
revealDataFile = id;
|
revealDataFile = id;
|
||||||
revealFile = id;
|
revealFile = id;
|
||||||
revealTorrentFile = id;
|
revealTorrentFile = id;
|
||||||
setLimitCheck = id;
|
setLimitSetting = id;
|
||||||
setRatioLimit = id;
|
setRatioLimit = id;
|
||||||
setRatioSetting = id;
|
setRatioSetting = id;
|
||||||
setSpeedLimit = id;
|
setSpeedLimit = id;
|
||||||
|
@ -23,9 +23,9 @@
|
||||||
fDataLocationField = NSTextField;
|
fDataLocationField = NSTextField;
|
||||||
fDateCreatedField = NSTextField;
|
fDateCreatedField = NSTextField;
|
||||||
fDateStartedField = NSTextField;
|
fDateStartedField = NSTextField;
|
||||||
fDownloadLimitCheck = NSButton;
|
|
||||||
fDownloadLimitField = NSTextField;
|
fDownloadLimitField = NSTextField;
|
||||||
fDownloadLimitLabel = NSTextField;
|
fDownloadLimitLabel = NSTextField;
|
||||||
|
fDownloadLimitPopUp = NSPopUpButton;
|
||||||
fDownloadedTotalField = NSTextField;
|
fDownloadedTotalField = NSTextField;
|
||||||
fDownloadedValidField = NSTextField;
|
fDownloadedValidField = NSTextField;
|
||||||
fDownloadingFromField = NSTextField;
|
fDownloadingFromField = NSTextField;
|
||||||
|
@ -39,9 +39,9 @@
|
||||||
fPeerTable = NSTableView;
|
fPeerTable = NSTableView;
|
||||||
fPiecesField = NSTextField;
|
fPiecesField = NSTextField;
|
||||||
fPiecesView = PiecesView;
|
fPiecesView = PiecesView;
|
||||||
fRatioCheck = NSButton;
|
|
||||||
fRatioField = NSTextField;
|
fRatioField = NSTextField;
|
||||||
fRatioLimitField = NSTextField;
|
fRatioLimitField = NSTextField;
|
||||||
|
fRatioPopUp = NSPopUpButton;
|
||||||
fRevealDataButton = NSButton;
|
fRevealDataButton = NSButton;
|
||||||
fRevealTorrentButton = NSButton;
|
fRevealTorrentButton = NSButton;
|
||||||
fSecureField = NSTextField;
|
fSecureField = NSTextField;
|
||||||
|
@ -52,9 +52,9 @@
|
||||||
fTabView = NSTabView;
|
fTabView = NSTabView;
|
||||||
fTorrentLocationField = NSTextField;
|
fTorrentLocationField = NSTextField;
|
||||||
fTrackerField = NSTextField;
|
fTrackerField = NSTextField;
|
||||||
fUploadLimitCheck = NSButton;
|
|
||||||
fUploadLimitField = NSTextField;
|
fUploadLimitField = NSTextField;
|
||||||
fUploadLimitLabel = NSTextField;
|
fUploadLimitLabel = NSTextField;
|
||||||
|
fUploadLimitPopUp = NSPopUpButton;
|
||||||
fUploadedTotalField = NSTextField;
|
fUploadedTotalField = NSTextField;
|
||||||
fUploadingToField = NSTextField;
|
fUploadingToField = NSTextField;
|
||||||
};
|
};
|
||||||
|
|
Binary file not shown.
|
@ -56,7 +56,7 @@
|
||||||
IBOutlet NSOutlineView * fFileOutline;
|
IBOutlet NSOutlineView * fFileOutline;
|
||||||
IBOutlet NSTextField * fFileTableStatusField;
|
IBOutlet NSTextField * fFileTableStatusField;
|
||||||
|
|
||||||
IBOutlet NSButton * fRatioCheck, * fUploadLimitCheck, * fDownloadLimitCheck;
|
IBOutlet NSPopUpButton * fRatioPopUp, * fUploadLimitPopUp, * fDownloadLimitPopUp;
|
||||||
IBOutlet NSTextField * fUploadLimitField, * fDownloadLimitField, * fRatioLimitField,
|
IBOutlet NSTextField * fUploadLimitField, * fDownloadLimitField, * fRatioLimitField,
|
||||||
* fUploadLimitLabel, * fDownloadLimitLabel;
|
* fUploadLimitLabel, * fDownloadLimitLabel;
|
||||||
}
|
}
|
||||||
|
@ -71,7 +71,7 @@
|
||||||
- (void) revealDataFile: (id) sender;
|
- (void) revealDataFile: (id) sender;
|
||||||
- (void) revealFile: (id) sender;
|
- (void) revealFile: (id) sender;
|
||||||
|
|
||||||
- (void) setLimitCheck: (id) sender;
|
- (void) setLimitSetting: (id) sender;
|
||||||
- (void) setSpeedLimit: (id) sender;
|
- (void) setSpeedLimit: (id) sender;
|
||||||
|
|
||||||
- (void) setRatioSetting: (id) sender;
|
- (void) setRatioSetting: (id) sender;
|
||||||
|
|
|
@ -41,7 +41,11 @@
|
||||||
#define TAB_ACTIVITY_HEIGHT 170.0
|
#define TAB_ACTIVITY_HEIGHT 170.0
|
||||||
#define TAB_PEERS_HEIGHT 268.0
|
#define TAB_PEERS_HEIGHT 268.0
|
||||||
#define TAB_FILES_HEIGHT 268.0
|
#define TAB_FILES_HEIGHT 268.0
|
||||||
#define TAB_OPTIONS_HEIGHT 112.0
|
#define TAB_OPTIONS_HEIGHT 117.0
|
||||||
|
|
||||||
|
#define OPTION_POPUP_GLOBAL 0
|
||||||
|
#define OPTION_POPUP_NO_LIMIT 1
|
||||||
|
#define OPTION_POPUP_LIMIT 2
|
||||||
|
|
||||||
#define INVALID -99
|
#define INVALID -99
|
||||||
|
|
||||||
|
@ -58,6 +62,9 @@
|
||||||
- (void) setFileCheckState: (int) state forItem: (NSMutableDictionary *) item;
|
- (void) setFileCheckState: (int) state forItem: (NSMutableDictionary *) item;
|
||||||
- (NSMutableDictionary *) resetFileCheckStateForItemParent: (NSMutableDictionary *) originalChild;
|
- (NSMutableDictionary *) resetFileCheckStateForItemParent: (NSMutableDictionary *) originalChild;
|
||||||
|
|
||||||
|
- (int) stateSettingToPopUpIndex: (int) index;
|
||||||
|
- (int) popUpIndexToStateSetting: (int) index;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@implementation InfoWindowController
|
@implementation InfoWindowController
|
||||||
|
@ -399,36 +406,36 @@
|
||||||
uploadLimit = [torrent uploadLimit],
|
uploadLimit = [torrent uploadLimit],
|
||||||
downloadLimit = [torrent downloadLimit];
|
downloadLimit = [torrent downloadLimit];
|
||||||
|
|
||||||
while ((checkUpload != NSMixedState || uploadLimit != INVALID
|
while ((checkUpload != INVALID || uploadLimit != INVALID
|
||||||
|| checkDownload != NSMixedState || downloadLimit != INVALID)
|
|| checkDownload != INVALID || downloadLimit != INVALID)
|
||||||
&& (torrent = [enumerator nextObject]))
|
&& (torrent = [enumerator nextObject]))
|
||||||
{
|
{
|
||||||
if (checkUpload != NSMixedState && checkUpload != [torrent checkUpload])
|
if (checkUpload != INVALID && checkUpload != [torrent checkUpload])
|
||||||
checkUpload = NSMixedState;
|
checkUpload = INVALID;
|
||||||
|
|
||||||
if (uploadLimit != INVALID && uploadLimit != [torrent uploadLimit])
|
if (uploadLimit != INVALID && uploadLimit != [torrent uploadLimit])
|
||||||
uploadLimit = INVALID;
|
uploadLimit = INVALID;
|
||||||
|
|
||||||
if (checkDownload != NSMixedState && checkDownload != [torrent checkDownload])
|
if (checkDownload != INVALID && checkDownload != [torrent checkDownload])
|
||||||
checkDownload = NSMixedState;
|
checkDownload = INVALID;
|
||||||
|
|
||||||
if (downloadLimit != INVALID && downloadLimit != [torrent downloadLimit])
|
if (downloadLimit != INVALID && downloadLimit != [torrent downloadLimit])
|
||||||
downloadLimit = INVALID;
|
downloadLimit = INVALID;
|
||||||
}
|
}
|
||||||
|
|
||||||
[fUploadLimitCheck setEnabled: YES];
|
[fUploadLimitPopUp setEnabled: YES];
|
||||||
[fUploadLimitCheck setState: checkUpload];
|
[fUploadLimitPopUp selectItemAtIndex: [self stateSettingToPopUpIndex: checkUpload]];
|
||||||
[fUploadLimitLabel setEnabled: checkUpload == NSOnState];
|
[fUploadLimitLabel setHidden: checkUpload != NSOnState];
|
||||||
[fUploadLimitField setEnabled: checkUpload == NSOnState];
|
[fUploadLimitField setHidden: checkUpload != NSOnState];
|
||||||
if (uploadLimit != INVALID)
|
if (uploadLimit != INVALID)
|
||||||
[fUploadLimitField setIntValue: uploadLimit];
|
[fUploadLimitField setIntValue: uploadLimit];
|
||||||
else
|
else
|
||||||
[fUploadLimitField setStringValue: @""];
|
[fUploadLimitField setStringValue: @""];
|
||||||
|
|
||||||
[fDownloadLimitCheck setEnabled: YES];
|
[fDownloadLimitPopUp setEnabled: YES];
|
||||||
[fDownloadLimitCheck setState: checkDownload];
|
[fDownloadLimitPopUp selectItemAtIndex: [self stateSettingToPopUpIndex: checkDownload]];
|
||||||
[fDownloadLimitLabel setEnabled: checkDownload == NSOnState];
|
[fDownloadLimitLabel setHidden: checkDownload != NSOnState];
|
||||||
[fDownloadLimitField setEnabled: checkDownload == NSOnState];
|
[fDownloadLimitField setHidden: checkDownload != NSOnState];
|
||||||
if (downloadLimit != INVALID)
|
if (downloadLimit != INVALID)
|
||||||
[fDownloadLimitField setIntValue: downloadLimit];
|
[fDownloadLimitField setIntValue: downloadLimit];
|
||||||
else
|
else
|
||||||
|
@ -438,22 +445,22 @@
|
||||||
enumerator = [fTorrents objectEnumerator];
|
enumerator = [fTorrents objectEnumerator];
|
||||||
torrent = [enumerator nextObject]; //first torrent
|
torrent = [enumerator nextObject]; //first torrent
|
||||||
|
|
||||||
int ratioSetting = [torrent ratioSetting];
|
int checkRatio = [torrent ratioSetting];
|
||||||
float ratioLimit = [torrent ratioLimit];
|
float ratioLimit = [torrent ratioLimit];
|
||||||
|
|
||||||
while ((ratioSetting != NSMixedState || ratioLimit != INVALID)
|
while ((checkRatio != INVALID || checkRatio != INVALID)
|
||||||
&& (torrent = [enumerator nextObject]))
|
&& (torrent = [enumerator nextObject]))
|
||||||
{
|
{
|
||||||
if (ratioSetting != NSMixedState && ratioSetting != [torrent ratioSetting])
|
if (checkRatio != INVALID && checkRatio != [torrent ratioSetting])
|
||||||
ratioSetting = NSMixedState;
|
checkRatio = INVALID;
|
||||||
|
|
||||||
if (ratioLimit != INVALID && ratioLimit != [torrent ratioLimit])
|
if (ratioLimit != INVALID && ratioLimit != [torrent ratioLimit])
|
||||||
ratioLimit = INVALID;
|
ratioLimit = INVALID;
|
||||||
}
|
}
|
||||||
|
|
||||||
[fRatioCheck setEnabled: YES];
|
[fRatioPopUp setEnabled: YES];
|
||||||
[fRatioCheck setState: ratioSetting];
|
[fRatioPopUp selectItemAtIndex: [self stateSettingToPopUpIndex: checkRatio]];
|
||||||
[fRatioLimitField setEnabled: ratioSetting == NSOnState];
|
[fRatioLimitField setHidden: checkRatio != NSOnState];
|
||||||
if (ratioLimit != INVALID)
|
if (ratioLimit != INVALID)
|
||||||
[fRatioLimitField setFloatValue: ratioLimit];
|
[fRatioLimitField setFloatValue: ratioLimit];
|
||||||
else
|
else
|
||||||
|
@ -461,27 +468,51 @@
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
[fUploadLimitCheck setEnabled: NO];
|
[fUploadLimitPopUp setEnabled: NO];
|
||||||
[fUploadLimitCheck setState: NSOffState];
|
[fUploadLimitPopUp selectItemAtIndex: -1];
|
||||||
[fUploadLimitField setEnabled: NO];
|
[fUploadLimitField setHidden: YES];
|
||||||
|
[fUploadLimitLabel setHidden: YES];
|
||||||
[fUploadLimitField setStringValue: @""];
|
[fUploadLimitField setStringValue: @""];
|
||||||
[fUploadLimitLabel setEnabled: NO];
|
|
||||||
|
|
||||||
[fDownloadLimitCheck setEnabled: NO];
|
[fDownloadLimitPopUp setEnabled: NO];
|
||||||
[fDownloadLimitCheck setState: NSOffState];
|
[fDownloadLimitPopUp selectItemAtIndex: -1];
|
||||||
[fDownloadLimitField setEnabled: NO];
|
[fDownloadLimitField setHidden: YES];
|
||||||
|
[fDownloadLimitLabel setHidden: YES];
|
||||||
[fDownloadLimitField setStringValue: @""];
|
[fDownloadLimitField setStringValue: @""];
|
||||||
[fDownloadLimitLabel setEnabled: NO];
|
|
||||||
|
|
||||||
[fRatioCheck setEnabled: NO];
|
[fRatioPopUp setEnabled: NO];
|
||||||
[fRatioCheck setState: NSOffState];
|
[fRatioPopUp selectItemAtIndex: -1];
|
||||||
[fRatioLimitField setEnabled: NO];
|
[fRatioLimitField setHidden: YES];
|
||||||
[fRatioLimitField setStringValue: @""];
|
[fRatioLimitField setStringValue: @""];
|
||||||
}
|
}
|
||||||
|
|
||||||
[self updateInfoStats];
|
[self updateInfoStats];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (int) stateSettingToPopUpIndex: (int) index
|
||||||
|
{
|
||||||
|
if (index == NSOnState)
|
||||||
|
return OPTION_POPUP_LIMIT;
|
||||||
|
else if (index == NSOffState)
|
||||||
|
return OPTION_POPUP_NO_LIMIT;
|
||||||
|
else if (index == NSMixedState)
|
||||||
|
return OPTION_POPUP_GLOBAL;
|
||||||
|
else
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (int) popUpIndexToStateSetting: (int) index
|
||||||
|
{
|
||||||
|
if (index == OPTION_POPUP_LIMIT)
|
||||||
|
return NSOnState;
|
||||||
|
else if (index == OPTION_POPUP_NO_LIMIT)
|
||||||
|
return NSOffState;
|
||||||
|
else if (index == OPTION_POPUP_GLOBAL)
|
||||||
|
return NSMixedState;
|
||||||
|
else
|
||||||
|
return INVALID;
|
||||||
|
}
|
||||||
|
|
||||||
- (BOOL) validateMenuItem: (NSMenuItem *) menuItem
|
- (BOOL) validateMenuItem: (NSMenuItem *) menuItem
|
||||||
{
|
{
|
||||||
SEL action = [menuItem action];
|
SEL action = [menuItem action];
|
||||||
|
@ -808,18 +839,22 @@
|
||||||
[[fFileOutline itemAtRow: i] objectForKey: @"Path"]] inFileViewerRootedAtPath: nil];
|
[[fFileOutline itemAtRow: i] objectForKey: @"Path"]] inFileViewerRootedAtPath: nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) setLimitCheck: (id) sender
|
- (void) setLimitSetting: (id) sender
|
||||||
{
|
{
|
||||||
BOOL upload = sender == fUploadLimitCheck;
|
BOOL upload = sender == fUploadLimitPopUp;
|
||||||
int state = [sender state];
|
int setting;
|
||||||
|
if ((setting = [self popUpIndexToStateSetting: [sender indexOfSelectedItem]]) == INVALID)
|
||||||
|
return;
|
||||||
|
|
||||||
Torrent * torrent;
|
Torrent * torrent;
|
||||||
NSEnumerator * enumerator = [fTorrents objectEnumerator];
|
NSEnumerator * enumerator = [fTorrents objectEnumerator];
|
||||||
while ((torrent = [enumerator nextObject]))
|
while ((torrent = [enumerator nextObject]))
|
||||||
upload ? [torrent setCheckUpload: state] : [torrent setCheckDownload: state];
|
upload ? [torrent setCheckUpload: setting] : [torrent setCheckDownload: setting];
|
||||||
|
|
||||||
NSTextField * field = upload ? fUploadLimitField : fDownloadLimitField;
|
NSTextField * field = upload ? fUploadLimitField : fDownloadLimitField;
|
||||||
[field setEnabled: state == NSOnState];
|
[field setHidden: setting != NSOnState];
|
||||||
|
NSTextField * label = upload ? fUploadLimitLabel : fDownloadLimitLabel;
|
||||||
|
[label setHidden: setting != NSOnState];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) setSpeedLimit: (id) sender
|
- (void) setSpeedLimit: (id) sender
|
||||||
|
@ -854,14 +889,16 @@
|
||||||
|
|
||||||
- (void) setRatioSetting: (id) sender
|
- (void) setRatioSetting: (id) sender
|
||||||
{
|
{
|
||||||
int state = [sender state];
|
int setting;
|
||||||
|
if ((setting = [self popUpIndexToStateSetting: [sender indexOfSelectedItem]]) == INVALID)
|
||||||
|
return;
|
||||||
|
|
||||||
Torrent * torrent;
|
Torrent * torrent;
|
||||||
NSEnumerator * enumerator = [fTorrents objectEnumerator];
|
NSEnumerator * enumerator = [fTorrents objectEnumerator];
|
||||||
while ((torrent = [enumerator nextObject]))
|
while ((torrent = [enumerator nextObject]))
|
||||||
[torrent setRatioSetting: state];
|
[torrent setRatioSetting: setting];
|
||||||
|
|
||||||
[fRatioLimitField setEnabled: state == NSOnState];
|
[fRatioLimitField setHidden: setting != NSOnState];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) setRatioLimit: (id) sender
|
- (void) setRatioLimit: (id) sender
|
||||||
|
|
Loading…
Reference in New Issue