MenuHolder

Struct MenuHolder 

Source
pub struct MenuHolder {
Show 21 fields pub window: ContentWindow, pub bulk: Bulk, pub cli_applications: CliApplications, pub cloud: OpendalContainer, pub completion: Completion, pub compression: Compresser, pub context: ContextMenu, pub flagged: Flagged, pub input: Input, pub input_history: InputHistory, pub iso_device: Option<IsoDevice>, pub marks: Marks, pub temp_marks: TempMarks, pub password_holder: PasswordHolder, pub picker: Picker, pub shortcut: Shortcut, pub tui_applications: TuiApplications, pub trash: Trash, pub sudo_command: Option<String>, pub history: History, pub mount: Mount,
}
Expand description

Holds almost every menu except for the history, which is tab specific. Only one instance is created and hold by status. It acts as an interface for basic methods (navigation, length, completion) etc. it also keeps track of the content window and user input (in menus only, not for the fuzzy finder).

The poor choices of architecture forced the creation of such a monster. For instance, even if you never use marks or cloud, their instance is saved here, waisting ressources.

Building them lazylly is on the todo list.

Fields§

§window: ContentWindow

Window for scrollable menus

§bulk: Bulk

Bulk rename

§cli_applications: CliApplications

CLI applications

§cloud: OpendalContainer

cloud

§completion: Completion

Completion list and index in it.

§compression: Compresser

Compression methods

§context: ContextMenu

Cotext menu

§flagged: Flagged

The flagged files

§input: Input

The typed input by the user

§input_history: InputHistory

The user input history.

§iso_device: Option<IsoDevice>

Iso mounter. Set to None by default, dropped ASAP

§marks: Marks

Marks allows you to jump to a save mark

§temp_marks: TempMarks

Temporary marks allows you to jump to a save mark

§password_holder: PasswordHolder

Hold password between their typing and usage

§picker: Picker

basic picker

§shortcut: Shortcut

Predefined shortcuts

§tui_applications: TuiApplications

TUI application

§trash: Trash

The trash

§sudo_command: Option<String>

Last sudo command ran

§history: History

History - here for compatibility reasons only

§mount: Mount

mounts

Implementations§

Source§

impl MenuHolder

Source

pub fn new(start_dir: &Path, binds: &Bindings) -> Result<Self>

Source

pub fn reset(&mut self)

Source

pub fn resize(&mut self, menu_mode: Menu, height: usize)

Source

pub fn replace_input_by_permissions(&mut self)

Replace the current input by the permission of the first flagged file as an octal value. If the flagged has permission “rwxrw.r..” or 764 in octal, “764” will be the current input. Only the last 3 octal digits are kept. Nothing is done if :

  • there’s no flagged file,
  • can’t read the metadata of the first flagged file.

It should never happen.

Source

pub fn input_complete(&mut self, tab: &mut Tab) -> Result<()>

Fill the input string with the currently selected completion.

Source

pub fn mount_remote(&mut self, current_path: &str)

Run sshfs with typed parameters to mount a remote directory in current directory. sshfs should be reachable in path. The user must type 3 arguments like this : username hostname remote_path. If the user doesn’t provide 3 arguments,

Source

pub fn remove_selected_flagged(&mut self) -> Result<()>

Remove a flag file from Jump mode

Source

pub fn trash_delete_permanently(&mut self) -> Result<()>

Source

pub fn delete_flagged_files(&mut self) -> Result<()>

Delete all the flagged files & directory recursively. If an output socket was provided at launch, it will inform the IPC server about those deletions. Clear the flagged files.

§Errors

May fail if any deletion is impossible (permissions, file already deleted etc.)

Source

pub fn clear_sudo_attributes(&mut self) -> Result<()>

Reset the password holder, drop the sudo privileges (sudo -k) and clear the sudo command.

Source

pub fn input_insert(&mut self, char: char) -> Result<()>

Insert a char in the input string.

Source

pub fn refresh_shortcuts( &mut self, mount_points: &[&Path], left_path: &Path, right_path: &Path, )

Refresh the shortcuts. It drops non “hardcoded” shortcuts and extend the vector with the mount points.

Source

pub fn completion_reset(&mut self)

Source

pub fn completion_tab(&mut self)

Source

pub fn len(&self, menu_mode: Menu) -> usize

Source

pub fn index(&self, menu_mode: Menu) -> usize

Source

pub fn page_down(&mut self, navigate: Navigate)

Source

pub fn page_up(&mut self, navigate: Navigate)

Source

pub fn completion_prev(&mut self, input_completed: InputCompleted)

Source

pub fn completion_next(&mut self, input_completed: InputCompleted)

Source

pub fn next(&mut self, navigate: Navigate)

Source

pub fn prev(&mut self, navigate: Navigate)

Source

pub fn set_index(&mut self, index: usize, navigate: Navigate)

Source

pub fn select_last(&mut self, navigate: Navigate)

Source

pub fn draw_navigate(&self, f: &mut Frame<'_>, rect: &Rect, navigate: Navigate)

Draw a navigation menu with its simple draw_menu method.

§Errors

Some mode can’t be displayed directly and this method will raise an error. It’s the responsability of the caller to check beforehand.

Source

pub fn input_history_next(&mut self, tab: &mut Tab) -> Result<()>

Replace the current input by the next proposition from history for this edit mode.

Source

pub fn input_history_prev(&mut self, tab: &mut Tab) -> Result<()>

Replace the current input by the previous proposition from history for this edit mode.

Source

pub fn shortcut_from_char(&mut self, c: char) -> bool

Navigates to the index in the shortcut field based on the given character.

Source

pub fn context_from_char(&mut self, c: char) -> bool

Navigates to the index in the context field based on the given character.

Source

pub fn tui_applications_from_char(&mut self, c: char) -> bool

Navigates to the index in the tui_applications field based on the given character.

Source

pub fn cli_applications_from_char(&mut self, c: char) -> bool

Navigates to the index in the cli_applications field based on the given character.

Source

pub fn compression_method_from_char(&mut self, c: char) -> bool

Navigates to the index in the compression field based on the given character.

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
Source§

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

Source§

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

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

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

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

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

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

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

Convert &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> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

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

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

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.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

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

Source§

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
Source§

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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

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
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<T> MaybeSend for T
where T: Send,