diff options
author | Aleks Kissinger <aleks0@gmail.com> | 2017-02-28 14:46:39 +0100 |
---|---|---|
committer | Aleks Kissinger <aleks0@gmail.com> | 2017-02-28 14:46:39 +0100 |
commit | cb322a3acee9debf40c48ad1e3fb4458b0f51b7f (patch) | |
tree | 2cd3dc1060885152f0c706e0cf52bff0d8181d1e /tikzit/src/gui/mainwindow.cpp | |
parent | e1756ba69dd626073e22fd0a4f4c5fda42c88829 (diff) |
generic nodes
Diffstat (limited to 'tikzit/src/gui/mainwindow.cpp')
-rw-r--r-- | tikzit/src/gui/mainwindow.cpp | 57 |
1 files changed, 36 insertions, 21 deletions
diff --git a/tikzit/src/gui/mainwindow.cpp b/tikzit/src/gui/mainwindow.cpp index f7357ec..7d7ab04 100644 --- a/tikzit/src/gui/mainwindow.cpp +++ b/tikzit/src/gui/mainwindow.cpp @@ -1,6 +1,8 @@ #include "mainwindow.h" #include "ui_mainwindow.h" #include "tikzgraphassembler.h" +#include "toolpalette.h" +#include "tikzit.h" #include <QDebug> #include <QFile> @@ -15,12 +17,13 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { + _windowId = _numWindows; _numWindows++; ui->setupUi(this); - setAttribute(Qt::WA_DeleteOnClose); + setAttribute(Qt::WA_DeleteOnClose, true); _graph = new Graph(this); - tikzScene = new TikzScene(_graph, this); - ui->tikzView->setScene(tikzScene); + _tikzScene = new TikzScene(_graph, this); + ui->tikzView->setScene(_tikzScene); _fileName = ""; _pristine = true; @@ -33,7 +36,7 @@ MainWindow::MainWindow(QWidget *parent) : MainWindow::~MainWindow() { - //qDebug() << "~MainWindow"; + tikzit->removeWindow(this); } void MainWindow::open(QString fileName) @@ -45,6 +48,8 @@ void MainWindow::open(QString fileName) QSettings settings("tikzit", "tikzit"); settings.setValue("previous-file-path", fi.absolutePath()); + setWindowTitle("TiKZiT - " + fi.fileName()); + if (!file.open(QIODevice::ReadOnly)) { QMessageBox::critical(this, tr("Error"), tr("Could not open file")); @@ -61,9 +66,11 @@ void MainWindow::open(QString fileName) TikzGraphAssembler ass(newGraph); if (ass.parse(tikz)) { statusBar()->showMessage("TiKZ parsed successfully", 2000); - tikzScene->setGraph(newGraph); delete _graph; _graph = newGraph; + foreach (Node *n, _graph->nodes()) n->attachStyle(); + foreach (Edge *e, _graph->edges()) e->updateControls(); + _tikzScene->setGraph(_graph); } else { statusBar()->showMessage("Cannot read TiKZ source"); delete newGraph; @@ -77,24 +84,32 @@ void MainWindow::closeEvent(QCloseEvent *event) QMainWindow::closeEvent(event); } -void MainWindow::on_actionOpen_triggered() +void MainWindow::changeEvent(QEvent *event) { - QSettings settings("tikzit", "tikzit"); - QString fileName = QFileDialog::getOpenFileName( - this, - tr("Open File"), - settings.value("previous-file-path").toString(), - tr("TiKZ Files (*.tikz)")); - - if (!fileName.isEmpty()) { - if (_pristine) { - open(fileName); - } else { - MainWindow *w = new MainWindow(); - w->show(); - w->open(fileName); - } + if (event->type() == QEvent::ActivationChange && isActiveWindow()) { + tikzit->setActiveWindow(this); } + QMainWindow::changeEvent(event); +} + +TikzScene *MainWindow::tikzScene() const +{ + return _tikzScene; +} + +int MainWindow::windowId() const +{ + return _windowId; +} + +TikzView *MainWindow::tikzView() const +{ + return ui->tikzView; +} + +bool MainWindow::pristine() const +{ + return _pristine; } |