Skip to content
Snippets Groups Projects
Commit dd55e2d8 authored by George Nachman's avatar George Nachman
Browse files

Misc bug fixes for saved arrangements

parent fc7195fb
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -12,7 +12,7 @@
</object>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
<integer value="29"/>
<integer value="1281"/>
</object>
<object class="NSArray" key="IBDocument.PluginDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
Loading
Loading
@@ -1198,14 +1198,20 @@
<reference key="NSOnImage" ref="643967552"/>
<reference key="NSMixedImage" ref="326707852"/>
</object>
<object class="NSMenuItem" id="225659727">
<object class="NSMenuItem" id="500971307">
<reference key="NSMenu" ref="704295309"/>
<string key="NSTitle">Restore Window Arrangement</string>
<string key="NSKeyEquiv">R</string>
<int key="NSKeyEquivModMask">1048576</int>
<string key="NSKeyEquiv"/>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="643967552"/>
<reference key="NSMixedImage" ref="326707852"/>
<string key="NSAction">submenuAction:</string>
<object class="NSMenu" key="NSSubmenu" id="534561685">
<string key="NSTitle">Restore Window Arrangement</string>
<object class="NSMutableArray" key="NSMenuItems">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
</object>
<object class="NSMenuItem" id="989661074">
<reference key="NSMenu" ref="704295309"/>
Loading
Loading
@@ -2676,14 +2682,6 @@ dy5hbmR5bWF0dXNjaGFrLm9yZy9wYWdlcy9zcGFya2xlCgoKCgoKCgoKCgoKCgoKCg</bytes>
</object>
<int key="connectionID">1206</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">loadWindowArrangement:</string>
<reference key="source" ref="608955146"/>
<reference key="destination" ref="225659727"/>
</object>
<int key="connectionID">1208</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">selectPaneDown:</string>
Loading
Loading
@@ -2860,6 +2858,14 @@ dy5hbmR5bWF0dXNjaGFrLm9yZy9wYWdlcy9zcGFya2xlCgoKCgoKCgoKCgoKCgoKCg</bytes>
</object>
<int key="connectionID">1279</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">windowArrangements_</string>
<reference key="source" ref="608955146"/>
<reference key="destination" ref="500971307"/>
</object>
<int key="connectionID">1285</int>
</object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
Loading
Loading
@@ -2937,9 +2943,9 @@ dy5hbmR5bWF0dXNjaGFrLm9yZy9wYWdlcy9zcGFya2xlCgoKCgoKCgoKCgoKCgoKCg</bytes>
<reference ref="209335888"/>
<reference ref="989661074"/>
<reference ref="858887472"/>
<reference ref="225659727"/>
<reference ref="667737648"/>
<reference ref="515999309"/>
<reference ref="500971307"/>
</object>
<reference key="parent" ref="914464345"/>
</object>
Loading
Loading
@@ -3832,11 +3838,6 @@ dy5hbmR5bWF0dXNjaGFrLm9yZy9wYWdlcy9zcGFya2xlCgoKCgoKCgoKCgoKCgoKCg</bytes>
<reference key="object" ref="858887472"/>
<reference key="parent" ref="704295309"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">1207</int>
<reference key="object" ref="225659727"/>
<reference key="parent" ref="704295309"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">1209</int>
<reference key="object" ref="667737648"/>
Loading
Loading
@@ -4001,6 +4002,23 @@ dy5hbmR5bWF0dXNjaGFrLm9yZy9wYWdlcy9zcGFya2xlCgoKCgoKCgoKCgoKCgoKCg</bytes>
<reference key="object" ref="592873546"/>
<reference key="parent" ref="536673199"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">1280</int>
<reference key="object" ref="500971307"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="534561685"/>
</object>
<reference key="parent" ref="704295309"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">1281</int>
<reference key="object" ref="534561685"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<reference key="parent" ref="500971307"/>
</object>
</object>
</object>
<object class="NSMutableDictionary" key="flattenedProperties">
Loading
Loading
@@ -4040,7 +4058,6 @@ dy5hbmR5bWF0dXNjaGFrLm9yZy9wYWdlcy9zcGFya2xlCgoKCgoKCgoKCgoKCgoKCg</bytes>
<string>1201.IBPluginDependency</string>
<string>1204.IBPluginDependency</string>
<string>1205.IBPluginDependency</string>
<string>1207.IBPluginDependency</string>
<string>1209.IBPluginDependency</string>
<string>1210.IBEditorWindowLastContentRect</string>
<string>1210.IBPluginDependency</string>
Loading
Loading
@@ -4069,6 +4086,9 @@ dy5hbmR5bWF0dXNjaGFrLm9yZy9wYWdlcy9zcGFya2xlCgoKCgoKCgoKCgoKCgoKCg</bytes>
<string>1264.IBPluginDependency</string>
<string>1266.IBPluginDependency</string>
<string>1268.IBPluginDependency</string>
<string>1280.IBPluginDependency</string>
<string>1281.IBEditorWindowLastContentRect</string>
<string>1281.IBPluginDependency</string>
<string>129.IBPluginDependency</string>
<string>130.IBPluginDependency</string>
<string>131.IBPluginDependency</string>
Loading
Loading
@@ -4229,7 +4249,6 @@ dy5hbmR5bWF0dXNjaGFrLm9yZy9wYWdlcy9zcGFya2xlCgoKCgoKCgoKCgoKCgoKCg</bytes>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{594, 472}, {217, 133}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
Loading
Loading
@@ -4258,6 +4277,9 @@ dy5hbmR5bWF0dXNjaGFrLm9yZy9wYWdlcy9zcGFya2xlCgoKCgoKCgoKCgoKCgoKCg</bytes>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{594, 612}, {83, 23}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
Loading
Loading
@@ -4398,7 +4420,7 @@ dy5hbmR5bWF0dXNjaGFrLm9yZy9wYWdlcy9zcGFya2xlCgoKCgoKCgoKCgoKCgoKCg</bytes>
</object>
</object>
<nil key="sourceID"/>
<int key="maxID">1279</int>
<int key="maxID">1285</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
Loading
Loading
@@ -5602,6 +5624,7 @@ dy5hbmR5bWF0dXNjaGFrLm9yZy9wYWdlcy9zcGFya2xlCgoKCgoKCgoKCgoKCgoKCg</bytes>
<string>showFullScreenTabs</string>
<string>toggleBookmarksView</string>
<string>useTransparency</string>
<string>windowArrangements_</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
Loading
Loading
@@ -5625,6 +5648,7 @@ dy5hbmR5bWF0dXNjaGFrLm9yZy9wYWdlcy9zcGFya2xlCgoKCgoKCgoKCgoKCgoKCg</bytes>
<string>NSMenuItem</string>
<string>NSMenuItem</string>
<string>NSMenuItem</string>
<string>NSMenuItem</string>
</object>
</object>
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
Loading
Loading
@@ -5651,6 +5675,7 @@ dy5hbmR5bWF0dXNjaGFrLm9yZy9wYWdlcy9zcGFya2xlCgoKCgoKCgoKCgoKCgoKCg</bytes>
<string>showFullScreenTabs</string>
<string>toggleBookmarksView</string>
<string>useTransparency</string>
<string>windowArrangements_</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
Loading
Loading
@@ -5734,6 +5759,10 @@ dy5hbmR5bWF0dXNjaGFrLm9yZy9wYWdlcy9zcGFya2xlCgoKCgoKCgoKCgoKCgoKCg</bytes>
<string key="name">useTransparency</string>
<string key="candidateClassName">NSMenuItem</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">windowArrangements_</string>
<string key="candidateClassName">NSMenuItem</string>
</object>
</object>
</object>
<reference key="sourceIdentifier" ref="138138046"/>
Loading
Loading
This diff is collapsed.
Loading
Loading
@@ -98,7 +98,7 @@ BOOL IsLionOrLater(void);
- (int)allocateWindowNumber;
 
- (void)saveWindowArrangement;
- (void)loadWindowArrangement;
- (void)loadWindowArrangementWithName:(NSString *)theName;
 
- (PseudoTerminal *)currentTerminal;
- (void)terminalWillClose:(PseudoTerminal*)theTerminalWindow;
Loading
Loading
Loading
Loading
@@ -156,8 +156,8 @@ static float versionNumber;
- (void)_savedArrangementChanged:(id)sender
{
[openArrangementAtStartup setState:defaultOpenArrangementAtStartup ? NSOnState : NSOffState];
[openArrangementAtStartup setEnabled:[arrangements_ count] > 0];
if ([arrangements_ count] == 0) {
[openArrangementAtStartup setEnabled:[ArrangementsModel count] > 0];
if ([ArrangementsModel count] == 0) {
[openArrangementAtStartup setState:NO];
}
}
Loading
Loading
@@ -928,7 +928,7 @@ static float versionNumber;
defaultHotkeyChar = [prefs objectForKey:@"HotkeyChar"]?[[prefs objectForKey:@"HotkeyChar"] intValue]: 0;
defaultHotkeyModifiers = [prefs objectForKey:@"HotkeyModifiers"]?[[prefs objectForKey:@"HotkeyModifiers"] intValue]: 0;
defaultSavePasteHistory = [prefs objectForKey:@"SavePasteHistory"]?[[prefs objectForKey:@"SavePasteHistory"] boolValue]: NO;
if ([arrangements_ count] > 0) {
if ([ArrangementsModel count] > 0) {
defaultOpenArrangementAtStartup = [prefs objectForKey:@"OpenArrangementAtStartup"]?[[prefs objectForKey:@"OpenArrangementAtStartup"] boolValue]: NO;
} else {
defaultOpenArrangementAtStartup = NO;
Loading
Loading
@@ -1151,8 +1151,8 @@ static float versionNumber;
[showBookmarkName setState: defaultShowBookmarkName?NSOnState:NSOffState];
[savePasteHistory setState: defaultSavePasteHistory?NSOnState:NSOffState];
[openArrangementAtStartup setState:defaultOpenArrangementAtStartup ? NSOnState : NSOffState];
[openArrangementAtStartup setEnabled:[arrangements_ count] > 0];
if ([arrangements_ count] == 0) {
[openArrangementAtStartup setEnabled:[ArrangementsModel count] > 0];
if ([ArrangementsModel count] == 0) {
[openArrangementAtStartup setState:NO];
}
[hotkey setState: defaultHotkey?NSOnState:NSOffState];
Loading
Loading
Loading
Loading
@@ -912,15 +912,22 @@ NSString *sessionsKey = @"sessions";
double yScale = virtualScreenFrame.size.height / screenFrame.size.height;
double xOrigin = virtualScreenFrame.origin.x;
double yOrigin = virtualScreenFrame.origin.y;
NSRect rect;
if (windowType == WINDOW_TYPE_FULL_SCREEN || windowType == WINDOW_TYPE_LION_FULL_SCREEN) {
rect = virtualScreenFrame;
} else if (windowType == WINDOW_TYPE_NORMAL) {
rect.origin.x = xOrigin + xScale * [[terminalArrangement objectForKey:TERMINAL_ARRANGEMENT_X_ORIGIN] doubleValue];
rect.origin.y = yOrigin + yScale * [[terminalArrangement objectForKey:TERMINAL_ARRANGEMENT_Y_ORIGIN] doubleValue];
double h = [[terminalArrangement objectForKey:TERMINAL_ARRANGEMENT_HEIGHT] doubleValue];
double y = [[terminalArrangement objectForKey:TERMINAL_ARRANGEMENT_Y_ORIGIN] doubleValue];
// y is distance from bottom of screen to bottom of window
y += h;
// y is distance from bottom of screen to top of window
y = screenFrame.size.height - y;
// y is distance from top of screen to top of window
rect.origin.y = yOrigin + yScale * y;
rect.size.width = xScale * [[terminalArrangement objectForKey:TERMINAL_ARRANGEMENT_WIDTH] doubleValue];
rect.size.height = yScale * [[terminalArrangement objectForKey:TERMINAL_ARRANGEMENT_HEIGHT] doubleValue];
rect.size.height = yScale * h;
} else if (windowType == WINDOW_TYPE_TOP) {
rect.origin.x = xOrigin;
rect.origin.y = yOrigin;
Loading
Loading
@@ -934,7 +941,7 @@ NSString *sessionsKey = @"sessions";
NSFrameRect(rect);
 
int N = [(NSDictionary *)[terminalArrangement objectForKey:TERMINAL_ARRANGEMENT_TABS] count];
[[NSColor windowBackgroundColor] set];
[[NSColor windowFrameColor] set];
double y;
if ([[PreferencePanel sharedInstance] tabViewType] == PSMTab_BottomTab) {
y = rect.origin.y + rect.size.height - 10;
Loading
Loading
@@ -942,19 +949,20 @@ NSString *sessionsKey = @"sessions";
y = rect.origin.y;
}
NSRectFill(NSMakeRect(rect.origin.x + 1, y, rect.size.width - 2, 10));
double x = 1;
[[NSColor darkGrayColor] set];
double step = MIN(20, floor((rect.size.width - 2) / N));
for (int i = 0; i < N; i++) {
NSFrameRect(NSMakeRect(rect.origin.x + x, y, rect.size.width / N, 9));
x += floor((rect.size.width - 2) / N);
NSRectFill(NSMakeRect(rect.origin.x + x + 1, y + 1, step - 2, 8));
x += step;
}
 
NSDictionary* tabArrangement = [[terminalArrangement objectForKey:TERMINAL_ARRANGEMENT_TABS] objectAtIndex:0];
[PTYTab drawArrangementPreview:tabArrangement frame:NSMakeRect(rect.origin.x + 1,
([[PreferencePanel sharedInstance] tabViewType] == PSMTab_BottomTab) ? rect.origin.y : rect.origin.y + 10,
rect.size.width - 2,
rect.size.height - 10)];
rect.size.height - 11)];
}
 
+ (PseudoTerminal*)terminalWithArrangement:(NSDictionary*)arrangement
Loading
Loading
Loading
Loading
@@ -76,6 +76,7 @@ void DebugLog(NSString* value);
IBOutlet NSMenuItem *toggleBookmarksView;
IBOutlet NSMenuItem *irNext;
IBOutlet NSMenuItem *irPrev;
IBOutlet NSMenuItem *windowArrangements_;
 
IBOutlet NSMenuItem *secureInput;
IBOutlet NSMenuItem *showFullScreenTabs;
Loading
Loading
Loading
Loading
@@ -164,10 +164,10 @@ static BOOL hasBecomeActive = NO;
[self showBookmarkWindow:nil];
if ([[PreferencePanel sharedInstance] openArrangementAtStartup]) {
// Open both bookmark window and arrangement!
[[iTermController sharedInstance] loadWindowArrangement];
[[iTermController sharedInstance] loadWindowArrangementWithName:[ArrangementsModel defaultArrangementName]];
}
} else if ([[PreferencePanel sharedInstance] openArrangementAtStartup]) {
[[iTermController sharedInstance] loadWindowArrangement];
[[iTermController sharedInstance] loadWindowArrangementWithName:[ArrangementsModel defaultArrangementName]];
} else {
[self newWindow:nil];
}
Loading
Loading
@@ -407,6 +407,11 @@ static BOOL hasBecomeActive = NO;
name:@"nonTerminalWindowBecameKey"
object:nil];
 
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(windowArrangementsDidChange:)
name:@"iTermSavedArrangementChanged"
object:nil];
[[NSAppleEventManager sharedAppleEventManager] setEventHandler:self
andSelector:@selector(getUrl:withReplyEvent:)
forEventClass:kInternetEventClass
Loading
Loading
@@ -418,9 +423,41 @@ static BOOL hasBecomeActive = NO;
return self;
}
 
- (void)_updateArrangementsMenu
{
while ([[windowArrangements_ submenu] numberOfItems]) {
[[windowArrangements_ submenu] removeItemAtIndex:0];
}
NSString *defaultName = [ArrangementsModel defaultArrangementName];
for (NSString *theName in [ArrangementsModel allNames]) {
NSString *theShortcut;
if ([theName isEqualToString:defaultName]) {
theShortcut = @"R";
} else {
theShortcut = @"";
}
[[windowArrangements_ submenu] addItemWithTitle:theName
action:@selector(restoreWindowArrangement:)
keyEquivalent:theShortcut];
}
}
- (void)windowArrangementsDidChange:(id)sender
{
[self _updateArrangementsMenu];
}
- (void)restoreWindowArrangement:(id)sender
{
[[iTermController sharedInstance] loadWindowArrangementWithName:[sender title]];
}
- (void)awakeFromNib
{
secureInputDesired_ = [[[NSUserDefaults standardUserDefaults] objectForKey:@"Secure Input"] boolValue];
[self _updateArrangementsMenu];
}
 
- (void)getUrl:(NSAppleEventDescriptor *)event withReplyEvent:(NSAppleEventDescriptor *)replyEvent
Loading
Loading
@@ -1033,7 +1070,7 @@ void DebugLog(NSString* value)
 
- (IBAction)loadWindowArrangement:(id)sender
{
[[iTermController sharedInstance] loadWindowArrangement];
[[iTermController sharedInstance] loadWindowArrangementWithName:[ArrangementsModel defaultArrangementName]];
}
 
// TODO(georgen): Disable "Edit Current Session..." when there are no current sessions.
Loading
Loading
Loading
Loading
@@ -293,11 +293,11 @@ static BOOL IsSnowLeopardOrLater() {
- (void)saveWindowArrangement
{
NSString *name = [self _showAlertWithText:@"Name for saved window arrangement:"
defaultInput:[NSString stringWithFormat:@"Arrangement %d", 1+[[ArrangementsModel sharedInstance] count]]];
defaultInput:[NSString stringWithFormat:@"Arrangement %d", 1+[ArrangementsModel count]]];
if (!name) {
return;
}
if ([[ArrangementsModel sharedInstance] hasWindowArrangement:name]) {
if ([ArrangementsModel hasWindowArrangement:name]) {
if (NSRunAlertPanel(@"Replace Existing Saved Window Arrangement?",
@"There is an existing saved window arrangement with this name. Would you like to replace it with the current arrangement?",
@"Yes",
Loading
Loading
@@ -312,13 +312,13 @@ static BOOL IsSnowLeopardOrLater() {
[terminalArrangements addObject:[terminal arrangement]];
}
}
[[ArrangementsModel sharedInstance] setArrangement:terminalArrangements withName:name];
[ArrangementsModel setArrangement:terminalArrangements withName:name];
}
 
- (void)loadWindowArrangement
- (void)loadWindowArrangementWithName:(NSString *)theName
{
NSArray* terminalArrangements = [[ArrangementsModel sharedInstance] arrangementWithName:nil];
NSArray* terminalArrangements = [ArrangementsModel arrangementWithName:theName];
if (terminalArrangements) {
for (NSDictionary* terminalArrangement in terminalArrangements) {
PseudoTerminal* term = [PseudoTerminal terminalWithArrangement:terminalArrangement];
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment