diff --git a/macosx/Controller.m b/macosx/Controller.m index d59edbd70..09ef7fc9f 100644 --- a/macosx/Controller.m +++ b/macosx/Controller.m @@ -1167,6 +1167,9 @@ void sleepCallBack(void * controller, io_service_t y, natural_t messageType, voi enumerator = [torrents objectEnumerator]; while ((torrent = [enumerator nextObject])) { + //expand the group, since either the whole group is being removed or it is already expanded + [fTableView removeCollapsedGroup: [torrent groupValue]]; + if (deleteData) [torrent trashData]; if (deleteTorrent) @@ -1938,6 +1941,7 @@ void sleepCallBack(void * controller, io_service_t y, natural_t messageType, voi [fTableView selectValues: selectedValues]; //reset expanded/collapsed rows + #warning redo to not require storing an indexset? if (groupRows && [fDisplayedTorrents count] > 0 && [NSApp isOnLeopardOrBetter]) { NSIndexSet * collapsed = [fTableView collapsedGroupsIndexes]; diff --git a/macosx/TorrentTableView.h b/macosx/TorrentTableView.h index 981e5e800..92f2c6324 100644 --- a/macosx/TorrentTableView.h +++ b/macosx/TorrentTableView.h @@ -52,6 +52,7 @@ } - (NSIndexSet *) collapsedGroupsIndexes; +- (void) removeCollapsedGroup: (int) value; - (void) removeButtonTrackingAreas; - (void) setControlButtonHover: (int) row; diff --git a/macosx/TorrentTableView.m b/macosx/TorrentTableView.m index 811ee6719..403b615d5 100644 --- a/macosx/TorrentTableView.m +++ b/macosx/TorrentTableView.m @@ -95,6 +95,14 @@ return fCollapsedGroups; } +- (void) removeCollapsedGroup: (int) value +{ + if (value < 0) + value = INT_MAX; + + [fCollapsedGroups removeIndex: value]; +} + - (BOOL) outlineView: (NSOutlineView *) outlineView isGroupItem: (id) item { return ![item isKindOfClass: [Torrent class]];