diff options
author | Aleks Kissinger <aleks0@gmail.com> | 2017-12-05 17:55:04 +0000 |
---|---|---|
committer | Aleks Kissinger <aleks0@gmail.com> | 2017-12-05 17:55:04 +0000 |
commit | 5816cd5d5e3edf7ee7a7273c7c3a3d907dc54a4a (patch) | |
tree | 1b9022c3671225f06151fb9bbb5cb92dcb0e93a7 /tikzit/src/data/tikzdocument.cpp | |
parent | cb322a3acee9debf40c48ad1e3fb4458b0f51b7f (diff) |
Qt
Diffstat (limited to 'tikzit/src/data/tikzdocument.cpp')
-rw-r--r-- | tikzit/src/data/tikzdocument.cpp | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/tikzit/src/data/tikzdocument.cpp b/tikzit/src/data/tikzdocument.cpp new file mode 100644 index 0000000..c8d4ce9 --- /dev/null +++ b/tikzit/src/data/tikzdocument.cpp @@ -0,0 +1,75 @@ +#include <QFile> +#include <QFileInfo> +#include <QSettings> +#include <QTextStream> +#include <QMessageBox> + +#include "tikzdocument.h" +#include "tikzgraphassembler.h" + +TikzDocument::TikzDocument(QObject *parent) : QObject(parent) +{ + _graph = new Graph(this); + _parseSuccess = true; + _fileName = ""; + _shortName = ""; +} + +QUndoStack *TikzDocument::undoStack() const +{ + return _undoStack; +} + +Graph *TikzDocument::graph() const +{ + return _graph; +} + +QString TikzDocument::tikz() const +{ + return _tikz; +} + +void TikzDocument::open(QString fileName) +{ + _fileName = fileName; + QFile file(fileName); + QFileInfo fi(file); + _shortName = fi.fileName(); + QSettings settings("tikzit", "tikzit"); + settings.setValue("previous-file-path", fi.absolutePath()); + + if (!file.open(QIODevice::ReadOnly)) { +// QMessageBox::critical(this, tr("Error"), +// tr("Could not open file")); + _parseSuccess = false; + return; + } + + QTextStream in(&file); + _tikz = in.readAll(); + file.close(); + + Graph *newGraph = new Graph(this); + TikzGraphAssembler ass(newGraph); + if (ass.parse(_tikz)) { + delete _graph; + _graph = newGraph; + foreach (Node *n, _graph->nodes()) n->attachStyle(); + foreach (Edge *e, _graph->edges()) e->updateControls(); + _parseSuccess = true; + } else { + delete newGraph; + _parseSuccess = false; + } +} + +QString TikzDocument::shortName() const +{ + return _shortName; +} + +bool TikzDocument::parseSuccess() const +{ + return _parseSuccess; +} |