refactor: collapse client label settings; drop CLI/settings toggles
The "top vs bottom" client label setting was cluttering the UI and
codebase with toggles that added little value. This consolidates client
label handling into one option, removes unused CLI/settings knobs, and
makes NoteView’s API consistent and fluent. Result: fewer knobs, less
branching, and a clearer, more predictable UI.
Now client labels are only shown in one place: selected notes.
- Drop `--show-client` arg in notedeck and `--show-note-client=top|bottom`
args in notedeck_columns
- Remove `NotedeckOptions::ShowClient` and related CLI parsing
- Delete `ShowSourceClientOption` enum, settings UI, and
`SettingsAction::SetShowSourceClient`
- Collapse `NoteOptions::{ClientNameTop, ClientNameBottom}` into a single
`NoteOptions::ClientName`
- Add `NoteOptions::{Framed, UnreadIndicator}`
- Move “framed” and unread indicator into flags (no more ad‑hoc bools)
- Add new NoteView builder methods: `.client_name()`, `.frame()`,
`.unread_indicator()`, and `.selected_style()`
- CLI flags for showing client labels have been removed
- `ClientNameTop`/`ClientNameBottom` replaced with `ClientName`
- API using `framed` or `show_unread_indicator` booleans must now use
the new flag setters
Signed-off-by: William Casarin <jb55@jb55.com>
This commit is contained in:
@@ -279,6 +279,12 @@ enum ThreadNoteType {
|
||||
Reply,
|
||||
}
|
||||
|
||||
impl ThreadNoteType {
|
||||
fn is_selected(&self) -> bool {
|
||||
matches!(self, ThreadNoteType::Selected { .. })
|
||||
}
|
||||
}
|
||||
|
||||
struct ThreadNotes<'a> {
|
||||
notes: Vec<ThreadNote<'a>>,
|
||||
selected_index: usize,
|
||||
@@ -313,6 +319,7 @@ impl<'a> ThreadNote<'a> {
|
||||
) -> NoteResponse {
|
||||
let inner = notedeck_ui::padding(8.0, ui, |ui| {
|
||||
NoteView::new(note_context, &self.note, self.options(flags), jobs)
|
||||
.selected_style(self.note_type.is_selected())
|
||||
.unread_indicator(self.unread_and_have_replies)
|
||||
.show(ui)
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user