00001
00002
00003
00004
00005
00006
00007 #include "CurveConnectAs.h"
00008 #include "Document.h"
00009 #include "EngaugeAssert.h"
00010 #include "ExportFileAbstractBase.h"
00011 #include "Logger.h"
00012 #include <qdebug.h>
00013 #include <qmath.h>
00014 #include <QTextStream>
00015 #include "Transformation.h"
00016
00017 using namespace std;
00018
00019 ExportFileAbstractBase::ExportFileAbstractBase()
00020 {
00021 }
00022
00023 QStringList ExportFileAbstractBase::curvesToInclude (const DocumentModelExportFormat &modelExportOverride,
00024 const Document &document,
00025 const QStringList &curvesGraphsNames,
00026 CurveConnectAs curveConnectAs1,
00027 CurveConnectAs curveConnectAs2) const
00028 {
00029 LOG4CPP_INFO_S ((*mainCat)) << "ExportFileAbstractBase::curvesToInclude";
00030
00031 QStringList curvesToInclude;
00032
00033
00034
00035 QStringList::const_iterator itr;
00036 for (itr = curvesGraphsNames.begin(); itr != curvesGraphsNames.end(); itr++) {
00037
00038 QString curvesGraphName = *itr;
00039
00040 if (!modelExportOverride.curveNamesNotExported().contains (curvesGraphName)) {
00041
00042 const Curve *curve = document.curveForCurveName(curvesGraphName);
00043 ENGAUGE_CHECK_PTR (curve);
00044
00045
00046 if (curve->curveStyle().lineStyle().curveConnectAs() == curveConnectAs1 ||
00047 curve->curveStyle().lineStyle().curveConnectAs() == curveConnectAs2) {
00048
00049 curvesToInclude.push_back (curvesGraphName);
00050 }
00051 }
00052 }
00053
00054 return curvesToInclude;
00055 }
00056
00057 void ExportFileAbstractBase::destroy2DArray (QVector<QVector<QString*> > &array) const
00058 {
00059 LOG4CPP_INFO_S ((*mainCat)) << "ExportFileAbstractBase::destroy2DArray";
00060
00061 int colCount = array.count();
00062 int rowCount = array [0].count();
00063 for (int row = 0; row < rowCount; row++) {
00064 for (int col = 0; col < colCount; col++) {
00065 delete array [col] [row];
00066 }
00067 }
00068 }
00069
00070 QString ExportFileAbstractBase::gnuplotComment() const
00071 {
00072 return QString ("# ");
00073 }
00074
00075 void ExportFileAbstractBase::insertLineSeparator (bool isFirst,
00076 ExportHeader exportHeader,
00077 QTextStream &str) const
00078 {
00079
00080 if (!isFirst) {
00081 if (exportHeader == EXPORT_HEADER_GNUPLOT) {
00082 str << "\n\n";
00083 } else {
00084 str << "\n";
00085 }
00086 }
00087 }
00088
00089 QString ExportFileAbstractBase::wrapInDoubleQuotesIfNeeded (const DocumentModelExportFormat &modelExportOverride,
00090 const QString &valueString) const
00091 {
00092 QString newValueString = valueString;
00093
00094 if ((modelExportOverride.delimiter () == EXPORT_DELIMITER_COMMA) &&
00095 (valueString.indexOf (",") >= 0)) {
00096
00097
00098 newValueString = QString ("\"%1\"").arg (valueString);
00099 }
00100
00101 return newValueString;
00102 }