aboutsummaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorBibiko <bibiko@eva.mpg.de>2010-06-17 10:52:50 +0000
committerBibiko <bibiko@eva.mpg.de>2010-06-17 10:52:50 +0000
commited3d93c5d420dffa1a9ee64851648396b81bcac9 (patch)
tree9b94d39f0da3cc5fe641b9b11a08ac05c935874b /Source
parent6bde8e73c88f59fc3a41e6aab1db8aa233fb1b08 (diff)
downloadsequelpro-ed3d93c5d420dffa1a9ee64851648396b81bcac9.tar.gz
sequelpro-ed3d93c5d420dffa1a9ee64851648396b81bcac9.tar.bz2
sequelpro-ed3d93c5d420dffa1a9ee64851648396b81bcac9.zip
• open a SPF file in a new tab if the tab bar of the front most document is visible otherwise open it in a new window
Diffstat (limited to 'Source')
-rw-r--r--Source/SPAppController.m21
1 files changed, 16 insertions, 5 deletions
diff --git a/Source/SPAppController.m b/Source/SPAppController.m
index a6b965c7..7a3ec334 100644
--- a/Source/SPAppController.m
+++ b/Source/SPAppController.m
@@ -275,14 +275,25 @@
}
else if([[[filename pathExtension] lowercaseString] isEqualToString:@"spf"]) {
- SPDatabaseDocument *newTableDocument;
+ SPWindowController *frontController = nil;
- // If the frontmost document isn't connected and hasn't been, open the connection file with it.
- // Otherwise, manually open a new document, setting SPAppController as sender to trigger autoconnection
- if (![self frontDocument] || [[self frontDocument] mySQLVersion]) {
+ for (NSWindow *aWindow in [self orderedWindows]) {
+ if ([[aWindow windowController] isMemberOfClass:[SPWindowController class]]) {
+ frontController = [aWindow windowController];
+ break;
+ }
+ }
+
+ // If no window was found or the front most window has no tabs, create a new one
+ if (!frontController || [[frontController valueForKeyPath:@"tabView"] numberOfTabViewItems] == 1) {
[self newWindow:self];
+ // Open the spf file in a new tab if the tab bar is visible
+ } else if ([[frontController valueForKeyPath:@"tabView"] numberOfTabViewItems] != 1) {
+ if ([[frontController window] isMiniaturized]) [[frontController window] deminiaturize:self];
+ [frontController addNewConnection:self];
}
- [[self frontDocument] initWithConnectionFile:filename];
+
+ [[self frontDocument] initWithConnectionFile:filename];
}
else {
NSLog(@"Only files with the extensions ‘spf’ or ‘sql’ are allowed.");