File: globalconfig.cpp

package info (click to toggle)
ukui-settings-daemon 4.0.0.4-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 4,412 kB
  • sloc: cpp: 39,120; ansic: 3,240; xml: 1,570; sh: 88; makefile: 4
file content (90 lines) | stat: -rw-r--r-- 2,652 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
/* -*- Mode: C++; indent-tabs-mode: nil; tab-width: 4 -*-
 * -*- coding: utf-8 -*-
 *
 * Copyright (C) 2023 KylinSoft Co., Ltd.
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
#include "globalconfig.h"

GlobalConfig::GlobalConfig(QObject *parent):
    QObject(parent)
{

}

GlobalConfig::~GlobalConfig()
{

}

//__import__('gi.repository.GLib', globals(), locals(), ['Variant']).Variant("s","aaa")
bool GlobalConfig::setGlobalConf(QString schema, QString key, QDBusVariant value)
{
    QDir dirCheck;
    QString usdDir = QString("/etc/ukui");
    QString configDir = QString("/etc/ukui/usd");
    QString configFile = QString("/etc/ukui/usd/globalconf.ini");
    if (!dirCheck.exists(usdDir)) {
        dirCheck.mkdir(usdDir);

        QFile file(usdDir);
        file.setPermissions(QFileDevice::Permission(0x6666));
        file.close();
    }

    if (!dirCheck.exists(configDir)) {
        dirCheck.mkdir(configDir);
    }

    QFile file(configDir);
    file.setPermissions(QFileDevice::Permission(0x6666));
    file.close();

    QSettings *usdSettings = new QSettings(configFile, QSettings::IniFormat);
    usdSettings->beginGroup(schema);
    usdSettings->setValue(key, value.variant());
    usdSettings->endGroup();
    usdSettings->sync();
    usdSettings->deleteLater();

    QFile::setPermissions(configFile,QFileDevice::Permission(0x6666));

    return true;
}

bool GlobalConfig::setGlobalConf1(QString schema, QString key, QString value)
{
    return false;
}

QDBusVariant GlobalConfig::getGlobalConf(QString schema, QString key)
{
    QVariant value;
    QString configFile = QString("/etc/ukui/usd/globalconf.ini");
    QFile conf(configFile);
    if(!conf.exists()) {
        return QDBusVariant(0);
    }
    QSettings *usdSettings = new QSettings(configFile, QSettings::IniFormat);
    usdSettings->beginGroup(schema);
    value = usdSettings->value(key);
    if (!value.isValid()) {
        return QDBusVariant(0);
    }
    usdSettings->endGroup();
    usdSettings->sync();
    usdSettings->deleteLater();
    return (QDBusVariant)value;
}