Remove unneeded searches in ConfigUpdateUser

This commit is contained in:
Josh Megnauth 2024-09-07 02:17:27 -04:00
parent 70b8cae87e
commit 047e393eb8
No known key found for this signature in database
GPG key ID: 70813183462EFAD3

View file

@ -818,22 +818,20 @@ impl cosmic::Application for App {
let data_idx = Self::user_data_index(&self.flags.user_datas, &username); let data_idx = Self::user_data_index(&self.flags.user_datas, &username);
self.selected_username = NameIndexPair { username, data_idx }; self.selected_username = NameIndexPair { username, data_idx };
self.surface_images.clear(); self.surface_images.clear();
// TODO: Remove search if let Some(session) = data_idx.and_then(|i| {
if let Some(session) = self self.flags
.flags .user_datas
.user_datas .get(i)
.iter() .and_then(|UserData { uid, .. }| {
.find(|user| user.name == self.selected_username.username) NonZeroU32::new(*uid).and_then(|uid| {
.and_then(|UserData { uid, .. }| { self.flags
NonZeroU32::new(*uid).and_then(|uid| { .greeter_config
self.flags .users
.greeter_config .get(&uid)
.users .and_then(|conf| conf.last_session.as_deref())
.get(&uid) })
.and_then(|conf| conf.last_session.as_deref())
}) })
}) }) {
{
session.clone_into(&mut self.selected_session); session.clone_into(&mut self.selected_session);
}; };
match &self.socket_state { match &self.socket_state {
@ -846,15 +844,15 @@ impl cosmic::Application for App {
} }
} }
Message::ConfigUpdateUser => { Message::ConfigUpdateUser => {
let Some(user_entry) = self let Some(user_entry) = self.selected_username.data_idx.and_then(|i| {
.flags self.flags
.user_datas .user_datas
.iter() .get(i)
.find(|user| user.name == self.selected_username.username) .and_then(|UserData { uid, .. }| {
.and_then(|UserData { uid, .. }| { NonZeroU32::new(*uid)
NonZeroU32::new(*uid).map(|uid| self.flags.greeter_config.users.entry(uid)) .map(|uid| self.flags.greeter_config.users.entry(uid))
}) })
else { }) else {
log::error!("Couldn't find user: {:?}", self.selected_username.username); log::error!("Couldn't find user: {:?}", self.selected_username.username);
return Command::none(); return Command::none();
}; };