summaryrefslogtreecommitdiff
path: root/src/gui
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/mainwindow.cpp33
-rw-r--r--src/gui/mainwindow.h1
-rw-r--r--src/gui/nodeitem.cpp9
-rw-r--r--src/gui/preferencedialog.cpp2
-rw-r--r--src/gui/preferencedialog.ui17
-rw-r--r--src/gui/previewwindow.cpp23
-rw-r--r--src/gui/previewwindow.h2
-rw-r--r--src/gui/tikzview.cpp10
8 files changed, 67 insertions, 30 deletions
diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp
index 71fea63..71b9070 100644
--- a/src/gui/mainwindow.cpp
+++ b/src/gui/mainwindow.cpp
@@ -46,19 +46,7 @@ MainWindow::MainWindow(QWidget *parent) :
_menu->setParent(this);
setMenuBar(_menu);
- QVariant geom = settings.value(QString("geometry-main-qt") + qVersion());
- QVariant state = settings.value(QString("windowState-main-qt") + qVersion());
-
- if (geom.isValid()) {
- restoreGeometry(geom.toByteArray());
- }
- if (state.isValid()) {
- restoreState(state.toByteArray(), 2);
- } else {
- addDockWidget(Qt::RightDockWidgetArea, _stylePalette);
- resizeDocks({_stylePalette}, {130}, Qt::Horizontal);
- }
// initially, the source view should be collapsed
QList<int> sz = ui->splitter->sizes();
@@ -76,6 +64,15 @@ MainWindow::MainWindow(QWidget *parent) :
#else
ui->tikzSource->setTabStopWidth(20);
#endif
+
+
+ QVariant state = settings.value(QString("windowState-main-qt") + qVersion());
+ if (state.isValid()) {
+ restoreState(state.toByteArray(), 2);
+ } else {
+ addDockWidget(Qt::RightDockWidgetArea, _stylePalette);
+ resizeDocks({_stylePalette}, {130}, Qt::Horizontal);
+ }
}
MainWindow::~MainWindow()
@@ -84,6 +81,18 @@ MainWindow::~MainWindow()
delete ui;
}
+void MainWindow::restorePosition()
+{
+ QSettings settings("tikzit", "tikzit");
+ QVariant geom = settings.value(QString("geometry-main-qt") + qVersion());
+
+ if (geom.isValid()) {
+ restoreGeometry(geom.toByteArray());
+ }
+
+
+}
+
void MainWindow::open(QString fileName)
{
_tikzDocument->open(fileName);
diff --git a/src/gui/mainwindow.h b/src/gui/mainwindow.h
index 21fbd5a..48a88dd 100644
--- a/src/gui/mainwindow.h
+++ b/src/gui/mainwindow.h
@@ -29,6 +29,7 @@ public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
+ void restorePosition();
void open(QString fileName);
int windowId() const;
TikzView *tikzView() const;
diff --git a/src/gui/nodeitem.cpp b/src/gui/nodeitem.cpp
index 78fe66e..82692f2 100644
--- a/src/gui/nodeitem.cpp
+++ b/src/gui/nodeitem.cpp
@@ -19,6 +19,7 @@
#include "tikzit.h"
#include "nodeitem.h"
#include "tikzscene.h"
+#include "util.h"
#include <cmath>
#include <QPen>
@@ -50,7 +51,7 @@ void NodeItem::writePos()
}
QRectF NodeItem::labelRect() const {
- QString label = _node->label();
+ QString label = replaceTexConstants(_node->label());
QFontMetrics fm(Tikzit::LABEL_FONT);
QRectF rect = fm.boundingRect(label);
rect.moveCenter(QPointF(0,0));
@@ -58,7 +59,7 @@ QRectF NodeItem::labelRect() const {
}
QRectF NodeItem::outerLabelRect() const {
- QString label = _node->data()->property("label");
+ QString label = replaceTexConstants(_node->data()->property("label"));
label.replace(QRegularExpression("^[^:]*:"), "");
QFontMetrics fm(Tikzit::LABEL_FONT);
QRectF rect = fm.boundingRect(label);
@@ -102,11 +103,11 @@ void NodeItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidge
painter->setPen(QPen(Qt::black));
painter->setFont(Tikzit::LABEL_FONT);
- painter->drawText(rect, Qt::AlignCenter, _node->label());
+ painter->drawText(rect, Qt::AlignCenter, replaceTexConstants(_node->label()));
}
if (_node->data()->hasProperty("label")) {
- QString label = _node->data()->property("label");
+ QString label = replaceTexConstants(_node->data()->property("label"));
label.replace(QRegularExpression("^[^:]*:"), "");
QRectF rect = outerLabelRect();
diff --git a/src/gui/preferencedialog.cpp b/src/gui/preferencedialog.cpp
index 14cacf0..0fdd5c3 100644
--- a/src/gui/preferencedialog.cpp
+++ b/src/gui/preferencedialog.cpp
@@ -31,6 +31,7 @@ PreferenceDialog::PreferenceDialog(QWidget *parent) :
connect(ui->minorColor, SIGNAL(clicked()), this, SLOT(colorClick()));
ui->selectNewEdges->setChecked(settings.value("select-new-edges", false).toBool());
+ ui->shiftToScroll->setChecked(settings.value("shift-to-scroll", false).toBool());
}
PreferenceDialog::~PreferenceDialog()
@@ -47,6 +48,7 @@ void PreferenceDialog::accept()
settings.setValue("grid-color-major", color(ui->majorColor));
settings.setValue("grid-color-minor", color(ui->minorColor));
settings.setValue("select-new-edges", ui->selectNewEdges->isChecked());
+ settings.setValue("shift-to-scroll", ui->shiftToScroll->isChecked());
QDialog::accept();
}
diff --git a/src/gui/preferencedialog.ui b/src/gui/preferencedialog.ui
index 80bdc57..894d356 100644
--- a/src/gui/preferencedialog.ui
+++ b/src/gui/preferencedialog.ui
@@ -47,7 +47,7 @@
<item row="2" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
- <string>Grid colors</string>
+ <string>Grid Colors</string>
</property>
</widget>
</item>
@@ -220,17 +220,24 @@
</property>
</widget>
</item>
- <item row="4" column="0">
+ <item row="5" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
- <string>Auto-select new edges</string>
+ <string>UI Options</string>
</property>
</widget>
</item>
- <item row="4" column="1">
+ <item row="5" column="1">
<widget class="QCheckBox" name="selectNewEdges">
<property name="text">
- <string/>
+ <string>Auto-select new edges</string>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="1">
+ <widget class="QCheckBox" name="shiftToScroll">
+ <property name="text">
+ <string>Hold shift to scroll with wheel or touchpad</string>
</property>
</widget>
</item>
diff --git a/src/gui/previewwindow.cpp b/src/gui/previewwindow.cpp
index acce1a1..4906484 100644
--- a/src/gui/previewwindow.cpp
+++ b/src/gui/previewwindow.cpp
@@ -41,15 +41,10 @@ PreviewWindow::PreviewWindow(QWidget *parent) :
QDialog(parent),
ui(new Ui::PreviewWindow)
{
- QSettings settings("tikzit", "tikzit");
- ui->setupUi(this);
- QVariant geom = settings.value(QString("geometry-preview-qt") + qVersion());
-
- if (geom.isValid()) {
- restoreGeometry(geom.toByteArray());
- }
+ ui->setupUi(this);
+ _positionRestored = false;
_doc = nullptr;
_loader = new QLabel(ui->tabWidget->tabBar());
@@ -90,6 +85,20 @@ PreviewWindow::~PreviewWindow()
delete ui;
}
+void PreviewWindow::restorePosition()
+{
+ // only restore position 1 time
+ if (_positionRestored) return;
+
+ QSettings settings("tikzit", "tikzit");
+ QVariant geom = settings.value(QString("geometry-preview-qt") + qVersion());
+
+ if (geom.isValid()) {
+ restoreGeometry(geom.toByteArray());
+ }
+ _positionRestored = true;
+}
+
void PreviewWindow::setPdf(QString file)
{
// use loadFromData to avoid holding a lock on the PDF file in windows
diff --git a/src/gui/previewwindow.h b/src/gui/previewwindow.h
index a14303b..0cb10aa 100644
--- a/src/gui/previewwindow.h
+++ b/src/gui/previewwindow.h
@@ -46,6 +46,7 @@ public:
};
explicit PreviewWindow(QWidget *parent = nullptr);
~PreviewWindow() override;
+ void restorePosition();
void setPdf(QString file);
QString preparePreview(QString tikz);
QPlainTextEdit *outputTextEdit();
@@ -67,6 +68,7 @@ private:
Ui::PreviewWindow *ui;
PdfDocument *_doc;
QLabel *_loader;
+ bool _positionRestored;
};
#endif // PREVIEWWINDOW_H
diff --git a/src/gui/tikzview.cpp b/src/gui/tikzview.cpp
index ddbc404..3615685 100644
--- a/src/gui/tikzview.cpp
+++ b/src/gui/tikzview.cpp
@@ -134,10 +134,16 @@ void TikzView::drawBackground(QPainter *painter, const QRectF &rect)
void TikzView::wheelEvent(QWheelEvent *event)
{
- if (event->modifiers() & Qt::ShiftModifier) {
+ QSettings settings("tikzit", "tikzit");
+ bool shiftScroll = settings.value("shift-to-scroll", false).toBool();
+ if ((!shiftScroll && event->modifiers() == Qt::NoModifier) ||
+ (shiftScroll && (event->modifiers() == Qt::ShiftModifier)))
+ {
event->setModifiers(Qt::NoModifier);
QGraphicsView::wheelEvent(event);
- } else if (event->modifiers() & Qt::ControlModifier) {
+ }
+
+ if (event->modifiers() & Qt::ControlModifier) {
if (event->angleDelta().y() > 0) {
zoomIn();
} else if (event->angleDelta().y() < 0) {