From afe649e0efc31fcd33a828e54bd6313cd37f1784 Mon Sep 17 00:00:00 2001 From: pablu Date: Tue, 19 May 2026 20:51:10 +0200 Subject: Add available package loading, update README.md, use eyre_color::Result --- src/app.rs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'src/app.rs') diff --git a/src/app.rs b/src/app.rs index 8e0de7f..6e9e8ab 100644 --- a/src/app.rs +++ b/src/app.rs @@ -1,17 +1,19 @@ use ratatui::widgets::ListState; use ratatui_textarea::TextArea; -use crate::gentoo::{Package, portage::Portage}; +use crate::gentoo::{InstalledPackage, portage::Portage}; #[derive(Debug)] pub enum ViewState { Dashboard = 0, InstalledPackages = 1, + AvailablePackages = 2, } #[derive(Debug)] pub struct App<'a> { portage: Portage, + pub list_state: ListState, pub showing_search_window: bool, pub textarea: TextArea<'a>, @@ -41,11 +43,11 @@ impl App<'_> { self.portage.world_packages.len() } - pub fn installed_packages(&self) -> &[Package] { + pub fn installed_packages(&self) -> &[InstalledPackage] { &self.portage.installed_packages } - pub fn current_package(&self) -> &Package { + pub fn current_package(&self) -> &InstalledPackage { let selected_package_index = self.list_state.selected().unwrap_or_default(); &self.portage.installed_packages[selected_package_index] } @@ -63,7 +65,8 @@ impl App<'_> { pub fn cycle_current_tab(&mut self) { match self.view { ViewState::Dashboard => self.view = ViewState::InstalledPackages, - ViewState::InstalledPackages => self.view = ViewState::Dashboard, + ViewState::InstalledPackages => self.view = ViewState::AvailablePackages, + ViewState::AvailablePackages => self.view = ViewState::Dashboard, } } @@ -74,7 +77,8 @@ impl App<'_> { .iter() .enumerate() .filter(|(_, s)| { - s.name + s.atom + .qualified_name() .to_lowercase() .contains(&self.textarea.lines()[0].to_lowercase()) }) -- cgit 1.3.1