aboutsummaryrefslogtreecommitdiffstats
path: root/Source/SPExportController.m
diff options
context:
space:
mode:
authorstuconnolly <stuart02@gmail.com>2010-07-25 09:16:20 +0000
committerstuconnolly <stuart02@gmail.com>2010-07-25 09:16:20 +0000
commitf578b247bed73fe2b8a7f0fc2efbe0b191890df9 (patch)
treea774c78f431eac291bb329d358c18cf112445de2 /Source/SPExportController.m
parentc073e11612e36a7f9b8d7033faf08d663dd40c1f (diff)
downloadsequelpro-f578b247bed73fe2b8a7f0fc2efbe0b191890df9.tar.gz
sequelpro-f578b247bed73fe2b8a7f0fc2efbe0b191890df9.tar.bz2
sequelpro-f578b247bed73fe2b8a7f0fc2efbe0b191890df9.zip
Make the export dialog a little smarter with regard to the current context. For example:
If either the table content or custom query editor views are active and there is data available, these options will be selected as the export source ('Filtered' or 'Query Result'). If either of these views are not active then the default source are the currently selected tables. If no tables are currently selected then all tables are checked. Note that in this instance the default export type is SQL where as in the case of filtered or query result export the default type is CSV. Also remove some old export methods. Related to issue #610.
Diffstat (limited to 'Source/SPExportController.m')
-rw-r--r--Source/SPExportController.m41
1 files changed, 41 insertions, 0 deletions
diff --git a/Source/SPExportController.m b/Source/SPExportController.m
index 89f4fdce..0a36a32c 100644
--- a/Source/SPExportController.m
+++ b/Source/SPExportController.m
@@ -130,6 +130,47 @@
#pragma mark IB action methods
/**
+ * Opens the export dialog selecting the appropriate export type and source based on the current context.
+ * For example, if either the table content view or custom query editor views are active and there is
+ * data available, these options will be selected as the export source ('Filtered' or 'Query Result'). If
+ * either of these views are not active then the default source are the currently selected tables. If no
+ * tables are currently selected then all tables are checked. Note that in this instance the default export
+ * type is SQL where as in the case of filtered or query result export the default type is CSV.
+ */
+- (IBAction)export:(id)sender
+{
+ SPExportType exportType = SPSQLExport;
+ SPExportSource exportSource = SPTableExport;
+
+ NSArray *tables = [tablesListInstance selectedTableItems];
+
+ BOOL isCustomQuerySelected = ([tableDocumentInstance isCustomQuerySelected] && ([[customQueryInstance currentResult] count] > 1));
+ BOOL isContentSelected = ([[tableDocumentInstance selectedToolbarItemIdentifier] isEqualToString:SPMainToolbarTableContent] && ([[tableContentInstance currentResult] count] > 1));
+
+ if (isContentSelected) {
+ tables = nil;
+ exportType = SPCSVExport;
+ exportSource = SPFilteredExport;
+ }
+ else if (isCustomQuerySelected) {
+ tables = nil;
+ exportType = SPCSVExport;
+ exportSource = SPQueryExport;
+ }
+ else {
+ tables = ([tables count]) ? tables : nil;
+ }
+
+ [self exportTables:tables asFormat:exportType usingSource:exportSource];
+
+ // Ensure UI validation
+ [self switchInput:exportInputPopUpButton];
+}
+
+#pragma mark -
+#pragma mark Export methods
+
+/**
* Displays the export window with the supplied tables and export type/format selected.
*/
- (void)exportTables:(NSArray *)exportTables asFormat:(SPExportType)format usingSource:(SPExportSource)source