From 81c1c39be9480ad624518c695de6b104f5fc5359 Mon Sep 17 00:00:00 2001 From: dismine Date: Wed, 11 Jun 2014 19:45:39 +0300 Subject: [PATCH] Refactoring. Create method SaveDialogChange. --HG-- branch : feature --- src/app/tools/drawTools/vdrawtool.cpp | 28 ++++++++++++--------------- src/app/tools/drawTools/vdrawtool.h | 4 +--- 2 files changed, 13 insertions(+), 19 deletions(-) diff --git a/src/app/tools/drawTools/vdrawtool.cpp b/src/app/tools/drawTools/vdrawtool.cpp index 4720d9d93..dfe568860 100644 --- a/src/app/tools/drawTools/vdrawtool.cpp +++ b/src/app/tools/drawTools/vdrawtool.cpp @@ -112,27 +112,22 @@ void VDrawTool::FullUpdateFromGuiOk(int result) { if (result == QDialog::Accepted) { - QDomElement oldDomElement = doc->elementById(QString().setNum(id)); - if (oldDomElement.isElement()) - { - QDomElement newDomElement = oldDomElement.cloneNode().toElement(); - SaveDialog(newDomElement); - - SaveToolOptions *saveOptions = new SaveToolOptions(oldDomElement, newDomElement, doc, id); - connect(saveOptions, &SaveToolOptions::NeedLiteParsing, doc, &VPattern::LiteParseTree); - qApp->getUndoStack()->push(saveOptions); - } - else - { - qDebug()<<"Can't find tool with id ="<< id << Q_FUNC_INFO; - } + SaveDialogChange(); } - delete dialog; - dialog = nullptr; + DialogLinkDestroy(); } //--------------------------------------------------------------------------------------------------------------------- +/** + * @brief FullUpdateFromGuiApply refresh tool data after change in options but do not delete dialog + */ void VDrawTool::FullUpdateFromGuiApply() +{ + SaveDialogChange(); +} + +//--------------------------------------------------------------------------------------------------------------------- +void VDrawTool::SaveDialogChange() { QDomElement oldDomElement = doc->elementById(QString().setNum(id)); if (oldDomElement.isElement()) @@ -153,6 +148,7 @@ void VDrawTool::FullUpdateFromGuiApply() //--------------------------------------------------------------------------------------------------------------------- void VDrawTool::DialogLinkDestroy() { + delete this->dialog; this->dialog=nullptr; } diff --git a/src/app/tools/drawTools/vdrawtool.h b/src/app/tools/drawTools/vdrawtool.h index bc470bff9..591e26b71 100644 --- a/src/app/tools/drawTools/vdrawtool.h +++ b/src/app/tools/drawTools/vdrawtool.h @@ -62,9 +62,6 @@ public slots: virtual void ChangedActivDraw(const QString &newName); void ChangedNameDraw(const QString &oldName, const QString &newName); virtual void FullUpdateFromGuiOk(int result); - /** - * @brief FullUpdateFromGuiApply refresh tool data after change in options but do not delete dialog - */ virtual void FullUpdateFromGuiApply(); virtual void SetFactor(qreal factor); protected: @@ -87,6 +84,7 @@ protected: /** @brief SaveDialog save options into file after change in dialog. */ virtual void SaveDialog(QDomElement &domElement)=0; + void SaveDialogChange(); template /**