From 74425c1e805655254f184279411faa0b3a006234 Mon Sep 17 00:00:00 2001 From: Akshanabha Chakraborty Date: Sun, 2 Feb 2025 21:23:46 +0530 Subject: [PATCH] Back button --- lead_docs_cli/src/viewer/mod.rs | 5 ++++- lead_docs_cli/src/viewer/select.rs | 12 ++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/lead_docs_cli/src/viewer/mod.rs b/lead_docs_cli/src/viewer/mod.rs index 96eeebd..bf12b36 100644 --- a/lead_docs_cli/src/viewer/mod.rs +++ b/lead_docs_cli/src/viewer/mod.rs @@ -1,5 +1,5 @@ use cursive::{ - event::Key, menu::Tree, theme::Theme, view::Resizable, views::{Dialog, SelectView, TextContent, TextView}, Cursive, CursiveExt + event::Key, menu::Tree, theme::Theme, view::{Resizable, Scrollable}, views::{Dialog, SelectView, TextContent, TextView}, Cursive, CursiveExt }; use select::{open_pkg, sel_method, select_pkg, show_doc}; @@ -99,6 +99,8 @@ pub fn run_cursive() { } pub fn home(siv: &mut Cursive) { + while let Some(_) = siv.pop_layer() {} + let len = siv.menubar().len(); siv.menubar().remove(len - 1); siv.menubar().add_leaf( @@ -137,6 +139,7 @@ pub fn home(siv: &mut Cursive) { .on_submit(move |c, v| { handle(c, *v); }) + .scrollable() .fixed_size((20, 6)), ) .title("Select") diff --git a/lead_docs_cli/src/viewer/select.rs b/lead_docs_cli/src/viewer/select.rs index 8793709..b40d298 100644 --- a/lead_docs_cli/src/viewer/select.rs +++ b/lead_docs_cli/src/viewer/select.rs @@ -1,7 +1,7 @@ use cursive::{utils::markup::markdown::parse, view::{Resizable, Scrollable}, views::{Dialog, SelectView, TextView}, Cursive, With}; use crate::utils::{docs::{self, PackageEntry}, package::Package}; -use super::{ApplicationRoot, ApplicationState, RawPtr}; +use super::{home, ApplicationRoot, ApplicationState, RawPtr}; pub fn select_pkg(c: &mut Cursive) { while let Some(_) = c.pop_layer() {} @@ -35,9 +35,10 @@ pub fn select_pkg(c: &mut Cursive) { c.add_layer( Dialog::around( - view + view.scrollable() ) .title("Select package") + .button("↰ Back", |siv| home(siv)) .dismiss_button("Close") .full_screen(), ); @@ -71,9 +72,10 @@ pub fn open_pkg(c: &mut Cursive) { c.add_layer( Dialog::around( - view + view.scrollable() ) .title(unsafe { &*name }) + .button("↰ Back", |siv| select_pkg(siv)) .dismiss_button("Close") .full_screen(), ); @@ -108,9 +110,10 @@ pub fn sel_method(c: &mut Cursive) { c.add_layer( Dialog::around( - view + view.scrollable() ) .title(name) + .button("↰ Back", |siv| open_pkg(siv)) .dismiss_button("Close") .full_screen(), ); @@ -139,6 +142,7 @@ pub fn show_doc(c: &mut Cursive) { .scrollable() ) .title(name) + .button("↰ Back", |siv| sel_method(siv)) .dismiss_button("Close") .full_screen(), );