summaryrefslogtreecommitdiffstats
path: root/helper.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'helper.cpp')
-rw-r--r--helper.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/helper.cpp b/helper.cpp
index d03c383..7b49695 100644
--- a/helper.cpp
+++ b/helper.cpp
@@ -11,6 +11,8 @@
#include <QFile>
#include <QSettings>
#include <QCryptographicHash>
+#include <QHash>
+#include <QSettings>
#include "helper.h"
@@ -117,6 +119,29 @@ namespace Helper {
return retval;
}
+ QPair<QString, QStringList> programData(const QString &prefix, const QString &preferred){
+ QSettings s;
+ QString section = QString("programs_%1").arg(prefix);
+ QHash<QString, QVariant> data = s.value(QString("%1/data").arg(section)).toHash();
+ if(data.isEmpty()){
+ return QPair<QString, QStringList>();
+ }
+ QHash<QString, QVariant> programData;
+ if(!preferred.isEmpty()){
+ if(data.keys().contains(preferred)){
+ programData = data.value(preferred).toHash();
+ return qMakePair(programData.value("path").toString(), programData.value("args").toStringList());
+ }
+ return QPair<QString, QStringList>();
+ }
+ QString defaultProg = s.value(QString("%1/default").arg(section)).toString();
+ if(defaultProg.isEmpty()){
+ return QPair<QString, QStringList>();
+ }
+ programData = data.value(defaultProg).toHash();
+ return qMakePair(programData.value("path").toString(), programData.value("args").toStringList());
+ }
+
bool StringListContains::operator()(const QString s, const QString &part) const {
return s.contains(part);
}