| 33 | class Worksheet; |
| 34 | |
| 35 | class OriginProjectParser : public ProjectParser { |
| 36 | Q_OBJECT |
| 37 | |
| 38 | public: |
| 39 | OriginProjectParser(); |
| 40 | ~OriginProjectParser() override; |
| 41 | |
| 42 | static bool isOriginProject(const QString& fileName); |
| 43 | static QString supportedExtensions(); |
| 44 | |
| 45 | void checkContent(bool& hasUnusedObjects, bool& hasMultiLayers); |
| 46 | void setImportUnusedObjects(bool); |
| 47 | void setGraphLayerAsPlotArea(bool); |
| 48 | |
| 49 | protected: |
| 50 | bool load(Project*, bool preview) override; |
| 51 | |
| 52 | private: |
| 53 | bool loadFolder(Folder*, tree<Origin::ProjectNode>::iterator, bool preview); |
| 54 | bool loadWorkbook(Workbook*, bool preview); |
| 55 | bool loadSpreadsheet(Spreadsheet*, bool preview, const QString& wbName = QString(), int sheetIndex = -1); |
| 56 | void loadColumnNumericFormat(const Origin::SpreadColumn&, Column*) const; |
| 57 | bool loadMatrixWorkbook(Workbook*, bool preview); |
| 58 | bool loadMatrix(Matrix*, bool preview, size_t sheetIndex = 0, const QString& mwbName = QString()); |
| 59 | |
| 60 | bool loadWorksheet(Worksheet*, bool preview); |
| 61 | void loadGraphLayer(const Origin::GraphLayer&, CartesianPlot*, int layerIndex, QHash<TextLabel*, QSizeF>& textLabelPositions, bool preview); |
| 62 | void loadCurves(const Origin::GraphLayer&, CartesianPlot*, int layerIndex, bool preview); |
| 63 | void loadAxes(const Origin::GraphLayer&, CartesianPlot*, int layerIndex, const QString& xColumnInfo, const QString& yColumnInfo); |
| 64 | void loadAxis(const Origin::GraphAxis&, Axis*, int layerIndex, int index, const QString& columnInfo = QString()) const; |
| 65 | void loadCurve(const Origin::GraphCurve&, XYCurve*) const; |
| 66 | void loadBackground(const Origin::GraphCurve&, Background*) const; |
| 67 | void loadSymbol(const Origin::GraphCurve&, Symbol*, const XYCurve* = nullptr) const; |
| 68 | |
| 69 | bool loadNote(Note*, bool preview); |
| 70 | void handleLooseWindows(Folder*, bool preview); |
| 71 | |
| 72 | bool hasUnusedObjects(); |
| 73 | bool hasMultiLayerGraphs(); |
| 74 | void restorePointers(Project*); |
| 75 | |
| 76 | unsigned int findSpreadsheetByName(const QString&); |
| 77 | unsigned int findColumnByName(const Origin::SpreadSheet&, const QString&); |
| 78 | unsigned int findMatrixByName(const QString&); |
| 79 | unsigned int findWorkbookByName(const QString&); |
| 80 | unsigned int findWorksheetByName(const QString&); |
| 81 | unsigned int findNoteByName(const QString&); |
| 82 | |
| 83 | Origin::SpreadSheet getSpreadsheetByName(QString&); |
| 84 | void parseColumnInfo(const QString& info, QString& longName, QString& unit, QString& comments) const; |
| 85 | QString parseOriginText(const QString&) const; |
| 86 | QString parseOriginTags(const QString&) const; |
| 87 | QDateTime creationTime(tree<Origin::ProjectNode>::iterator) const; |
| 88 | |
| 89 | // map between the different enums/datatypes |
| 90 | RangeT::Scale scale(unsigned char) const; |
| 91 | QColor color(Origin::Color) const; |
| 92 | Background::ColorStyle backgroundColorStyle(Origin::ColorGradientDirection) const; |