File: settings.cpp

package info (click to toggle)
dde-store 1.2.5-2
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 724 kB
  • sloc: cpp: 2,048; makefile: 5
file content (97 lines) | stat: -rw-r--r-- 2,994 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#include "settings.h"
#include <QStandardPaths>
#include <QApplication>
#include <qsettingbackend.h>
#include <DSettingsOption>

settings *settings::currentInstance = nullptr;

settings *settings::instance()
{
    if (!currentInstance) {
        currentInstance = new settings;
    }
    return currentInstance;
}

settings::settings() : QObject(qApp)
{
    QString path = QString("%1/%2/%3/config.conf")
        .arg(QStandardPaths::writableLocation(QStandardPaths::ConfigLocation))
        .arg(qApp->organizationName())
        .arg(qApp->applicationName());

    Dtk::Core::QSettingBackend *backend = new QSettingBackend(path);
    appsettings = DSettings::fromJsonFile("://settings.json");
    appsettings->setBackend(backend);

    appsettings->option("basic.view.nonapps")->setData("items", QStringList({tr("\"System Updates\""), tr("Individual Packages")}));
    appsettings->option("basic.behaviour.updatetime")->setData("items", QStringList({tr("Hourly"), tr("Never")}));
}

int settings::maxItems()
{
    return appsettings->option("basic.view.maxitems")->value().toInt();
}

int settings::nonApps()
{
    return appsettings->option("basic.view.nonapps")->value().toInt();
}

bool settings::notifyInstall()
{
    return appsettings->option("basic.notifications.install")->value().toBool();
}

bool settings::notifyUninstall()
{
    return appsettings->option("basic.notifications.uninstall")->value().toBool();
}

bool settings::notifyAvailableUpdates()
{
    return appsettings->option("basic.notifications.availableupdates")->value().toBool();
}

bool settings::notifyFinishedUpdates()
{
    return appsettings->option("basic.notifications.finishedupdates")->value().toBool();
}

bool settings::tray()
{
    return appsettings->option("basic.behaviour.tray")->value().toBool();
}

bool settings::remembered()
{
    return appsettings->option("basic.behaviour.remember")->value().toBool();
}

int settings::updateTime()
{
    return appsettings->option("basic.behaviour.updatetime")->value().toInt();
}

void settings::setValue(QString key, QVariant value)
{
    appsettings->setOption(key, value);
    appsettings->sync();
}

void GenerateSettingTranslate()
{
    auto group_basicName = QObject::tr("Basic");
    auto group_basic_viewName = QObject::tr("View");
    auto group_basic_behaviourName = QObject::tr("Behaviour");
    auto group_basic_notificationsName = QObject::tr("Notifications");
    auto basic_view_nonapps = QObject::tr("Show non-app updates as");
    auto basic_view_maxitems = QObject::tr("Max apps per list");
    auto basic_behaviour_tray = QObject::tr("Minimize to tray on exit");
    auto basic_behaviour_updatetime = QObject::tr("Check for updates");
    auto basic_notifications_install = QObject::tr("App installed");
    auto basic_notifications_uninstall = QObject::tr("App uninstalled");
    auto basic_notifications_availableupdates = QObject::tr("Available updates");
    auto basic_notifications_finishedupdates = QObject::tr("Finished updates");
}