@@ -30,6 +30,8 @@ AccountsBindings::AccountsBindings(QObject* parent)
30 this, SLOT(propertiesChanged(const QString &, const QString &, const QStringList &)));
30 this, SLOT(propertiesChanged(const QString &, const QString &, const QStringList &)));
31 connect(m_service, SIGNAL(maybeChanged(const QString &)),
31 connect(m_service, SIGNAL(maybeChanged(const QString &)),
32 this, SLOT(maybeChanged(const QString &)));
32 this, SLOT(maybeChanged(const QString &)));
34+ updateDemoEdgesForCurrentUser();
35void AccountsBindings::setUser(const QString &user)
37void AccountsBindings::setUser(const QString &user)
@@ -50,22 +52,15 @@ void AccountsBindings::setDemoEdges(bool demoEdges)
50 m_service->setUserProperty(m_user, "com.canonical.unity.AccountsService", "demo-edges", demoEdges);
52 m_service->setUserProperty(m_user, "com.canonical.unity.AccountsService", "demo-edges", demoEdges);
53−bool AccountsBindings::getDemoEdgesForUser(const QString &user)
55+bool AccountsBindings::getDemoEdgesForCurrentUser()
55− if (m_user == user) {
57+ return m_demoEdgesForCurrentUser;
56− return getDemoEdges();
58− return m_service->getUserProperty(user, "com.canonical.unity.AccountsService", "demo-edges").toBool();
62−void AccountsBindings::setDemoEdgesForUser(const QString &user, bool demoEdges)
60+void AccountsBindings::setDemoEdgesForCurrentUser(bool demoEdgesForCurrentUser)
64− if (m_user == user) {
62+ m_demoEdgesForCurrentUser = demoEdgesForCurrentUser;
65− setDemoEdges(demoEdges);
67− m_service->setUserProperty(user, "com.canonical.unity.AccountsService", "demo-edges", demoEdges);
63+ m_service->setUserProperty(qgetenv("USER"), "com.canonical.unity.AccountsService", "demo-edges", demoEdgesForCurrentUser);
71QString AccountsBindings::getBackgroundFile()
66QString AccountsBindings::getBackgroundFile()
@@ -82,6 +77,15 @@ void AccountsBindings::updateDemoEdges()
80+void AccountsBindings::updateDemoEdgesForCurrentUser()
82+ auto demoEdgesForCurrentUser = m_service->getUserProperty(qgetenv("USER"), "com.canonical.unity.AccountsService", "demo-edges").toBool();
83+ if (m_demoEdgesForCurrentUser != demoEdgesForCurrentUser) {
84+ m_demoEdgesForCurrentUser = demoEdgesForCurrentUser;
85+ Q_EMIT demoEdgesForCurrentUserChanged();
85void AccountsBindings::updateBackgroundFile()
89void AccountsBindings::updateBackgroundFile()
87 auto backgroundFile = m_service->getUserProperty(m_user, "org.freedesktop.Accounts.User", "BackgroundFile").toString();
91 auto backgroundFile = m_service->getUserProperty(m_user, "org.freedesktop.Accounts.User", "BackgroundFile").toString();
@@ -93,23 +97,22 @@ void AccountsBindings::updateBackgroundFile()
94void AccountsBindings::propertiesChanged(const QString &user, const QString &interface, const QStringList &changed)
98void AccountsBindings::propertiesChanged(const QString &user, const QString &interface, const QStringList &changed)
96− if (m_user != user) {
100 if (interface == "com.canonical.unity.AccountsService") {
100 if (interface == "com.canonical.unity.AccountsService") {
101 if (changed.contains("demo-edges")) {
101 if (changed.contains("demo-edges")) {
102+ if (qgetenv("USER") == user) {
103+ updateDemoEdgesForCurrentUser();
105+ if (m_user != user) {
102− updateDemoEdges();
106+ updateDemoEdges();
107void AccountsBindings::maybeChanged(const QString &user)
112void AccountsBindings::maybeChanged(const QString &user)
109− if (m_user != user) {
114+ if (m_user == user) {
110− return;
115+ // Standard properties might have changed
116+ updateBackgroundFile();
113− // Standard properties might have changed
114− updateBackgroundFile();