diff options
Diffstat (limited to 'SQLiteStudio3/coreSQLiteStudio/config_builder')
6 files changed, 26 insertions, 0 deletions
diff --git a/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgcategory.cpp b/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgcategory.cpp index a79e08a..1a63776 100644 --- a/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgcategory.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgcategory.cpp @@ -34,6 +34,16 @@ QHash<QString, CfgEntry *> &CfgCategory::getEntries() return childs; } +void CfgCategory::translateTitle() +{ + // This needs to be "QObject::tr" and not just "tr", because this guarantees proper message context for retranslating + // titles for objects initialized in global scope (as CfgCategories are). + title = QObject::tr(title.toUtf8().constData()); + for (CfgEntry* entry : childs) + entry->translateTitle(); + +} + void CfgCategory::reset() { for (CfgEntry* entry : childs) diff --git a/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgcategory.h b/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgcategory.h index 2a6ccaf..45197d6 100644 --- a/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgcategory.h +++ b/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgcategory.h @@ -23,6 +23,7 @@ class API_EXPORT CfgCategory : public QObject QString toString() const; operator QString() const; QHash<QString,CfgEntry*>& getEntries(); + void translateTitle(); void reset(); void savepoint(bool transaction = false); void restore(); diff --git a/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgentry.cpp b/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgentry.cpp index 6a5f6a4..9a91ea8 100644 --- a/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgentry.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgentry.cpp @@ -99,6 +99,12 @@ QString CfgEntry::getTitle() const return title; } +void CfgEntry::translateTitle() +{ + // This needs to be "QObject::tr" and not just "tr". See CfgCategory::translateTitle() for details. + title = QObject::tr(title.toUtf8().constData()); +} + void CfgEntry::reset() { set(getDefultValue()); diff --git a/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgentry.h b/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgentry.h index 92b2a5f..4c1bbb0 100644 --- a/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgentry.h +++ b/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgentry.h @@ -29,6 +29,7 @@ class API_EXPORT CfgEntry : public QObject void defineDefaultValueFunction(DefaultValueProviderFunc func); QString getFullKey() const; QString getTitle() const; + void translateTitle(); void reset(); bool isPersistable() const; bool isPersisted() const; diff --git a/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgmain.cpp b/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgmain.cpp index 72fc0d0..480b4cc 100644 --- a/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgmain.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgmain.cpp @@ -55,6 +55,13 @@ QHash<QString, CfgCategory *> &CfgMain::getCategories() return childs; } +void CfgMain::translateTitle() +{ + title = QObject::tr(title.toUtf8().constData()); + for (CfgCategory* ctg : childs) + ctg->translateTitle(); +} + void CfgMain::reset() { for (CfgCategory* ctg : childs) diff --git a/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgmain.h b/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgmain.h index bc9490d..d42f03b 100644 --- a/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgmain.h +++ b/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgmain.h @@ -22,6 +22,7 @@ class API_EXPORT CfgMain static QList<CfgMain*> getPersistableInstances(); QHash<QString,CfgCategory*>& getCategories(); + void translateTitle(); void reset(); void savepoint(bool transaction = false); void restore(); |
