fix(dock): directly set the entries list in the config

This commit is contained in:
Ashley Wulber 2023-09-22 14:43:31 -04:00 committed by Ashley Wulber
parent 075800daac
commit 9051e07494

View file

@ -2,12 +2,13 @@ use std::collections::HashMap;
use apply::Apply;
use cosmic::{
cosmic_config::CosmicConfigEntry,
cosmic_config::{ConfigSet, CosmicConfigEntry},
widget::{settings, text, toggler},
Element,
};
use cosmic_panel_config::{CosmicPanelConfig, CosmicPanelContainerConfig};
use cosmic_settings_page::{self as page, section, Section};
use log::error;
use slotmap::SlotMap;
use crate::pages::desktop::panel::inner::{add_panel, behavior_and_position, configuration, style};
@ -36,6 +37,10 @@ impl Page {
let Some(panel_config) = self.inner.panel_config.as_ref() else {
return;
};
let Ok(helper) = CosmicPanelContainerConfig::cosmic_config() else {
return;
};
if enabled {
container_config.config_list.push(panel_config.clone());
} else {
@ -43,7 +48,16 @@ impl Page {
.config_list
.retain(|c| c.name.as_str() != "Dock");
}
_ = container_config.write_entries();
let entry_names = container_config
.config_list
.iter()
.map(|c| c.name.clone())
.collect::<Vec<_>>();
if let Err(err) = helper.set("entries", entry_names) {
error!("{:?}", err);
}
}
Message::Inner(inner) => {
self.inner.update(inner);