~ubuntu-branches/ubuntu/quantal/lightdm-kde/quantal

« back to all changes in this revision

Viewing changes to kcm/coreconfig.cpp

  • Committer: Package Import Robot
  • Author(s): Jonathan Riddell
  • Date: 2012-04-18 15:20:54 UTC
  • mfrom: (1.1.1)
  • Revision ID: package-import@ubuntu.com-20120418152054-ahcwjazzqvda1u5n
Tags: 0.1.0-0ubuntu1
New upstream release

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
*/
19
19
#include "coreconfig.h"
20
20
#include "ui_coreconfig.h"
 
21
#include "extrarowproxymodel.h"
21
22
 
22
23
#include "config.h"
23
24
 
29
30
#include <KConfigGroup>
30
31
#include <KDebug>
31
32
 
 
33
static const char* GUEST_NAME = "*guest";
 
34
 
32
35
inline QVariant currentItemData(QComboBox* combo, int role)
33
36
{
34
37
    return combo->itemData(combo->currentIndex(), role);
50
53
{
51
54
    ui->setupUi(this);
52
55
 
 
56
    // Hide for now: lightdm does not support those yet :/
 
57
    ui->autoLoginSessionLabel->hide();
 
58
    ui->autoLoginSession->hide();
 
59
    ui->autoLoginTimeoutLabel->hide();
 
60
    ui->autoLoginTimeout->hide();
 
61
 
53
62
    // Hide for now: implementation is not complete
54
63
    ui->serverWidget->hide();
55
64
 
56
 
    ui->autoLoginUser->setModel(new QLightDM::UsersModel(this));
 
65
    ExtraRowProxyModel* usersModel = new ExtraRowProxyModel(this);
 
66
    usersModel->setSourceModel(new QLightDM::UsersModel(this));
 
67
    int guestId = usersModel->appendRow();
 
68
    usersModel->setRowText(guestId, 0, i18n("Guest"));
 
69
    usersModel->setRowData(guestId, 0, GUEST_NAME, QLightDM::UsersModel::NameRole);
 
70
    ui->autoLoginUser->setModel(usersModel);
 
71
 
57
72
    ui->autoLoginSession->setModel(new QLightDM::SessionsModel(this));
58
73
 
59
74
    loadFromConfig();
76
91
{
77
92
    KConfig config((LIGHTDM_CONFIG_DIR "/lightdm.conf"));
78
93
 
79
 
    ui->allowGuest->setChecked(config.group("SeatDefaults").readEntry("allow-guest", true));
 
94
    KConfigGroup seatDefaultsGroup = config.group("SeatDefaults");
 
95
    ui->allowGuest->setChecked(seatDefaultsGroup.readEntry("allow-guest", true));
80
96
 
81
 
    KConfigGroup lightdmGroup = config.group("LightDM");
82
 
    QString user = lightdmGroup.readEntry("autologin-user");
 
97
    QString user = seatDefaultsGroup.readEntry("autologin-user");
 
98
    if (user.isEmpty() && seatDefaultsGroup.readEntry("autologin-guest", false)) {
 
99
        // from user (string), guest (bool) to combobox user
 
100
        user = GUEST_NAME;
 
101
    }
83
102
    if (!user.isEmpty()) {
84
103
        setCurrentItemFromData(ui->autoLoginUser, QLightDM::UsersModel::NameRole, user);
85
104
    }
86
105
    ui->autoLogin->setChecked(!user.isEmpty());
87
106
 
88
 
    QString session = lightdmGroup.readEntry("autologin-session");
 
107
    QString session = seatDefaultsGroup.readEntry("autologin-session");
89
108
    if (!session.isEmpty()) {
90
109
        setCurrentItemFromData(ui->autoLoginSession, QLightDM::SessionsModel::IdRole, session);
91
110
    }
92
 
    ui->autoLoginTimeout->setValue(lightdmGroup.readEntry("autologin-user-timeout", 0) / 60);
 
111
    ui->autoLoginTimeout->setValue(seatDefaultsGroup.readEntry("autologin-user-timeout", 0) / 60);
93
112
 
94
113
    ui->enableXdmcp->setChecked(config.group("XDMCPServer").readEntry("enabled", false));
95
114
    ui->enableVnc->setChecked(config.group("VNCServer").readEntry("enabled", false));
98
117
QVariantMap CoreConfig::save()
99
118
{
100
119
    QVariantMap args;
101
 
    args["core/LightDM/autologin-user"] = ui->autoLogin->isChecked()
102
 
        ? currentItemData(ui->autoLoginUser, QLightDM::UsersModel::NameRole)
103
 
        : QString();
104
 
    args["core/LightDM/autologin-session"] = currentItemData(ui->autoLoginSession, QLightDM::SessionsModel::IdRole);
105
 
    args["core/LightDM/autologin-user-timeout"] = ui->autoLoginTimeout->value() * 60;
 
120
    if (ui->autoLogin->isChecked()) {
 
121
        // from combobox user to user (string), guest (bool)
 
122
        QString user = currentItemData(ui->autoLoginUser, QLightDM::UsersModel::NameRole).toString();
 
123
        bool guest;
 
124
        if (user == GUEST_NAME) {
 
125
            guest = true;
 
126
            user = QString();
 
127
        } else {
 
128
            guest = false;
 
129
        }
 
130
        args["core/SeatDefaults/autologin-user"] = user;
 
131
        args["core/SeatDefaults/autologin-guest"] = guest;
 
132
        // If LightDM gains support for these settings before us, we should not overwrite them
 
133
        //args["core/SeatDefaults/autologin-session"] = currentItemData(ui->autoLoginSession, QLightDM::SessionsModel::IdRole);
 
134
        //args["core/SeatDefaults/autologin-user-timeout"] = ui->autoLoginTimeout->value() * 60;
 
135
    } else {
 
136
        args["core/SeatDefaults/autologin-user"] = QString();
 
137
        args["core/SeatDefaults/autologin-guest"] = false;
 
138
    }
106
139
    args["core/SeatDefaults/allow-guest"] = ui->allowGuest->isChecked();
107
140
    args["core/XDMCPServer/enabled"] = ui->enableXdmcp->isChecked();
108
141
    args["core/VNCServer/enabled"] = ui->enableVnc->isChecked();