From de12c77aa4feaee93feed6de63be794a840f5d45 Mon Sep 17 00:00:00 2001 From: Valentina Zhuravska Date: Sun, 18 Oct 2015 12:56:47 +0300 Subject: [PATCH 1/5] Resolved issue #354. Save valentina.exe Path Preferences to a file accessible by tape.exe --HG-- branch : feature --- src/libs/vmisc/vcommonsettings.cpp | 16 +++++++++------- src/libs/vmisc/vcommonsettings.h | 3 +++ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/libs/vmisc/vcommonsettings.cpp b/src/libs/vmisc/vcommonsettings.cpp index b2a707511..7eefc7705 100644 --- a/src/libs/vmisc/vcommonsettings.cpp +++ b/src/libs/vmisc/vcommonsettings.cpp @@ -65,33 +65,35 @@ const QString VCommonSettings::SettingGeneralWindowState = QString const QString VCommonSettings::SettingGeneralToolbarsState = QStringLiteral("toolbarsState"); //--------------------------------------------------------------------------------------------------------------------- -VCommonSettings::VCommonSettings(Format format, Scope scope, const QString &organization, const QString &application, - QObject *parent) - :QSettings(format, scope, organization, application, parent) +VCommonSettings::VCommonSettings(Format format, Scope scope, const QString &organization, + const QString &application, QObject *parent) + :QSettings(format, scope, organization, application, parent), commonSettings(format, scope, organization) {} //--------------------------------------------------------------------------------------------------------------------- QString VCommonSettings::GetPathIndividualMeasurements() const { - return value(SettingPathsIndividualMeasurements, QDir::homePath()).toString(); + QSettings settings(commonSettings.format(), commonSettings.scope(), commonSettings.organizationName()); + return settings.value(SettingPathsIndividualMeasurements, QDir::homePath()).toString(); } //--------------------------------------------------------------------------------------------------------------------- void VCommonSettings::SetPathIndividualMeasurements(const QString &value) { - setValue(SettingPathsIndividualMeasurements, value); + commonSettings.setValue(SettingPathsIndividualMeasurements, value); } //--------------------------------------------------------------------------------------------------------------------- QString VCommonSettings::GetPathStandardMeasurements() const { - return value(SettingPathsStandardMeasurements, StandardTablesPath()).toString(); + QSettings settings(commonSettings.format(), commonSettings.scope(), commonSettings.organizationName()); + return settings.value(SettingPathsStandardMeasurements, StandardTablesPath()).toString(); } //--------------------------------------------------------------------------------------------------------------------- void VCommonSettings::SetPathStandardMeasurements(const QString &value) { - setValue(SettingPathsStandardMeasurements, value); + commonSettings.setValue(SettingPathsStandardMeasurements, value); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vmisc/vcommonsettings.h b/src/libs/vmisc/vcommonsettings.h index cee31a4a0..d226f3dc2 100644 --- a/src/libs/vmisc/vcommonsettings.h +++ b/src/libs/vmisc/vcommonsettings.h @@ -97,6 +97,9 @@ public: private: Q_DISABLE_COPY(VCommonSettings) + + QSettings commonSettings; + static const QString SettingPathsIndividualMeasurements; static const QString SettingPathsStandardMeasurements; From e16943cfa251cc0818671b123208ba483a46cdf9 Mon Sep 17 00:00:00 2001 From: Valentina Zhuravska Date: Sun, 18 Oct 2015 13:01:38 +0300 Subject: [PATCH 2/5] Resolved issue #388. Add field for measurement template directory in Valentina.exe, 'File', 'Preferences', 'Paths' --HG-- branch : feature --- .../dialogs/configpages/pathpage.cpp | 17 +++++- src/libs/vmisc/vcommonsettings.cpp | 58 +++++++++++++++++++ src/libs/vmisc/vcommonsettings.h | 5 ++ src/libs/vmisc/vtapesettings.cpp | 56 ------------------ src/libs/vmisc/vtapesettings.h | 5 -- 5 files changed, 79 insertions(+), 62 deletions(-) diff --git a/src/app/valentina/dialogs/configpages/pathpage.cpp b/src/app/valentina/dialogs/configpages/pathpage.cpp index 6df397248..c57cf42b0 100644 --- a/src/app/valentina/dialogs/configpages/pathpage.cpp +++ b/src/app/valentina/dialogs/configpages/pathpage.cpp @@ -66,6 +66,7 @@ void PathPage::Apply() qApp->ValentinaSettings()->SetPathStandardMeasurements(pathTable->item(1, 1)->text()); qApp->ValentinaSettings()->SetPathPattern(pathTable->item(2, 1)->text()); qApp->ValentinaSettings()->SetPathLayout(pathTable->item(3, 1)->text()); + qApp->ValentinaSettings()->SetPathTemplate(pathTable->item(4, 1)->text()); } //--------------------------------------------------------------------------------------------------------------------- @@ -97,6 +98,10 @@ void PathPage::DefaultPath() item->setText(QDir::homePath()); item->setToolTip(QDir::homePath()); break; + case 4: // templates + item->setText(qApp->ValentinaSettings()->TemplatesPath()); + item->setToolTip(qApp->ValentinaSettings()->TemplatesPath()); + break; default: break; } @@ -124,6 +129,9 @@ void PathPage::EditPath() case 3: // layout path path = qApp->ValentinaSettings()->GetPathLayout(); break; + case 4: // templates + path = qApp->ValentinaSettings()->GetPathTemplate(); + break; default: break; } @@ -169,7 +177,7 @@ QGroupBox *PathPage::PathGroup() void PathPage::InitTable() { pathTable = new QTableWidget(); - pathTable->setRowCount(4); + pathTable->setRowCount(5); pathTable->setColumnCount(2); pathTable->verticalHeader()->setVisible(false); pathTable->setEditTriggers(QAbstractItemView::NoEditTriggers); @@ -208,6 +216,13 @@ void PathPage::InitTable() pathTable->setItem(3, 1, item); } + { + pathTable->setItem(4, 0, new QTableWidgetItem(tr("Templates"))); + QTableWidgetItem *item = new QTableWidgetItem(qApp->ValentinaSettings()->GetPathTemplate()); + item->setToolTip(qApp->ValentinaSettings()->GetPathTemplate()); + pathTable->setItem(4, 1, item); + } + pathTable->verticalHeader()->setDefaultSectionSize(20); pathTable->resizeColumnsToContents(); pathTable->resizeRowsToContents(); diff --git a/src/libs/vmisc/vcommonsettings.cpp b/src/libs/vmisc/vcommonsettings.cpp index 7eefc7705..9845f75c7 100644 --- a/src/libs/vmisc/vcommonsettings.cpp +++ b/src/libs/vmisc/vcommonsettings.cpp @@ -43,6 +43,7 @@ const QString VCommonSettings::SettingPathsIndividualMeasurements = QStringLiteral("paths/individual_measurements"); const QString VCommonSettings::SettingPathsStandardMeasurements = QStringLiteral("paths/standard_measurements"); +const QString VCommonSettings::SettingPathsTemplates = QStringLiteral("paths/templates"); const QString VCommonSettings::SettingConfigurationOsSeparator = QStringLiteral("configuration/osSeparator"); const QString VCommonSettings::SettingConfigurationAutosaveState = QStringLiteral("configuration/autosave/state"); @@ -96,6 +97,63 @@ void VCommonSettings::SetPathStandardMeasurements(const QString &value) commonSettings.setValue(SettingPathsStandardMeasurements, value); } + +//--------------------------------------------------------------------------------------------------------------------- +QString VCommonSettings::GetPathTemplate() const +{ + QSettings settings(commonSettings.format(), commonSettings.scope(), commonSettings.organizationName()); + return settings.value(SettingPathsTemplates, TemplatesPath()).toString(); +} + +//--------------------------------------------------------------------------------------------------------------------- +void VCommonSettings::SetPathTemplate(const QString &value) +{ + commonSettings.setValue(SettingPathsTemplates, value); +} + +//--------------------------------------------------------------------------------------------------------------------- +QString VCommonSettings::TemplatesPath() const +{ + const QString stPath = QStringLiteral("/tables/templates"); + const QString unixFullPath = QStringLiteral("/usr/share/valentina/tables/templates"); +#ifdef Q_OS_WIN + return QApplication::applicationDirPath() + stPath; +#elif defined(Q_OS_MAC) + QDir dirBundle(QApplication::applicationDirPath() + QStringLiteral("/../Resources") + stPath); + if (dirBundle.exists()) + { + return dirBundle.absolutePath(); + } + else + { + QDir dir(QApplication::applicationDirPath() + stPath); + if (dir.exists()) + { + return dir.absolutePath(); + } + else + { + return unixFullPath; + } + } +#else // Unix + #ifdef QT_DEBUG + Q_UNUSED(unixFullPath); + return QApplication::applicationDirPath() + stPath; + #else + QDir dir(QApplication::applicationDirPath() + stPath); + if (dir.exists()) + { + return dir.absolutePath(); + } + else + { + return unixFullPath; + } + #endif +#endif +} + //--------------------------------------------------------------------------------------------------------------------- bool VCommonSettings::GetOsSeparator() const { diff --git a/src/libs/vmisc/vcommonsettings.h b/src/libs/vmisc/vcommonsettings.h index d226f3dc2..5f4cdfda9 100644 --- a/src/libs/vmisc/vcommonsettings.h +++ b/src/libs/vmisc/vcommonsettings.h @@ -40,6 +40,7 @@ public: QObject *parent = 0); virtual QString StandardTablesPath()const=0 ; + QString TemplatesPath() const; QString GetPathIndividualMeasurements() const; void SetPathIndividualMeasurements(const QString &value); @@ -47,6 +48,9 @@ public: QString GetPathStandardMeasurements() const; void SetPathStandardMeasurements(const QString &value); + QString GetPathTemplate() const; + void SetPathTemplate(const QString &value); + bool GetOsSeparator() const; void SetOsSeparator(const bool &value); @@ -102,6 +106,7 @@ private: static const QString SettingPathsIndividualMeasurements; static const QString SettingPathsStandardMeasurements; + static const QString SettingPathsTemplates; static const QString SettingConfigurationOsSeparator; static const QString SettingConfigurationAutosaveState; diff --git a/src/libs/vmisc/vtapesettings.cpp b/src/libs/vmisc/vtapesettings.cpp index f713082d9..cc796986a 100644 --- a/src/libs/vmisc/vtapesettings.cpp +++ b/src/libs/vmisc/vtapesettings.cpp @@ -31,7 +31,6 @@ #include #include -const QString VTapeSettings::SettingPathsTemplates = QStringLiteral("paths/templates"); const QString VTapeSettings::SettingDataBaseGeometry = QStringLiteral("database/geometry"); //--------------------------------------------------------------------------------------------------------------------- @@ -110,61 +109,6 @@ QString VTapeSettings::StandardTablesPath() const #endif } -//--------------------------------------------------------------------------------------------------------------------- -QString VTapeSettings::TemplatesPath() const -{ - const QString stPath = QStringLiteral("/tables/templates"); - const QString unixFullPath = QStringLiteral("/usr/share/valentina/tables/templates"); -#ifdef Q_OS_WIN - return QApplication::applicationDirPath() + stPath; -#elif defined(Q_OS_MAC) - QDir dirBundle(QApplication::applicationDirPath() + QStringLiteral("/../Resources") + stPath); - if (dirBundle.exists()) - { - return dirBundle.absolutePath(); - } - else - { - QDir dir(QApplication::applicationDirPath() + stPath); - if (dir.exists()) - { - return dir.absolutePath(); - } - else - { - return unixFullPath; - } - } -#else // Unix - #ifdef QT_DEBUG - Q_UNUSED(unixFullPath); - return QApplication::applicationDirPath() + stPath; - #else - QDir dir(QApplication::applicationDirPath() + stPath); - if (dir.exists()) - { - return dir.absolutePath(); - } - else - { - return unixFullPath; - } - #endif -#endif -} - -//--------------------------------------------------------------------------------------------------------------------- -QString VTapeSettings::GetPathTemplate() const -{ - return value(SettingPathsTemplates, TemplatesPath()).toString(); -} - -//--------------------------------------------------------------------------------------------------------------------- -void VTapeSettings::SetPathTemplate(const QString &value) -{ - setValue(SettingPathsTemplates, value); -} - //--------------------------------------------------------------------------------------------------------------------- QByteArray VTapeSettings::GetDataBaseGeometry() const { diff --git a/src/libs/vmisc/vtapesettings.h b/src/libs/vmisc/vtapesettings.h index 2bb56b1c2..f13e8f82a 100644 --- a/src/libs/vmisc/vtapesettings.h +++ b/src/libs/vmisc/vtapesettings.h @@ -39,10 +39,6 @@ public: QObject *parent = 0); virtual QString StandardTablesPath()const Q_DECL_OVERRIDE; - QString TemplatesPath() const; - - QString GetPathTemplate() const; - void SetPathTemplate(const QString &value); QByteArray GetDataBaseGeometry() const; void SetDataBaseGeometry(const QByteArray &value); @@ -50,7 +46,6 @@ public: private: Q_DISABLE_COPY(VTapeSettings) - static const QString SettingPathsTemplates; static const QString SettingDataBaseGeometry; }; From d146d381e87bb1bed7945112549989b20484a45e Mon Sep 17 00:00:00 2001 From: Valentina Zhuravska Date: Sun, 18 Oct 2015 14:51:14 +0300 Subject: [PATCH 3/5] Save valentina.exe Path Preferences to a file accessible by tape.exe without commonSettings --HG-- branch : feature --- src/libs/vmisc/vcommonsettings.cpp | 17 ++++++++++------- src/libs/vmisc/vcommonsettings.h | 2 -- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/libs/vmisc/vcommonsettings.cpp b/src/libs/vmisc/vcommonsettings.cpp index 9845f75c7..97bc09826 100644 --- a/src/libs/vmisc/vcommonsettings.cpp +++ b/src/libs/vmisc/vcommonsettings.cpp @@ -68,47 +68,50 @@ const QString VCommonSettings::SettingGeneralToolbarsState = QString //--------------------------------------------------------------------------------------------------------------------- VCommonSettings::VCommonSettings(Format format, Scope scope, const QString &organization, const QString &application, QObject *parent) - :QSettings(format, scope, organization, application, parent), commonSettings(format, scope, organization) + :QSettings(format, scope, organization, application, parent) {} //--------------------------------------------------------------------------------------------------------------------- QString VCommonSettings::GetPathIndividualMeasurements() const { - QSettings settings(commonSettings.format(), commonSettings.scope(), commonSettings.organizationName()); + QSettings settings(this->format(), this->scope(), this->organizationName()); return settings.value(SettingPathsIndividualMeasurements, QDir::homePath()).toString(); } //--------------------------------------------------------------------------------------------------------------------- void VCommonSettings::SetPathIndividualMeasurements(const QString &value) { - commonSettings.setValue(SettingPathsIndividualMeasurements, value); + QSettings settings(this->format(), this->scope(), this->organizationName()); + settings.setValue(SettingPathsIndividualMeasurements, value); } //--------------------------------------------------------------------------------------------------------------------- QString VCommonSettings::GetPathStandardMeasurements() const { - QSettings settings(commonSettings.format(), commonSettings.scope(), commonSettings.organizationName()); + QSettings settings(this->format(), this->scope(), this->organizationName()); return settings.value(SettingPathsStandardMeasurements, StandardTablesPath()).toString(); } //--------------------------------------------------------------------------------------------------------------------- void VCommonSettings::SetPathStandardMeasurements(const QString &value) { - commonSettings.setValue(SettingPathsStandardMeasurements, value); + QSettings settings(this->format(), this->scope(), this->organizationName()); + settings.setValue(SettingPathsStandardMeasurements, value); } //--------------------------------------------------------------------------------------------------------------------- QString VCommonSettings::GetPathTemplate() const { - QSettings settings(commonSettings.format(), commonSettings.scope(), commonSettings.organizationName()); + QSettings settings(this->format(), this->scope(), this->organizationName()); return settings.value(SettingPathsTemplates, TemplatesPath()).toString(); } //--------------------------------------------------------------------------------------------------------------------- void VCommonSettings::SetPathTemplate(const QString &value) { - commonSettings.setValue(SettingPathsTemplates, value); + QSettings settings(this->format(), this->scope(), this->organizationName()); + settings.setValue(SettingPathsTemplates, value); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vmisc/vcommonsettings.h b/src/libs/vmisc/vcommonsettings.h index 5f4cdfda9..99ec159ad 100644 --- a/src/libs/vmisc/vcommonsettings.h +++ b/src/libs/vmisc/vcommonsettings.h @@ -102,8 +102,6 @@ public: private: Q_DISABLE_COPY(VCommonSettings) - QSettings commonSettings; - static const QString SettingPathsIndividualMeasurements; static const QString SettingPathsStandardMeasurements; static const QString SettingPathsTemplates; From fd125240114e52d207cc412876410e3cb8f0e796 Mon Sep 17 00:00:00 2001 From: Valentina Zhuravska Date: Sun, 18 Oct 2015 15:38:05 +0300 Subject: [PATCH 4/5] Fixed synchronization --HG-- branch : feature --- src/libs/vmisc/vcommonsettings.cpp | 3 +++ src/libs/vmisc/vsettings.cpp | 14 ++++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/libs/vmisc/vcommonsettings.cpp b/src/libs/vmisc/vcommonsettings.cpp index 97bc09826..0a1540184 100644 --- a/src/libs/vmisc/vcommonsettings.cpp +++ b/src/libs/vmisc/vcommonsettings.cpp @@ -83,6 +83,7 @@ void VCommonSettings::SetPathIndividualMeasurements(const QString &value) { QSettings settings(this->format(), this->scope(), this->organizationName()); settings.setValue(SettingPathsIndividualMeasurements, value); + settings.sync(); } //--------------------------------------------------------------------------------------------------------------------- @@ -97,6 +98,7 @@ void VCommonSettings::SetPathStandardMeasurements(const QString &value) { QSettings settings(this->format(), this->scope(), this->organizationName()); settings.setValue(SettingPathsStandardMeasurements, value); + settings.sync(); } @@ -112,6 +114,7 @@ void VCommonSettings::SetPathTemplate(const QString &value) { QSettings settings(this->format(), this->scope(), this->organizationName()); settings.setValue(SettingPathsTemplates, value); + settings.sync(); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vmisc/vsettings.cpp b/src/libs/vmisc/vsettings.cpp index 04c76151f..d16c7342a 100644 --- a/src/libs/vmisc/vsettings.cpp +++ b/src/libs/vmisc/vsettings.cpp @@ -91,25 +91,31 @@ void VSettings::SetLabelLanguage(const QString &value) //--------------------------------------------------------------------------------------------------------------------- QString VSettings::GetPathPattern() const { - return value(SettingPathsPattern, QDir::homePath()).toString(); + QSettings settings(this->format(), this->scope(), this->organizationName()); + return settings.value(SettingPathsPattern, QDir::homePath()).toString(); } //--------------------------------------------------------------------------------------------------------------------- void VSettings::SetPathPattern(const QString &value) { - setValue(SettingPathsPattern, value); + QSettings settings(this->format(), this->scope(), this->organizationName()); + settings.setValue(SettingPathsPattern, value); + settings.sync(); } //--------------------------------------------------------------------------------------------------------------------- QString VSettings::GetPathLayout() const { - return value(SettingPathsLayout, QDir::homePath()).toString(); + QSettings settings(this->format(), this->scope(), this->organizationName()); + return settings.value(SettingPathsLayout, QDir::homePath()).toString(); } //--------------------------------------------------------------------------------------------------------------------- void VSettings::SetPathLayout(const QString &value) { - setValue(SettingPathsLayout, value); + QSettings settings(this->format(), this->scope(), this->organizationName()); + settings.setValue(SettingPathsLayout, value); + settings.sync(); } //--------------------------------------------------------------------------------------------------------------------- From 251cd944078d45f200c16b3c47f66e1a9fa1eb99 Mon Sep 17 00:00:00 2001 From: Valentina Zhuravska Date: Sun, 18 Oct 2015 16:13:51 +0300 Subject: [PATCH 5/5] Fixed synchronization (correct path to Valentina settings) --HG-- branch : feature --- src/libs/vmisc/vsettings.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libs/vmisc/vsettings.cpp b/src/libs/vmisc/vsettings.cpp index d16c7342a..e61211a8f 100644 --- a/src/libs/vmisc/vsettings.cpp +++ b/src/libs/vmisc/vsettings.cpp @@ -98,7 +98,7 @@ QString VSettings::GetPathPattern() const //--------------------------------------------------------------------------------------------------------------------- void VSettings::SetPathPattern(const QString &value) { - QSettings settings(this->format(), this->scope(), this->organizationName()); + QSettings settings(this->format(), this->scope(), this->organizationName(), this->applicationName()); settings.setValue(SettingPathsPattern, value); settings.sync(); } @@ -106,14 +106,14 @@ void VSettings::SetPathPattern(const QString &value) //--------------------------------------------------------------------------------------------------------------------- QString VSettings::GetPathLayout() const { - QSettings settings(this->format(), this->scope(), this->organizationName()); + QSettings settings(this->format(), this->scope(), this->organizationName(), this->applicationName()); return settings.value(SettingPathsLayout, QDir::homePath()).toString(); } //--------------------------------------------------------------------------------------------------------------------- void VSettings::SetPathLayout(const QString &value) { - QSettings settings(this->format(), this->scope(), this->organizationName()); + QSettings settings(this->format(), this->scope(), this->organizationName(), this->applicationName()); settings.setValue(SettingPathsLayout, value); settings.sync(); }