add GUI element to display simple `pijul log` results
Dependencies
- [2]
4RPYR65Cconnect GUI to pijul to display simple channel list - [3]
NSE6BLWAinit slint project from https://github.com/slint-ui/slint-rust-template - [*]
NCRTU7M4cargo init
Change contents
- replacement in ui/app-window.slint at line 1
import { Button, VerticalBox } from "std-widgets.slint";import { Button, VerticalBox, HorizontalBox, ScrollView } from "std-widgets.slint"; - edit in ui/app-window.slint at line 5
in-out property <string> changes_log: ""; - replacement in ui/app-window.slint at line 7[2.84]→[3.239:272](∅→∅),[3.239]→[3.239:272](∅→∅),[3.272]→[2.85:139](∅→∅),[2.139]→[3.318:328](∅→∅),[3.318]→[3.318:328](∅→∅)
VerticalBox {Text {text: "channels: \n\{root.channel_list}";}callback request-changes-log();width: 600px;height: 400px; - edit in ui/app-window.slint at line 12
VerticalBox { - edit in ui/app-window.slint at line 14
vertical-stretch: 0; - edit in ui/app-window.slint at line 18
root.request-changes-log(); - edit in ui/app-window.slint at line 21
HorizontalBox {vertical-stretch: 1;VerticalBox {alignment: start;preferred-width: 150px;Text {text: "channels";}Text {text: "\{root.channel_list}";}}ScrollView {VerticalBox {alignment: start;preferred-width: 500px;Text {text: "log";}Text {text: "\{root.changes_log}";}}}} - replacement in src/main.rs at line 9
use cmds::channel;use cmds::{channel, log}; - edit in src/main.rs at line 34
}});ui.on_request_changes_log({let ui_handle = ui.as_weak();move || {let ui = ui_handle.unwrap();let log_output = log(Path::new("/Users/beckerawqatty/.nix-profile/bin/pijul"),Path::new("/Users/beckerawqatty/Repos/pijul-gui/"),);let log = match log_output {Ok(log) => log,Err(e) => {println!("{:?}", e);return;}};ui.set_changes_log(SharedString::from(&log)); - edit in src/cmds.rs at line 8
.arg("--no-prompt").arg("--repository").arg(repo);let output = cmd.output()?;check_exit_status(cmd, output.status)?;Ok(String::from_utf8(output.stdout)?)}pub fn log(exe: &std::path::Path, repo: &std::path::Path) -> Result<String, Error> {let mut cmd = Command::new(exe);let cmd = cmd.arg("log")