mirror of
https://bitbucket.org/smil3y/kde-playground.git
synced 2025-02-23 10:22:50 +00:00
kgreeter: working state save/restore
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
parent
a21773f440
commit
fd940309d6
1 changed files with 25 additions and 0 deletions
|
@ -143,6 +143,22 @@ KGreeter::KGreeter(QWidget *parent)
|
|||
}
|
||||
}
|
||||
|
||||
QSettings kgreeterstate("lightdm-kgreeter-state");
|
||||
const QString lastuser = kgreeterstate.value("state/lastuser").toString();
|
||||
for (int i = 0; i < m_ui.usersbox->count(); i++) {
|
||||
if (m_ui.usersbox->itemText(i) == lastuser) {
|
||||
m_ui.usersbox->setCurrentIndex(i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
const QString lastsession = kgreeterstate.value("state/lastsession").toString();
|
||||
for (int i = 0; i < m_ui.sessionsbox->count(); i++) {
|
||||
if (m_ui.sessionsbox->itemData(i).toString() == lastsession) {
|
||||
m_ui.sessionsbox->setCurrentIndex(i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
m_ui.groupbox->setTitle(QString::fromUtf8(lightdm_get_hostname()));
|
||||
|
||||
m_ui.actionSuspend->setVisible(lightdm_get_can_suspend());
|
||||
|
@ -322,9 +338,18 @@ void KGreeter::slotLayout()
|
|||
void KGreeter::slotLogin()
|
||||
{
|
||||
const QByteArray kgreeterusername = getUser();
|
||||
const QByteArray kgreetersession = getSession();
|
||||
|
||||
// the trick is to save before lightdm_greeter_authenticate()
|
||||
{
|
||||
QSettings kgreeterstate("lightdm-kgreeter-state");
|
||||
kgreeterstate.setValue("state/lastsession", kgreetersession);
|
||||
kgreeterstate.setValue("state/lastuser", kgreeterusername);
|
||||
}
|
||||
|
||||
g_autoptr(GError) gliberror = NULL;
|
||||
lightdm_greeter_authenticate(m_ldmgreeter, kgreeterusername.constData(), &gliberror);
|
||||
|
||||
g_main_loop_run(glibloop);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue