Skip to main content

Mode

Enum Mode 

Source
pub enum Mode {
Show 24 variants Board, BulkModal, TriageInbox, RolloverDialog, Detail, Form, ConfirmDelete, MoveIntoDone { target_col: usize, buffer: String, }, ConfirmBlockedMove { target_col: usize, warning: String, }, TransitionReason { target_col: usize, reason: String, buffer: String, }, Help { return_to: Box<Mode>, }, ContextMenu { return_to: Box<Mode>, }, Filter { buffer: String, }, FilterModal, Settings, PlanningManagement, PlanningForm, DatePicker { return_to: Box<Mode>, }, Comment { buffer: String, }, Asset { buffer: String, }, EditLintWarning { filename: String, message: String, }, LinkCreate { buffer: String, step: LinkStep, target: Option<u32>, }, LinkEdit { index: usize, buffer: String, step: LinkStep, target: Option<u32>, kind: Option<RelationKind>, }, ConfirmRemoveRelationship { index: usize, },
}

Variants§

§

Board

§

BulkModal

The batch modal (WP07). The modal’s state is in App::bulk; the mode says only that it is open, exactly as Mode::FilterModal does.

§

TriageInbox

The triage inbox (WP06, T029). A modal over the board like settings and the batch modal, so the board, its tabs and its card cursor are all still there underneath and unchanged when it closes.

The inbox’s own cursor and selection live in App::triage rather than in BoardState, which is what makes “the normal board/detail selection is unchanged when the inbox is not active” a property of which struct each cursor is in rather than something a test has to remember to restore.

§

RolloverDialog

§

Detail

§

Form

§

ConfirmDelete

§

MoveIntoDone

Fields

§target_col: usize
§buffer: String
§

ConfirmBlockedMove

The blocked-move acknowledgement prompt (WP04, FR-004).

Reached instead of applying a move toward the board’s completion column when the issue has open blockers. warning is the shared text from commands::blocked_note, so the TUI says exactly what the CLI says.

Fields

§target_col: usize
§warning: String
§

TransitionReason

The reasoned-override prompt (WP05, FR-002, contract §3.3).

Reached instead of applying a move that leaves a terminal category when the board declares a category_map. reason is the shared diagnostic from the service, so the TUI says exactly what the CLI says — parity includes the message, not only the accept/refuse decision.

This prompt is the whole reason WP05 exists on this path. Until it, a terminal-exit transition was refused by the seam with a message naming tix move … --reason, and the TUI had no way to supply one — the flag is a CLI spelling and the TUI has no flags. So a user who moved an issue to done in the TUI could not move it back, in the TUI, at all.

Fields

§target_col: usize
§reason: String

The refusal being overridden, rendered verbatim.

§buffer: String

What the user has typed so far.

§

Help

Fields

§return_to: Box<Mode>
§

ContextMenu

Issue context menu opened by right-clicking a card (D5); return_to is the mode it was opened from (the board). Activation runs the exact action the equivalent key binding would.

Fields

§return_to: Box<Mode>
§

Filter

Fields

§buffer: String
§

FilterModal

§

Settings

§

PlanningManagement

§

PlanningForm

§

DatePicker

Calendar date picker popup; return_to is the modal it overlays.

Fields

§return_to: Box<Mode>
§

Comment

Fields

§buffer: String
§

Asset

Fields

§buffer: String
§

EditLintWarning

Fields

§filename: String
§message: String
§

LinkCreate

Create a relationship from the detail view (#1359), in two steps.

Step::Target asks for the other issue as a selector — the same string tix link <from> <to> takes, so #4, 4, or a title fragment all work and an unresolvable one produces the CLI’s own error rather than a TUI-specific one. Step::Kind then asks for the kind, and it is required: C-001 forbids an untypeable relationship, so there is no default to fall back to and an empty or unrecognised answer is a refusal, not a guess.

Fields

§buffer: String
§target: Option<u32>

The target resolved by the Target step, carried forward to Kind.

Carried rather than re-resolved: the first step already applied the CLI’s selector rules and reported its errors, and re-reading the buffer’s meaning a second time would be a second place for the two to disagree. A Kind step with no target cannot happen — the mode is only entered in that state with one.

§

LinkEdit

Re-kind or retarget the relationship under the detail pane’s cursor.

Carries the target it was opened with so the kind step can submit an edit rather than a create: tix link edit <id> is an edit precisely because the stable id survives a re-kind, and a create-then-remove pair would lose it.

Fields

§index: usize
§buffer: String
§target: Option<u32>

The new target, when the user supplied one. None means keep the existing target and change only the kind — the same as tix link edit <id> --type … with no --to.

§kind: Option<RelationKind>

The new kind, when the user supplied one. None likewise means keep.

§

ConfirmRemoveRelationship

Confirm removing the relationship under the cursor.

A relationship is stored in exactly one issue’s file, so removing it is a write to another issue from the one on screen. It gets a confirmation for the same reason ConfirmDelete does, and the confirmation names the edge.

Fields

§index: usize

Trait Implementations§

Source§

impl Clone for Mode

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Mode

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Eq for Mode

Source§

impl PartialEq for Mode

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Mode

Auto Trait Implementations§

§

impl Freeze for Mode

§

impl RefUnwindSafe for Mode

§

impl Send for Mode

§

impl Sync for Mode

§

impl Unpin for Mode

§

impl UnsafeUnpin for Mode

§

impl UnwindSafe for Mode

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<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> 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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.