From 3fec9bee21c05f06e18cd87c5341ca50e7e1daab Mon Sep 17 00:00:00 2001 From: Hannes Kuchelmeister Date: Mon, 6 Jun 2022 00:21:42 +0200 Subject: [PATCH] move starting of terminal to main thread #4 --- src/ui/app/update.rs | 21 +++++++++++++-------- src/ui/app/workers.rs | 16 ---------------- 2 files changed, 13 insertions(+), 24 deletions(-) diff --git a/src/ui/app/update.rs b/src/ui/app/update.rs index 17b16ec..43f03c7 100644 --- a/src/ui/app/update.rs +++ b/src/ui/app/update.rs @@ -1,3 +1,5 @@ +use std::process::Command; + use relm4::{AppUpdate, Sender}; use crate::{ @@ -62,14 +64,17 @@ impl AppUpdate for AppModel { AppMsg::OpenToolbxTerminal(index) => { if let Some(toolbx_container) = self.toolboxes.get_mut(index.current_index()) { - components - .async_handler - .sender() - .blocking_send(AsyncHandlerMsg::OpenToolbxTerminal( - index, - toolbx_container.clone(), - )) - .expect("Receiver dropped"); + // TODO: support many terminals and check which are installed + let output = Command::new("gnome-terminal") + .arg("--") + .arg("toolbox") + .arg("enter") + .arg(toolbx_container.toolbx_container.name.clone()) + .output(); + + println!("{:?}", output); + + // TODO: update status } } } diff --git a/src/ui/app/workers.rs b/src/ui/app/workers.rs index 15017d4..2722cb3 100644 --- a/src/ui/app/workers.rs +++ b/src/ui/app/workers.rs @@ -1,5 +1,3 @@ -use std::process::Command; - use relm4::factory::DynamicIndex; use relm4::{send, MessageHandler, Sender}; use tokio::runtime::{Builder, Runtime}; @@ -20,7 +18,6 @@ pub struct AsyncHandler { pub enum AsyncHandlerMsg { StopToolbx(DynamicIndex, ToolbxEntry), StartToolbx(DynamicIndex, ToolbxEntry), - OpenToolbxTerminal(DynamicIndex, ToolbxEntry), } impl MessageHandler for AsyncHandler { @@ -52,19 +49,6 @@ impl MessageHandler for AsyncHandler { tbx.changing_status = false; send! {parent_sender, AppMsg::ToolbxContainerChanged(index, tbx)}; } - AsyncHandlerMsg::OpenToolbxTerminal(index, mut tbx) => { - // TODO: support many terminals and check which are installed - let output = Command::new("gnome-terminal") - .arg("--") - .arg("toolbox") - .arg("enter") - .arg(tbx.toolbx_container.name.clone()) - .output(); - - println!("{:?}", output); - - // TODO: update status - } } }); }