From 7a9b2e34bd6d945a56faab06f138be4d4ddc0c4c Mon Sep 17 00:00:00 2001 From: Roman Telezhynskyi Date: Mon, 5 Jun 2017 17:52:42 +0300 Subject: [PATCH] Changed default behaviour if path to multisize measurements or templates doesn't exist. If the path doesn't exist Valentina will create and return path to user localized default folder. (grafted from 722c37544c26fe3f406d222b7f344ddf7b3602a0) --HG-- branch : develop --- ChangeLog.txt | 1 + .../configpages/tapepreferencespathpage.cpp | 2 +- src/app/tape/tmainwindow.cpp | 14 +++--- .../configpages/preferencespathpage.cpp | 2 +- src/app/valentina/mainwindow.cpp | 12 +++--- src/libs/vmisc/vcommonsettings.cpp | 43 +++++++++---------- src/libs/vmisc/vcommonsettings.h | 4 +- 7 files changed, 39 insertions(+), 39 deletions(-) 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;