diff options
author | Aleks Kissinger <aleks0@gmail.com> | 2018-04-09 11:40:54 +0200 |
---|---|---|
committer | Aleks Kissinger <aleks0@gmail.com> | 2018-04-09 11:40:54 +0200 |
commit | ba8e3d516afefbb4a43227525ddb6525547a650e (patch) | |
tree | 22348b60954931253c062c79bd3b315e036bc400 /src/gui/mainwindow.cpp | |
parent | e840508c39b8e85328875477bfdbe0417c4e0eb0 (diff) |
added support for tikz editing/parsing
Diffstat (limited to 'src/gui/mainwindow.cpp')
-rw-r--r-- | src/gui/mainwindow.cpp | 37 |
1 files changed, 22 insertions, 15 deletions
diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp index 9436eb3..15b6943 100644 --- a/src/gui/mainwindow.cpp +++ b/src/gui/mainwindow.cpp @@ -13,6 +13,7 @@ #include <QMessageBox> #include <QFileDialog> #include <QTextEdit> +#include <QTextBlock> int MainWindow::_numWindows = 0; @@ -32,15 +33,9 @@ MainWindow::MainWindow(QWidget *parent) : _stylePalette = new StylePalette(this); addDockWidget(Qt::RightDockWidgetArea, _stylePalette); - - _tikzScene = new TikzScene(_tikzDocument, _toolPalette, _stylePalette, this); ui->tikzView->setScene(_tikzScene); - - _pristine = true; - - // TODO: check if each window should have a menu _menu = new MainMenu(); _menu->setParent(this); @@ -52,6 +47,10 @@ MainWindow::MainWindow(QWidget *parent) : sz[0] = sz[0] + sz[1]; sz[1] = 0; ui->splitter->setSizes(sz); + + _tikzDocument->refreshTikz(); + + connect(_tikzDocument->undoStack(), SIGNAL(cleanChanged(bool)), this, SLOT(updateFileName())); } MainWindow::~MainWindow() @@ -62,15 +61,16 @@ MainWindow::~MainWindow() void MainWindow::open(QString fileName) { - _pristine = false; _tikzDocument->open(fileName); - ui->tikzSource->setText(_tikzDocument->tikz()); + + //ui->tikzSource->setText(_tikzDocument->tikz()); if (_tikzDocument->parseSuccess()) { statusBar()->showMessage("TiKZ parsed successfully", 2000); - setWindowTitle("TiKZiT - " + _tikzDocument->shortName()); + //setWindowTitle("TiKZiT - " + _tikzDocument->shortName()); _tikzScene->setTikzDocument(_tikzDocument); + updateFileName(); } else { statusBar()->showMessage("Cannot read TiKZ source"); } @@ -102,9 +102,21 @@ QString MainWindow::tikzSource() return ui->tikzSource->toPlainText(); } +void MainWindow::setSourceLine(int line) +{ + QTextCursor cursor(ui->tikzSource->document()->findBlockByLineNumber(line)); + cursor.movePosition(QTextCursor::EndOfLine); + //ui->tikzSource->moveCursor(QTextCursor::End); + ui->tikzSource->setTextCursor(cursor); + ui->tikzSource->setFocus(); +} + void MainWindow::updateFileName() { - setWindowTitle("TiKZiT - " + _tikzDocument->shortName()); + QString nm = _tikzDocument->shortName(); + if (nm.isEmpty()) nm = "untitled"; + if (!_tikzDocument->isClean()) nm += "*"; + setWindowTitle("TiKZiT - " + nm); } void MainWindow::refreshTikz() @@ -140,11 +152,6 @@ TikzView *MainWindow::tikzView() const return ui->tikzView; } -bool MainWindow::pristine() const -{ - return _pristine; -} - void MainWindow::on_tikzSource_textChanged() { if (_tikzScene->enabled()) _tikzScene->setEnabled(false); |