feat: last user
This commit is contained in:
parent
ab2ae6d31e
commit
bbaa1935f4
2 changed files with 25 additions and 5 deletions
|
|
@ -17,6 +17,7 @@ pub const CONFIG_VERSION: u64 = 1;
|
|||
pub struct Config {
|
||||
#[serde(skip_serializing_if = "HashMap::is_empty")]
|
||||
pub users: HashMap<NonZeroU32, user::UserState>,
|
||||
pub last_user: Option<NonZeroU32>,
|
||||
}
|
||||
|
||||
impl Config {
|
||||
|
|
|
|||
|
|
@ -891,11 +891,22 @@ impl cosmic::Application for App {
|
|||
.collect();
|
||||
usernames.sort_by(|a, b| a.1.cmp(&b.1));
|
||||
|
||||
//TODO: use last selected user
|
||||
let (username, uid) = flags
|
||||
let last_user = flags.greeter_config.last_user.as_ref();
|
||||
|
||||
let (username, uid) = last_user
|
||||
.and_then(|last_user| {
|
||||
flags
|
||||
.user_datas
|
||||
.iter()
|
||||
.find(|d| d.uid == last_user.get())
|
||||
.map(|x| (x.name.clone(), NonZeroU32::new(x.uid)))
|
||||
})
|
||||
.or_else(|| {
|
||||
flags
|
||||
.user_datas
|
||||
.first()
|
||||
.map(|x| (x.name.clone(), NonZeroU32::new(x.uid)))
|
||||
})
|
||||
.unwrap_or_default();
|
||||
|
||||
let mut session_names: Vec<_> = flags.sessions.keys().map(|x| x.to_string()).collect();
|
||||
|
|
@ -1158,6 +1169,14 @@ impl cosmic::Application for App {
|
|||
};
|
||||
|
||||
let uid = *user_entry.key();
|
||||
self.flags.greeter_config.last_user = Some(uid);
|
||||
if let Err(err) = handler.set("last_user", &self.flags.greeter_config.last_user) {
|
||||
log::error!(
|
||||
"Failed to set {:?} as last user: {:?}",
|
||||
self.flags.greeter_config.last_user,
|
||||
err
|
||||
);
|
||||
}
|
||||
match user_entry {
|
||||
hash_map::Entry::Vacant(entry) => {
|
||||
let last_session = Some(self.selected_session.clone());
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue