diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index c6161507e..f29c7b2b1 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -1158,7 +1158,7 @@ void MainWindow::ActionLayout(bool checked) hide(); QVector listDetails; pattern->PrepareDetails(listDetails); - emit ModelChosen(listDetails); + emit ModelChosen(listDetails, fileName); } void MainWindow::ClosedActionHistory() diff --git a/src/mainwindow.h b/src/mainwindow.h index 6a4d6587f..632773304 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -345,7 +345,7 @@ signals: * @brief ModelChosen Сигнал, що висилається після розрахунку всіх деталей моделі. * @param listDetails Список детайле моделі. */ - void ModelChosen(QVector listDetails); + void ModelChosen(QVector listDetails, const QString &fileName); protected: /** * @brief keyPressEvent diff --git a/src/tablewindow.cpp b/src/tablewindow.cpp index 92dcd598f..3add1bef2 100644 --- a/src/tablewindow.cpp +++ b/src/tablewindow.cpp @@ -37,7 +37,7 @@ TableWindow::TableWindow(QWidget *parent) :QMainWindow(parent), numberDetal(0), colission(0), ui(new Ui::TableWindow), listDetails(QVector()), outItems(false), collidingItems(false), tableScene(0), paper(0), shadowPaper(0), listOutItems(0), listCollidingItems(QList()), - indexDetail(0), sceneRect(QRectF()) + indexDetail(0), sceneRect(QRectF()), fileName(QString()) { ui->setupUi(this); numberDetal = new QLabel(tr("0 details left."), this); @@ -118,8 +118,10 @@ void TableWindow::AddDetail() /* * Get details for creation layout. */ -void TableWindow::ModelChosen(QVector listDetails) +void TableWindow::ModelChosen(QVector listDetails, const QString &fileName) { + this->fileName = fileName; + this->fileName.remove(this->fileName.size()-4, 4); this->listDetails = listDetails; listOutItems = new QBitArray(this->listDetails.count()); AddPaper(); @@ -177,7 +179,8 @@ void TableWindow::saveScene() QString sf; // the save function - QString name = QFileDialog::getSaveFileName(this, tr("Save layout"), QDir::homePath(), saveMessage, &sf); + QString dir = QDir::homePath()+fileName; + QString name = QFileDialog::getSaveFileName(this, tr("Save layout"), dir, saveMessage, &sf); if (name.isEmpty()) { diff --git a/src/tablewindow.h b/src/tablewindow.h index a17206788..d6b41544e 100644 --- a/src/tablewindow.h +++ b/src/tablewindow.h @@ -68,7 +68,7 @@ public slots: *моделі. * @param listDetails Список моделей деталі. */ - void ModelChosen(QVector listDetails); + void ModelChosen(QVector listDetails, const QString &fileName); /** * @brief StopTable Слот, що виконується при хованні вікна. Виконує неохідні очищення і ховає *вікно. @@ -195,6 +195,7 @@ private: * @brief sceneRect Мінімальний розмір листа паперу що буде показуватися на сцені. */ QRectF sceneRect; + QString fileName; /** * @brief SvgFile * @param name