diff --git a/mainwindow.cpp b/mainwindow.cpp index 37e1be32c..f32f20d3c 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -996,6 +996,21 @@ void MainWindow::MinimumScrollBar(){ } bool MainWindow::SafeSaveing(const QString &fileName) const{ + try{ + doc->TestUniqueId(); + } + catch(const VExceptionUniqueId &e){ + QMessageBox msgBox; + msgBox.setWindowTitle(tr("Error!")); + msgBox.setText(tr("Error don't unique id.")); + msgBox.setInformativeText(e.ErrorMessage()); + msgBox.setStandardButtons(QMessageBox::Ok); + msgBox.setDefaultButton(QMessageBox::Ok); + msgBox.setDetailedText(e.DetailedInformation()); + msgBox.setIcon(QMessageBox::Critical); + msgBox.exec(); + return false; + } if(fileName.isEmpty()){ qWarning()<actionSave->setEnabled(false); diff --git a/xml/vdomdocument.h b/xml/vdomdocument.h index 76449e24b..51fcd2f03 100644 --- a/xml/vdomdocument.h +++ b/xml/vdomdocument.h @@ -66,6 +66,7 @@ public: void UpdateToolData(const qint64 &id, VContainer *data); void IncrementReferens(qint64 id) const; void DecrementReferens(qint64 id) const; + void TestUniqueId() const; signals: void ChangedActivDraw(const QString newName); void ChangedNameDraw(const QString oldName, const QString newName); @@ -111,8 +112,7 @@ private: qint64 GetParametrId(const QDomElement& domElement) const; qint64 GetParametrLongLong(const QDomElement& domElement, const QString &name) const; QString GetParametrString(const QDomElement& domElement, const QString &name) const; - qreal GetParametrDouble(const QDomElement& domElement, const QString &name) const; - void TestUniqueId() const; + qreal GetParametrDouble(const QDomElement& domElement, const QString &name) const; void CollectId(QDomElement node, QVector &vector)const; };