From 5dc4311e9a135ba86b57972240db8ee25b5e77bd Mon Sep 17 00:00:00 2001 From: Bibiko Date: Sun, 15 Aug 2010 15:01:44 +0000 Subject: Improve export menu item validation by disabling export as XML and CSV when only multiple procs and/or functions are selected --- Source/SPDatabaseDocument.m | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'Source/SPDatabaseDocument.m') diff --git a/Source/SPDatabaseDocument.m b/Source/SPDatabaseDocument.m index 42d42931..21d5034a 100644 --- a/Source/SPDatabaseDocument.m +++ b/Source/SPDatabaseDocument.m @@ -3522,15 +3522,25 @@ NSInteger tag = [menuItem tag]; NSInteger type = [tablesListInstance tableType]; + NSInteger numberOfSelectedItems = [[[tablesListInstance valueForKeyPath:@"tablesListView"] selectedRowIndexes] count]; - BOOL enable = (([self database] != nil) && ([[[tablesListInstance valueForKeyPath:@"tablesListView"] selectedRowIndexes] count])); + BOOL enable = (([self database] != nil) && numberOfSelectedItems); - if (type == SPTableTypeTable) { - return enable; - } - else if ((type == SPTableTypeProc) || (type == SPTableTypeFunc)) { + // Enable all export formats if at least one table/view is selected + if (numberOfSelectedItems == 1) { + if (type == SPTableTypeTable || type == SPTableTypeView) { + return enable; + } + else if ((type == SPTableTypeProc) || (type == SPTableTypeFunc)) { + return (enable && (tag == SPSQLExport)); + } + } else { + for(NSNumber *type in [tablesListInstance selectedTableTypes]) + if([type intValue] == SPTableTypeTable || [type intValue] == SPTableTypeView) + return enable; + return (enable && (tag == SPSQLExport)); - } + } } if ([menuItem action] == @selector(import:) || -- cgit v1.2.3