forked from 1b-agent/opencadstudio-upstream
refactor: group ui/ statusbar and window subdirs
Continue tidying the flat ui/ root: - ui/statusbar/: statusbar.rs becomes statusbar/mod.rs (its crate::ui::statusbar::* paths are preserved) and absorbs statusbar_config.rs + statusbar_menu.rs. - ui/window/: the standalone manager/dialog windows move here — about, layout_manager, page_setup, plugin_manager, shortcuts, layers, update_notice, open_progress. The crate::ui::LayerPanel re-export is repointed so callers are unchanged. Call sites repointed to the new paths; no compat re-exports beyond the existing LayerPanel one. ui/ root drops from 21 to 10 flat files with five subdirs (ribbon, style, popup, statusbar, window). Co-Authored-By: Claude Opus 4.8 <[email protected]>
This commit is contained in:
1 parent
9b8ee94c0c
commit
a502379048
17 files changed
+29
-27
No files matched your search
+4
-4
@@ -221,7 +221,7 @@ pub(super) struct OpenCADStudio {
|
||||
/// When set, the cycling list box is open: (canvas point, candidates).
|
||||
cycle_candidates: Option<(iced::Point, Vec<acadrust::Handle>)>,
|
||||
/// Which status-bar pills the user has chosen to show (persisted).
|
||||
statusbar_config: crate::ui::statusbar_config::StatusBarConfig,
|
||||
statusbar_config: crate::ui::statusbar::statusbar_config::StatusBarConfig,
|
||||
/// Last persisted user preferences (DYN/OSNAP/OTRACK/POLAR/…). Compared
|
||||
/// after each message so a change is written to disk exactly once.
|
||||
last_saved_settings: Option<settings::UserSettings>,
|
||||
@@ -1095,7 +1095,7 @@ pub enum Message {
|
||||
LayerToggleLock(usize),
|
||||
LayerToggleFreeze(usize),
|
||||
/// Sort the Layer Manager table by a clicked column header.
|
||||
LayerSort(crate::ui::layers::LayerSortCol),
|
||||
LayerSort(crate::ui::window::layers::LayerSortCol),
|
||||
/// Toggle per-viewport freeze: (layer_index, vp_col_index)
|
||||
LayerToggleVpFreeze(usize, usize),
|
||||
LayerNew,
|
||||
@@ -1186,7 +1186,7 @@ pub enum Message {
|
||||
/// Close the status-bar customization menu.
|
||||
CloseStatusBarMenu,
|
||||
/// Show/hide a single status-bar pill.
|
||||
ToggleStatusPill(crate::ui::statusbar_config::StatusPill),
|
||||
ToggleStatusPill(crate::ui::statusbar::statusbar_config::StatusPill),
|
||||
/// Toggle clean-screen mode (hide ribbon + side panels).
|
||||
ToggleCleanScreen,
|
||||
/// Toggle whether entity transparency is shown on screen.
|
||||
@@ -1763,7 +1763,7 @@ impl OpenCADStudio {
|
||||
units_popup_open: false,
|
||||
isolate_popup_open: false,
|
||||
selection_filter_popup_open: false,
|
||||
statusbar_config: crate::ui::statusbar_config::StatusBarConfig::load(),
|
||||
statusbar_config: crate::ui::statusbar::statusbar_config::StatusBarConfig::load(),
|
||||
last_saved_settings: None,
|
||||
otrack_active: None,
|
||||
clean_screen: false,
|
||||
|
||||
@@ -954,7 +954,7 @@ impl OpenCADStudio {
|
||||
if let Some(dl) = self.tabs[i].scene.document.layers.get_mut(&name) {
|
||||
dl.color = AcadColor::Index(aci);
|
||||
}
|
||||
use crate::ui::layers::iced_color_from_acad;
|
||||
use crate::ui::window::layers::iced_color_from_acad;
|
||||
let new_color = iced_color_from_acad(&AcadColor::Index(aci));
|
||||
if let Some(pl) = self.tabs[i].layers.layers.get_mut(idx) {
|
||||
pl.color = new_color;
|
||||
|
||||
+2
-2
@@ -1083,7 +1083,7 @@ impl OpenCADStudio {
|
||||
};
|
||||
|
||||
let statusbar_menu_layer: Element<'_, Message> = if self.statusbar_menu_open {
|
||||
crate::ui::statusbar_menu::statusbar_menu_overlay(&self.statusbar_config)
|
||||
crate::ui::statusbar::statusbar_menu::statusbar_menu_overlay(&self.statusbar_config)
|
||||
} else {
|
||||
iced::widget::Space::new().width(0).height(0).into()
|
||||
};
|
||||
@@ -1141,7 +1141,7 @@ impl OpenCADStudio {
|
||||
};
|
||||
|
||||
let open_progress_layer: Element<'_, Message> = if let Some(p) = &self.opening {
|
||||
crate::ui::open_progress::view(p, iced::time::Instant::now())
|
||||
crate::ui::window::open_progress::view(p, iced::time::Instant::now())
|
||||
} else {
|
||||
iced::widget::Space::new().width(0).height(0).into()
|
||||
};
|
||||
|
||||
@@ -17,16 +17,16 @@ impl OpenCADStudio {
|
||||
.into()
|
||||
}
|
||||
Some(match self.active_modal? {
|
||||
super::super::ModalKind::About => crate::ui::about::view_window(),
|
||||
super::super::ModalKind::About => crate::ui::window::about::view_window(),
|
||||
super::super::ModalKind::Shortcuts => {
|
||||
sized(crate::ui::shortcuts::view_window(&self.shortcut_overrides), 720, 520)
|
||||
sized(crate::ui::window::shortcuts::view_window(&self.shortcut_overrides), 720, 520)
|
||||
}
|
||||
super::super::ModalKind::PluginManager => sized(
|
||||
crate::ui::plugin_manager::view_window(
|
||||
crate::ui::window::plugin_manager::view_window(
|
||||
&self.disabled_plugins,
|
||||
&self.external_plugins,
|
||||
&self.loaded_plugin_ids,
|
||||
crate::ui::plugin_manager::MarketView {
|
||||
crate::ui::window::plugin_manager::MarketView {
|
||||
registry: &self.plugin_registry,
|
||||
input: &self.plugin_repo_input,
|
||||
repos: &self.plugin_repos,
|
||||
@@ -41,14 +41,14 @@ impl OpenCADStudio {
|
||||
super::super::ModalKind::UpdateNotice => {
|
||||
let latest = self.update_notice_version.as_deref().unwrap_or("?");
|
||||
let body = self.update_notice_body.as_deref().unwrap_or("");
|
||||
sized(crate::ui::update_notice::view_window(latest, body), 560, 460)
|
||||
sized(crate::ui::window::update_notice::view_window(latest, body), 560, 460)
|
||||
}
|
||||
super::super::ModalKind::Layers => {
|
||||
let tab = &self.tabs[self.active_tab];
|
||||
sized(tab.layers.view_window(), 900, 360)
|
||||
}
|
||||
super::super::ModalKind::PageSetup => sized(
|
||||
crate::ui::page_setup::view_window(
|
||||
crate::ui::window::page_setup::view_window(
|
||||
&self.page_setup_w,
|
||||
&self.page_setup_h,
|
||||
&self.page_setup_plot_area,
|
||||
@@ -66,7 +66,7 @@ impl OpenCADStudio {
|
||||
let layouts = self.tabs[i].scene.layout_names();
|
||||
let current = self.tabs[i].scene.current_layout.clone();
|
||||
sized(
|
||||
crate::ui::layout_manager::view_window(
|
||||
crate::ui::window::layout_manager::view_window(
|
||||
layouts,
|
||||
&self.layout_manager_selected,
|
||||
&self.layout_manager_rename_buf,
|
||||
|
||||
+2
-11
@@ -2,33 +2,24 @@
|
||||
/// Change this to scale the ribbon, layer manager rows, and property panel rows uniformly.
|
||||
pub const ROW_H: f32 = 26.0;
|
||||
|
||||
pub mod about;
|
||||
pub mod app_menu;
|
||||
pub mod color_select;
|
||||
pub mod command_line;
|
||||
pub mod icons;
|
||||
pub mod layers;
|
||||
pub mod layout_manager;
|
||||
pub mod modal;
|
||||
pub mod open_progress;
|
||||
pub mod overlay;
|
||||
pub mod page_setup;
|
||||
pub mod plugin_manager;
|
||||
pub mod popup;
|
||||
pub mod properties;
|
||||
pub mod ribbon;
|
||||
pub mod side_toolbar;
|
||||
pub mod shortcuts;
|
||||
pub mod statusbar;
|
||||
pub mod statusbar_config;
|
||||
pub mod statusbar_menu;
|
||||
pub mod style;
|
||||
pub mod text_util;
|
||||
pub mod update_notice;
|
||||
pub mod window;
|
||||
|
||||
pub use app_menu::AppMenu;
|
||||
pub use command_line::CommandLine;
|
||||
pub use layers::LayerPanel;
|
||||
pub use properties::PropertiesPanel;
|
||||
pub use ribbon::Ribbon;
|
||||
pub use statusbar::StatusBar;
|
||||
pub use window::layers::LayerPanel;
|
||||
@@ -1,5 +1,8 @@
|
||||
//! Bottom status bar — Model/Layout tabs + OSNAP toggle + status info
|
||||
|
||||
pub mod statusbar_config;
|
||||
pub mod statusbar_menu;
|
||||
|
||||
use iced::widget::tooltip::Position as TipPos;
|
||||
use iced::widget::{button, column, container, mouse_area, row, text, text_input, tooltip, Row};
|
||||
use iced::{Background, Border, Color, Element, Length, Theme};
|
||||
@@ -10,7 +13,7 @@ pub const LAYOUT_RENAME_INPUT_ID: &str = "layout_rename_input";
|
||||
|
||||
use crate::app::Message;
|
||||
use crate::snap::Snapper;
|
||||
use crate::ui::statusbar_config::{StatusBarConfig, StatusPill};
|
||||
use crate::ui::statusbar::statusbar_config::{StatusBarConfig, StatusPill};
|
||||
|
||||
#[derive(Clone, Default)]
|
||||
pub struct StatusBar {
|
||||
File renamed without changes.
@@ -6,7 +6,7 @@ use iced::widget::{button, column, container, mouse_area, row, text};
|
||||
use iced::{Background, Border, Color, Element, Fill, Length, Padding, Theme};
|
||||
|
||||
use crate::app::Message;
|
||||
use crate::ui::statusbar_config::{StatusBarConfig, StatusPill};
|
||||
use crate::ui::statusbar::statusbar_config::{StatusBarConfig, StatusPill};
|
||||
|
||||
/// Full-screen overlay: transparent click-catcher + the menu panel pinned to
|
||||
/// the bottom-right, just above the status bar.
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -0,0 +1,8 @@
|
||||
pub mod about;
|
||||
pub mod layout_manager;
|
||||
pub mod page_setup;
|
||||
pub mod plugin_manager;
|
||||
pub mod shortcuts;
|
||||
pub mod layers;
|
||||
pub mod update_notice;
|
||||
pub mod open_progress;
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Reference in new issue
Block a user