aboutsummaryrefslogtreecommitdiffstats
path: root/Source/TableDocument.m
diff options
context:
space:
mode:
authorstuconnolly <stuart02@gmail.com>2009-04-05 20:22:04 +0000
committerstuconnolly <stuart02@gmail.com>2009-04-05 20:22:04 +0000
commitcb406e22d30aaf6dc62ea0917943adb555a8b3e6 (patch)
treeea0dbea2809a952ba529091b643f9dfc619e4a0b /Source/TableDocument.m
parent5a1f162168e2228be7976842441080b3fc5d00e0 (diff)
downloadsequelpro-cb406e22d30aaf6dc62ea0917943adb555a8b3e6.tar.gz
sequelpro-cb406e22d30aaf6dc62ea0917943adb555a8b3e6.tar.bz2
sequelpro-cb406e22d30aaf6dc62ea0917943adb555a8b3e6.zip
Fix an issue where by the show/hide console menu item was not being updated when the toolbar item was used. Also add more interface validation by only enabling the 'Clear Console' menu and toolbar items when there is at least one message in the console.
Diffstat (limited to 'Source/TableDocument.m')
-rw-r--r--Source/TableDocument.m33
1 files changed, 24 insertions, 9 deletions
diff --git a/Source/TableDocument.m b/Source/TableDocument.m
index 9e0853e0..72742cf6 100644
--- a/Source/TableDocument.m
+++ b/Source/TableDocument.m
@@ -609,12 +609,15 @@ NSString *TableDocumentFavoritesControllerFavoritesDidChange = @"TableDocumentFa
{
BOOL isConsoleVisible = [[[SPQueryConsole sharedQueryConsole] window] isVisible];
+ // Show or hide the console
[[[SPQueryConsole sharedQueryConsole] window] setIsVisible:(!isConsoleVisible)];
+ // Get the menu item for showing and hiding the console. This is isn't the best way to get it as any
+ // changes to the menu structure will result in the wrong item being selected.
+ NSMenuItem *menuItem = [[[[NSApp mainMenu] itemAtIndex:3] submenu] itemAtIndex:5];
+
// Only update the menu item title if its the menu item and not the toolbar
- if ([sender isKindOfClass:[NSMenuItem class]]) {
- [(NSMenuItem *)sender setTitle:(!isConsoleVisible) ? NSLocalizedString(@"Hide Console", @"Hide Console") : NSLocalizedString(@"Show Console", @"Show Console")];
- }
+ [menuItem setTitle:(!isConsoleVisible) ? NSLocalizedString(@"Hide Console", @"Hide Console") : NSLocalizedString(@"Show Console", @"Show Console")];
}
/**
@@ -1301,8 +1304,8 @@ NSString *TableDocumentFavoritesControllerFavoritesDidChange = @"TableDocumentFa
mainToolbar = [[[NSToolbar alloc] initWithIdentifier:@"TableWindowToolbar"] autorelease];
// set up toolbar properties
- [mainToolbar setAllowsUserCustomization: YES];
- [mainToolbar setAutosavesConfiguration: YES];
+ [mainToolbar setAllowsUserCustomization:YES];
+ [mainToolbar setAutosavesConfiguration:YES];
[mainToolbar setDisplayMode:NSToolbarDisplayModeIconAndLabel];
// set ourself as the delegate
@@ -1365,7 +1368,7 @@ NSString *TableDocumentFavoritesControllerFavoritesDidChange = @"TableDocumentFa
[toolbarItem setToolTip:NSLocalizedString(@"Clear the console which shows all MySQL commands performed by Sequel Pro", @"tooltip for toolbar item for clear console")];
[toolbarItem setImage:[NSImage imageNamed:@"clearconsole"]];
//set up the target action
- [toolbarItem setTarget:[SPQueryConsole sharedQueryConsole]];
+ [toolbarItem setTarget:self];
[toolbarItem setAction:@selector(clearConsole:)];
} else if ([itemIdentifier isEqualToString:@"SwitchToTableStructureToolbarItemIdentifier"]) {
@@ -1452,6 +1455,9 @@ NSString *TableDocumentFavoritesControllerFavoritesDidChange = @"TableDocumentFa
nil];
}
+/**
+ * toolbar delegate method
+ */
- (NSArray *)toolbarSelectableItemIdentifiers:(NSToolbar *)toolbar
{
return [NSArray arrayWithObjects:
@@ -1464,20 +1470,29 @@ NSString *TableDocumentFavoritesControllerFavoritesDidChange = @"TableDocumentFa
}
/**
- * validates the toolbar items
+ * Validates the toolbar items
*/
- (BOOL)validateToolbarItem:(NSToolbarItem *)toolbarItem;
{
- if ([[toolbarItem itemIdentifier] isEqualToString:@"ToggleConsoleIdentifier"]) {
+ NSString *identifier = [toolbarItem itemIdentifier];
+
+ // Toggle console item
+ if ([identifier isEqualToString:@"ToggleConsoleIdentifier"]) {
if ([[[SPQueryConsole sharedQueryConsole] window] isVisible]) {
[toolbarItem setLabel:@"Hide Console"];
[toolbarItem setImage:[NSImage imageNamed:@"hideconsole"]];
- } else {
+ }
+ else {
[toolbarItem setLabel:@"Show Console"];
[toolbarItem setImage:[NSImage imageNamed:@"showconsole"]];
}
}
+ // Clear console item
+ if ([identifier isEqualToString:@"ClearConsoleIdentifier"]) {
+ return ([[SPQueryConsole sharedQueryConsole] consoleMessageCount] > 0);
+ }
+
return YES;
}