forked from 1b-agent/opencadstudio-upstream
feat(ui): add dockable properties panel
Preserve panel width across left/right docking and persist resize, position, and auto-collapse preferences. Refs #348 Refs #650
This commit is contained in:
1 parent
e35348525a
commit
4be8d9735c
8 files changed
+355
-27
No files matched your search
@@ -27,6 +27,8 @@ pub struct AppConfig {
|
||||
pub start: StartConfig,
|
||||
/// Which status-bar pills the user has hidden.
|
||||
pub statusbar: StatusBarConfig,
|
||||
/// Dock position, width and auto-collapse behavior of the Properties panel.
|
||||
pub properties: PropertiesDockConfig,
|
||||
/// Add a newly selected annotation scale to existing annotative objects.
|
||||
pub annotation_auto_scale: i8,
|
||||
/// Ribbon collapse density.
|
||||
@@ -44,6 +46,7 @@ impl Default for AppConfig {
|
||||
recent: RecentConfig::default(),
|
||||
start: StartConfig::default(),
|
||||
statusbar: StatusBarConfig::default(),
|
||||
properties: PropertiesDockConfig::default(),
|
||||
annotation_auto_scale: -4,
|
||||
ribbon: RibbonConfig::default(),
|
||||
plot: PlotDialogState::default(),
|
||||
@@ -51,6 +54,30 @@ impl Default for AppConfig {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize)]
|
||||
pub enum DockSide {
|
||||
Left,
|
||||
Right,
|
||||
}
|
||||
|
||||
#[derive(Clone, Copy, Debug, PartialEq, Serialize, Deserialize)]
|
||||
#[serde(default)]
|
||||
pub struct PropertiesDockConfig {
|
||||
pub side: DockSide,
|
||||
pub width: f32,
|
||||
pub auto_collapse: bool,
|
||||
}
|
||||
|
||||
impl Default for PropertiesDockConfig {
|
||||
fn default() -> Self {
|
||||
Self {
|
||||
side: DockSide::Left,
|
||||
width: 250.0,
|
||||
auto_collapse: false,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, PartialEq, Serialize, Deserialize)]
|
||||
#[serde(default)]
|
||||
pub struct UiThemeConfig {
|
||||
|
||||
Reference in new issue
Block a user