ssu
ssufeaturemanager.cpp
Go to the documentation of this file.
1 
8 #include <QStringList>
9 #include <QRegExp>
10 #include <QDirIterator>
11 
12 #include "ssudeviceinfo.h"
13 #include "ssufeaturemanager.h"
14 #include "ssucoreconfig_p.h"
15 #include "ssulog_p.h"
16 #include "ssuvariables_p.h"
17 #include "ssu.h"
18 
19 #include "../constants.h"
20 
21 SsuFeatureManager::SsuFeatureManager()
22  : QObject()
23 {
25 }
26 
27 
28 // @TODO - allow enabling/disabling features
29 // - export feature file for mic through ssu-ks
30 // - add feature header in ssu-ks
31 //
32 // all features have a list of repositories in the repos key
33 // if there are enabled/disabled features, check the repos keys from all enabled features
34 // and only enable the repositories from those
35 QStringList SsuFeatureManager::repos(bool rndRepo, int filter)
36 {
37  QStringList r;
38 
39  // @TODO features currently can't be blacklisted, but just ignoring user filter
40  // is still the best way atm
41  if (filter == Ssu::UserFilter)
42  return r;
43 
44  QString repoHeader = QString("repositories-%1/")
45  .arg(rndRepo ? "rnd" : "release");
46 
47  // take the global groups
48  featureSettings->beginGroup("repositories");
49  r.append(featureSettings->allKeys());
50  featureSettings->endGroup();
51 
52  // and override with rnd/release specific groups
53  featureSettings->beginGroup(repoHeader);
54  r.append(featureSettings->allKeys());
55  featureSettings->endGroup();
56 
57  r.removeDuplicates();
58  return r;
59 }
60 
61 QString SsuFeatureManager::url(const QString &repo, bool rndRepo)
62 {
63  QString repoHeader = QString("repositories-%1/")
64  .arg(rndRepo ? "rnd" : "release");
65 
66  if (featureSettings->contains(repoHeader + repo))
67  return featureSettings->value(repoHeader + repo).toString();
68  else if (featureSettings->contains("repositories/" + repo))
69  return featureSettings->value("repositories/" + repo).toString();
70 
71  return QString();
72 }
SsuSettings
Definition: ssusettings_p.h:30
ssuvariables_p.h
ssu.h
ssucoreconfig_p.h
SSU_FEATURE_CONFIGURATION_DIR
#define SSU_FEATURE_CONFIGURATION_DIR
Path to the main ssu configuration file.
Definition: constants.h:34
ssufeaturemanager.h
ssudeviceinfo.h
ssulog_p.h
SSU_FEATURE_CONFIGURATION
#define SSU_FEATURE_CONFIGURATION
Path to the main ssu configuration file.
Definition: constants.h:31
Ssu::UserFilter
@ UserFilter
Only user configured repositories.
Definition: ssu.h:51