~aacid/unity8/moreAsyncAudioCard

« back to all changes in this revision

Viewing changes to plugins/IntegratedLightDM/liblightdm/UsersModelPrivate.cpp

  • Committer: Albert Astals Cid
  • Date: 2016-03-10 08:32:16 UTC
  • mfrom: (2136.2.83 unity8)
  • Revision ID: albert.astals@canonical.com-20160310083216-8nnplxl85qx13xd0
Merge

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
 
19
19
#include "UsersModelPrivate.h"
20
20
 
 
21
#include <glib.h>
21
22
#include <QDir>
22
23
#include <QSettings>
23
24
#include <QStringList>
28
29
UsersModelPrivate::UsersModelPrivate(UsersModel* parent)
29
30
  : q_ptr(parent)
30
31
{
31
 
    QSettings settings(QDir::homePath() + "/.unity8-greeter-demo", QSettings::NativeFormat);
32
 
    QStringList users = settings.value(QStringLiteral("users"), QStringList() << qgetenv("USER")).toStringList();
33
 
 
34
 
    entries.reserve(users.count());
35
 
    Q_FOREACH(const QString &user, users)
36
 
    {
37
 
        QString name = settings.value(user + "/name", user).toString();
38
 
        entries.append({user, name, 0, 0, false, false, 0, 0});
 
32
    QFileInfo demoFile(QDir::homePath() + "/.unity8-greeter-demo");
 
33
    QString currentUser = g_get_user_name();
 
34
 
 
35
    if (demoFile.exists()) {
 
36
        QSettings settings(demoFile.filePath(), QSettings::NativeFormat);
 
37
        QStringList users = settings.value(QStringLiteral("users"), QStringList() << currentUser).toStringList();
 
38
 
 
39
        entries.reserve(users.count());
 
40
        Q_FOREACH(const QString &user, users)
 
41
        {
 
42
            QString name = settings.value(user + "/name", user).toString();
 
43
            entries.append({user, name, 0, 0, false, false, 0, 0});
 
44
        }
 
45
    } else {
 
46
        // If we were using the actual liblightdm, we could just ask it
 
47
        // for the user's real name.  But we aren't.  We *should* ask
 
48
        // AccountsService for the real name, like liblightdm does internally,
 
49
        // but this is close enough since AS and passwd are always in sync.
 
50
        QString realName = QString::fromUtf8(g_get_real_name()); // gets name from passwd entry
 
51
        if (realName == QStringLiteral("Unknown")) { // glib doesn't translate this string
 
52
            realName.clear();
 
53
        }
 
54
        entries.append({currentUser, realName, 0, 0, false, false, 0, 0});
39
55
    }
40
56
}
41
57