aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/coreSQLiteStudio/config_builder
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@ubuntu.com>2017-02-09 04:37:26 -0500
committerLibravatarUnit 193 <unit193@ubuntu.com>2017-02-09 04:37:26 -0500
commitc9d6debf9015b7853c3e061bbc64a555d85e2fcd (patch)
tree53341bc57ae9fbad2beb5b6c08d97a68bee0ec8e /SQLiteStudio3/coreSQLiteStudio/config_builder
parentd5caba2b1f36dc3b92fa705a06097d0597fa2ddd (diff)
parentd9aa870e5d509cc7309ab82dd102a937ab58613a (diff)
Merge tag 'upstream/3.1.1+dfsg1'
Upstream version 3.1.1+dfsg1 # gpg: Signature made Thu 09 Feb 2017 04:37:24 AM EST # gpg: using RSA key 5001E1B09AA3744B # gpg: issuer "unit193@ubuntu.com" # gpg: Good signature from "Unit 193 <unit193@ubuntu.com>" [unknown] # gpg: aka "Unit 193 <unit193@gmail.com>" [unknown] # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 8DB3 E586 865D 2B4A 2B18 5A5C 5001 E1B0 9AA3 744B
Diffstat (limited to 'SQLiteStudio3/coreSQLiteStudio/config_builder')
-rw-r--r--SQLiteStudio3/coreSQLiteStudio/config_builder/cfgcategory.cpp5
-rw-r--r--SQLiteStudio3/coreSQLiteStudio/config_builder/cfgcategory.h1
-rw-r--r--SQLiteStudio3/coreSQLiteStudio/config_builder/cfgmain.cpp52
-rw-r--r--SQLiteStudio3/coreSQLiteStudio/config_builder/cfgmain.h6
4 files changed, 64 insertions, 0 deletions
diff --git a/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgcategory.cpp b/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgcategory.cpp
index 1a63776..a5c661e 100644
--- a/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgcategory.cpp
+++ b/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgcategory.cpp
@@ -24,6 +24,11 @@ CfgCategory::CfgCategory(const QString &name, const QString &title) :
lastCreatedCfgMain->childs[name] = this;
}
+CfgEntry *CfgCategory::getEntryByName(const QString& name)
+{
+ return childs[name];
+}
+
QString CfgCategory::toString() const
{
return name;
diff --git a/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgcategory.h b/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgcategory.h
index 45197d6..4b4aaac 100644
--- a/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgcategory.h
+++ b/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgcategory.h
@@ -20,6 +20,7 @@ class API_EXPORT CfgCategory : public QObject
CfgCategory(const CfgCategory& other);
CfgCategory(const QString& name, const QString& title);
+ CfgEntry* getEntryByName(const QString &name);
QString toString() const;
operator QString() const;
QHash<QString,CfgEntry*>& getEntries();
diff --git a/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgmain.cpp b/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgmain.cpp
index 480b4cc..fb7d199 100644
--- a/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgmain.cpp
+++ b/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgmain.cpp
@@ -1,6 +1,7 @@
#include "cfgmain.h"
#include "config_builder/cfgcategory.h"
#include "config_builder/cfgentry.h"
+#include "common/global.h"
CfgMain* lastCreatedCfgMain = nullptr;
QList<CfgMain*>* CfgMain::instances = nullptr;
@@ -50,6 +51,36 @@ QList<CfgMain*> CfgMain::getPersistableInstances()
return list;
}
+CfgCategory* CfgMain::getCategoryByName(const QString &name)
+{
+ for (CfgMain* cfg : getInstances())
+ {
+ if (!cfg->childs.contains(name))
+ continue;
+
+ return cfg->childs[name];
+ }
+ return nullptr;
+}
+
+CfgEntry *CfgMain::getEntryByName(const QString &categoryName, const QString &name)
+{
+ CfgCategory* cat = getCategoryByName(categoryName);
+ if (!cat)
+ return nullptr;
+
+ return cat->getEntryByName(name);
+}
+
+CfgEntry *CfgMain::getEntryByPath(const QString &path)
+{
+ QStringList sp = path.split(".");
+ if (sp.size() != 2)
+ return nullptr;
+
+ return getEntryByName(sp[0], sp[1]);
+}
+
QHash<QString, CfgCategory *> &CfgMain::getCategories()
{
return childs;
@@ -101,6 +132,27 @@ void CfgMain::rollback()
restore();
}
+QStringList CfgMain::getPaths() const
+{
+ static_qstring(tpl, "%1.%2");
+ QStringList paths;
+ for (CfgCategory* cat : childs.values())
+ {
+ for (const QString& entry : cat->getEntries().keys())
+ paths << tpl.arg(cat->toString(), entry);
+ }
+ return paths;
+}
+
+QList<CfgEntry *> CfgMain::getEntries() const
+{
+ QList<CfgEntry*> entries;
+ for (CfgCategory* cat : childs.values())
+ entries += cat->getEntries().values();
+
+ return entries;
+}
+
bool CfgMain::isPersistable() const
{
return persistable;
diff --git a/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgmain.h b/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgmain.h
index d42f03b..ea11c6d 100644
--- a/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgmain.h
+++ b/SQLiteStudio3/coreSQLiteStudio/config_builder/cfgmain.h
@@ -8,6 +8,7 @@
#include <QString>
class CfgCategory;
+class CfgEntry;
class API_EXPORT CfgMain
{
@@ -20,6 +21,9 @@ class API_EXPORT CfgMain
static void staticInit();
static QList<CfgMain*> getInstances();
static QList<CfgMain*> getPersistableInstances();
+ static CfgCategory* getCategoryByName(const QString& name);
+ static CfgEntry* getEntryByName(const QString& categoryName, const QString& name);
+ static CfgEntry* getEntryByPath(const QString& path);
QHash<QString,CfgCategory*>& getCategories();
void translateTitle();
@@ -30,6 +34,8 @@ class API_EXPORT CfgMain
void begin();
void commit();
void rollback();
+ QStringList getPaths() const;
+ QList<CfgEntry*> getEntries() const;
bool isPersistable() const;
QString getName() const;