From fc61870b7e23f8c652d0e5641c09440bfa5bb7ae Mon Sep 17 00:00:00 2001 From: Julian Mutter Date: Wed, 7 Feb 2024 20:48:34 +0100 Subject: [PATCH] Delete stack layout, instead only show one listing --- src/ui/app.rs | 52 +++++++++------------------------------------------ 1 file changed, 9 insertions(+), 43 deletions(-) diff --git a/src/ui/app.rs b/src/ui/app.rs index fdea736..218edb3 100644 --- a/src/ui/app.rs +++ b/src/ui/app.rs @@ -1,5 +1,3 @@ - - use chrono::Utc; use gtk::prelude::*; use relm4::{ @@ -23,14 +21,12 @@ pub struct AppModel { database: Database, mcdu: Controller, sheets_and_files_listing: Controller, - new_files_listing: Controller, } #[derive(Debug)] pub enum AppInput { SearchStarted(String), - NewFilesSheetPressed(SheetModelType), - SheetsAndFilesSheetPressed(SheetModelType), + SheetPressed(SheetModelType), } #[relm4::component(pub, async)] @@ -52,23 +48,10 @@ impl AsyncComponent for AppModel { gtk::Box { set_orientation: gtk::Orientation::Vertical, set_hexpand: true, - #[name = "stack_switcher"] - gtk::StackSwitcher { - set_stack: Some(&stack), - set_margin_all: 10, - }, - #[name = "stack"] - gtk::Stack { - add_titled[None, "Sheets & Files"]= >k::ScrolledWindow { + gtk::ScrolledWindow { model.sheets_and_files_listing.widget(), set_vexpand: true, set_hexpand: true, - }, - add_titled[None, "New Files"]= >k::ScrolledWindow { - model.new_files_listing.widget(), - set_vexpand: true, - set_hexpand: true, - }, }, }, model.mcdu.widget(), @@ -89,44 +72,31 @@ impl AsyncComponent for AppModel { McduOutput::SearchStarted(query) => AppInput::SearchStarted(query), }); - let mut new_files: Vec = init_data - .orphans - .iter() - .map(|orphan| SheetModelType::Orphan { - orphan: orphan.clone(), - }) - .collect(); - new_files.sort_by(|a, b| a.cmp(b).reverse()); - - let new_files_clone_iter = init_data + let mut orphan_files: Vec = init_data .orphans .into_iter() - .map(|orphan| SheetModelType::Orphan { orphan }); + .map(|orphan| SheetModelType::Orphan { orphan }) + .collect(); + orphan_files.sort_by(|a, b| a.cmp(b).reverse()); let mut sheets_and_files: Vec = init_data .sheets .into_iter() .map(|sheet| SheetModelType::Sheet { sheet }) - .chain(new_files_clone_iter) + .chain(orphan_files) .collect(); sheets_and_files.sort_by(|a, b| a.cmp(b).reverse()); let sheets_and_files_listing = SheetListingModel::builder() .launch(sheets_and_files) .forward(sender.input_sender(), |response| { - AppInput::SheetsAndFilesSheetPressed(response.sheet_model_type) - }); - let new_files_listing = SheetListingModel::builder() - .launch(new_files) - .forward(sender.input_sender(), |response| { - AppInput::NewFilesSheetPressed(response.sheet_model_type) + AppInput::SheetPressed(response.sheet_model_type) }); let model = AppModel { database: init_data.database, mcdu, sheets_and_files_listing, - new_files_listing, }; let widgets = view_output!(); @@ -145,12 +115,8 @@ impl AsyncComponent for AppModel { AppInput::SearchStarted(query) => { self.sheets_and_files_listing .emit(SheetListingInput::Query(query.clone())); - self.new_files_listing.emit(SheetListingInput::Query(query)); } - AppInput::NewFilesSheetPressed(_) => { - // TODO - } - AppInput::SheetsAndFilesSheetPressed(sheet_model_type) => { + AppInput::SheetPressed(sheet_model_type) => { opener::open(sheet_model_type.get_path()).unwrap(); match sheet_model_type { SheetModelType::Orphan { mut orphan } => {