Engauge Digitizer 2
Loading...
Searching...
No Matches
ExportFileExtensionOverride.cpp
Go to the documentation of this file.
1/******************************************************************************************************
2 * (C) 2019 markummitchell@github.com. This file is part of Engauge Digitizer, which is released *
3 * under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file *
4 * LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. *
5 ******************************************************************************************************/
6
9#include "ExportToFile.h"
10
14
18
20{
21 return QString (".%1")
22 .arg (exportStrategy.fileExtensionCsv());
23}
24
26{
27 return QString (".%1")
28 .arg (exportStrategy.fileExtensionTsv());
29}
30
32 const ExportToFile &exportStrategy,
33 const QString &fileName) const
34{
35 DocumentModelExportFormat modelAfter = modelBefore;
36
37 // See if delimiter setting overrides commas/tabs for files with csv/tsv file extensions respectively
38 if (!modelAfter.overrideCsvTsv()) {
39
40 // Extract file extensions
41 QString csvExtension = extensionWithPeriodCsv (exportStrategy);
42 QString tsvExtension = extensionWithPeriodTsv (exportStrategy);
43 QString fileExtensionVersusCsv = fileName.right (csvExtension.size());
44 QString fileExtensionVersusTsv = fileName.right (tsvExtension.size());
45
46 // Override if CSV or TSV was selected. We cannot use QFileDialog::selectedNameFilter() since that is
47 // broken in Linux, so we use the file extension
48 if (csvExtension.compare (fileExtensionVersusCsv, Qt::CaseInsensitive) == 0) {
50 } else if (tsvExtension.compare (fileExtensionVersusTsv, Qt::CaseInsensitive) == 0) {
52 }
53 }
54
55 return modelAfter;
56}
@ EXPORT_DELIMITER_COMMA
@ EXPORT_DELIMITER_TAB
Model for DlgSettingsExportFormat and CmdSettingsExportFormat.
bool overrideCsvTsv() const
Get method for csv/tsv format override.
void setDelimiter(ExportDelimiter exportDelimiter)
Set method for delimiter.
QString extensionWithPeriodCsv(const ExportToFile &exportStrategy) const
Extension for csv file with period.
QString extensionWithPeriodTsv(const ExportToFile &exportStrategy) const
Extension for tsv file with period.
DocumentModelExportFormat modelExportOverride(const DocumentModelExportFormat &modelExportFormatBefore, const ExportToFile &exportStrategy, const QString &selectedNameFilter) const
Adjust export settings given filename extension.
Strategy class for exporting to a file. This strategy is external to the Document class so that class...
QString fileExtensionTsv() const
File extension for tsv export files.
QString fileExtensionCsv() const
File extension for csv export files.