panel_settings.rs

 1use gpui::Pixels;
 2use settings::Settings;
 3use ui::px;
 4use workspace::dock::DockPosition;
 5
 6#[derive(Debug)]
 7pub struct CollaborationPanelSettings {
 8    pub button: bool,
 9    pub dock: DockPosition,
10    pub default_width: Pixels,
11}
12
13#[derive(Debug)]
14pub struct NotificationPanelSettings {
15    pub button: bool,
16    pub dock: DockPosition,
17    pub default_width: Pixels,
18}
19
20impl Settings for CollaborationPanelSettings {
21    fn from_settings(content: &settings::SettingsContent) -> Self {
22        let panel = content.collaboration_panel.as_ref().unwrap();
23
24        Self {
25            button: panel.button.unwrap(),
26            dock: panel.dock.unwrap().into(),
27            default_width: panel.default_width.map(px).unwrap(),
28        }
29    }
30}
31
32impl Settings for NotificationPanelSettings {
33    fn from_settings(content: &settings::SettingsContent) -> Self {
34        let panel = content.notification_panel.as_ref().unwrap();
35        return Self {
36            button: panel.button.unwrap(),
37            dock: panel.dock.unwrap().into(),
38            default_width: panel.default_width.map(px).unwrap(),
39        };
40    }
41}