From b4c22cdc4854d838b33637d047165f4d57239a88 Mon Sep 17 00:00:00 2001 From: Ian Mason Date: Sun, 21 Aug 2022 10:50:48 -0700 Subject: [PATCH] Migrated to druid gui --- Cargo.toml | 1 + assets/logo.png | Bin 28166 -> 43474 bytes src/main.rs | 203 +++++++++++++++++++++++++++++++----------------- 3 files changed, 134 insertions(+), 70 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 727fb6c..da96622 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,6 +15,7 @@ reqwest = {version = "0.11.11", features = ["blocking"]} iui = "0.3.0" serde_json = "1.0" tokio = {version="1", features=["full"]} +druid = "0.7.0" [build-dependencies] embed-resource = "1.6" diff --git a/assets/logo.png b/assets/logo.png index 6563a2ec129d7da511f9df1db2fedca356980558..f3214d4ce8da4ef95033d6e09b2e26ddd2622228 100644 GIT binary patch literal 43474 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 diff --git a/src/main.rs b/src/main.rs index bd26c9e..4882e5b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,13 +1,24 @@ +use std::cell::RefCell; use std::path::{Path, PathBuf}; +use std::rc::Rc; use std::str; -use std::thread; use std::*; +use druid::widget::*; +use druid::{ + commands, AppDelegate, AppLauncher, Application, Data, DelegateCtx, Env, FileDialogOptions, + Handled, Target, WidgetExt, WindowDesc, +}; use fs_extra::{copy_items, dir}; -use iui::controls::{Button, Group, Label, VerticalBox}; -use iui::prelude::*; use regex::Regex; +struct Delegate; + +#[derive(Data, Clone)] +struct AppData { + pub among_us_path: Rc>, +} + static AMONG_US_APPID: &'static str = "945360"; #[derive(Ord, PartialOrd, Eq, PartialEq)] @@ -111,9 +122,39 @@ async fn get_latest_updater_version() -> Result<(String, String), reqwest::Error Ok((String::from("no"), String::from("yes"))) } +impl AppDelegate for Delegate { + fn command( + &mut self, + _ctx: &mut DelegateCtx, + _target: Target, + cmd: &druid::Command, + data: &mut AppData, + _env: &Env, + ) -> Handled { + if let Some(file_info) = cmd.get(commands::OPEN_FILE) { + println!("{:?}", file_info); + let among_us_folder = file_info.path(); + let mut buf = among_us_folder.to_path_buf(); + buf.pop(); + let mut borrow = data.among_us_path.borrow_mut(); + *borrow = String::from(buf.to_str().unwrap()); + + // Pop the selected file off the end of the path + // among_us_folder.pop(); + println!("{}", buf.to_str().unwrap()); + println!("Handled!"); + Application::global().quit(); + return Handled::Yes; + } + Handled::No + } +} + #[tokio::main] async fn main() { let version = env!("CARGO_PKG_VERSION"); + let title_string: String = format!("Town of Us Updater - {}", version); + println!("Updater Version: {}", version); get_latest_updater_version().await.unwrap(); //let _version_check_thread_handle = thread::spawn(move || get_latest_updater_version()); @@ -127,26 +168,6 @@ async fn main() { installs_path.push("installs"); fs::create_dir(installs_path.clone()).unwrap_or(()); - let ui = UI::init().expect("UI failed to init"); - - let mut win = Window::new(&ui, "Town of Us Updater", 600, 400, WindowType::NoMenubar); - - let mut vbox = VerticalBox::new(&ui); - - vbox.set_padded(&ui, true); - - // let mut button = Button::new(&ui, "Button"); - // button.on_clicked(&ui, { - // let ui = ui.clone(); - // move |btn| { - // let folder_opt = detect_among_us_folder(); - // if folder_opt.is_some() { - // btn.set_text(&ui, "Amogus"); - // ui.quit(); - // } - // } - // }); - // DETERMINE AMONG US VERSION let mut among_us_folder = path::PathBuf::new(); @@ -162,13 +183,37 @@ async fn main() { if folder_opt.is_some() { among_us_folder.push(folder_opt.unwrap()); } else { - win.modal_msg(&ui, "Find Among Us", "On the following Open File dialog, navigate to your Among Us folder and select Among Us.exe"); - let open_window = win.open_file(&ui); + let path_rc = Rc::new(RefCell::new(String::from(""))); + let data: AppData = AppData { + among_us_path: path_rc.clone(), + }; + let open_button = Button::new("Locate Among Us").fix_height(45.0).on_click( + move |ctx, _: &mut AppData, _| { + ctx.submit_command( + druid::commands::SHOW_OPEN_PANEL.with(FileDialogOptions::new()), + ); + }, + ); + let flex: Flex = Flex::column().with_flex_child(open_button, 1.0); + let open_dialog = WindowDesc::new(|| flex) + .title("Among Us Not Found!") + .window_size((400.0, 400.0)); + AppLauncher::with_window(open_dialog) + .delegate(Delegate) + .launch(data) + .unwrap_or_default(); + + among_us_folder = path::PathBuf::from(Rc::try_unwrap(path_rc).unwrap().take()); + + println!("{}", among_us_folder.to_str().unwrap()); + + // win.modal_msg(&ui, "Find Among Us", "On the following Open File dialog, navigate to your Among Us folder and select Among Us.exe"); + // let open_window = win.open_file(&ui); // println!("{}", open_window.unwrap().to_str().unwrap()); - among_us_folder = open_window.unwrap().clone(); + // among_us_folder = open_window.unwrap().clone(); // Pop the selected file off the end of the path - among_us_folder.pop(); + // among_us_folder.pop(); } fs::write(existing_file_path, among_us_folder.to_str().unwrap()).unwrap(); } @@ -260,59 +305,77 @@ async fn main() { // Find existing installs, make buttons for them let install_iter = fs::read_dir(installs_path.clone()); + let mut root_column: druid::widget::Flex = druid::widget::Flex::column(); - match install_iter { - Ok(iter) => { - let mut collection: Vec> = iter.collect(); - collection.reverse(); - for i in collection { - // for i in iter { - let existing_ver_smash = i.unwrap().file_name(); - let mut ver_smash_split = existing_ver_smash.to_str().unwrap().split("-"); - let auv = ver_smash_split.next().unwrap(); - let button_string: String = format!( - "Among Us {} Town of Us {}", - auv, - ver_smash_split.next().unwrap() - ); - let mut group_vbox = VerticalBox::new(&ui); - let mut group = Group::new(&ui, auv.clone()); + if let Ok(iter) = install_iter { + let mut collection: Vec> = iter.collect(); + collection.reverse(); - let mut button = Button::new(&ui, button_string.as_str()); - button.on_clicked(&ui, { - let ui = ui.clone(); - let installs_path = installs_path.clone(); - let existing_ver_smash = existing_ver_smash.clone(); - move |btn| { - let mut new_path = installs_path.clone(); - new_path.push(existing_ver_smash.clone()); - println!("{}", new_path.clone().to_str().unwrap()); - attempt_run_among_us(&new_path); - btn.set_text(&ui, "Launching Among Us..."); - } - }); - group_vbox.append(&ui, button, LayoutStrategy::Stretchy); - group.set_child(&ui, group_vbox); - vbox.append(&ui, group, LayoutStrategy::Stretchy); - println!("{}", existing_ver_smash.clone().to_str().unwrap()); + // Iterate first to find labels: + + let mut flexbox_array: Vec> = Vec::new(); + let mut auv_array: Vec = Vec::new(); + + for i in &collection { + let existing_ver_smash = i.as_ref().unwrap().file_name(); + let mut ver_smash_split = existing_ver_smash.to_str().unwrap().split("-"); + let auv = ver_smash_split.next().unwrap(); + if !auv_array.contains(&auv.to_string()) { + let label_text = format!("Among Us {}", auv); + let flex: druid::widget::Flex = druid::widget::Flex::column() + .with_flex_child( + druid::widget::Label::new(label_text.as_str()).with_text_size(24.0), + 1.0, + ) + .with_default_spacer(); + flexbox_array.push(flex); + auv_array.push(auv.to_string()); } } - _ => (), + + for i in collection { + let existing_ver_smash = i.unwrap().file_name(); + let mut ver_smash_split = existing_ver_smash.to_str().unwrap().split("-"); + let auv = ver_smash_split.next().unwrap(); + let button_string: String = format!("Town of Us {}", ver_smash_split.next().unwrap()); + + let mut index = 0; + for j in &auv_array { + if j == auv { + let mut clone = installs_path.clone(); + clone.push(existing_ver_smash.clone()); + + let fybutton = druid::widget::Button::new(button_string.as_str()) + .fix_height(45.0) + .on_click(move |_, _: &mut u32, _| { + attempt_run_among_us(&clone); + }); + + flexbox_array + .get_mut(index) + .unwrap() + .add_flex_child(fybutton, 1.0); + + println!("{}", existing_ver_smash.clone().to_str().unwrap()); + } + index += 1; + } + } + for i in flexbox_array { + root_column.add_flex_child(i, 1.0); + } } // println!("Checking for updater updates..."); // let vals: (String, String) = version_check_thread_handle.join().unwrap(); - // let mut update_button = Button::new(&ui, "Check for New Version"); - // update_button.on_clicked(&ui, { - // let ui = ui.clone(); - // move |btn| {} - // }); - // vbox.append(&ui, update_button, LayoutStrategy::Stretchy); + println!("Launching main window..."); + + let main_window = WindowDesc::new(|| root_column) + .title(title_string) + .window_size((400.0, 400.0)); + AppLauncher::with_window(main_window).launch(1).unwrap(); - win.set_child(&ui, vbox); - win.show(&ui); - ui.main(); // let mut install_folder_path = installs_path.clone(); // install_folder_path.push(version_smash); // fs::create_dir(install_folder_path.clone()).unwrap_or(());