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