summaryrefslogtreecommitdiff
path: root/src/data/tikzdocument.cpp
diff options
context:
space:
mode:
authorAleks Kissinger <aleks0@gmail.com>2018-03-17 19:01:02 -0400
committerAleks Kissinger <aleks0@gmail.com>2018-03-17 19:01:02 -0400
commit3cea1514203a451c0a8806d276807863b463a78f (patch)
treed6850ab0f41a6d85f3504e8c92fcecf79b37689b /src/data/tikzdocument.cpp
parent39c2c74c664a6c770639ead8f45322352cacb997 (diff)
added saving, style application, and copy and paste
Diffstat (limited to 'src/data/tikzdocument.cpp')
-rw-r--r--src/data/tikzdocument.cpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/data/tikzdocument.cpp b/src/data/tikzdocument.cpp
index a3fa961..eeb4e14 100644
--- a/src/data/tikzdocument.cpp
+++ b/src/data/tikzdocument.cpp
@@ -3,9 +3,12 @@
#include <QSettings>
#include <QTextStream>
#include <QMessageBox>
+#include <QFileDialog>
+#include "tikzit.h"
#include "tikzdocument.h"
#include "tikzassembler.h"
+#include "mainwindow.h"
TikzDocument::TikzDocument(QObject *parent) : QObject(parent)
{
@@ -71,6 +74,41 @@ void TikzDocument::open(QString fileName)
}
}
+void TikzDocument::save() {
+ if (_fileName == "") {
+ saveAs();
+ } else {
+ refreshTikz();
+ QFile file(_fileName);
+ QFileInfo fi(file);
+ _shortName = fi.fileName();
+ QSettings settings("tikzit", "tikzit");
+ settings.setValue("previous-file-path", fi.absolutePath());
+
+ if (file.open(QIODevice::ReadWrite)) {
+ QTextStream stream(&file);
+ stream << _tikz;
+ file.close();
+ tikzit->activeWindow()->updateFileName();
+ } else {
+ QMessageBox::warning(0, "Save Failed", "Could not open file: '" + _fileName + "' for writing.");
+ }
+ }
+}
+
+void TikzDocument::saveAs() {
+ QSettings settings("tikzit", "tikzit");
+ QString fileName = QFileDialog::getSaveFileName(tikzit->activeWindow(),
+ tr("Save File As"),
+ settings.value("previous-file-path").toString(),
+ tr("TiKZ Files (*.tikz)"));
+
+ if (!fileName.isEmpty()) {
+ _fileName = fileName;
+ save();
+ }
+}
+
QString TikzDocument::shortName() const
{
return _shortName;
@@ -80,3 +118,10 @@ bool TikzDocument::parseSuccess() const
{
return _parseSuccess;
}
+
+void TikzDocument::refreshTikz()
+{
+ _tikz = _graph->tikz();
+ if (MainWindow *w = dynamic_cast<MainWindow*>(parent()))
+ w->refreshTikz();
+}