Fix Properties hyperlink collection editor

This commit is contained in:
ramox81 committed 2026-09-17 18:17:25 +03:00
1 parent bb29b987c2
commit 6a1c649016
11 files changed
+272 -13

No files matched your search

+20
View File
@@ -772,6 +772,12 @@ pub(super) struct OpenCADStudio {
/// The open in-canvas modal dialog, if any (Plan B: shared overlay instead
/// of OS windows).
active_modal: Option<ModalKind>,
/// Selection and staged values owned by the Properties hyperlink dialog.
hyperlink_editor_handles: Vec<acadrust::Handle>,
hyperlink_editor_url: String,
hyperlink_editor_description: String,
hyperlink_editor_mixed: bool,
hyperlink_editor_dirty: bool,
pending_startup_modals: std::collections::VecDeque<ModalKind>,
/// What is drawing the scene, once the first frame has told us. Drives
/// the graphics warning (popup, status-bar pill, command line).
@@ -1823,6 +1829,8 @@ pub enum ModalKind {
/// Add / remove the annotation scales a single selected object has a
/// per-object representation for.
AnnoObjectScale,
/// URL/description collection editor opened by the Hyperlink property row.
Hyperlink,
InsertTable,
DataLinkManager,
DataExtraction,
@@ -2648,6 +2656,13 @@ pub enum Message {
ScaleManagerOpen,
/// Open the Annotation Object Scale dialog for the current single selection.
AnnoObjectScaleOpen,
/// Open and edit the selected objects' PE_URL hyperlink collection.
PropHyperlinkOpen,
HyperlinkUrlChanged(String),
HyperlinkDescriptionChanged(String),
HyperlinkApply,
HyperlinkRemove,
HyperlinkCancel,
/// Toggle whether the dialog's object has a representation for this scale.
AnnoObjectScaleToggle(String),
/// Select a scale row in the manager (loads it into the editor).
@@ -3904,6 +3919,11 @@ impl OpenCADStudio {
color_picker_tab: ColorPickerTab::Index,
recent_colors: Vec::new(),
active_modal: None,
hyperlink_editor_handles: Vec::new(),
hyperlink_editor_url: String::new(),
hyperlink_editor_description: String::new(),
hyperlink_editor_mixed: false,
hyperlink_editor_dirty: false,
pending_startup_modals: std::collections::VecDeque::new(),
gpu_status: crate::scene::pipeline::GpuStatus::Unknown,
gpu_status_generation: 0,