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;
};