FileChooser

Struct FileChooser 

Source
pub struct FileChooser {
Show 13 fields id: Id, rect: Rectangle, children: Vec<Box<dyn View>>, current_path: PathBuf, entries: Vec<FileEntryData>, current_page: usize, pages_count: usize, mode: SelectionMode, breadcrumb_index: usize, entries_start_index: usize, error_message: Option<String>, selected_path: Option<PathBuf>, bottom_bar_rect: Rectangle,
}

Fields§

§id: Id§rect: Rectangle§children: Vec<Box<dyn View>>§current_path: PathBuf§entries: Vec<FileEntryData>§current_page: usize§pages_count: usize§mode: SelectionMode§breadcrumb_index: usize§entries_start_index: usize§error_message: Option<String>§selected_path: Option<PathBuf>

The path that was selected by the user. This is used to determine how the file chooser should be closed.

§bottom_bar_rect: Rectangle

Implementations§

Source§

impl FileChooser

Source

fn create_separator(rect: Rectangle) -> Box<dyn View>

Source

fn get_title_for_mode(mode: SelectionMode) -> &'static str

Source

fn build_children( rect: Rectangle, initial_path: &Path, mode: SelectionMode, layout: &FileChooserLayout, context: &mut Context, ) -> (Vec<Box<dyn View>>, usize)

Source

pub fn new( rect: Rectangle, initial_path: PathBuf, mode: SelectionMode, _hub: &Hub, rq: &mut RenderQueue, context: &mut Context, ) -> FileChooser

Source

fn list_directory(&self, path: &Path) -> Result<Vec<FileEntryData>, String>

Source

fn navigate_to( &mut self, path: PathBuf, rq: &mut RenderQueue, context: &mut Context, )

Source

fn update_breadcrumb(&mut self, context: &mut Context)

Source

fn calculate_entry_rect( &self, y_pos: i32, index: usize, max_lines: usize, big_height: i32, big_thickness: i32, small_thickness: i32, ) -> Rectangle

Source

fn add_error_label( &mut self, breadcrumb_bottom: i32, thickness: i32, big_height: i32, )

Source

fn add_empty_label( &mut self, breadcrumb_bottom: i32, thickness: i32, big_height: i32, )

Source

fn add_file_entries( &mut self, start_idx: usize, end_idx: usize, breadcrumb_bottom: i32, thickness: i32, big_height: i32, big_thickness: i32, small_thickness: i32, max_lines: usize, context: &mut Context, )

Adds file entry views to the FileChooser’s children for the current page.

Each file entry is represented using the FileEntry component, which displays the file or directory’s name, icon, and metadata (such as size and modification date). Between each entry, a separator is added using the Filler component to visually separate the entries.

Components used to build each file entry:

  • FileEntry: Displays the file or directory entry, including icon, name, and metadata.
  • Filler: Used as a separator between file entries for visual clarity.
§Arguments
  • start_idx - The starting index of the entries to display.
  • end_idx - The ending index (exclusive) of the entries to display.
  • breadcrumb_bottom - The y-coordinate below the breadcrumb bar.
  • thickness - The thickness of the separator lines.
  • big_height - The height of each file entry row.
  • big_thickness - The thickness of the separator between entries.
  • small_thickness - The thickness of the separator at the end of the list.
  • max_lines - The maximum number of entries to display per page.
  • context
Source

fn update_entries_list(&mut self, rq: &mut RenderQueue, context: &mut Context)

Source

fn create_bottom_bar(&mut self)

Source

fn select_item(&mut self, path: PathBuf, bus: &mut Bus)

Selects the given item if it matches the selection mode. Sends FileChooserClosed event with the selected path to the bus.

Source

fn go_to_page( &mut self, dir: CycleDir, rq: &mut RenderQueue, context: &mut Context, )

Trait Implementations§

Source§

impl View for FileChooser

Source§

fn handle_event( &mut self, evt: &Event, _hub: &Hub, bus: &mut Bus, rq: &mut RenderQueue, context: &mut Context, ) -> bool

Source§

fn render( &self, _fb: &mut dyn Framebuffer, _rect: Rectangle, _fonts: &mut Fonts, )

Source§

fn rect(&self) -> &Rectangle

Source§

fn rect_mut(&mut self) -> &mut Rectangle

Source§

fn children(&self) -> &Vec<Box<dyn View>>

Source§

fn children_mut(&mut self) -> &mut Vec<Box<dyn View>>

Source§

fn id(&self) -> Id

Source§

fn view_id(&self) -> Option<ViewId>

Source§

fn render_rect(&self, _rect: &Rectangle) -> Rectangle

Source§

fn resize( &mut self, rect: Rectangle, _hub: &Hub, _rq: &mut RenderQueue, _context: &mut Context, )

Source§

fn child(&self, index: usize) -> &dyn View

Source§

fn child_mut(&mut self, index: usize) -> &mut dyn View

Source§

fn len(&self) -> usize

Source§

fn might_skip(&self, _evt: &Event) -> bool

Source§

fn might_rotate(&self) -> bool

Source§

fn is_background(&self) -> bool

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Converts Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Converts Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Converts &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Converts &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more