From d9b8c8f6666583b2351a2a2abc7a3ccc1ba576df Mon Sep 17 00:00:00 2001 From: Tsuki Date: Tue, 19 Nov 2024 16:12:59 +0800 Subject: [PATCH] sync --- Cargo.lock | 41 ++++-- element_bridge/src/lib.rs | 5 +- mp/Cargo.toml | 1 + mp/src/app.rs | 214 +++++++++++++++++++++++------- mp/src/app_ui.rs | 24 +--- mp/src/errors.rs | 22 +++ mp/src/file.rs | 76 +++++++++++ mp/src/lib.rs | 3 + mp/src/menu.rs | 31 +++++ mp/src/render_task.rs | 70 +++------- mp/src/widgets/area.rs | 98 ++++++++------ mp/src/widgets/mod.rs | 1 + mp/src/widgets/selector_modal.rs | 44 ++++++ mp/src/windows_manager.rs | 40 +++++- mp_elements/src/app.rs | 5 +- mp_elements/src/elements/mod.rs | 19 ++- mp_elements/src/elements/ppi.rs | 4 + mp_elements/src/elementvec.rs | 17 ++- mp_elements/src/tools/colormap.rs | 1 + 19 files changed, 535 insertions(+), 181 deletions(-) create mode 100644 mp/src/errors.rs create mode 100644 mp/src/file.rs create mode 100644 mp/src/menu.rs create mode 100644 mp/src/widgets/selector_modal.rs diff --git a/Cargo.lock b/Cargo.lock index 1fa29c0..5f01af9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -681,7 +681,7 @@ dependencies = [ "const_panic", "encase_derive", "glam", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1013,7 +1013,7 @@ checksum = "c151a2a5ef800297b4e79efa4f4bec035c5f51d5ae587287c9b952bdf734cacd" dependencies = [ "log", "presser", - "thiserror", + "thiserror 1.0.69", "windows 0.58.0", ] @@ -1721,6 +1721,7 @@ dependencies = [ "mp_elements", "native-dialog", "once_cell", + "thiserror 2.0.3", "tokio", "tracing", "tracing-subscriber", @@ -1742,7 +1743,7 @@ dependencies = [ "radarg_plugin_interface", "rust-embed", "serde", - "thiserror", + "thiserror 1.0.69", "tokio", "toml", ] @@ -1782,7 +1783,7 @@ dependencies = [ "rustc-hash", "spirv", "termcolor", - "thiserror", + "thiserror 1.0.69", "unicode-xid", ] @@ -1860,7 +1861,7 @@ dependencies = [ "objc_id", "once_cell", "raw-window-handle 0.5.2", - "thiserror", + "thiserror 1.0.69", "versions", "wfd", "which", @@ -2284,7 +2285,7 @@ dependencies = [ "rand_chacha", "simd_helpers", "system-deps", - "thiserror", + "thiserror 1.0.69", "v_frame", "wasm-bindgen", ] @@ -2359,7 +2360,7 @@ checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ "getrandom", "libredox", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -2775,7 +2776,16 @@ version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "thiserror-impl", + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c006c85c7651b3cf2ada4584faa36773bd07bac24acfb39f3c431b36d7e667aa" +dependencies = [ + "thiserror-impl 2.0.3", ] [[package]] @@ -2789,6 +2799,17 @@ dependencies = [ "syn 2.0.87", ] +[[package]] +name = "thiserror-impl" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f077553d607adc1caf65430528a576c757a71ed73944b66ebb58ef2bbd243568" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "thread_local" version = "1.1.8" @@ -3263,7 +3284,7 @@ dependencies = [ "raw-window-handle 0.6.2", "rustc-hash", "smallvec", - "thiserror", + "thiserror 1.0.69", "wgpu-hal", "wgpu-types", ] @@ -3305,7 +3326,7 @@ dependencies = [ "renderdoc-sys", "rustc-hash", "smallvec", - "thiserror", + "thiserror 1.0.69", "wasm-bindgen", "web-sys", "wgpu-types", diff --git a/element_bridge/src/lib.rs b/element_bridge/src/lib.rs index 4aa5dee..b1adcb6 100644 --- a/element_bridge/src/lib.rs +++ b/element_bridge/src/lib.rs @@ -6,7 +6,7 @@ use mp_elements::{ use std::sync::{Arc, Mutex}; pub use mp_elements::app::Window; -#[derive(Clone)] +#[derive(Clone, Debug)] pub struct TextureBridge { dirty: bool, _buffer: Arc>>, @@ -41,7 +41,7 @@ impl TextureBridge { app.draw(&self.window, draw_list).await; } - pub async fn load_data(buffer: Arc>>, ctx: &Ctx, render_window: &RenderWindow) { + pub async fn load_data(buffer: &mut Vec, ctx: &Ctx, render_window: &RenderWindow) { let output = &render_window.output().output_buffer; let (sender, receiver) = flume::bounded(1); @@ -54,7 +54,6 @@ impl TextureBridge { { let view = slice.get_mapped_range(); - let mut buffer = buffer.lock().unwrap(); buffer.copy_from_slice(&view[..]); } output.unmap(); diff --git a/mp/Cargo.toml b/mp/Cargo.toml index 2e69bcd..e0c9037 100644 --- a/mp/Cargo.toml +++ b/mp/Cargo.toml @@ -19,3 +19,4 @@ tokio = { version = "1.41.1", features = ["full"] } element_bridge = { path = "../element_bridge", version = "*" } futures = "0.3.31" async-trait = "0.1.83" +thiserror = "2.0.3" diff --git a/mp/src/app.rs b/mp/src/app.rs index ac36111..dc4e350 100644 --- a/mp/src/app.rs +++ b/mp/src/app.rs @@ -1,22 +1,22 @@ +use crate::file::*; +use crate::menu::{handle_menu, spawn_background}; use crate::widgets::area::TAreaWidgetRefExt; -use crate::windows_manager::WindowsManager; +use crate::windows_manager::WM; use crate::{render_task::RenderTasks, PLUGIN_MANAGER, RUNTIME}; -use crate::{DATAPOOL, GIAPP}; use ::log::info; +use element_bridge::TextureBridge; use makepad_widgets::makepad_micro_serde::*; use makepad_widgets::*; -use mp_core::Data; -use mp_elements::elements::ppi::PPIConfig; -use mp_elements::elements::PPI; +use mp_elements::app::DrawList as DW; +use std::path::PathBuf; use std::sync::Arc; -use window_menu::WindowMenuWidgetRefExt; - use tokio::sync::Mutex; live_design! { import makepad_widgets::base::*; import makepad_widgets::theme_desktop_dark::*; import crate::app_ui::MainView; + import crate::widgets::selector_modal::SelectorModal; HELLO = "Hello, World!"; @@ -55,6 +55,40 @@ live_design! { } } + notification = { + content: { + height: Fit, + width: Fit, + padding: 10, + + { + height: Fit, + width: 240, + padding: 30, + show_bg: true, + draw_bg: { + color: #3c3c3c + radius: 3.0 + } + + notifacion_title =