~diegosarmentero/unity8/purchase-component

« back to all changes in this revision

Viewing changes to plugins/Unity/Indicators/indicator.cpp

Allow setting different indicator positions for different profiles.

Approved by PS Jenkins bot, Nick Dedekind.

Show diffs side-by-side

added added

removed removed

Lines of Context:
31
31
{
32
32
}
33
33
 
34
 
void Indicator::init(const QString& busName, const QSettings& settings)
 
34
void Indicator::init(const QString &profile, const QString& busName, const QSettings& settings)
35
35
{
36
36
    setId(settings.value("Indicator Service/Name").toString());
37
 
    setPosition(settings.value("Indicator Service/Position", QVariant::fromValue(0)).toInt());
 
37
 
 
38
    QVariant pos = settings.value(profile + "/Position");
 
39
    if (!pos.isValid())
 
40
        pos = settings.value("Indicator Service/Position", QVariant::fromValue(0));
 
41
    setPosition(pos.toInt());
38
42
 
39
43
    QString actionObjectPath = settings.value("Indicator Service/ObjectPath").toString();
40
 
 
41
 
    QVariantMap mapMenuObjectPaths;
42
 
    Q_FOREACH(const QString& childGroup, settings.childGroups())
43
 
    {
44
 
        if (childGroup == "Indicator Service")
45
 
            continue;
46
 
 
47
 
        QString menuPath = childGroup+"/ObjectPath";
48
 
        if (settings.contains(menuPath))
49
 
        {
50
 
            mapMenuObjectPaths[childGroup] = settings.value(menuPath).toString();
51
 
        }
52
 
    }
 
44
    QString menuObjectPath = settings.value(profile + "/ObjectPath").toString();
53
45
 
54
46
    QVariantMap properties;
55
47
    properties.clear();
56
48
    properties.insert("busType", 1);
57
49
    properties.insert("busName", busName);
58
50
    properties.insert("actionsObjectPath", actionObjectPath);
59
 
    properties.insert("menuObjectPaths", mapMenuObjectPaths);
 
51
    properties.insert("menuObjectPath", menuObjectPath);
60
52
    setIndicatorProperties(properties);
61
53
}
62
54