pub struct InternalSettings {
pub force_clear: bool,
pub must_quit: bool,
pub nvim_server: String,
pub opener: Opener,
pub width: u16,
pub height: u16,
pub disks: Disks,
pub inside_neovim: bool,
pub copy_file_queue: Vec<(Vec<PathBuf>, PathBuf)>,
pub in_mem_progress: Option<InMemoryTerm>,
pub clear_before_quit: bool,
/* private fields */
}Expand description
Internal settings of the status.
Every setting which couldn’t be attached elsewhere and is needed by the whole application. It knows:
- if the content should be completely refreshed,
- if the application has to quit,
- the address of the nvim_server to send files to and if the application was launched from neovim,
- which opener should be used for kind of files,
- the height & width of the application,
- basic informations about disks being used,
- a copy queue to display informations about files beeing copied.
Fields§
§force_clear: boolDo we have to clear the screen ?
must_quit: boolTrue if the user issued a quit event (Key::Char('q') by default).
It’s used to exit the main loop before reseting the cursor.
nvim_server: StringNVIM RPC server address
opener: OpenerThe opener used by the application.
width: u16terminal width
height: u16terminal height
disks: DisksInfo about the running machine. Only used to detect disks and their mount points.
inside_neovim: booltrue if the application was launched inside a neovim terminal emulator
copy_file_queue: Vec<(Vec<PathBuf>, PathBuf)>queue of pairs (sources, dest) to be copied. it shouldn’t be massive under normal usage so we can use a vector instead of an efficient queue data structure.
in_mem_progress: Option<InMemoryTerm>internal progressbar used to display copy progress
clear_before_quit: booltrue if the terminal should be cleared before exit. It’s set to true when we reuse the window to start a new shell.
Implementations§
Source§impl InternalSettings
impl InternalSettings
pub fn new(opener: Opener, size: Size, disks: Disks) -> Self
pub fn update_size(&mut self, width: u16, height: u16)
Sourcepub fn force_clear(&mut self)
pub fn force_clear(&mut self)
Set a “force clear” flag to true, which will reset the display. It’s used when some command or whatever may pollute the terminal. We ensure to clear it before displaying again.
pub fn reset_clear(&mut self)
pub fn should_be_cleared(&self) -> bool
pub fn disks(&mut self) -> &Disks
pub fn mount_points(&mut self) -> Vec<&Path>
pub fn update_nvim_listen_address(&mut self)
Sourcepub fn copy_file_remove_head(&mut self) -> Result<()>
pub fn copy_file_remove_head(&mut self) -> Result<()>
Remove the top of the copy queue.
pub fn copy_next_file_in_queue( &mut self, fm_sender: Arc<Sender<FmEvents>>, width: u16, ) -> Result<()>
Sourcepub fn store_copy_progress(&mut self, in_mem_progress_bar: InMemoryTerm)
pub fn store_copy_progress(&mut self, in_mem_progress_bar: InMemoryTerm)
Store copy progress bar. When a copy progress bar is stored, display manager is responsible for its display in the left tab.
Sourcepub fn unset_copy_progress(&mut self)
pub fn unset_copy_progress(&mut self)
Set copy progress bar to None.
Sourcepub fn disable_display(&mut self)
pub fn disable_display(&mut self)
Disable the application display. It’s used to give to allow another program to be executed.
Sourcepub fn enable_display(&mut self)
pub fn enable_display(&mut self)
Display the application after it gave its terminal to another program.
Enable the display again, clear the screen, set a flag to clear before quitting application.
pub fn is_disabled(&self) -> bool
pub fn open_in_window(&mut self, args: &[&str]) -> Result<()>
pub fn open_single_file(&mut self, path: &Path) -> Result<()>
pub fn open_flagged_files(&mut self, flagged: &Flagged) -> Result<()>
Sourcepub fn quit(&mut self)
pub fn quit(&mut self)
Set the must quit flag to true. The next update call will exit the application. It doesn’t exit the application itself.
pub fn format_copy_progress(&self) -> Option<String>
Auto Trait Implementations§
impl Freeze for InternalSettings
impl RefUnwindSafe for InternalSettings
impl Send for InternalSettings
impl Sync for InternalSettings
impl Unpin for InternalSettings
impl UnwindSafe for InternalSettings
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
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)
fn as_any(&self) -> &(dyn Any + 'static)
&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)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&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
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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