[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [labplot] src/backend/datasources/projects: Create xy-curves in Origin import.
From: Alexander Semke <null () kde ! org>
Date: 2018-02-03 11:29:48
Message-ID: E1ehw0y-0002n2-7q () code ! kde ! org
[Download RAW message or body]
Git commit d79ddce9c7e891b56eb068067b5cacab44ece204 by Alexander Semke.
Committed on 03/02/2018 at 11:29.
Pushed by asemke into branch 'master'.
Create xy-curves in Origin import.
M +87 -90 src/backend/datasources/projects/OriginProjectParser.cpp
https://commits.kde.org/labplot/d79ddce9c7e891b56eb068067b5cacab44ece204
diff --git a/src/backend/datasources/projects/OriginProjectParser.cpp \
b/src/backend/datasources/projects/OriginProjectParser.cpp index 4b387f23..01cfc54c \
100644
--- a/src/backend/datasources/projects/OriginProjectParser.cpp
+++ b/src/backend/datasources/projects/OriginProjectParser.cpp
@@ -28,22 +28,24 @@
***************************************************************************/
#include "backend/datasources/projects/OriginProjectParser.h"
+#include "backend/core/column/Column.h"
+#include "backend/core/datatypes/Double2StringFilter.h"
+#include "backend/core/datatypes/DateTime2StringFilter.h"
#include "backend/core/Project.h"
-
#include "backend/core/Workbook.h"
-#include "backend/spreadsheet/Spreadsheet.h"
#include "backend/matrix/Matrix.h"
#include "backend/note/Note.h"
+#include "backend/spreadsheet/Spreadsheet.h"
#include "backend/worksheet/Worksheet.h"
-#include "backend/core/column/Column.h"
#include "backend/worksheet/plots/cartesian/CartesianPlot.h"
#include "backend/worksheet/plots/cartesian/CartesianPlotLegend.h"
+#include "backend/worksheet/plots/cartesian/XYCurve.h"
#include "backend/worksheet/TextLabel.h"
-#include "backend/core/datatypes/Double2StringFilter.h"
-#include "backend/core/datatypes/DateTime2StringFilter.h"
#include <liborigin/OriginFile.h>
+#include <KLocale>
+
#include <QDateTime>
#include <QFontMetrics>
@@ -652,107 +654,102 @@ bool OriginProjectParser::loadWorksheet(Worksheet* worksheet, \
bool preview) {
//load worksheet data
Origin::Graph graph = m_originFile->graph(m_graphIndex);
-
-// TODO:worksheet->hide();//!hack used in order to avoid resize and repaint events
worksheet->setComment(graph.label.c_str());
//add plots
+ int index = 1;
for (const auto& layer: graph.layers) {
- CartesianPlot* plot = new CartesianPlot("");
+ if (!layer.is3D()) {
+ CartesianPlot* plot = new CartesianPlot(i18n("Plot") + QString::number(index));
+
+ //add legend if available
+ if (!layer.legend.text.empty()) {
+ CartesianPlotLegend* legend = new CartesianPlotLegend(plot, "");
+ legend->title()->setText( \
parseOriginText(QString::fromLatin1(layer.legend.text.c_str())) ); \
+ plot->addChild(legend); + }
- //add legend if available
- if (!layer.legend.text.empty()) {
- CartesianPlotLegend* legend = new CartesianPlotLegend(plot, "");
- legend->title()->setText( \
parseOriginText(QString::fromLatin1(layer.legend.text.c_str())) );
- plot->addChild(legend);
- }
+ // TODO: we only support one legend
+ //add texts
+ /* for (const auto &s: layer.texts) {
+ DEBUG("EXTRA TEXT =" << s.text.c_str());
+ // plot->newLegend(parseOriginText(QString::fromLocal8Bit(s.text.c_str())));
+ }
+ */
+ // int auto_color = 0;
+ // int style = 0;
- // TODO: we only support one legend
- //add texts
-/* for (const auto &s: layer.texts) {
- DEBUG("EXTRA TEXT =" << s.text.c_str());
- // plot->newLegend(parseOriginText(QString::fromLocal8Bit(s.text.c_str())));
- }
-*/
-// int auto_color = 0;
-// int style = 0;
+ //add curves
+ int curveIndex = 1;
+ for (const auto& curve: layer.curves) {
+ if (curve.type == Origin::GraphCurve::Line || curve.type == \
Origin::GraphCurve::Scatter || curve.type == Origin::GraphCurve::LineSymbol + || \
curve.type == Origin::GraphCurve::ErrorBar || curve.type == \
Origin::GraphCurve::XErrorBar) { + XYCurve* xyCurve = new XYCurve(i18n("Curve") + \
QString::number(curveIndex)); + plot->addChild(xyCurve);
+ } else if (curve.type == Origin::GraphCurve::Column) {
+ //vertical bars
- //add curves
- for (const auto& curve: layer.curves) {
- QString data(QString::fromLatin1(curve.dataName.c_str()));
-// int color = 0;
+ } else if (curve.type == Origin::GraphCurve::Bar) {
+ //horizontal bars
- switch (curve.type) {
- case Origin::GraphCurve::Line:
-// style = Graph::Line;
- break;
- case Origin::GraphCurve::Scatter:
-// style = Graph::Scatter;
- break;
- case Origin::GraphCurve::LineSymbol:
-// style = Graph::LineSymbols;
- break;
- case Origin::GraphCurve::ErrorBar:
- case Origin::GraphCurve::XErrorBar:
-// style = Graph::ErrorBars;
- break;
- case Origin::GraphCurve::Column:
-// style = Graph::VerticalBars;
- break;
- case Origin::GraphCurve::Bar:
-// style = Graph::HorizontalBars;
- break;
- case Origin::GraphCurve::Histogram:
-// style = Graph::Histogram;
- break;
- default:
- continue;
- }
+ } else if (curve.type == Origin::GraphCurve::Histogram) {
-/* QString tableName;
- switch(data[0].toAscii()) {
- case 'T':
- case 'E': {
- tableName = data.right(data.length() - 2);
- Table* table = mw->table(tableName);
- if (!table)
+ }
+
+
+ QString data(QString::fromLatin1(curve.dataName.c_str()));
+ // int color = 0;
+ /* QString tableName;
+ switch(data[0].toAscii()) {
+ case 'T':
+ case 'E': {
+ tableName = data.right(data.length() - 2);
+ Table* table = mw->table(tableName);
+ if (!table)
+ break;
+ if(style == Graph::ErrorBars) {
+ int flags=_curve.symbolType;
+ graph->addErrorBars(QString("%1_%2").arg(tableName, \
_curve.xColumnName.c_str()), table, QString("%1_%2").arg(tableName, \
_curve.yColumnName.c_str()), + ((flags&0x10)==0x10?0:1), \
ceil(_curve.lineWidth), ceil(_curve.symbolSize), QColor(Qt::black), \
+ (flags&0x40)==0x40, (flags&2)==2, (flags&1)==1); + } else if(style == \
Graph::Histogram) { + graph->insertCurve(table, QString("%1_%2").arg(tableName, \
_curve.yColumnName.c_str()), style); + } else {
+ graph->insertCurve(table, QString("%1_%2").arg(tableName, \
_curve.xColumnName.c_str()), QString("%1_%2").arg(tableName, \
_curve.yColumnName.c_str()), style); + }
break;
- if(style == Graph::ErrorBars) {
- int flags=_curve.symbolType;
- graph->addErrorBars(QString("%1_%2").arg(tableName, \
_curve.xColumnName.c_str()), table, QString("%1_%2").arg(tableName, \
_curve.yColumnName.c_str()),
- ((flags&0x10)==0x10?0:1), ceil(_curve.lineWidth), ceil(_curve.symbolSize), \
QColor(Qt::black),
- (flags&0x40)==0x40, (flags&2)==2, (flags&1)==1);
- } else if(style == Graph::Histogram) {
- graph->insertCurve(table, QString("%1_%2").arg(tableName, \
_curve.yColumnName.c_str()), style);
- } else {
- graph->insertCurve(table, QString("%1_%2").arg(tableName, \
_curve.xColumnName.c_str()), QString("%1_%2").arg(tableName, \
_curve.yColumnName.c_str()), style); }
- break;
- }
- //TODO
- }
-*/
+ //TODO
+ }
+ */
+
+ /* CurveLayout cl = graph->initCurveLayout(style, layer.curves.size());
+ cl.sSize = ceil(_curve.symbolSize*0.5);
+ cl.penWidth = _curve.symbolThickness;
+ color = _curve.symbolColor.regular;
+ if((style == Graph::Scatter || style == Graph::LineSymbols) && color == 0xF7) // \
0xF7 -Automatic color + color = auto_color++;
+ cl.symCol = color;
+ switch(_curve.symbolType & 0xFF) {
+ case 0: //NoSymbol
+ cl.sType = 0;
+ break;
+ //TODO
+ }
+ */
-/* CurveLayout cl = graph->initCurveLayout(style, layer.curves.size());
- cl.sSize = ceil(_curve.symbolSize*0.5);
- cl.penWidth = _curve.symbolThickness;
- color = _curve.symbolColor.regular;
- if((style == Graph::Scatter || style == Graph::LineSymbols) && color == 0xF7) // \
0xF7 -Automatic color
- color = auto_color++;
- cl.symCol = color;
- switch(_curve.symbolType & 0xFF) {
- case 0: //NoSymbol
- cl.sType = 0;
- break;
- //TODO
- }
-*/
+ //TODO
- //TODO
+ ++curveIndex;
+ }
+ worksheet->addChild(plot);
+ } else {
+ //no support for 3D plots yet
+ //TODO: add an "UnsupportedAspect" here
}
- worksheet->addChild(plot);
+ ++index;
}
return true;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic