26#include "ssu_adaptor.h"
31#include <QDBusConnection>
33const char *Ssud::SERVICE_NAME =
"org.nemo.ssu";
34const char *Ssud::OBJECT_PATH =
"/org/nemo/ssu";
36Ssud::Ssud(QObject *parent)
39 qDBusRegisterMetaType<SsuRepo>();
40 qDBusRegisterMetaType<QList<SsuRepo>>();
41 QDBusConnection connection = QDBusConnection::systemBus();
42 if (!connection.registerObject(OBJECT_PATH,
this)) {
43 qFatal(
"Cannot register object at %s", OBJECT_PATH);
46 if (!connection.registerService(SERVICE_NAME)) {
47 qFatal(
"Cannot register D-Bus service at %s", SERVICE_NAME);
51 const int AUTOCLOSE_TIMEOUT_MS = 180 * 1000;
53 autoclose.setSingleShot(
true);
54 autoclose.setInterval(AUTOCLOSE_TIMEOUT_MS);
56 connect(&autoclose, SIGNAL(timeout()),
61 connect(&ssu, SIGNAL(done()),
62 this, SIGNAL(done()));
63 connect(&ssu, SIGNAL(credentialsChanged()),
64 this, SIGNAL(credentialsChanged()));
65 connect(&ssu, SIGNAL(registrationStatusChanged()),
66 this, SIGNAL(registrationStatusChanged()));
76QString Ssud::brand() {
81QString Ssud::deviceModel()
83 SsuDeviceInfo deviceInfo;
89QString Ssud::deviceFamily()
91 SsuDeviceInfo deviceInfo;
97QString Ssud::deviceUid()
99 SsuDeviceInfo deviceInfo;
105QString Ssud::deviceVariant()
107 SsuDeviceInfo deviceInfo;
113QString Ssud::displayName(
int type)
115 SsuDeviceInfo deviceInfo;
127QString Ssud::lastError()
130 return ssu.lastError();
135 QCoreApplication::quit();
138bool Ssud::isRegistered()
141 return ssu.isRegistered();
144void Ssud::registerDevice(
const QString &username,
const QString &password)
147 ssu.sendRegistration(username, password);
151void Ssud::unregisterDevice()
157QString Ssud::domain()
164int Ssud::deviceMode()
167 return ssu.deviceMode();
170void Ssud::setDeviceMode(
int mode)
175void Ssud::setDeviceMode(
int mode,
int editMode)
178 Ssu::DeviceModeFlags(mode),
182 SsuRepoManager repoManager;
187QString Ssud::flavour()
190 return ssu.flavour();
193void Ssud::setFlavour(
const QString &flavour)
195 ssu.setFlavour(flavour);
197 SsuRepoManager repoManager;
203QString Ssud::release(
bool rnd)
206 return ssu.release(rnd);
209void Ssud::setRelease(
const QString &release,
bool rnd)
211 ssu.setRelease(release, rnd);
213 SsuRepoManager repoManager;
218void Ssud::modifyRepo(
int action,
const QString &repo)
220 SsuRepoManager repoManager;
226 repoManager.
add(repo);
243void Ssud::addRepo(
const QString &repo,
const QString &url)
245 SsuRepoManager repoManager;
246 repoManager.
add(repo, url);
251void Ssud::updateRepos()
253 SsuRepoManager repoManager;
259QList<SsuRepo> Ssud::listRepos(
bool rnd)
261 QList<SsuRepo> reposList;
262 SsuRepoManager repoManager;
264 for (
const QString &repo : repoManager.
repos(rnd)) {
265 const QString repoUrl = ssu.repoUrl(repo, rnd);
269 ssuRepo.url = repoUrl;
271 reposList.append(ssuRepo);
277QStringList Ssud::listDomains()
280 return ssu.listDomains();
283void Ssud::setDomainConfig(
const QString &domain, QVariantMap config)
285 ssu.setDomainConfig(domain, config);
289QVariantMap Ssud::getDomainConfig(
const QString &domain)
292 return ssu.getDomainConfig(domain);
Q_INVOKABLE QString deviceUid()
Q_INVOKABLE QString deviceFamily()
Q_INVOKABLE QString deviceVariant(bool fallback=false)
Q_INVOKABLE QString displayName(int type)
Q_INVOKABLE QString deviceModel()
int remove(const QString &repo)
int add(const QString &repo, const QString &repoUrl=QString())
QStringList repos(int filter=Ssu::NoFilter|Ssu::UserBlacklist)
int enable(const QString &repo)
int disable(const QString &repo)
@ Replace
Replace the old value with the new one.