19 #include "AccountsService.h"
20 #include "AccountsServiceDBusAdaptor.h"
22 #include <QStringList>
24 AccountsService::AccountsService(QObject* parent)
26 m_service(new AccountsServiceDBusAdaptor(this)),
27 m_user(qgetenv(
"USER")),
29 m_statsWelcomeScreen(false)
31 connect(m_service, SIGNAL(propertiesChanged(
const QString &,
const QString &,
const QStringList &)),
32 this, SLOT(propertiesChanged(
const QString &,
const QString &,
const QStringList &)));
33 connect(m_service, SIGNAL(maybeChanged(
const QString &)),
34 this, SLOT(maybeChanged(
const QString &)));
37 QString AccountsService::user()
const
42 void AccountsService::setUser(
const QString &user)
48 updateBackgroundFile();
49 updateStatsWelcomeScreen();
52 bool AccountsService::demoEdges()
const
57 void AccountsService::setDemoEdges(
bool demoEdges)
59 m_demoEdges = demoEdges;
60 m_service->setUserProperty(m_user,
"com.canonical.unity.AccountsService",
"demo-edges", demoEdges);
63 QString AccountsService::backgroundFile()
const
65 return m_backgroundFile;
68 bool AccountsService::statsWelcomeScreen()
const
70 return m_statsWelcomeScreen;
73 void AccountsService::updateDemoEdges()
75 auto demoEdges = m_service->getUserProperty(m_user,
"com.canonical.unity.AccountsService",
"demo-edges").toBool();
76 if (m_demoEdges != demoEdges) {
77 m_demoEdges = demoEdges;
78 Q_EMIT demoEdgesChanged();
82 void AccountsService::updateBackgroundFile()
84 auto backgroundFile = m_service->getUserProperty(m_user,
"org.freedesktop.Accounts.User",
"BackgroundFile").toString();
85 if (m_backgroundFile != backgroundFile) {
86 m_backgroundFile = backgroundFile;
87 Q_EMIT backgroundFileChanged();
91 void AccountsService::updateStatsWelcomeScreen()
93 bool statsWelcomeScreen = m_service->getUserProperty(m_user,
"com.ubuntu.touch.AccountsService.SecurityPrivacy",
"StatsWelcomeScreen").toBool();
94 if (m_statsWelcomeScreen != statsWelcomeScreen) {
95 m_statsWelcomeScreen = statsWelcomeScreen;
96 Q_EMIT statsWelcomeScreenChanged();
100 void AccountsService::propertiesChanged(
const QString &user,
const QString &interface,
const QStringList &changed)
102 if (m_user != user) {
106 if (interface ==
"com.canonical.unity.AccountsService") {
107 if (changed.contains(
"demo-edges")) {
110 }
else if (interface ==
"com.ubuntu.touch.AccountsService.SecurityPrivacy") {
111 if (changed.contains(
"StatsWelcomeScreen")) {
112 updateStatsWelcomeScreen();
117 void AccountsService::maybeChanged(
const QString &user)
119 if (m_user != user) {
124 updateBackgroundFile();