From 2ffd0bbbc315d64ab317c818044f96e6448e5df1 Mon Sep 17 00:00:00 2001 From: Julian Mutter Date: Sat, 25 May 2024 23:10:47 +0200 Subject: [PATCH] First try in implementing sheet edit dialog --- src/ui/app.rs | 14 ++++++++++++-- src/ui/mod.rs | 1 + src/ui/sheet_model.rs | 2 -- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/ui/app.rs b/src/ui/app.rs index bb7dc0f..b4df854 100644 --- a/src/ui/app.rs +++ b/src/ui/app.rs @@ -2,7 +2,6 @@ use std::{path::PathBuf, sync::Arc}; use chrono::Utc; use gtk::prelude::*; -use log::debug; use relm4::{ component::{AsyncComponent, AsyncComponentParts}, gtk::Adjustment, @@ -19,6 +18,7 @@ use crate::{ use super::{ mcdu::McduModel, + sheet_edit_dialog::{SheetEditDialogInput, SheetEditDialogModel}, sheet_listing::{SheetListingInput, SheetListingModel, SheetListingOutput}, }; @@ -29,6 +29,7 @@ pub struct AppModel { sheets_listing: Controller, edit_mode: bool, scroll_adjustment: Adjustment, + sheet_edit_dialog: Controller, } #[derive(Debug)] @@ -131,6 +132,11 @@ impl AsyncComponent for AppModel { }, ); + let sheet_edit_dialog = SheetEditDialogModel::builder() + .transient_for(&window) + .launch(()) + .forward(sender.input_sender(), |_| todo!()); + let model = AppModel { database: Arc::new(init_data.database), directory: Arc::new(init_data.directory), @@ -138,6 +144,7 @@ impl AsyncComponent for AppModel { sheets_listing, edit_mode: false, scroll_adjustment: Adjustment::builder().build(), + sheet_edit_dialog, }; let widgets = view_output!(); @@ -158,7 +165,10 @@ impl AsyncComponent for AppModel { } AppInput::SheetPressed(sheet) => { if self.edit_mode { - debug!("Sheet pressed, but we are in edit mode!"); + self.sheet_edit_dialog + .sender() + .send(SheetEditDialogInput::Show(sheet)) + .unwrap(); } else { sheet.open_file(); let mut sheet = sheet; diff --git a/src/ui/mod.rs b/src/ui/mod.rs index 5f3a11e..2b1b37e 100644 --- a/src/ui/mod.rs +++ b/src/ui/mod.rs @@ -1,4 +1,5 @@ pub mod app; pub mod mcdu; +pub mod sheet_edit_dialog; pub mod sheet_listing; pub mod sheet_model; diff --git a/src/ui/sheet_model.rs b/src/ui/sheet_model.rs index 8650617..feca18c 100644 --- a/src/ui/sheet_model.rs +++ b/src/ui/sheet_model.rs @@ -1,5 +1,3 @@ - - use gtk::prelude::*; use relm4::prelude::*;