aboutsummaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
Diffstat (limited to 'Source')
-rw-r--r--Source/SPExportFile.h2
-rw-r--r--Source/SPExportFile.m16
-rw-r--r--Source/SPExportInitializer.m5
-rw-r--r--Source/SPSQLExporter.m2
4 files changed, 22 insertions, 3 deletions
diff --git a/Source/SPExportFile.h b/Source/SPExportFile.h
index fb61eef2..946f6aec 100644
--- a/Source/SPExportFile.h
+++ b/Source/SPExportFile.h
@@ -82,5 +82,5 @@
- (BOOL)delete;
- (void)writeData:(NSData *)data;
- (SPExportFileHandleStatus)createExportFileHandle:(BOOL)overwrite;
-
+- (void)setCompressionFormat:(SPFileCompressionFormat)fileCompressionFormat;
@end
diff --git a/Source/SPExportFile.m b/Source/SPExportFile.m
index e102b28e..1f09157f 100644
--- a/Source/SPExportFile.m
+++ b/Source/SPExportFile.m
@@ -168,6 +168,22 @@
return exportFileHandleStatus;
}
+/**
+ * Sets the compression level on the newly created file. Throws an exception
+ * if attempting to set the compression level when no file handle exists.
+ *
+ * @param fileCompressionFormat The compression level to support, from the SPFileCompressionFormat enum.
+ */
+- (void)setCompressionFormat:(SPFileCompressionFormat)fileCompressionFormat
+{
+ if (![self exportFileHandle]) {
+ [NSException raise:NSInternalInconsistencyException format:@"Attempting to set compression level of an uninitialized file handle."];
+ return;
+ }
+
+ [[self exportFileHandle] setShouldWriteWithCompressionFormat:fileCompressionFormat];
+}
+
#pragma mark -
#pragma mark Private API
diff --git a/Source/SPExportInitializer.m b/Source/SPExportInitializer.m
index a34f729b..4812dd82 100644
--- a/Source/SPExportInitializer.m
+++ b/Source/SPExportInitializer.m
@@ -397,8 +397,11 @@
// Create the actual file handles while dealing with errors (e.g. file already exists, etc) during creation
for (SPExportFile *exportFile in exportFiles)
- {
+ {
if ([exportFile createExportFileHandle:NO] == SPExportFileHandleCreated) {
+
+ // TODO: these will not currently get triggered if there's an error in creating the files - eg when the user later chooses "overwrite".
+ [exportFile setCompressionFormat:[exportOutputCompressionFormatPopupButton indexOfSelectedItem]];
if ([exportFile exportFileNeedsCSVHeader]) {
[self writeCSVHeaderToExportFile:exportFile];
}
diff --git a/Source/SPSQLExporter.m b/Source/SPSQLExporter.m
index a38732cb..186243b1 100644
--- a/Source/SPSQLExporter.m
+++ b/Source/SPSQLExporter.m
@@ -135,7 +135,7 @@
// Clear errors
[self setSqlExportErrors:@""];
-
+
// Copy over the selected item names into tables in preparation for iteration
NSMutableArray *targetArray;