mirror of
https://github.com/transmission/transmission
synced 2025-03-16 00:39:34 +00:00
move the code for remembering resize information for the info views into the individual views
This commit is contained in:
parent
236184c4a9
commit
f1bfa1a3d5
8 changed files with 61 additions and 53 deletions
|
@ -41,6 +41,8 @@
|
|||
- (void) setInfoForTorrents: (NSArray *) torrents;
|
||||
- (void) updateInfo;
|
||||
|
||||
- (void) saveViewSize;
|
||||
|
||||
- (void) setFileFilterText: (id) sender;
|
||||
|
||||
- (NSArray *) quickLookURLs;
|
||||
|
|
|
@ -46,6 +46,14 @@
|
|||
|
||||
- (void) awakeFromNib
|
||||
{
|
||||
const CGFloat height = [[NSUserDefaults standardUserDefaults] floatForKey: @"InspectorContentHeightFiles"];
|
||||
if (height != 0.0)
|
||||
{
|
||||
NSRect viewRect = [[self view] frame];
|
||||
viewRect.size.height = height;
|
||||
[[self view] setFrame: viewRect];
|
||||
}
|
||||
|
||||
[[fFileFilterField cell] setPlaceholderString: NSLocalizedString(@"Filter", "inspector -> file filter")];
|
||||
}
|
||||
|
||||
|
@ -76,6 +84,11 @@
|
|||
[fFileController reloadData];
|
||||
}
|
||||
|
||||
- (void) saveViewSize
|
||||
{
|
||||
[[NSUserDefaults standardUserDefaults] setFloat: NSHeight([[self view] frame]) forKey: @"InspectorContentHeightFiles"];
|
||||
}
|
||||
|
||||
- (void) setFileFilterText: (id) sender
|
||||
{
|
||||
[fFileController setFilterText: [sender stringValue]];
|
||||
|
|
|
@ -44,6 +44,7 @@
|
|||
- (void) setInfoForTorrents: (NSArray *) torrents;
|
||||
- (void) updateInfo;
|
||||
|
||||
- (void) saveViewSize;
|
||||
- (void) clearView;
|
||||
- (void) stopWebSeedAnimation;
|
||||
|
||||
|
|
|
@ -47,6 +47,14 @@
|
|||
|
||||
- (void) awakeFromNib
|
||||
{
|
||||
const CGFloat height = [[NSUserDefaults standardUserDefaults] floatForKey: @"InspectorContentHeightPeers"];
|
||||
if (height != 0.0)
|
||||
{
|
||||
NSRect viewRect = [[self view] frame];
|
||||
viewRect.size.height = height;
|
||||
[[self view] setFrame: viewRect];
|
||||
}
|
||||
|
||||
//set table header text
|
||||
[[[fPeerTable tableColumnWithIdentifier: @"IP"] headerCell] setStringValue: NSLocalizedString(@"IP Address",
|
||||
"inspector -> peer table -> header")];
|
||||
|
@ -221,6 +229,11 @@
|
|||
}
|
||||
}
|
||||
|
||||
- (void) saveViewSize
|
||||
{
|
||||
[[NSUserDefaults standardUserDefaults] setFloat: NSHeight([[self view] frame]) forKey: @"InspectorContentHeightPeers"];
|
||||
}
|
||||
|
||||
- (void) clearView
|
||||
{
|
||||
//if in the middle of animating, just stop and resize immediately
|
||||
|
|
|
@ -46,6 +46,8 @@
|
|||
- (void) setInfoForTorrents: (NSArray *) torrents;
|
||||
- (void) updateInfo;
|
||||
|
||||
|
||||
- (void) saveViewSize;
|
||||
- (void) clearView;
|
||||
|
||||
- (void) addRemoveTracker: (id) sender;
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
#define TRACKER_ADD_TAG 0
|
||||
#define TRACKER_REMOVE_TAG 1
|
||||
|
||||
|
||||
@interface InfoTrackersViewController (Private)
|
||||
|
||||
- (void) setupInfo;
|
||||
|
@ -55,6 +56,17 @@
|
|||
return self;
|
||||
}
|
||||
|
||||
- (void) awakeFromNib
|
||||
{
|
||||
const CGFloat height = [[NSUserDefaults standardUserDefaults] floatForKey: @"InspectorContentHeightTracker"];
|
||||
if (height != 0.0)
|
||||
{
|
||||
NSRect viewRect = [[self view] frame];
|
||||
viewRect.size.height = height;
|
||||
[[self view] setFrame: viewRect];
|
||||
}
|
||||
}
|
||||
|
||||
- (void) dealloc
|
||||
{
|
||||
[fTorrents release];
|
||||
|
@ -122,6 +134,11 @@
|
|||
}
|
||||
}
|
||||
|
||||
- (void) saveViewSize
|
||||
{
|
||||
[[NSUserDefaults standardUserDefaults] setFloat: NSHeight([[self view] frame]) forKey: @"InspectorContentHeightTracker"];
|
||||
}
|
||||
|
||||
- (void) clearView
|
||||
{
|
||||
[fTrackers release];
|
||||
|
|
|
@ -32,5 +32,6 @@
|
|||
|
||||
@optional
|
||||
- (void) clearView;
|
||||
- (void) saveViewSize;
|
||||
|
||||
@end
|
||||
|
|
|
@ -141,25 +141,11 @@ typedef enum
|
|||
|
||||
- (void) dealloc
|
||||
{
|
||||
//save resizeable view height
|
||||
NSString * resizeSaveKey = nil;
|
||||
switch (fCurrentTabTag)
|
||||
{
|
||||
case TAB_TRACKERS_TAG:
|
||||
resizeSaveKey = @"InspectorContentHeightTracker";
|
||||
break;
|
||||
case TAB_PEERS_TAG:
|
||||
resizeSaveKey = @"InspectorContentHeightPeers";
|
||||
break;
|
||||
case TAB_FILE_TAG:
|
||||
resizeSaveKey = @"InspectorContentHeightFiles";
|
||||
break;
|
||||
}
|
||||
if (resizeSaveKey)
|
||||
[[NSUserDefaults standardUserDefaults] setFloat: [[fViewController view] frame].size.height forKey: resizeSaveKey];
|
||||
|
||||
[[NSNotificationCenter defaultCenter] removeObserver: self];
|
||||
|
||||
if ([fViewController respondsToSelector: @selector(saveViewSize)])
|
||||
[fViewController saveViewSize];
|
||||
|
||||
[fGeneralViewController dealloc];
|
||||
[fActivityViewController dealloc];
|
||||
[fTrackersViewController dealloc];
|
||||
|
@ -214,32 +200,19 @@ typedef enum
|
|||
|
||||
//take care of old view
|
||||
CGFloat oldHeight = 0;
|
||||
NSString * oldResizeSaveKey = nil;
|
||||
if (oldTabTag != INVALID)
|
||||
{
|
||||
//deselect old tab item
|
||||
[(InfoTabButtonCell *)[fTabMatrix cellWithTag: oldTabTag] setSelectedTab: NO];
|
||||
|
||||
if ([fViewController respondsToSelector: @selector(saveViewSize)])
|
||||
[fViewController saveViewSize];
|
||||
|
||||
if ([fViewController respondsToSelector: @selector(clearView)])
|
||||
[fViewController clearView];
|
||||
|
||||
switch (oldTabTag)
|
||||
{
|
||||
case TAB_TRACKERS_TAG:
|
||||
oldResizeSaveKey = @"InspectorContentHeightTracker";
|
||||
break;
|
||||
case TAB_PEERS_TAG:
|
||||
oldResizeSaveKey = @"InspectorContentHeightPeers";
|
||||
break;
|
||||
case TAB_FILE_TAG:
|
||||
oldResizeSaveKey = @"InspectorContentHeightFiles";
|
||||
break;
|
||||
}
|
||||
|
||||
NSView * oldView = [fViewController view];
|
||||
oldHeight = NSHeight([oldView frame]);
|
||||
if (oldResizeSaveKey)
|
||||
[[NSUserDefaults standardUserDefaults] setFloat: oldHeight forKey: oldResizeSaveKey];
|
||||
|
||||
//remove old view
|
||||
[oldView setHidden: YES];
|
||||
|
@ -248,7 +221,6 @@ typedef enum
|
|||
|
||||
//set new tab item
|
||||
#warning get titles from view controller?
|
||||
NSString * resizeSaveKey = nil;
|
||||
NSString * identifier, * title;
|
||||
switch (fCurrentTabTag)
|
||||
{
|
||||
|
@ -284,7 +256,6 @@ typedef enum
|
|||
fViewController = fTrackersViewController;
|
||||
identifier = TAB_TRACKER_IDENT;
|
||||
title = NSLocalizedString(@"Trackers", "Inspector -> title");
|
||||
resizeSaveKey = @"InspectorContentHeightTracker";
|
||||
break;
|
||||
case TAB_PEERS_TAG:
|
||||
if (!fPeersViewController)
|
||||
|
@ -296,7 +267,6 @@ typedef enum
|
|||
fViewController = fPeersViewController;
|
||||
identifier = TAB_PEERS_IDENT;
|
||||
title = NSLocalizedString(@"Peers", "Inspector -> title");
|
||||
resizeSaveKey = @"InspectorContentHeightPeers";
|
||||
break;
|
||||
case TAB_FILE_TAG:
|
||||
if (!fFileViewController)
|
||||
|
@ -308,7 +278,6 @@ typedef enum
|
|||
fViewController = fFileViewController;
|
||||
identifier = TAB_FILES_IDENT;
|
||||
title = NSLocalizedString(@"Files", "Inspector -> title");
|
||||
resizeSaveKey = @"InspectorContentHeightFiles";
|
||||
break;
|
||||
case TAB_OPTIONS_TAG:
|
||||
if (!fOptionsViewController)
|
||||
|
@ -341,29 +310,19 @@ typedef enum
|
|||
|
||||
NSRect windowRect = [window frame], viewRect = [view frame];
|
||||
|
||||
if (resizeSaveKey)
|
||||
{
|
||||
CGFloat height = [[NSUserDefaults standardUserDefaults] floatForKey: resizeSaveKey];
|
||||
if (height != 0.0)
|
||||
viewRect.size.height = MAX(height, TAB_MIN_HEIGHT);
|
||||
}
|
||||
|
||||
CGFloat difference = (viewRect.size.height - oldHeight) * [window userSpaceScaleFactor];
|
||||
CGFloat difference = (NSHeight(viewRect) - oldHeight) * [window userSpaceScaleFactor];
|
||||
windowRect.origin.y -= difference;
|
||||
windowRect.size.height += difference;
|
||||
|
||||
if (resizeSaveKey)
|
||||
if ([fViewController respondsToSelector: @selector(saveViewSize)]) //a little bit hacky, but avoids an extra required method
|
||||
{
|
||||
if (!oldResizeSaveKey)
|
||||
{
|
||||
[window setMinSize: NSMakeSize([window minSize].width, windowRect.size.height - viewRect.size.height + TAB_MIN_HEIGHT)];
|
||||
[window setMaxSize: NSMakeSize(FLT_MAX, FLT_MAX)];
|
||||
}
|
||||
[window setMinSize: NSMakeSize([window minSize].width, NSHeight(windowRect) - NSHeight(viewRect) + TAB_MIN_HEIGHT)];
|
||||
[window setMaxSize: NSMakeSize(FLT_MAX, FLT_MAX)];
|
||||
}
|
||||
else
|
||||
{
|
||||
[window setMinSize: NSMakeSize([window minSize].width, windowRect.size.height)];
|
||||
[window setMaxSize: NSMakeSize(FLT_MAX, windowRect.size.height)];
|
||||
[window setMinSize: NSMakeSize([window minSize].width, NSHeight(windowRect))];
|
||||
[window setMaxSize: NSMakeSize(FLT_MAX, NSHeight(windowRect))];
|
||||
}
|
||||
|
||||
viewRect.size.width = windowRect.size.width;
|
||||
|
|
Loading…
Add table
Reference in a new issue