diff options
author | Aleks Kissinger <aleks0@gmail.com> | 2018-07-20 11:01:34 +0200 |
---|---|---|
committer | Aleks Kissinger <aleks0@gmail.com> | 2018-07-20 11:01:34 +0200 |
commit | 59eee652c5fea36945a4a8ce2936843bd90d0e1b (patch) | |
tree | effcdbf741a104f71e4fc395993dfbdb6644f6b4 /src/gui/tikzview.cpp | |
parent | 7c4faa67f4b45671884bdccd99d83f92ca655366 (diff) |
...
Diffstat (limited to 'src/gui/tikzview.cpp')
-rw-r--r-- | src/gui/tikzview.cpp | 256 |
1 files changed, 128 insertions, 128 deletions
diff --git a/src/gui/tikzview.cpp b/src/gui/tikzview.cpp index 6cdb17c..f0084fb 100644 --- a/src/gui/tikzview.cpp +++ b/src/gui/tikzview.cpp @@ -1,128 +1,128 @@ -/* - TikZiT - a GUI diagram editor for TikZ - Copyright (C) 2018 Aleks Kissinger - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <https://www.gnu.org/licenses/>. -*/ - -#include "tikzview.h" -#include "tikzit.h" - -#include <QDebug> -#include <QScrollBar> - -TikzView::TikzView(QWidget *parent) : QGraphicsView(parent) -{ - setRenderHint(QPainter::Antialiasing); - //setDragMode(QGraphicsView::RubberBandDrag); - - _scale = 1.0f; -} - -void TikzView::zoomIn() -{ - _scale *= 1.6f; - scale(1.6,1.6); -} - -void TikzView::zoomOut() -{ - _scale *= 0.625f; - scale(0.625,0.625); -} - -void TikzView::setScene(QGraphicsScene *scene) -{ - QGraphicsView::setScene(scene); - centerOn(QPointF(0.0f,-230.0f)); -} - -void TikzView::drawBackground(QPainter *painter, const QRectF &rect) -{ - // draw a gray background if disabled - TikzScene *sc = static_cast<TikzScene*>(scene()); - if (!sc->enabled()) painter->fillRect(rect, QBrush(QColor(240,240,240))); - - // draw the grid - - QPen pen1; - //pen1.setWidthF(0.5); - pen1.setCosmetic(true); - pen1.setColor(QColor(250,250,255)); - - QPen pen2 = pen1; - pen2.setColor(QColor(240,240,250)); - - QPen pen3 = pen1; - pen3.setColor(QColor(220,220,240)); - - painter->setPen(pen1); - - if (_scale > 0.2f) { - for (int x = -GRID_SEP; x > rect.left(); x -= GRID_SEP) { - if (x % (GRID_SEP * GRID_N) != 0) { - qreal xf = (qreal)x; - painter->drawLine(xf, rect.top(), xf, rect.bottom()); - } - } - - for (int x = GRID_SEP; x < rect.right(); x += GRID_SEP) { - if (x % (GRID_SEP * GRID_N) != 0) { - qreal xf = (qreal)x; - painter->drawLine(xf, rect.top(), xf, rect.bottom()); - } - } - - for (int y = -GRID_SEP; y > rect.top(); y -= GRID_SEP) { - if (y % (GRID_SEP * GRID_N) != 0) { - qreal yf = (qreal)y; - painter->drawLine(rect.left(), yf, rect.right(), yf); - } - } - - for (int y = GRID_SEP; y < rect.bottom(); y += GRID_SEP) { - if (y % (GRID_SEP * GRID_N) != 0) { - qreal yf = (qreal)y; - painter->drawLine(rect.left(), yf, rect.right(), yf); - } - } - } - - painter->setPen(pen2); - - for (int x = -GRID_SEP*GRID_N; x > rect.left(); x -= GRID_SEP*GRID_N) { - qreal xf = (qreal)x; - painter->drawLine(xf, rect.top(), xf, rect.bottom()); - } - - for (int x = GRID_SEP*GRID_N; x < rect.right(); x += GRID_SEP*GRID_N) { - qreal xf = (qreal)x; - painter->drawLine(xf, rect.top(), xf, rect.bottom()); - } - - for (int y = -GRID_SEP*GRID_N; y > rect.top(); y -= GRID_SEP*GRID_N) { - qreal yf = (qreal)y; - painter->drawLine(rect.left(), yf, rect.right(), yf); - } - - for (int y = GRID_SEP*GRID_N; y < rect.bottom(); y += GRID_SEP*GRID_N) { - qreal yf = (qreal)y; - painter->drawLine(rect.left(), yf, rect.right(), yf); - } - - painter->setPen(pen3); - painter->drawLine(rect.left(), 0, rect.right(), 0); - painter->drawLine(0, rect.top(), 0, rect.bottom()); -} - +/*
+ TikZiT - a GUI diagram editor for TikZ
+ Copyright (C) 2018 Aleks Kissinger
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+*/
+
+#include "tikzview.h"
+#include "tikzit.h"
+
+#include <QDebug>
+#include <QScrollBar>
+
+TikzView::TikzView(QWidget *parent) : QGraphicsView(parent)
+{
+ setRenderHint(QPainter::Antialiasing);
+ //setDragMode(QGraphicsView::RubberBandDrag);
+
+ _scale = 1.0f;
+}
+
+void TikzView::zoomIn()
+{
+ _scale *= 1.6f;
+ scale(1.6,1.6);
+}
+
+void TikzView::zoomOut()
+{
+ _scale *= 0.625f;
+ scale(0.625,0.625);
+}
+
+void TikzView::setScene(QGraphicsScene *scene)
+{
+ QGraphicsView::setScene(scene);
+ centerOn(QPointF(0.0f,-230.0f));
+}
+
+void TikzView::drawBackground(QPainter *painter, const QRectF &rect)
+{
+ // draw a gray background if disabled
+ TikzScene *sc = static_cast<TikzScene*>(scene());
+ if (!sc->enabled()) painter->fillRect(rect, QBrush(QColor(240,240,240)));
+
+ // draw the grid
+
+ QPen pen1;
+ //pen1.setWidthF(0.5);
+ pen1.setCosmetic(true);
+ pen1.setColor(QColor(250,250,255));
+
+ QPen pen2 = pen1;
+ pen2.setColor(QColor(240,240,250));
+
+ QPen pen3 = pen1;
+ pen3.setColor(QColor(220,220,240));
+
+ painter->setPen(pen1);
+
+ if (_scale > 0.2f) {
+ for (int x = -GRID_SEP; x > rect.left(); x -= GRID_SEP) {
+ if (x % (GRID_SEP * GRID_N) != 0) {
+ qreal xf = (qreal)x;
+ painter->drawLine(xf, rect.top(), xf, rect.bottom());
+ }
+ }
+
+ for (int x = GRID_SEP; x < rect.right(); x += GRID_SEP) {
+ if (x % (GRID_SEP * GRID_N) != 0) {
+ qreal xf = (qreal)x;
+ painter->drawLine(xf, rect.top(), xf, rect.bottom());
+ }
+ }
+
+ for (int y = -GRID_SEP; y > rect.top(); y -= GRID_SEP) {
+ if (y % (GRID_SEP * GRID_N) != 0) {
+ qreal yf = (qreal)y;
+ painter->drawLine(rect.left(), yf, rect.right(), yf);
+ }
+ }
+
+ for (int y = GRID_SEP; y < rect.bottom(); y += GRID_SEP) {
+ if (y % (GRID_SEP * GRID_N) != 0) {
+ qreal yf = (qreal)y;
+ painter->drawLine(rect.left(), yf, rect.right(), yf);
+ }
+ }
+ }
+
+ painter->setPen(pen2);
+
+ for (int x = -GRID_SEP*GRID_N; x > rect.left(); x -= GRID_SEP*GRID_N) {
+ qreal xf = (qreal)x;
+ painter->drawLine(xf, rect.top(), xf, rect.bottom());
+ }
+
+ for (int x = GRID_SEP*GRID_N; x < rect.right(); x += GRID_SEP*GRID_N) {
+ qreal xf = (qreal)x;
+ painter->drawLine(xf, rect.top(), xf, rect.bottom());
+ }
+
+ for (int y = -GRID_SEP*GRID_N; y > rect.top(); y -= GRID_SEP*GRID_N) {
+ qreal yf = (qreal)y;
+ painter->drawLine(rect.left(), yf, rect.right(), yf);
+ }
+
+ for (int y = GRID_SEP*GRID_N; y < rect.bottom(); y += GRID_SEP*GRID_N) {
+ qreal yf = (qreal)y;
+ painter->drawLine(rect.left(), yf, rect.right(), yf);
+ }
+
+ painter->setPen(pen3);
+ painter->drawLine(rect.left(), 0, rect.right(), 0);
+ painter->drawLine(0, rect.top(), 0, rect.bottom());
+}
+
|