diff --git a/ChangeLog.txt b/ChangeLog.txt index 696a5b6d9..fdd941600 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -17,6 +17,7 @@ - [#697] Incomplete Internal Path for Waist Dart. - [#698] Problem typing in new axis point for new piece. - [#702] Valentina produces broken shortcut (.lnk) files on Windows. +- Changed default behaviour if path to multisize measurements or templates doesn't exist. # Version 0.5.0 May 9, 2017 - [#581] User can now filter input lists by keyword in function wizard. diff --git a/src/app/tape/dialogs/configpages/tapepreferencespathpage.cpp b/src/app/tape/dialogs/configpages/tapepreferencespathpage.cpp index 5820cebf5..70a441aaa 100644 --- a/src/app/tape/dialogs/configpages/tapepreferencespathpage.cpp +++ b/src/app/tape/dialogs/configpages/tapepreferencespathpage.cpp @@ -104,7 +104,7 @@ void TapePreferencesPathPage::EditPath() break; case 1: // standard measurements path = qApp->TapeSettings()->GetPathStandardMeasurements(); - VCommonSettings::PrepareStandardTables(path); + path = VCommonSettings::PrepareStandardTables(path); break; case 2: // templates path = qApp->TapeSettings()->GetPathTemplate(); diff --git a/src/app/tape/tmainwindow.cpp b/src/app/tape/tmainwindow.cpp index 231316005..b62a846e1 100644 --- a/src/app/tape/tmainwindow.cpp +++ b/src/app/tape/tmainwindow.cpp @@ -417,8 +417,8 @@ void TMainWindow::OpenStandard() const QString filter = tr("Multisize measurements") + QLatin1String(" (*.vst);;") + tr("Individual measurements") + QLatin1String(" (*.vit);;") + tr("All files") + QLatin1String(" (*.*)"); //Use standard path to standard measurements - const QString pathTo = qApp->TapeSettings()->GetPathStandardMeasurements(); - VCommonSettings::PrepareStandardTables(pathTo); + QString pathTo = qApp->TapeSettings()->GetPathStandardMeasurements(); + pathTo = VCommonSettings::PrepareStandardTables(pathTo); Open(pathTo, filter); } @@ -429,8 +429,8 @@ void TMainWindow::OpenTemplate() const QString filter = tr("Measurements") + QLatin1String(" (*.vst *.vit);;") + tr("All files") + QLatin1String(" (*.*)"); //Use standard path to template files - const QString pathTo = qApp->TapeSettings()->GetPathTemplate(); - VCommonSettings::PrepareStandardTemplates(pathTo); + QString pathTo = qApp->TapeSettings()->GetPathTemplate(); + pathTo = VCommonSettings::PrepareStandardTemplates(pathTo); Open(pathTo, filter); if (m != nullptr) @@ -826,7 +826,7 @@ bool TMainWindow::FileSaveAs() else { dir = qApp->TapeSettings()->GetPathStandardMeasurements(); - VCommonSettings::PrepareStandardTables(dir); + dir = VCommonSettings::PrepareStandardTables(dir); } } else @@ -1342,8 +1342,8 @@ void TMainWindow::ImportFromPattern() const QString filter(tr("Pattern files (*.val)")); //Use standard path to individual measurements - const QString pathTo = qApp->TapeSettings()->GetPathTemplate(); - VCommonSettings::PrepareStandardTemplates(pathTo); + QString pathTo = qApp->TapeSettings()->GetPathTemplate(); + pathTo = VCommonSettings::PrepareStandardTemplates(pathTo); const QString mPath = QFileDialog::getOpenFileName(this, tr("Import from a pattern"), pathTo, filter); if (mPath.isEmpty()) diff --git a/src/app/valentina/dialogs/configpages/preferencespathpage.cpp b/src/app/valentina/dialogs/configpages/preferencespathpage.cpp index 43a11f6a0..6ed3a803b 100644 --- a/src/app/valentina/dialogs/configpages/preferencespathpage.cpp +++ b/src/app/valentina/dialogs/configpages/preferencespathpage.cpp @@ -114,7 +114,7 @@ void PreferencesPathPage::EditPath() break; case 1: // standard measurements path = qApp->ValentinaSettings()->GetPathStandardMeasurements(); - VCommonSettings::PrepareStandardTables(path); + path = VCommonSettings::PrepareStandardTables(path); break; case 2: // pattern path path = qApp->ValentinaSettings()->GetPathPattern(); diff --git a/src/app/valentina/mainwindow.cpp b/src/app/valentina/mainwindow.cpp index f54847b52..f475cc58d 100644 --- a/src/app/valentina/mainwindow.cpp +++ b/src/app/valentina/mainwindow.cpp @@ -1521,8 +1521,8 @@ void MainWindow::LoadStandard() const QString filter = tr("Multisize measurements") + QLatin1String(" (*.vst);;") + tr("Individual measurements") + QLatin1String("(*.vit)"); //Use standard path to standard measurements - const QString path = qApp->ValentinaSettings()->GetPathStandardMeasurements(); - VCommonSettings::PrepareStandardTables(path); + QString path = qApp->ValentinaSettings()->GetPathStandardMeasurements(); + path = VCommonSettings::PrepareStandardTables(path); const QString mPath = QFileDialog::getOpenFileName(this, tr("Open file"), path, filter); if (not mPath.isEmpty()) @@ -4472,8 +4472,8 @@ QString MainWindow::CheckPathToMeasurements(const QString &patternPath, const QS { const QString filter = tr("Multisize measurements") + QLatin1String(" (*.vst)"); //Use standard path to standard measurements - const QString path = qApp->ValentinaSettings()->GetPathStandardMeasurements(); - VCommonSettings::PrepareStandardTables(path); + QString path = qApp->ValentinaSettings()->GetPathStandardMeasurements(); + path = VCommonSettings::PrepareStandardTables(path); mPath = QFileDialog::getOpenFileName(this, tr("Open file"), path, filter); } else if (patternType == MeasurementsType::Individual) @@ -4502,8 +4502,8 @@ QString MainWindow::CheckPathToMeasurements(const QString &patternPath, const QS const QString filter = tr("Individual measurements") + QLatin1String(" (*.vit);;") + tr("Multisize measurements") + QLatin1String(" (*.vst)"); //Use standard path to individual measurements - const QString path = qApp->ValentinaSettings()->GetPathIndividualMeasurements(); - VCommonSettings::PrepareStandardTables(VCommonSettings::GetDefPathStandardMeasurements()); + QString path = qApp->ValentinaSettings()->GetPathIndividualMeasurements(); + path = VCommonSettings::PrepareStandardTables(VCommonSettings::GetDefPathStandardMeasurements()); bool usedNotExistedDir = false; QDir directory(path); diff --git a/src/libs/vmisc/vcommonsettings.cpp b/src/libs/vmisc/vcommonsettings.cpp index ccb02edc4..218f1576e 100644 --- a/src/libs/vmisc/vcommonsettings.cpp +++ b/src/libs/vmisc/vcommonsettings.cpp @@ -153,6 +153,23 @@ void SymlinkCopyDirRecursive(const QString &fromDir, const QString &toDir, bool SymlinkCopyDirRecursive(from, to, replaceOnConflit); } } + +//--------------------------------------------------------------------------------------------------------------------- +QString PrepareStandardFiles(const QString ¤tPath, const QString &standardPath, const QString &defPath) +{ + QDir standardPathDir(standardPath); + QDir currentPathDir(currentPath); + if ((currentPath == defPath || not currentPathDir.exists()) && standardPathDir.exists()) + { + const QDir localdata (defPath); + if (localdata.mkpath(".")) + { + SymlinkCopyDirRecursive(standardPath, defPath, false); + } + return defPath; + } + return currentPath; +} } //--------------------------------------------------------------------------------------------------------------------- @@ -218,33 +235,15 @@ QString VCommonSettings::StandardTemplatesPath() } //--------------------------------------------------------------------------------------------------------------------- -void VCommonSettings::PrepareStandardTemplates(const QString & currentPath) +QString VCommonSettings::PrepareStandardTemplates(const QString & currentPath) { - QDir standardPath(VCommonSettings::StandardTemplatesPath()); - const QDir localdata (VCommonSettings::GetDefPathTemplate()); - if (currentPath == VCommonSettings::GetDefPathTemplate() && standardPath.exists()) - { - if (localdata.mkpath(".")) - { - SymlinkCopyDirRecursive(VCommonSettings::StandardTemplatesPath(), VCommonSettings::GetDefPathTemplate(), - false); - } - } + return PrepareStandardFiles(currentPath, StandardTemplatesPath(), GetDefPathTemplate()); } //--------------------------------------------------------------------------------------------------------------------- -void VCommonSettings::PrepareStandardTables(const QString ¤tPath) +QString VCommonSettings::PrepareStandardTables(const QString ¤tPath) { - QDir standardPath(VCommonSettings::StandardTablesPath()); - const QDir localdata (VCommonSettings::GetDefPathStandardMeasurements()); - if (currentPath == VCommonSettings::GetDefPathStandardMeasurements() && standardPath.exists()) - { - if (localdata.mkpath(".")) - { - SymlinkCopyDirRecursive(VCommonSettings::StandardTablesPath(), - VCommonSettings::GetDefPathStandardMeasurements(), false); - } - } + return PrepareStandardFiles(currentPath, StandardTablesPath(), GetDefPathStandardMeasurements()); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vmisc/vcommonsettings.h b/src/libs/vmisc/vcommonsettings.h index 1a45baf31..f96879506 100644 --- a/src/libs/vmisc/vcommonsettings.h +++ b/src/libs/vmisc/vcommonsettings.h @@ -51,8 +51,8 @@ public: static QString StandardTablesPath(); static QString StandardTemplatesPath(); - static void PrepareStandardTemplates(const QString ¤tPath); - static void PrepareStandardTables(const QString ¤tPath); + static QString PrepareStandardTemplates(const QString ¤tPath); + static QString PrepareStandardTables(const QString ¤tPath); static QString GetDefPathIndividualMeasurements(); QString GetPathIndividualMeasurements() const;