correctly load terminal selection settings

This commit is contained in:
2024-08-04 21:07:11 +02:00
parent 56acda7aae
commit e9beaf3d80

View File

@@ -2,9 +2,10 @@ use crate::util::prerequisit::get_installed_terminals;
use relm4::adw::prelude::{
ComboRowExt, PreferencesGroupExt, PreferencesPageExt, PreferencesRowExt, PreferencesWindowExt,
};
use relm4::gtk::prelude::WidgetExt;
use relm4::gtk::prelude::Cast;
use relm4::gtk::prelude::GtkWindowExt;
use relm4::gtk::prelude::ListModelExt;
use relm4::gtk::prelude::WidgetExt;
use relm4::view;
use relm4::{adw, gtk, ComponentParts, ComponentSender, SimpleComponent};
pub struct SettingsDialog {
@@ -59,11 +60,17 @@ impl SimpleComponent for SettingsDialog {
let settings = gio::Settings::new(APP_ID);
let terminal = settings.string("terminal");
println!("{}", terminal);
let terminal_selection = terminal_selection_model
.find_with_equal_func(|obj| obj == &gtk::StringObject::new(terminal.as_str()))
.find_with_equal_func(|obj| {
gtk::StringObject::new(terminal.as_str()).string()
== obj.downcast_ref::<gtk::StringObject>().unwrap().string()
})
.unwrap_or(0);
println!("{}", terminal_selection);
let str_object: String = terminal_selection_model
.item(terminal_selection)
.and_downcast::<gtk::StringObject>()
@@ -100,7 +107,7 @@ impl SimpleComponent for SettingsDialog {
}
fn update(&mut self, msg: Self::Input, _sender: ComponentSender<Self>) {
match msg {
SettingsMsg::OpenSettings => { }
SettingsMsg::OpenSettings => {}
SettingsMsg::TerminalSelectionChanged(terminal) => {
let settings = gio::Settings::new(APP_ID);
settings.set_string("terminal", &terminal);