From f533527002febfcbf5f53e1f8b12621dd2db6eae Mon Sep 17 00:00:00 2001 From: Alberto Nidasio <alberto.nidasio@skywarder.eu> Date: Mon, 27 Jan 2025 10:39:30 +0100 Subject: [PATCH] Rebased --- src/ui/panes.rs | 8 +++++++- src/ui/panes/default.rs | 6 ------ src/ui/panes/pid_drawing_tool.rs | 3 ++- src/ui/panes/pid_drawing_tool/symbols.rs | 6 ++++-- src/ui/panes/pid_drawing_tool/symbols/motor_valve.rs | 8 ++++---- 5 files changed, 17 insertions(+), 14 deletions(-) diff --git a/src/ui/panes.rs b/src/ui/panes.rs index 0b6ba8c..d8e52d1 100644 --- a/src/ui/panes.rs +++ b/src/ui/panes.rs @@ -1,5 +1,6 @@ mod default; mod messages_viewer; +mod pid; mod pid_drawing_tool; pub mod plot; @@ -48,7 +49,12 @@ pub enum PaneKind { #[strum(message = "Plot 2D")] Plot2D(plot::Plot2DPane), - PidDrawingTool(pid_drawing_tool::PidPane), + + #[strum(message = "PID Old")] + PidOld(pid_drawing_tool::PidPane), + + #[strum(message = "PID New")] + Pid(pid::Pid), } impl Default for PaneKind { diff --git a/src/ui/panes/default.rs b/src/ui/panes/default.rs index 1aaf6b8..7d58c23 100644 --- a/src/ui/panes/default.rs +++ b/src/ui/panes/default.rs @@ -1,5 +1,4 @@ use super::PaneBehavior; -use super::{pid_drawing_tool::PidPane, plot::Plot2DPane, Pane, PaneBehavior, PaneKind}; use serde::{Deserialize, Serialize}; use tracing::debug; @@ -39,11 +38,6 @@ impl PaneBehavior for DefaultPane { if ui.button("Widget Gallery").clicked() { response.set_action(PaneAction::ReplaceThroughGallery(Some(tile_id))); } - if ui.button("Pid Drawing Tool").clicked() { - response.set_action(PaneAction::Replace(Pane::boxed( - PaneKind::PidDrawingTool(PidPane::default()), - ))); - } }) .response }); diff --git a/src/ui/panes/pid_drawing_tool.rs b/src/ui/panes/pid_drawing_tool.rs index b7b5bba..0b68be7 100644 --- a/src/ui/panes/pid_drawing_tool.rs +++ b/src/ui/panes/pid_drawing_tool.rs @@ -6,6 +6,7 @@ mod symbols; use connections::Connection; use core::f32; use egui::{Color32, Context, CursorIcon, PointerButton, Response, Sense, Theme, Ui}; +use egui_tiles::TileId; use elements::Element; use glam::Vec2; use grid::GridInfo; @@ -54,7 +55,7 @@ impl PartialEq for PidPane { } impl PaneBehavior for PidPane { - fn ui(&mut self, ui: &mut egui::Ui) -> PaneResponse { + fn ui(&mut self, ui: &mut egui::Ui, _: TileId) -> PaneResponse { let theme = PidPane::find_theme(ui.ctx()); if self.center_content && !self.editable { diff --git a/src/ui/panes/pid_drawing_tool/symbols.rs b/src/ui/panes/pid_drawing_tool/symbols.rs index 1245043..d4b92f3 100644 --- a/src/ui/panes/pid_drawing_tool/symbols.rs +++ b/src/ui/panes/pid_drawing_tool/symbols.rs @@ -6,6 +6,8 @@ use motor_valve::MotorValve; use serde::{Deserialize, Serialize}; use strum_macros::{Display, EnumIter}; +use crate::mavlink::ViewId; + #[derive(Clone, Serialize, Deserialize, PartialEq, EnumIter, Display, Debug)] pub enum Symbol { Arrow, @@ -172,7 +174,7 @@ struct MavlinkValue { field: String, #[serde(skip)] - view_id: egui::Id, + view_id: ViewId, } #[derive(Deserialize)] @@ -186,7 +188,7 @@ impl From<SerialMavlinkValue> for MavlinkValue { Self { msg_id: value.msg_id, field: value.field, - view_id: egui::Id::new(""), + view_id: ViewId::new(), } } } diff --git a/src/ui/panes/pid_drawing_tool/symbols/motor_valve.rs b/src/ui/panes/pid_drawing_tool/symbols/motor_valve.rs index af4f38f..3fd42c8 100644 --- a/src/ui/panes/pid_drawing_tool/symbols/motor_valve.rs +++ b/src/ui/panes/pid_drawing_tool/symbols/motor_valve.rs @@ -1,4 +1,4 @@ -use crate::mavlink::{extract_from_message, MavlinkResult, MessageView, TimedMessage}; +use crate::mavlink::{extract_from_message, MavlinkResult, MessageView, TimedMessage, ViewId}; use super::MavlinkValue; @@ -19,7 +19,7 @@ impl Default for MotorValve { source: MavlinkValue { msg_id: orion::GSE_TM_DATA::ID, field: "n2o_filling_valve_state".to_string(), - view_id: egui::Id::new(""), + view_id: ViewId::new(), }, last_value: None, } @@ -27,8 +27,8 @@ impl Default for MotorValve { } impl MessageView for MotorValve { - fn widget_id(&self) -> &egui::Id { - &self.source.view_id + fn view_id(&self) -> ViewId { + self.source.view_id } fn id_of_interest(&self) -> u32 { -- GitLab