Skip to main content

EntryDialogState

Struct EntryDialogState 

Source
pub struct EntryDialogState {
Show 18 fields pub entry_key: String, pub map_path: String, pub title: String, pub is_new: bool, pub items: Vec<SettingItem>, pub selected_item: usize, pub sub_focus: Option<usize>, pub editing_text: bool, pub focused_button: usize, pub focus_on_buttons: bool, pub delete_requested: bool, pub scroll_offset: usize, pub viewport_height: usize, pub hover_item: Option<usize>, pub hover_button: Option<usize>, pub original_value: Value, pub first_editable_index: usize, pub no_delete: bool,
}
Expand description

State for the entry detail dialog

Fields§

§entry_key: String

The entry key (e.g., “rust” for language)

§map_path: String

The map path this entry belongs to (e.g., “/languages”, “/lsp”)

§title: String

Human-readable title for the dialog

§is_new: bool

Whether this is a new entry (vs editing existing)

§items: Vec<SettingItem>

Items in the dialog (using same SettingItem structure as main settings)

§selected_item: usize

Currently selected item index

§sub_focus: Option<usize>

Sub-focus index within the selected item (for TextList/Map navigation)

§editing_text: bool

Whether we’re in text editing mode

§focused_button: usize

Currently focused button (0=Save, 1=Delete, 2=Cancel for existing; 0=Save, 1=Cancel for new)

§focus_on_buttons: bool

Whether focus is on buttons (true) or items (false)

§delete_requested: bool

Whether deletion was requested

§scroll_offset: usize

Scroll offset for the items area

§viewport_height: usize

Last known viewport height (updated during render)

§hover_item: Option<usize>

Hovered item index (for mouse hover feedback)

§hover_button: Option<usize>

Hovered button index (for mouse hover feedback)

§original_value: Value

Original value when dialog was opened (for Cancel to restore)

§first_editable_index: usize

Index of first editable item (items before this are read-only) Used for rendering separator and focus navigation

§no_delete: bool

Whether deletion is disabled (for auto-managed entries like plugins)

Implementations§

Source§

impl EntryDialogState

Source

pub fn from_schema( key: String, value: &Value, schema: &SettingSchema, map_path: &str, is_new: bool, no_delete: bool, ) -> Self

Create a dialog from a schema definition

This is the primary, schema-driven constructor. It builds items dynamically from the SettingSchema’s properties using the same build logic as the main settings UI.

Source

pub fn for_array_item( index: Option<usize>, value: &Value, schema: &SettingSchema, array_path: &str, is_new: bool, ) -> Self

Create a dialog for an array item (no key field)

Used for ObjectArray controls where items are identified by index, not key.

Source

pub fn get_key(&self) -> String

Get the current key value from the key item

Source

pub fn button_count(&self) -> usize

Get button count (3 for existing entries with Delete, 2 for new/no_delete entries)

Source

pub fn to_value(&self) -> Value

Convert dialog state back to JSON value (excludes the key item)

Source

pub fn current_item(&self) -> Option<&SettingItem>

Get currently selected item

Source

pub fn current_item_mut(&mut self) -> Option<&mut SettingItem>

Get currently selected item mutably

Source

pub fn focus_next(&mut self)

Move focus to next item or button

Source

pub fn focus_prev(&mut self)

Move focus to previous item or button

Source

pub fn sub_focus_next(&mut self)

Move to next sub-item within current control (for TextList, Map)

Source

pub fn sub_focus_prev(&mut self)

Move to previous sub-item within current control

Source

pub fn update_focus_states(&mut self)

Update focus states for all items

Source

pub fn total_content_height(&self) -> usize

Calculate total content height for all items (including separator)

Source

pub fn selected_item_offset(&self) -> usize

Calculate the Y offset of the selected item (including separator)

Source

pub fn selected_item_height(&self) -> usize

Calculate the height of the selected item

Source

pub fn ensure_selected_visible(&mut self, viewport_height: usize)

Ensure the selected item is visible within the viewport

Source

pub fn ensure_cursor_visible(&mut self)

Ensure the cursor within a JSON editor is visible

When editing a multiline JSON control, this adjusts scroll_offset to keep the cursor row visible within the viewport.

Source

pub fn scroll_up(&mut self)

Scroll up by one line

Source

pub fn scroll_down(&mut self, viewport_height: usize)

Scroll down by one line

Source

pub fn scroll_to_ratio(&mut self, ratio: f32)

Scroll to a position based on ratio (0.0 = top, 1.0 = bottom)

Used for scrollbar drag operations.

Source

pub fn start_editing(&mut self)

Start text editing mode for the current control

Source

pub fn stop_editing(&mut self)

Stop text editing mode

Source

pub fn insert_char(&mut self, c: char)

Handle character input

Source

pub fn insert_str(&mut self, s: &str)

Source

pub fn backspace(&mut self)

Handle backspace

Source

pub fn cursor_left(&mut self)

Handle cursor left

Source

pub fn cursor_left_selecting(&mut self)

Handle cursor left with selection (Shift+Left)

Source

pub fn cursor_right(&mut self)

Handle cursor right

Source

pub fn cursor_right_selecting(&mut self)

Handle cursor right with selection (Shift+Right)

Source

pub fn cursor_up(&mut self)

Handle cursor up (for multiline controls)

Source

pub fn cursor_up_selecting(&mut self)

Handle cursor up with selection (Shift+Up)

Source

pub fn cursor_down(&mut self)

Handle cursor down (for multiline controls)

Source

pub fn cursor_down_selecting(&mut self)

Handle cursor down with selection (Shift+Down)

Source

pub fn insert_newline(&mut self)

Insert newline in JSON editor

Source

pub fn revert_json_and_stop(&mut self)

Revert JSON changes to original and stop editing

Source

pub fn is_editing_json(&self) -> bool

Check if current control is a JSON editor

Source

pub fn toggle_bool(&mut self)

Toggle boolean value

Source

pub fn toggle_dropdown(&mut self)

Toggle dropdown open state

Source

pub fn dropdown_prev(&mut self)

Move dropdown selection up

Source

pub fn dropdown_next(&mut self)

Move dropdown selection down

Source

pub fn dropdown_confirm(&mut self)

Confirm dropdown selection

Source

pub fn increment_number(&mut self)

Increment number value

Source

pub fn decrement_number(&mut self)

Decrement number value

Source

pub fn delete_list_item(&mut self)

Delete the currently focused item from a TextList control

Source

pub fn delete(&mut self)

Delete character at cursor (forward delete)

Source

pub fn cursor_home(&mut self)

Move cursor to beginning of line

Source

pub fn cursor_end(&mut self)

Move cursor to end of line

Source

pub fn select_all(&mut self)

Select all text in current control

Source

pub fn selected_text(&self) -> Option<String>

Get selected text from current JSON control

Source

pub fn is_editing(&self) -> bool

Check if any field is currently in edit mode

Trait Implementations§

Source§

impl Clone for EntryDialogState

Source§

fn clone(&self) -> EntryDialogState

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for EntryDialogState

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<'a, T> FromIn<'a, T> for T

Source§

fn from_in(t: T, _: &'a Allocator) -> T

Converts to this type from the input type within the given allocator.
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<'a, T, U> IntoIn<'a, U> for T
where U: FromIn<'a, T>,

Source§

fn into_in(self, allocator: &'a Allocator) -> U

Converts this type into the (usually inferred) input type within the given allocator.
Source§

impl<D> OwoColorize for D

Source§

fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
where C: Color,

Set the foreground color generically Read more
Source§

fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
where C: Color,

Set the background color generically. Read more
Source§

fn black(&self) -> FgColorDisplay<'_, Black, Self>

Change the foreground color to black
Source§

fn on_black(&self) -> BgColorDisplay<'_, Black, Self>

Change the background color to black
Source§

fn red(&self) -> FgColorDisplay<'_, Red, Self>

Change the foreground color to red
Source§

fn on_red(&self) -> BgColorDisplay<'_, Red, Self>

Change the background color to red
Source§

fn green(&self) -> FgColorDisplay<'_, Green, Self>

Change the foreground color to green
Source§

fn on_green(&self) -> BgColorDisplay<'_, Green, Self>

Change the background color to green
Source§

fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>

Change the foreground color to yellow
Source§

fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>

Change the background color to yellow
Source§

fn blue(&self) -> FgColorDisplay<'_, Blue, Self>

Change the foreground color to blue
Source§

fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>

Change the background color to blue
Source§

fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to magenta
Source§

fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to magenta
Source§

fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to purple
Source§

fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to purple
Source§

fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>

Change the foreground color to cyan
Source§

fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>

Change the background color to cyan
Source§

fn white(&self) -> FgColorDisplay<'_, White, Self>

Change the foreground color to white
Source§

fn on_white(&self) -> BgColorDisplay<'_, White, Self>

Change the background color to white
Source§

fn default_color(&self) -> FgColorDisplay<'_, Default, Self>

Change the foreground color to the terminal default
Source§

fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>

Change the background color to the terminal default
Source§

fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>

Change the foreground color to bright black
Source§

fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>

Change the background color to bright black
Source§

fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>

Change the foreground color to bright red
Source§

fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>

Change the background color to bright red
Source§

fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>

Change the foreground color to bright green
Source§

fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>

Change the background color to bright green
Source§

fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>

Change the foreground color to bright yellow
Source§

fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>

Change the background color to bright yellow
Source§

fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>

Change the foreground color to bright blue
Source§

fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>

Change the background color to bright blue
Source§

fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright magenta
Source§

fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright magenta
Source§

fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright purple
Source§

fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright purple
Source§

fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>

Change the foreground color to bright cyan
Source§

fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>

Change the background color to bright cyan
Source§

fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>

Change the foreground color to bright white
Source§

fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>

Change the background color to bright white
Source§

fn bold(&self) -> BoldDisplay<'_, Self>

Make the text bold
Source§

fn dimmed(&self) -> DimDisplay<'_, Self>

Make the text dim
Source§

fn italic(&self) -> ItalicDisplay<'_, Self>

Make the text italicized
Source§

fn underline(&self) -> UnderlineDisplay<'_, Self>

Make the text underlined
Make the text blink
Make the text blink (but fast!)
Source§

fn reversed(&self) -> ReversedDisplay<'_, Self>

Swap the foreground and background colors
Source§

fn hidden(&self) -> HiddenDisplay<'_, Self>

Hide the text
Source§

fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>

Cross out the text
Source§

fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at compile-time. If the color is constant, use either OwoColorize::fg or a color-specific method, such as OwoColorize::green, Read more
Source§

fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at compile-time. If the color is constant, use either OwoColorize::bg or a color-specific method, such as OwoColorize::on_yellow, Read more
Source§

fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.
Source§

fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.
Source§

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.
Source§

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.
Source§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
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> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> TryClone for T
where T: Clone,

Source§

fn try_clone(&self) -> Result<T, Error>

Clones self, possibly returning an error.
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<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> ParallelSend for T