From d950acfc239a1b7a216243fb79c412982c68afa5 Mon Sep 17 00:00:00 2001 From: dismine Date: Fri, 26 Sep 2014 20:09:20 +0300 Subject: [PATCH] Disable also deletion tool from keyboard when tool cannot be deleted. --HG-- branch : develop --- src/app/core/vapplication.h | 1 + src/app/tools/drawTools/vdrawtool.h | 2 -- src/app/tools/drawTools/vtoolsinglepoint.cpp | 18 +++++++++++------- src/app/tools/vabstracttool.cpp | 17 +++++++++++------ 4 files changed, 23 insertions(+), 15 deletions(-) diff --git a/src/app/core/vapplication.h b/src/app/core/vapplication.h index fd0d93197..255fb22c3 100644 --- a/src/app/core/vapplication.h +++ b/src/app/core/vapplication.h @@ -33,6 +33,7 @@ #include "../options.h" #include "vtranslation.h" #include +#include "../widgets/vmaingraphicsview.h" class VApplication;// used in define class QUndoStack; diff --git a/src/app/tools/drawTools/vdrawtool.h b/src/app/tools/drawTools/vdrawtool.h index 0254e5363..a4f25e27e 100644 --- a/src/app/tools/drawTools/vdrawtool.h +++ b/src/app/tools/drawTools/vdrawtool.h @@ -36,7 +36,6 @@ #include "../../dialogs/tools/dialogtool.h" #include "../../widgets/vmaingraphicsscene.h" #include "../../xml/vpattern.h" -#include "../../widgets/vmaingraphicsview.h" /** * @brief The VDrawTool abstract class for all draw tool. @@ -138,7 +137,6 @@ protected: } if (selectedAction == actionRemove) { - qApp->getSceneView()->itemClicked(nullptr); DeleteTool(); } } diff --git a/src/app/tools/drawTools/vtoolsinglepoint.cpp b/src/app/tools/drawTools/vtoolsinglepoint.cpp index e14dbf566..b44c0e15e 100644 --- a/src/app/tools/drawTools/vtoolsinglepoint.cpp +++ b/src/app/tools/drawTools/vtoolsinglepoint.cpp @@ -168,17 +168,21 @@ void VToolSinglePoint::decrementReferens() //--------------------------------------------------------------------------------------------------------------------- void VToolSinglePoint::DeleteTool(bool ask) { - if (ask) + if (_referens <= 1) { - if (ConfirmDeletion() == QMessageBox::Cancel) + qApp->getSceneView()->itemClicked(nullptr); + if (ask) { - return; + if (ConfirmDeletion() == QMessageBox::Cancel) + { + return; + } } - } - DeletePatternPiece *deletePP = new DeletePatternPiece(doc, nameActivDraw); - connect(deletePP, &DeletePatternPiece::NeedFullParsing, doc, &VPattern::NeedFullParsing); - qApp->getUndoStack()->push(deletePP); + DeletePatternPiece *deletePP = new DeletePatternPiece(doc, nameActivDraw); + connect(deletePP, &DeletePatternPiece::NeedFullParsing, doc, &VPattern::NeedFullParsing); + qApp->getUndoStack()->push(deletePP); + } } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/app/tools/vabstracttool.cpp b/src/app/tools/vabstracttool.cpp index 35c4c811e..8552290e6 100644 --- a/src/app/tools/vabstracttool.cpp +++ b/src/app/tools/vabstracttool.cpp @@ -33,6 +33,7 @@ #include "../core/vapplication.h" #include "../geometry/vpointf.h" #include "../undocommands/savetooloptions.h" +#include "../widgets/vmaingraphicsview.h" const QString VAbstractTool::AttrType = QStringLiteral("type"); const QString VAbstractTool::AttrMx = QStringLiteral("mx"); @@ -249,16 +250,20 @@ QPointF VAbstractTool::addVector(const QPointF &p, const QPointF &p1, const QPoi */ void VAbstractTool::DeleteTool(bool ask) { - if (ask) + if (_referens <= 1) { - if (ConfirmDeletion() == QMessageBox::Cancel) + qApp->getSceneView()->itemClicked(nullptr); + if (ask) { - return; + if (ConfirmDeletion() == QMessageBox::Cancel) + { + return; + } } + DelTool *delTool = new DelTool(doc, id); + connect(delTool, &DelTool::NeedFullParsing, doc, &VPattern::NeedFullParsing); + qApp->getUndoStack()->push(delTool); } - DelTool *delTool = new DelTool(doc, id); - connect(delTool, &DelTool::NeedFullParsing, doc, &VPattern::NeedFullParsing); - qApp->getUndoStack()->push(delTool); } //---------------------------------------------------------------------------------------------------------------------