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;
|
||||
revealFile = id;
|
||||
revealTorrentFile = id;
|
||||
setLimitCheck = id;
|
||||
setLimitSetting = id;
|
||||
setRatioLimit = id;
|
||||
setRatioSetting = id;
|
||||
setSpeedLimit = id;
|
||||
|
@ -23,9 +23,9 @@
|
|||
fDataLocationField = NSTextField;
|
||||
fDateCreatedField = NSTextField;
|
||||
fDateStartedField = NSTextField;
|
||||
fDownloadLimitCheck = NSButton;
|
||||
fDownloadLimitField = NSTextField;
|
||||
fDownloadLimitLabel = NSTextField;
|
||||
fDownloadLimitPopUp = NSPopUpButton;
|
||||
fDownloadedTotalField = NSTextField;
|
||||
fDownloadedValidField = NSTextField;
|
||||
fDownloadingFromField = NSTextField;
|
||||
|
@ -39,9 +39,9 @@
|
|||
fPeerTable = NSTableView;
|
||||
fPiecesField = NSTextField;
|
||||
fPiecesView = PiecesView;
|
||||
fRatioCheck = NSButton;
|
||||
fRatioField = NSTextField;
|
||||
fRatioLimitField = NSTextField;
|
||||
fRatioPopUp = NSPopUpButton;
|
||||
fRevealDataButton = NSButton;
|
||||
fRevealTorrentButton = NSButton;
|
||||
fSecureField = NSTextField;
|
||||
|
@ -52,9 +52,9 @@
|
|||
fTabView = NSTabView;
|
||||
fTorrentLocationField = NSTextField;
|
||||
fTrackerField = NSTextField;
|
||||
fUploadLimitCheck = NSButton;
|
||||
fUploadLimitField = NSTextField;
|
||||
fUploadLimitLabel = NSTextField;
|
||||
fUploadLimitPopUp = NSPopUpButton;
|
||||
fUploadedTotalField = NSTextField;
|
||||
fUploadingToField = NSTextField;
|
||||
};
|
||||
|
|
Binary file not shown.
|
@ -56,7 +56,7 @@
|
|||
IBOutlet NSOutlineView * fFileOutline;
|
||||
IBOutlet NSTextField * fFileTableStatusField;
|
||||
|
||||
IBOutlet NSButton * fRatioCheck, * fUploadLimitCheck, * fDownloadLimitCheck;
|
||||
IBOutlet NSPopUpButton * fRatioPopUp, * fUploadLimitPopUp, * fDownloadLimitPopUp;
|
||||
IBOutlet NSTextField * fUploadLimitField, * fDownloadLimitField, * fRatioLimitField,
|
||||
* fUploadLimitLabel, * fDownloadLimitLabel;
|
||||
}
|
||||
|
@ -71,7 +71,7 @@
|
|||
- (void) revealDataFile: (id) sender;
|
||||
- (void) revealFile: (id) sender;
|
||||
|
||||
- (void) setLimitCheck: (id) sender;
|
||||
- (void) setLimitSetting: (id) sender;
|
||||
- (void) setSpeedLimit: (id) sender;
|
||||
|
||||
- (void) setRatioSetting: (id) sender;
|
||||
|
|
|
@ -41,7 +41,11 @@
|
|||
#define TAB_ACTIVITY_HEIGHT 170.0
|
||||
#define TAB_PEERS_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
|
||||
|
||||
|
@ -58,6 +62,9 @@
|
|||
- (void) setFileCheckState: (int) state forItem: (NSMutableDictionary *) item;
|
||||
- (NSMutableDictionary *) resetFileCheckStateForItemParent: (NSMutableDictionary *) originalChild;
|
||||
|
||||
- (int) stateSettingToPopUpIndex: (int) index;
|
||||
- (int) popUpIndexToStateSetting: (int) index;
|
||||
|
||||
@end
|
||||
|
||||
@implementation InfoWindowController
|
||||
|
@ -399,36 +406,36 @@
|
|||
uploadLimit = [torrent uploadLimit],
|
||||
downloadLimit = [torrent downloadLimit];
|
||||
|
||||
while ((checkUpload != NSMixedState || uploadLimit != INVALID
|
||||
|| checkDownload != NSMixedState || downloadLimit != INVALID)
|
||||
while ((checkUpload != INVALID || uploadLimit != INVALID
|
||||
|| checkDownload != INVALID || downloadLimit != INVALID)
|
||||
&& (torrent = [enumerator nextObject]))
|
||||
{
|
||||
if (checkUpload != NSMixedState && checkUpload != [torrent checkUpload])
|
||||
checkUpload = NSMixedState;
|
||||
if (checkUpload != INVALID && checkUpload != [torrent checkUpload])
|
||||
checkUpload = INVALID;
|
||||
|
||||
if (uploadLimit != INVALID && uploadLimit != [torrent uploadLimit])
|
||||
uploadLimit = INVALID;
|
||||
|
||||
if (checkDownload != NSMixedState && checkDownload != [torrent checkDownload])
|
||||
checkDownload = NSMixedState;
|
||||
if (checkDownload != INVALID && checkDownload != [torrent checkDownload])
|
||||
checkDownload = INVALID;
|
||||
|
||||
if (downloadLimit != INVALID && downloadLimit != [torrent downloadLimit])
|
||||
downloadLimit = INVALID;
|
||||
}
|
||||
|
||||
[fUploadLimitCheck setEnabled: YES];
|
||||
[fUploadLimitCheck setState: checkUpload];
|
||||
[fUploadLimitLabel setEnabled: checkUpload == NSOnState];
|
||||
[fUploadLimitField setEnabled: checkUpload == NSOnState];
|
||||
[fUploadLimitPopUp setEnabled: YES];
|
||||
[fUploadLimitPopUp selectItemAtIndex: [self stateSettingToPopUpIndex: checkUpload]];
|
||||
[fUploadLimitLabel setHidden: checkUpload != NSOnState];
|
||||
[fUploadLimitField setHidden: checkUpload != NSOnState];
|
||||
if (uploadLimit != INVALID)
|
||||
[fUploadLimitField setIntValue: uploadLimit];
|
||||
else
|
||||
[fUploadLimitField setStringValue: @""];
|
||||
|
||||
[fDownloadLimitCheck setEnabled: YES];
|
||||
[fDownloadLimitCheck setState: checkDownload];
|
||||
[fDownloadLimitLabel setEnabled: checkDownload == NSOnState];
|
||||
[fDownloadLimitField setEnabled: checkDownload == NSOnState];
|
||||
[fDownloadLimitPopUp setEnabled: YES];
|
||||
[fDownloadLimitPopUp selectItemAtIndex: [self stateSettingToPopUpIndex: checkDownload]];
|
||||
[fDownloadLimitLabel setHidden: checkDownload != NSOnState];
|
||||
[fDownloadLimitField setHidden: checkDownload != NSOnState];
|
||||
if (downloadLimit != INVALID)
|
||||
[fDownloadLimitField setIntValue: downloadLimit];
|
||||
else
|
||||
|
@ -438,22 +445,22 @@
|
|||
enumerator = [fTorrents objectEnumerator];
|
||||
torrent = [enumerator nextObject]; //first torrent
|
||||
|
||||
int ratioSetting = [torrent ratioSetting];
|
||||
int checkRatio = [torrent ratioSetting];
|
||||
float ratioLimit = [torrent ratioLimit];
|
||||
|
||||
while ((ratioSetting != NSMixedState || ratioLimit != INVALID)
|
||||
while ((checkRatio != INVALID || checkRatio != INVALID)
|
||||
&& (torrent = [enumerator nextObject]))
|
||||
{
|
||||
if (ratioSetting != NSMixedState && ratioSetting != [torrent ratioSetting])
|
||||
ratioSetting = NSMixedState;
|
||||
if (checkRatio != INVALID && checkRatio != [torrent ratioSetting])
|
||||
checkRatio = INVALID;
|
||||
|
||||
if (ratioLimit != INVALID && ratioLimit != [torrent ratioLimit])
|
||||
ratioLimit = INVALID;
|
||||
}
|
||||
|
||||
[fRatioCheck setEnabled: YES];
|
||||
[fRatioCheck setState: ratioSetting];
|
||||
[fRatioLimitField setEnabled: ratioSetting == NSOnState];
|
||||
[fRatioPopUp setEnabled: YES];
|
||||
[fRatioPopUp selectItemAtIndex: [self stateSettingToPopUpIndex: checkRatio]];
|
||||
[fRatioLimitField setHidden: checkRatio != NSOnState];
|
||||
if (ratioLimit != INVALID)
|
||||
[fRatioLimitField setFloatValue: ratioLimit];
|
||||
else
|
||||
|
@ -461,27 +468,51 @@
|
|||
}
|
||||
else
|
||||
{
|
||||
[fUploadLimitCheck setEnabled: NO];
|
||||
[fUploadLimitCheck setState: NSOffState];
|
||||
[fUploadLimitField setEnabled: NO];
|
||||
[fUploadLimitPopUp setEnabled: NO];
|
||||
[fUploadLimitPopUp selectItemAtIndex: -1];
|
||||
[fUploadLimitField setHidden: YES];
|
||||
[fUploadLimitLabel setHidden: YES];
|
||||
[fUploadLimitField setStringValue: @""];
|
||||
[fUploadLimitLabel setEnabled: NO];
|
||||
|
||||
[fDownloadLimitCheck setEnabled: NO];
|
||||
[fDownloadLimitCheck setState: NSOffState];
|
||||
[fDownloadLimitField setEnabled: NO];
|
||||
[fDownloadLimitPopUp setEnabled: NO];
|
||||
[fDownloadLimitPopUp selectItemAtIndex: -1];
|
||||
[fDownloadLimitField setHidden: YES];
|
||||
[fDownloadLimitLabel setHidden: YES];
|
||||
[fDownloadLimitField setStringValue: @""];
|
||||
[fDownloadLimitLabel setEnabled: NO];
|
||||
|
||||
[fRatioCheck setEnabled: NO];
|
||||
[fRatioCheck setState: NSOffState];
|
||||
[fRatioLimitField setEnabled: NO];
|
||||
[fRatioPopUp setEnabled: NO];
|
||||
[fRatioPopUp selectItemAtIndex: -1];
|
||||
[fRatioLimitField setHidden: YES];
|
||||
[fRatioLimitField setStringValue: @""];
|
||||
}
|
||||
|
||||
[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
|
||||
{
|
||||
SEL action = [menuItem action];
|
||||
|
@ -808,18 +839,22 @@
|
|||
[[fFileOutline itemAtRow: i] objectForKey: @"Path"]] inFileViewerRootedAtPath: nil];
|
||||
}
|
||||
|
||||
- (void) setLimitCheck: (id) sender
|
||||
- (void) setLimitSetting: (id) sender
|
||||
{
|
||||
BOOL upload = sender == fUploadLimitCheck;
|
||||
int state = [sender state];
|
||||
BOOL upload = sender == fUploadLimitPopUp;
|
||||
int setting;
|
||||
if ((setting = [self popUpIndexToStateSetting: [sender indexOfSelectedItem]]) == INVALID)
|
||||
return;
|
||||
|
||||
Torrent * torrent;
|
||||
NSEnumerator * enumerator = [fTorrents objectEnumerator];
|
||||
while ((torrent = [enumerator nextObject]))
|
||||
upload ? [torrent setCheckUpload: state] : [torrent setCheckDownload: state];
|
||||
upload ? [torrent setCheckUpload: setting] : [torrent setCheckDownload: setting];
|
||||
|
||||
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
|
||||
|
@ -854,14 +889,16 @@
|
|||
|
||||
- (void) setRatioSetting: (id) sender
|
||||
{
|
||||
int state = [sender state];
|
||||
int setting;
|
||||
if ((setting = [self popUpIndexToStateSetting: [sender indexOfSelectedItem]]) == INVALID)
|
||||
return;
|
||||
|
||||
Torrent * torrent;
|
||||
NSEnumerator * enumerator = [fTorrents objectEnumerator];
|
||||
while ((torrent = [enumerator nextObject]))
|
||||
[torrent setRatioSetting: state];
|
||||
[torrent setRatioSetting: setting];
|
||||
|
||||
[fRatioLimitField setEnabled: state == NSOnState];
|
||||
[fRatioLimitField setHidden: setting != NSOnState];
|
||||
}
|
||||
|
||||
- (void) setRatioLimit: (id) sender
|
||||
|
|
Loading…
Reference in New Issue