mirror of
https://github.com/transmission/transmission
synced 2025-03-06 03:28:33 +00:00
speeds in group rows - Tiger support is currently broken
This commit is contained in:
parent
f5d33a3da1
commit
a261460bdd
8 changed files with 5689 additions and 2276 deletions
1
NEWS
1
NEWS
|
@ -6,6 +6,7 @@ NEWS file for Transmission <http://www.transmissionbt.com/>
|
||||||
+ Leopard: Group dividers
|
+ Leopard: Group dividers
|
||||||
+ Use the file icon as the per-torrent action button
|
+ Use the file icon as the per-torrent action button
|
||||||
+ Updated images in the inspector
|
+ Updated images in the inspector
|
||||||
|
+ Optional display of remaining time while seeding in Minimal View
|
||||||
|
|
||||||
1.05 (2008/02/08)
|
1.05 (2008/02/08)
|
||||||
- All Platforms:
|
- All Platforms:
|
||||||
|
|
|
@ -137,8 +137,8 @@
|
||||||
A29576030D11D63C0093B167 /* Creator.xib in Resources */ = {isa = PBXBuildFile; fileRef = A29576010D11D63C0093B167 /* Creator.xib */; };
|
A29576030D11D63C0093B167 /* Creator.xib in Resources */ = {isa = PBXBuildFile; fileRef = A29576010D11D63C0093B167 /* Creator.xib */; };
|
||||||
A29576080D11D70E0093B167 /* MessageWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = A29576060D11D70E0093B167 /* MessageWindow.xib */; };
|
A29576080D11D70E0093B167 /* MessageWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = A29576060D11D70E0093B167 /* MessageWindow.xib */; };
|
||||||
A29576130D11D8DD0093B167 /* InfoWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = A29576110D11D8DD0093B167 /* InfoWindow.xib */; };
|
A29576130D11D8DD0093B167 /* InfoWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = A29576110D11D8DD0093B167 /* InfoWindow.xib */; };
|
||||||
A29AF4F70D01BADC00D097EC /* DownArrow.png in Resources */ = {isa = PBXBuildFile; fileRef = A29AF4F60D01BADC00D097EC /* DownArrow.png */; };
|
A29AF4F70D01BADC00D097EC /* DownArrowTemplate.png in Resources */ = {isa = PBXBuildFile; fileRef = A29AF4F60D01BADC00D097EC /* DownArrowTemplate.png */; };
|
||||||
A29AF4F90D01BAEB00D097EC /* UpArrow.png in Resources */ = {isa = PBXBuildFile; fileRef = A29AF4F80D01BAEB00D097EC /* UpArrow.png */; };
|
A29AF4F90D01BAEB00D097EC /* UpArrowTemplate.png in Resources */ = {isa = PBXBuildFile; fileRef = A29AF4F80D01BAEB00D097EC /* UpArrowTemplate.png */; };
|
||||||
A29B0C270BD15FEF0006F230 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = A2F8951E0A2D4BA500ED2127 /* Credits.rtf */; };
|
A29B0C270BD15FEF0006F230 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = A2F8951E0A2D4BA500ED2127 /* Credits.rtf */; };
|
||||||
A29C8B370ACC6EB3000ED9F9 /* PortChecker.m in Sources */ = {isa = PBXBuildFile; fileRef = A29C8B350ACC6EB3000ED9F9 /* PortChecker.m */; };
|
A29C8B370ACC6EB3000ED9F9 /* PortChecker.m in Sources */ = {isa = PBXBuildFile; fileRef = A29C8B350ACC6EB3000ED9F9 /* PortChecker.m */; };
|
||||||
A2A1CB7A0BF29D5500AE959F /* PeerProgressIndicatorCell.m in Sources */ = {isa = PBXBuildFile; fileRef = A2A1CB780BF29D5500AE959F /* PeerProgressIndicatorCell.m */; };
|
A2A1CB7A0BF29D5500AE959F /* PeerProgressIndicatorCell.m in Sources */ = {isa = PBXBuildFile; fileRef = A2A1CB780BF29D5500AE959F /* PeerProgressIndicatorCell.m */; };
|
||||||
|
@ -548,8 +548,8 @@
|
||||||
A29576020D11D63C0093B167 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = macosx/English.lproj/Creator.xib; sourceTree = "<group>"; };
|
A29576020D11D63C0093B167 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = macosx/English.lproj/Creator.xib; sourceTree = "<group>"; };
|
||||||
A29576070D11D70E0093B167 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = macosx/English.lproj/MessageWindow.xib; sourceTree = "<group>"; };
|
A29576070D11D70E0093B167 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = macosx/English.lproj/MessageWindow.xib; sourceTree = "<group>"; };
|
||||||
A29576120D11D8DD0093B167 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = macosx/English.lproj/InfoWindow.xib; sourceTree = "<group>"; };
|
A29576120D11D8DD0093B167 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = macosx/English.lproj/InfoWindow.xib; sourceTree = "<group>"; };
|
||||||
A29AF4F60D01BADC00D097EC /* DownArrow.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = DownArrow.png; path = macosx/Images/DownArrow.png; sourceTree = "<group>"; };
|
A29AF4F60D01BADC00D097EC /* DownArrowTemplate.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = DownArrowTemplate.png; path = macosx/Images/DownArrowTemplate.png; sourceTree = "<group>"; };
|
||||||
A29AF4F80D01BAEB00D097EC /* UpArrow.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = UpArrow.png; path = macosx/Images/UpArrow.png; sourceTree = "<group>"; };
|
A29AF4F80D01BAEB00D097EC /* UpArrowTemplate.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = UpArrowTemplate.png; path = macosx/Images/UpArrowTemplate.png; sourceTree = "<group>"; };
|
||||||
A29C8B340ACC6EB3000ED9F9 /* PortChecker.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = PortChecker.h; path = macosx/PortChecker.h; sourceTree = "<group>"; };
|
A29C8B340ACC6EB3000ED9F9 /* PortChecker.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = PortChecker.h; path = macosx/PortChecker.h; sourceTree = "<group>"; };
|
||||||
A29C8B350ACC6EB3000ED9F9 /* PortChecker.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = PortChecker.m; path = macosx/PortChecker.m; sourceTree = "<group>"; };
|
A29C8B350ACC6EB3000ED9F9 /* PortChecker.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = PortChecker.m; path = macosx/PortChecker.m; sourceTree = "<group>"; };
|
||||||
A2A1CB770BF29D5500AE959F /* PeerProgressIndicatorCell.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = PeerProgressIndicatorCell.h; path = macosx/PeerProgressIndicatorCell.h; sourceTree = "<group>"; };
|
A2A1CB770BF29D5500AE959F /* PeerProgressIndicatorCell.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = PeerProgressIndicatorCell.h; path = macosx/PeerProgressIndicatorCell.h; sourceTree = "<group>"; };
|
||||||
|
@ -921,8 +921,8 @@
|
||||||
A2FB06950BFF484A0095564D /* Globe.png */,
|
A2FB06950BFF484A0095564D /* Globe.png */,
|
||||||
A261A8250C6A0D68003BAFDA /* Error.png */,
|
A261A8250C6A0D68003BAFDA /* Error.png */,
|
||||||
A2F1511F0CD438BA001F3B0E /* Lock.png */,
|
A2F1511F0CD438BA001F3B0E /* Lock.png */,
|
||||||
A29AF4F80D01BAEB00D097EC /* UpArrow.png */,
|
A29AF4F80D01BAEB00D097EC /* UpArrowTemplate.png */,
|
||||||
A29AF4F60D01BADC00D097EC /* DownArrow.png */,
|
A29AF4F60D01BADC00D097EC /* DownArrowTemplate.png */,
|
||||||
A2F41DAA0D0B916B006CE378 /* YingYangTemplate.png */,
|
A2F41DAA0D0B916B006CE378 /* YingYangTemplate.png */,
|
||||||
A20152630D1C1BE70081714F /* PinTemplate.png */,
|
A20152630D1C1BE70081714F /* PinTemplate.png */,
|
||||||
A2F151150CD438A4001F3B0E /* YellowDot.png */,
|
A2F151150CD438A4001F3B0E /* YellowDot.png */,
|
||||||
|
@ -1627,8 +1627,8 @@
|
||||||
A25892770CF1FCE800CCCDDF /* StatsWindow.xib in Resources */,
|
A25892770CF1FCE800CCCDDF /* StatsWindow.xib in Resources */,
|
||||||
A22D3AA60D00D1790079CFED /* Turtle.png in Resources */,
|
A22D3AA60D00D1790079CFED /* Turtle.png in Resources */,
|
||||||
A22D3AA70D00D1790079CFED /* TurtleBlue.png in Resources */,
|
A22D3AA70D00D1790079CFED /* TurtleBlue.png in Resources */,
|
||||||
A29AF4F70D01BADC00D097EC /* DownArrow.png in Resources */,
|
A29AF4F70D01BADC00D097EC /* DownArrowTemplate.png in Resources */,
|
||||||
A29AF4F90D01BAEB00D097EC /* UpArrow.png in Resources */,
|
A29AF4F90D01BAEB00D097EC /* UpArrowTemplate.png in Resources */,
|
||||||
A2F41DA90D0B9152006CE378 /* ActionGear.png in Resources */,
|
A2F41DA90D0B9152006CE378 /* ActionGear.png in Resources */,
|
||||||
A2F41DAB0D0B916B006CE378 /* YingYangTemplate.png in Resources */,
|
A2F41DAB0D0B916B006CE378 /* YingYangTemplate.png in Resources */,
|
||||||
A2F41DBC0D0B96C0006CE378 /* FilterBlue.png in Resources */,
|
A2F41DBC0D0B96C0006CE378 /* FilterBlue.png in Resources */,
|
||||||
|
|
|
@ -2478,8 +2478,29 @@ void sleepCallBack(void * controller, io_service_t y, natural_t messageType, voi
|
||||||
{
|
{
|
||||||
if (![item isKindOfClass: [Torrent class]])
|
if (![item isKindOfClass: [Torrent class]])
|
||||||
{
|
{
|
||||||
int group = [[item objectForKey: @"Group"] intValue];
|
NSString * ident = [tableColumn identifier];
|
||||||
return group != -1 ? [[GroupsWindowController groups] nameForIndex: group] : NSLocalizedString(@"No Group", "Group table row");
|
if ([ident isEqualToString: @"Group"])
|
||||||
|
{
|
||||||
|
int group = [[item objectForKey: @"Group"] intValue];
|
||||||
|
return group != -1 ? [[GroupsWindowController groups] nameForIndex: group]
|
||||||
|
: NSLocalizedString(@"No Group", "Group table row");
|
||||||
|
}
|
||||||
|
else if ([ident isEqualToString: @"UL Image"])
|
||||||
|
return [NSImage imageNamed: @"UpArrowTemplate.png"];
|
||||||
|
else if ([ident isEqualToString: @"DL Image"])
|
||||||
|
return [NSImage imageNamed: @"DownArrowTemplate.png"];
|
||||||
|
else
|
||||||
|
{
|
||||||
|
BOOL upload = [ident isEqualToString: @"UL"];
|
||||||
|
|
||||||
|
float rate = 0.0;
|
||||||
|
NSEnumerator * enumerator = [[item objectForKey: @"Torrents"] objectEnumerator];
|
||||||
|
Torrent * torrent;
|
||||||
|
while ((torrent = [enumerator nextObject]))
|
||||||
|
rate += upload ? [torrent uploadRate] : [torrent downloadRate];
|
||||||
|
|
||||||
|
return [NSString stringForSpeed: rate];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return [item hashString];
|
return [item hashString];
|
||||||
|
|
File diff suppressed because it is too large
Load diff
Before Width: | Height: | Size: 372 B After Width: | Height: | Size: 372 B |
Before Width: | Height: | Size: 368 B After Width: | Height: | Size: 368 B |
|
@ -1090,7 +1090,7 @@ void completenessChangeCallback(tr_torrent * torrent, cp_status_t status, void *
|
||||||
&& !(fRatioSetting == NSOnState || (fRatioSetting == NSMixedState && [fDefaults boolForKey: @"RatioCheck"]))))
|
&& !(fRatioSetting == NSOnState || (fRatioSetting == NSMixedState && [fDefaults boolForKey: @"RatioCheck"]))))
|
||||||
return [self shortStatusString];
|
return [self shortStatusString];
|
||||||
|
|
||||||
int eta = fStat->status == TR_STATUS_DOWNLOAD ? [self eta] : [self etaRatio];
|
int eta = [self isSeeding] ? [self etaRatio] : [self eta];
|
||||||
return eta >= 0 ? [self etaString: eta] : NSLocalizedString(@"Unknown", "Torrent -> remaining time");
|
return eta >= 0 ? [self etaString: eta] : NSLocalizedString(@"Unknown", "Torrent -> remaining time");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -134,15 +134,13 @@
|
||||||
|
|
||||||
- (NSCell *) outlineView: (NSOutlineView *) outlineView dataCellForTableColumn: (NSTableColumn *) tableColumn item: (id) item
|
- (NSCell *) outlineView: (NSOutlineView *) outlineView dataCellForTableColumn: (NSTableColumn *) tableColumn item: (id) item
|
||||||
{
|
{
|
||||||
if (!tableColumn)
|
return !tableColumn && [item isKindOfClass: [Torrent class]] ? fTorrentCell : nil;
|
||||||
return nil;
|
|
||||||
return [item isKindOfClass: [Torrent class]] ? fTorrentCell : nil;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) outlineView: (NSOutlineView *) outlineView willDisplayCell: (id) cell forTableColumn: (NSTableColumn *) tableColumn
|
- (void) outlineView: (NSOutlineView *) outlineView willDisplayCell: (id) cell forTableColumn: (NSTableColumn *) tableColumn
|
||||||
item: (id) item
|
item: (id) item
|
||||||
{
|
{
|
||||||
if (![item isKindOfClass: [Torrent class]])
|
if (![item isKindOfClass: [Torrent class]] || tableColumn)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
[cell setRepresentedObject: item];
|
[cell setRepresentedObject: item];
|
||||||
|
@ -156,21 +154,16 @@
|
||||||
|
|
||||||
- (NSRect) frameOfCellAtColumn: (NSInteger) column row: (NSInteger) row
|
- (NSRect) frameOfCellAtColumn: (NSInteger) column row: (NSInteger) row
|
||||||
{
|
{
|
||||||
NSRect rect = [super frameOfCellAtColumn: column row: row];
|
|
||||||
|
|
||||||
if ([[self itemAtRow: row] isKindOfClass: [Torrent class]])
|
if ([[self itemAtRow: row] isKindOfClass: [Torrent class]])
|
||||||
{
|
return [self rectOfRow: row];
|
||||||
rect.size.width += rect.origin.x;
|
else
|
||||||
rect.origin.x = 0.0;
|
return [super frameOfCellAtColumn: column row: row];
|
||||||
}
|
|
||||||
|
|
||||||
return rect;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (NSString *) outlineView: (NSOutlineView *) outlineView typeSelectStringForTableColumn: (NSTableColumn *) tableColumn item: (id) item
|
- (NSString *) outlineView: (NSOutlineView *) outlineView typeSelectStringForTableColumn: (NSTableColumn *) tableColumn item: (id) item
|
||||||
{
|
{
|
||||||
return [item isKindOfClass: [Torrent class]] ? [item name]
|
return [item isKindOfClass: [Torrent class]] ? [item name]
|
||||||
: [[self preparedCellAtColumn: 0 row: [self rowForItem: item]] stringValue];
|
: [[self preparedCellAtColumn: -1 row: [self rowForItem: item]] stringValue];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) updateTrackingAreas
|
- (void) updateTrackingAreas
|
||||||
|
@ -191,7 +184,7 @@
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
NSDictionary * userInfo = [NSDictionary dictionaryWithObject: [NSNumber numberWithInt: row] forKey: @"Row"];
|
NSDictionary * userInfo = [NSDictionary dictionaryWithObject: [NSNumber numberWithInt: row] forKey: @"Row"];
|
||||||
TorrentCell * cell = (TorrentCell *)[self preparedCellAtColumn: 0 row: row];
|
TorrentCell * cell = (TorrentCell *)[self preparedCellAtColumn: -1 row: row];
|
||||||
[cell addTrackingAreasForView: self inRect: [self frameOfCellAtColumn: 0 row: row] withUserInfo: userInfo
|
[cell addTrackingAreasForView: self inRect: [self frameOfCellAtColumn: 0 row: row] withUserInfo: userInfo
|
||||||
mouseLocation: mouseLocation];
|
mouseLocation: mouseLocation];
|
||||||
}
|
}
|
||||||
|
@ -690,7 +683,7 @@
|
||||||
|
|
||||||
TorrentCell * cell;
|
TorrentCell * cell;
|
||||||
if ([NSApp isOnLeopardOrBetter])
|
if ([NSApp isOnLeopardOrBetter])
|
||||||
cell = (TorrentCell *)[self preparedCellAtColumn: 0 row: row];
|
cell = (TorrentCell *)[self preparedCellAtColumn: -1 row: row];
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
cell = fTorrentCell;
|
cell = fTorrentCell;
|
||||||
|
@ -707,7 +700,7 @@
|
||||||
|
|
||||||
TorrentCell * cell;
|
TorrentCell * cell;
|
||||||
if ([NSApp isOnLeopardOrBetter])
|
if ([NSApp isOnLeopardOrBetter])
|
||||||
cell = (TorrentCell *)[self preparedCellAtColumn: 0 row: row];
|
cell = (TorrentCell *)[self preparedCellAtColumn: -1 row: row];
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
cell = fTorrentCell;
|
cell = fTorrentCell;
|
||||||
|
|
Loading…
Add table
Reference in a new issue