[self clearView];
fTorrent = torrent;
- if (fTorrent)
- {
- //determine relevant values
- fNumPieces = MIN([fTorrent pieceCount], MAX_ACROSS * MAX_ACROSS);
- fAcross = ceil(sqrt(fNumPieces));
-
- const CGFloat width = [self bounds].size.width;
- fWidth = (width - (fAcross + 1) * BETWEEN) / fAcross;
- fExtraBorder = (width - ((fWidth + BETWEEN) * fAcross + BETWEEN)) / 2;
- }
NSImage * back = [[NSImage alloc] initWithSize: [self bounds].size];
[back lockFocus];
- (void) updateView
{
- if (!fTorrent)
+ if (!fTorrent || [fTorrent isMagnet])
return;
//determine if first time
const BOOL first = fPieces == NULL;
if (first)
+ {
+ //determine relevant values
+ fNumPieces = MIN([fTorrent pieceCount], MAX_ACROSS * MAX_ACROSS);
+ fAcross = ceil(sqrt(fNumPieces));
+
+ const CGFloat width = [self bounds].size.width;
+ fWidth = (width - (fAcross + 1) * BETWEEN) / fAcross;
+ fExtraBorder = (width - ((fWidth + BETWEEN) * fAcross + BETWEEN)) / 2;
+
fPieces = (int8_t *)tr_malloc(fNumPieces * sizeof(int8_t));
+ }
int8_t * pieces = NULL;
float * piecesPercent = NULL;