From 5578d78196ae191edfe458f90f4f466c6da870a4 Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Sat, 2 Feb 2019 14:54:22 +0100 Subject: push version --- src/tikzit.h | 2 +- tikzit.pro | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tikzit.h b/src/tikzit.h index 94aba9d..d27d416 100644 --- a/src/tikzit.h +++ b/src/tikzit.h @@ -49,7 +49,7 @@ #ifndef TIKZIT_H #define TIKZIT_H -#define TIKZIT_VERSION "2.1.4" +#define TIKZIT_VERSION "2.1.5" #include "mainwindow.h" #include "mainmenu.h" diff --git a/tikzit.pro b/tikzit.pro index 6fe8471..e0f3544 100644 --- a/tikzit.pro +++ b/tikzit.pro @@ -2,7 +2,7 @@ QT += core gui widgets network -VERSION = 2.1.4 +VERSION = 2.1.5 test { CONFIG += testcase -- cgit v1.2.3 From 6c5d96d0e8bd577cc0a048acacbd3174070b7aef Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Mon, 4 Feb 2019 12:33:36 +0100 Subject: removed depricated (?) --with-qt option from poppler in mac build --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 056b543..787a6cf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,7 +15,7 @@ install: - brew update - brew install qt5 - brew link --force qt5 -- brew install poppler --with-qt +- brew install poppler script: - qmake -v - qmake -r -- cgit v1.2.3 From 47c6bdc161f349979d88749fbdbaf75d76ea9950 Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Sun, 29 Dec 2019 14:24:34 +0000 Subject: fixed latex fixes #71 fixes #72 --- tex/sample/figures/fig.tikz | 4 ++-- tex/sample/sample.tikzstyles | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/tex/sample/figures/fig.tikz b/tex/sample/figures/fig.tikz index f454de2..4a30037 100644 --- a/tex/sample/figures/fig.tikz +++ b/tex/sample/figures/fig.tikz @@ -1,9 +1,9 @@ -\begin{tikzpicture}[tikzfig] +\begin{tikzpicture} \begin{pgfonlayer}{nodelayer} \node [style=red node] (0) at (0, 1) {}; \node [style=blue node 2] (1) at (1, 0) {}; \node [style=blue node] (2) at (-1, 0) {}; - \node [style=yellow square] (3) at (0, -1) {\anglevec{\alpha}}; + \node [style=yellow square] (3) at (0, -1) {\param{\alpha}}; \end{pgfonlayer} \begin{pgfonlayer}{edgelayer} \draw [in=-90, out=0] (3) to (1); diff --git a/tex/sample/sample.tikzstyles b/tex/sample/sample.tikzstyles index f32728c..2a3bb7f 100644 --- a/tex/sample/sample.tikzstyles +++ b/tex/sample/sample.tikzstyles @@ -8,6 +8,7 @@ \tikzstyle{blue node}=[fill=blue, shape=circle, draw=black, tikzit category=nodes] \tikzstyle{green node}=[tikzit fill=green, fill=green, shape=circle, draw=black, tikzit category=nodes] \tikzstyle{yellow square}=[draw=black, fill=yellow, shape=rectangle] +\tikzstyle{blue node 2}=[fill={rgb,255: red,128; green,0; blue,128}, draw=black, shape=circle, tikzit fill=blue] % Edge styles \tikzstyle{dashed edge}=[<->, dashed] -- cgit v1.2.3 From 1b022e11441c9d739b015ae989475d78f1002ec0 Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Thu, 9 Apr 2020 10:55:41 +0100 Subject: fixed use of deprecated yacc flags --- src/data/tikzparser.y | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/data/tikzparser.y b/src/data/tikzparser.y index 4473107..1e89002 100644 --- a/src/data/tikzparser.y +++ b/src/data/tikzparser.y @@ -32,13 +32,13 @@ /* we use features added to bison 2.4 */ %require "2.3" -%error-verbose +%define parse.error verbose /* enable maintaining locations for better error messages */ %locations /* the name of the header file */ /*%defines "common/tikzparser.h"*/ /* make it re-entrant (no global variables) */ -%pure-parser +%define api.pure /* We use a pure (re-entrant) lexer. This means yylex will take a void* (opaque) type to maintain its state */ %lex-param {void *scanner} -- cgit v1.2.3 From 7a0e30c992d92b5fdf94c5b5328e12517b0f79d8 Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Thu, 9 Apr 2020 11:03:46 +0100 Subject: updated qt version on appveyor/windows --- .appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.appveyor.yml b/.appveyor.yml index 9f2828f..b392cc2 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -13,7 +13,7 @@ configuration: install: - cmd: choco install winflexbison - - cmd: 'C:\Qt\5.11.2\mingw53_32\bin\qtenv2.bat' + - cmd: 'C:\Qt\5.12\mingw73_32\bin\qtenv2.bat' - cmd: cd C:\projects\tikzit - sh: sudo apt-get update - sh: sudo apt-get -y install flex bison qt5-default libpoppler-dev libpoppler-qt5-dev -- cgit v1.2.3 From 946ab3c2507354eabb7ab95339fff374a96f9a38 Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Thu, 9 Apr 2020 11:10:02 +0100 Subject: Revert "fixed use of deprecated yacc flags" This reverts commit 1b022e11441c9d739b015ae989475d78f1002ec0. --- src/data/tikzparser.y | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/data/tikzparser.y b/src/data/tikzparser.y index 1e89002..4473107 100644 --- a/src/data/tikzparser.y +++ b/src/data/tikzparser.y @@ -32,13 +32,13 @@ /* we use features added to bison 2.4 */ %require "2.3" -%define parse.error verbose +%error-verbose /* enable maintaining locations for better error messages */ %locations /* the name of the header file */ /*%defines "common/tikzparser.h"*/ /* make it re-entrant (no global variables) */ -%define api.pure +%pure-parser /* We use a pure (re-entrant) lexer. This means yylex will take a void* (opaque) type to maintain its state */ %lex-param {void *scanner} -- cgit v1.2.3 From 84e8e5a2e6db26ccfb3b019966740de7a6972bad Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Thu, 9 Apr 2020 11:28:53 +0100 Subject: split appveyor config by OS --- .appveyor.yml | 68 ++++++++++++++++++++++++++++++++++++----------------------- 1 file changed, 42 insertions(+), 26 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index b392cc2..877d615 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -11,31 +11,47 @@ image: configuration: - release -install: - - cmd: choco install winflexbison - - cmd: 'C:\Qt\5.12\mingw73_32\bin\qtenv2.bat' - - cmd: cd C:\projects\tikzit - - sh: sudo apt-get update - - sh: sudo apt-get -y install flex bison qt5-default libpoppler-dev libpoppler-qt5-dev - -before_build: - - ps: (new-object net.webclient).DownloadFile('http://tikzit.github.io/download/win32-deps.zip', 'c:\projects\tikzit\win32-deps.zip') - - cmd: 7z x win32-deps.zip - -build_script: - - qmake -v - - qmake - - cmd: mingw32-make - - sh: make - -after_build: - - sh: ./deploy-linux.sh - - sh: mv dist/tikzit.tar.gz tikzit-linux.tar.gz - #- sh: appveyor PushArtifact tikzit-linux.tar.gz - - sh: python scripts/gh-push.py tikzit-linux.tar.gz - - cmd: deploy-win.bat - - cmd: move dist\tikzit.zip tikzit-win.zip - - cmd: python scripts\gh-push.py tikzit-win.zip - #- cmd: appveyor PushArtifact tikzit-win.zip +for: +- + matrix: + only: + - image: Ubuntu1804 + + install: + - sudo apt-get update + - sudo apt-get -y install flex bison qt5-default libpoppler-dev libpoppler-qt5-dev + + build_script: + - qmake -v + - qmake + - make + + after_build: + - ./deploy-linux.sh + - mv dist/tikzit.tar.gz tikzit-linux.tar.gz + - python scripts/gh-push.py tikzit-linux.tar.gz +- + matrix: + only: + - image: Visual Studio 2015 + + install: + - choco install winflexbison + - 'C:\Qt\5.12\mingw73_32\bin\qtenv2.bat' + - cd C:\projects\tikzit + + before_build: + - ps: (new-object net.webclient).DownloadFile('http://tikzit.github.io/download/win32-deps.zip', 'c:\projects\tikzit\win32-deps.zip') + - 7z x win32-deps.zip + + build_script: + - qmake -v + - qmake + - mingw32-make + + after_build: + - deploy-win.bat + - move dist\tikzit.zip tikzit-win.zip + - python scripts\gh-push.py tikzit-win.zip -- cgit v1.2.3 From d680579952d758eb7457e688cb80ec8ead0086e1 Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Thu, 9 Apr 2020 11:58:17 +0100 Subject: added macos target to appveyor --- .appveyor.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/.appveyor.yml b/.appveyor.yml index 877d615..93060cd 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -5,6 +5,7 @@ branches: - master image: + - macos - Ubuntu1804 - Visual Studio 2015 @@ -12,6 +13,25 @@ configuration: - release for: +- + matrix: + only: + - image: macos + + install: + - brew update + - brew install qt5 + - brew link --force qt5 + - brew install poppler + + build_script: + - qmake -v + - qmake -r + - make + + after_build: + - '(chmod +x deploy-osx.sh && ./deploy-osx.sh && mv tikzit.dmg tikzit-osx.dmg)' + - python scripts/gh-push.py tikzit-osx.dmg - matrix: only: -- cgit v1.2.3 From f17f2a4f902fed525b6a47f4be68a2e10f51b227 Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Fri, 10 Apr 2020 15:09:02 +0100 Subject: toggle show node labels from View menu (closes #62) --- src/gui/mainmenu.cpp | 6 ++++++ src/gui/mainmenu.h | 1 + src/gui/mainmenu.ui | 15 +++++++++++++++ src/gui/nodeitem.cpp | 8 +++++++- src/gui/tikzscene.cpp | 11 +++++++++++ src/gui/tikzscene.h | 4 ++++ 6 files changed, 44 insertions(+), 1 deletion(-) diff --git a/src/gui/mainmenu.cpp b/src/gui/mainmenu.cpp index 35ab736..fe291a2 100644 --- a/src/gui/mainmenu.cpp +++ b/src/gui/mainmenu.cpp @@ -301,6 +301,12 @@ void MainMenu::on_actionZoom_Out_triggered() if (tikzit->activeWindow() != 0) tikzit->activeWindow()->tikzView()->zoomOut(); } +void MainMenu::on_actionShow_Node_Labels_triggered() +{ + tikzit->activeWindow()->tikzScene()->setDrawNodeLabels(ui.actionShow_Node_Labels->isChecked()); + tikzit->activeWindow()->tikzScene()->invalidate(); +} + void MainMenu::on_actionAbout_triggered() { QMessageBox::about(this, diff --git a/src/gui/mainmenu.h b/src/gui/mainmenu.h index 51d7d3c..220e3bd 100644 --- a/src/gui/mainmenu.h +++ b/src/gui/mainmenu.h @@ -78,6 +78,7 @@ public slots: // View void on_actionZoom_In_triggered(); void on_actionZoom_Out_triggered(); + void on_actionShow_Node_Labels_triggered(); // Help void on_actionAbout_triggered(); diff --git a/src/gui/mainmenu.ui b/src/gui/mainmenu.ui index 692f82e..eb3bed3 100644 --- a/src/gui/mainmenu.ui +++ b/src/gui/mainmenu.ui @@ -92,6 +92,7 @@ + @@ -383,6 +384,20 @@ Ctrl+M + + + true + + + true + + + Show Node Labels + + + Ctrl+Shift+L + + diff --git a/src/gui/nodeitem.cpp b/src/gui/nodeitem.cpp index 82692f2..7ae4c4a 100644 --- a/src/gui/nodeitem.cpp +++ b/src/gui/nodeitem.cpp @@ -91,7 +91,13 @@ void NodeItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidge painter->drawPath(shape()); } - if (_node->label() != "") { + bool drawLabel = _node->label() != ""; + if (scene()) { + TikzScene *sc = static_cast(scene()); + drawLabel= drawLabel && sc->drawNodeLabels(); + } + + if (drawLabel) { QRectF rect = labelRect(); QPen pen(QColor(200,0,0,120)); QVector d; diff --git a/src/gui/tikzscene.cpp b/src/gui/tikzscene.cpp index 4577981..969a355 100644 --- a/src/gui/tikzscene.cpp +++ b/src/gui/tikzscene.cpp @@ -38,6 +38,7 @@ TikzScene::TikzScene(TikzDocument *tikzDocument, ToolPalette *tools, { _modifyEdgeItem = nullptr; _edgeStartNodeItem = nullptr; + _drawNodeLabels = true; _drawEdgeItem = new QGraphicsLineItem(); _rubberBandItem = new QGraphicsRectItem(); _enabled = true; @@ -907,6 +908,16 @@ void TikzScene::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) } } +bool TikzScene::drawNodeLabels() const +{ + return _drawNodeLabels; +} + +void TikzScene::setDrawNodeLabels(bool drawNodeLabels) +{ + _drawNodeLabels = drawNodeLabels; +} + bool TikzScene::highlightTails() const { return _highlightTails && getSelectedNodes().isEmpty(); diff --git a/src/gui/tikzscene.h b/src/gui/tikzscene.h index f8dc7ec..1edd50a 100644 --- a/src/gui/tikzscene.h +++ b/src/gui/tikzscene.h @@ -90,6 +90,9 @@ public: bool highlightHeads() const; bool highlightTails() const; + bool drawNodeLabels() const; + void setDrawNodeLabels(bool drawNodeLabels); + public slots: void graphReplaced(); void refreshZIndices(); @@ -115,6 +118,7 @@ private: bool _firstControlPoint; QPointF _mouseDownPos; bool _draggingNodes; + bool _drawNodeLabels; QMap _oldNodePositions; qreal _oldWeight; -- cgit v1.2.3 From dcb4470b8cd34cd6f12d59988c1b0af9008b3420 Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Fri, 10 Apr 2020 16:30:24 +0100 Subject: keyboard navigation for styles --- src/gui/mainmenu.cpp | 30 +++++++++++++++++ src/gui/mainmenu.h | 6 ++++ src/gui/mainmenu.ui | 62 +++++++++++++++++++++++++++++++++++ src/gui/stylepalette.cpp | 85 +++++++++++++++++++++++++++++++++++++++++++----- src/gui/stylepalette.h | 15 +++++++-- src/gui/tikzscene.cpp | 5 --- 6 files changed, 186 insertions(+), 17 deletions(-) diff --git a/src/gui/mainmenu.cpp b/src/gui/mainmenu.cpp index fe291a2..7b7623b 100644 --- a/src/gui/mainmenu.cpp +++ b/src/gui/mainmenu.cpp @@ -282,6 +282,36 @@ void MainMenu::on_actionRun_LaTeX_triggered() tikzit->makePreview(); } +void MainMenu::on_actionPrevious_Node_Style_triggered() +{ + tikzit->activeWindow()->stylePalette()->previousNodeStyle(); +} + +void MainMenu::on_actionNext_Node_Style_triggered() +{ + tikzit->activeWindow()->stylePalette()->nextNodeStyle(); +} + +void MainMenu::on_actionClear_Node_Style_triggered() +{ + tikzit->activeWindow()->stylePalette()->toggleClearNodeStyle(); +} + +void MainMenu::on_actionPrevious_Edge_Style_triggered() +{ + tikzit->activeWindow()->stylePalette()->previousEdgeStyle(); +} + +void MainMenu::on_actionNext_Edge_Style_triggered() +{ + tikzit->activeWindow()->stylePalette()->nextEdgeStyle(); +} + +void MainMenu::on_actionClear_Edge_Style_triggered() +{ + tikzit->activeWindow()->stylePalette()->toggleClearEdgeStyle(); +} + void MainMenu::on_actionPreferences_triggered() { PreferenceDialog *d = new PreferenceDialog(this); diff --git a/src/gui/mainmenu.h b/src/gui/mainmenu.h index 220e3bd..8268802 100644 --- a/src/gui/mainmenu.h +++ b/src/gui/mainmenu.h @@ -73,6 +73,12 @@ public slots: void on_actionRevert_triggered(); void on_actionJump_to_Selection_triggered(); void on_actionRun_LaTeX_triggered(); + void on_actionPrevious_Node_Style_triggered(); + void on_actionNext_Node_Style_triggered(); + void on_actionClear_Node_Style_triggered(); + void on_actionPrevious_Edge_Style_triggered(); + void on_actionNext_Edge_Style_triggered(); + void on_actionClear_Edge_Style_triggered(); void on_actionPreferences_triggered(); // View diff --git a/src/gui/mainmenu.ui b/src/gui/mainmenu.ui index eb3bed3..46f4881 100644 --- a/src/gui/mainmenu.ui +++ b/src/gui/mainmenu.ui @@ -79,11 +79,25 @@ Tools + + + Set Style + + + + + + + + + + + @@ -398,6 +412,54 @@ Ctrl+Shift+L + + + Previous Node Style + + + Ctrl+, + + + + + Next Node Style + + + Ctrl+. + + + + + Clear Node Style + + + Ctrl+Space + + + + + Previous Edge Style + + + Ctrl+Shift+, + + + + + Next Edge Style + + + Ctrl+Shift+. + + + + + Clear Edge Style + + + Ctrl+Shift+Space + + diff --git a/src/gui/stylepalette.cpp b/src/gui/stylepalette.cpp index 15ed4c2..b862902 100644 --- a/src/gui/stylepalette.cpp +++ b/src/gui/stylepalette.cpp @@ -34,6 +34,8 @@ StylePalette::StylePalette(QWidget *parent) : ui(new Ui::StylePalette) { ui->setupUi(this); + _lastStyleIndex = 0; + _lastEdgeStyleIndex = 0; ui->styleListView->setModel(tikzit->styles()->nodeStyles()); ui->styleListView->setViewMode(QListView::IconMode); @@ -73,31 +75,95 @@ void StylePalette::reloadStyles() ui->currentCategory->addItems(tikzit->styles()->categories()); ui->currentCategory->setCurrentText(cat); } + + clearNodeStyle(); + clearEdgeStyle(); } -void StylePalette::changeNodeStyle(int increment) +int StylePalette::styleIndex() { QModelIndexList i = ui->styleListView->selectionModel()->selectedIndexes(); - int row = 0; - if (!i.isEmpty()) { - int row = (i[0].row()+increment)% tikzit->styles()->nodeStyles()->numInCategory(); - if (row < 0) row += tikzit->styles()->nodeStyles()->numInCategory(); + if (!i.isEmpty()) return i[0].row(); + else return 0; +} + +void StylePalette::setStyleIndex(int i) +{ + _lastStyleIndex = styleIndex(); + if (i < 0) { + i = 0; + } else { + int max = tikzit->styles()->nodeStyles()->numInCategory(); + if (i >= max) i = max - 1; } - //QModelIndex i1 = ui->styleListView->rootIndex().child(row, 0); - QModelIndex i1 =tikzit->styles()->nodeStyles()->index(row,0); + QModelIndex i1 =tikzit->styles()->nodeStyles()->index(i,0); ui->styleListView->selectionModel()->select(i1, QItemSelectionModel::ClearAndSelect); ui->styleListView->scrollTo(i1); } +int StylePalette::edgeStyleIndex() +{ + QModelIndexList i = ui->edgeStyleListView->selectionModel()->selectedIndexes(); + if (!i.isEmpty()) return i[0].row(); + else return 0; +} + +void StylePalette::setEdgeStyleIndex(int i) +{ + _lastEdgeStyleIndex = edgeStyleIndex(); + if (i < 0) { + i = 0; + } else { + int max = tikzit->styles()->edgeStyles()->numInCategory(); + if (i >= max) i = max - 1; + } + + QModelIndex i1 =tikzit->styles()->edgeStyles()->index(i,0); + ui->edgeStyleListView->selectionModel()->select(i1, QItemSelectionModel::ClearAndSelect); + ui->edgeStyleListView->scrollTo(i1); +} + void StylePalette::nextNodeStyle() { - changeNodeStyle(1); + setStyleIndex(styleIndex()+1); } void StylePalette::previousNodeStyle() { - changeNodeStyle(-1); + setStyleIndex(styleIndex()-1); +} + +void StylePalette::clearNodeStyle() +{ + setStyleIndex(0); +} + +void StylePalette::toggleClearNodeStyle() +{ + if (styleIndex() == 0) setStyleIndex(_lastStyleIndex); + else setStyleIndex(0); +} + +void StylePalette::nextEdgeStyle() +{ + setEdgeStyleIndex(edgeStyleIndex()+1); +} + +void StylePalette::previousEdgeStyle() +{ + setEdgeStyleIndex(edgeStyleIndex()-1); +} + +void StylePalette::clearEdgeStyle() +{ + setEdgeStyleIndex(0); +} + +void StylePalette::toggleClearEdgeStyle() +{ + if (edgeStyleIndex() == 0) setEdgeStyleIndex(_lastEdgeStyleIndex); + else setEdgeStyleIndex(0); } QString StylePalette::activeNodeStyleName() @@ -164,6 +230,7 @@ void StylePalette::on_currentCategory_currentTextChanged(const QString &cat) { //tikzit->styles()->refreshModels(_nodeModel, _edgeModel, cat); tikzit->styles()->nodeStyles()->setCategory(cat); + clearNodeStyle(); } //void StylePalette::on_buttonApplyNodeStyle_clicked() diff --git a/src/gui/stylepalette.h b/src/gui/stylepalette.h index f27cd4b..6e16812 100644 --- a/src/gui/stylepalette.h +++ b/src/gui/stylepalette.h @@ -36,10 +36,14 @@ public: void reloadStyles(); void nextNodeStyle(); void previousNodeStyle(); + void clearNodeStyle(); + void toggleClearNodeStyle(); + void nextEdgeStyle(); + void previousEdgeStyle(); + void clearEdgeStyle(); + void toggleClearEdgeStyle(); QString activeNodeStyleName(); QString activeEdgeStyleName(); - - public slots: void nodeStyleDoubleClicked(const QModelIndex &); void edgeStyleDoubleClicked(const QModelIndex &); @@ -51,7 +55,12 @@ public slots: //void on_buttonApplyNodeStyle_clicked(); private: - void changeNodeStyle(int increment); + int _lastStyleIndex; + int _lastEdgeStyleIndex; + int styleIndex(); + void setStyleIndex(int i); + int edgeStyleIndex(); + void setEdgeStyleIndex(int i); Ui::StylePalette *ui; diff --git a/src/gui/tikzscene.cpp b/src/gui/tikzscene.cpp index 969a355..29b007e 100644 --- a/src/gui/tikzscene.cpp +++ b/src/gui/tikzscene.cpp @@ -740,11 +740,6 @@ void TikzScene::keyPressEvent(QKeyEvent *event) // slower, but seems to be more reliable than event->modifiers() Qt::KeyboardModifiers mod = QApplication::queryKeyboardModifiers(); - if (event->key() == Qt::Key_QuoteLeft) { - capture = true; - _styles->nextNodeStyle(); - } - if (mod & Qt::ControlModifier) { QSet selNodes; QSet selEdges; -- cgit v1.2.3 From 0ca80333a1593af964a8361af72aeab37e919868 Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Fri, 10 Apr 2020 16:50:03 +0100 Subject: check for auto-repeating key before switching tool (fixes #58) --- src/gui/tikzscene.cpp | 39 ++++++++++++++++++++------------------- src/gui/tikzscene.h | 2 ++ 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/src/gui/tikzscene.cpp b/src/gui/tikzscene.cpp index 29b007e..087f621 100644 --- a/src/gui/tikzscene.cpp +++ b/src/gui/tikzscene.cpp @@ -708,25 +708,6 @@ void TikzScene::keyReleaseEvent(QKeyEvent *event) } - if (event->key() == Qt::Key_Backspace || event->key() == Qt::Key_Delete) { - deleteSelectedItems(); - } else if (mod == Qt::NoModifier) { - switch(event->key()) { - case Qt::Key_S: - tikzit->activeWindow()->toolPalette()->setCurrentTool(ToolPalette::SELECT); - break; - case Qt::Key_V: - case Qt::Key_N: - tikzit->activeWindow()->toolPalette()->setCurrentTool(ToolPalette::VERTEX); - break; - case Qt::Key_E: - tikzit->activeWindow()->toolPalette()->setCurrentTool(ToolPalette::EDGE); - break; - case Qt::Key_B: - tikzit->activeWindow()->toolPalette()->setCurrentTool(ToolPalette::CROP); - break; - } - } foreach (QGraphicsItem *it, selectedItems()) it->update(); } @@ -861,6 +842,26 @@ void TikzScene::keyPressEvent(QKeyEvent *event) _tikzDocument->undoStack()->endMacro(); } } + } else { // no CTRL key + if (event->key() == Qt::Key_Backspace || event->key() == Qt::Key_Delete) { + deleteSelectedItems(); + } else if (!event->isAutoRepeat()) { + switch(event->key()) { + case Qt::Key_S: + tikzit->activeWindow()->toolPalette()->setCurrentTool(ToolPalette::SELECT); + break; + case Qt::Key_V: + case Qt::Key_N: + tikzit->activeWindow()->toolPalette()->setCurrentTool(ToolPalette::VERTEX); + break; + case Qt::Key_E: + tikzit->activeWindow()->toolPalette()->setCurrentTool(ToolPalette::EDGE); + break; + case Qt::Key_B: + tikzit->activeWindow()->toolPalette()->setCurrentTool(ToolPalette::CROP); + break; + } + } } foreach (QGraphicsItem *it, selectedItems()) it->update(); diff --git a/src/gui/tikzscene.h b/src/gui/tikzscene.h index 1edd50a..2e7baa5 100644 --- a/src/gui/tikzscene.h +++ b/src/gui/tikzscene.h @@ -130,6 +130,8 @@ private: bool _highlightHeads; bool _highlightTails; bool _smartTool; + + bool _ctrlWasPressed; }; #endif // TIKZSCENE_H -- cgit v1.2.3 From ccf98283025f9d5cc2083c87352993dce4545e71 Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Fri, 10 Apr 2020 17:00:32 +0100 Subject: updated gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 2f1a07c..d7d4bb5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +*.pro.user* scripts/*.pyc tex/sample/Output tex/sample/sample.pdf -- cgit v1.2.3