finish other channels logs selection
[?]
Aug 13, 2025, 5:23 PM
TQEZQJV4G4OXAYDLTMJW3NCRQV6W7I3MUBOKNCSOSXCSVLABW4QQCDependencies
- [2]
XSZZB47Urefactor stuff into lib - [3]
KWTBNTO3diffs selection and scrolling - [4]
3TLPJ57Balt scroll via context and couple fixes - [5]
NZD56PVBfix mouse selection - [6]
OJPGHVC3entire log! - [7]
WAOGSCOJvery nice refactor, wip adding channels logs - [8]
YK3MOJJLchonky refactor, wip other channels logs & diffs - [9]
3XRG4BB6rewritten nav-scrollable! - [10]
AI3IMKC3refactor stairs - [11]
JZXYSIYDchannel selection! - [12]
UR4J677Rnav for log changes and refactors - [13]
WH57EHNMupdate tests - [*]
23SFYK4Qbig view refactor into a new crate - [*]
WT3GA27Padd cursor with selection
Change contents
- replacement in inflorescence_view/src/app.rs at line 510
.on_press(Msg::Action(action::Msg::Confirm)).on_press(Msg::Action(action::Msg::Selection(selection::Msg::Select(selection::Select::Channel { ix, name: channel.clone() })))) - replacement in inflorescence_view/src/app.rs at line 567
el(nav_scrollable(&navigation.entire_log_nav, entries)el(nav_scrollable(&navigation.other_channel_log_nav, entries) - edit in inflorescence_model/src/selection.rs at line 102
},Channel {ix: usize,name: String, - edit in inflorescence_model/src/lib.rs at line 84
/// Other channel log change selection's navpub other_channel_log_nav: nav_scrollable::State,/// Selected channel's name - edit in inflorescence_model/src/lib.rs at line 120
navigation.other_channel_log_nav = nav_scrollable::State::default(); - replacement in inflorescence/src/selection.rs at line 315
let ix = if ix == ctx.repo.other_channels.len() - 1 {let ix = if ix == ctx.repo.other_channels.len().saturating_sub(1) { - replacement in inflorescence/src/selection.rs at line 363
&mut ctx.navigation.entire_logs_navs.diffs_nav,&mut ctx.navigation.other_channel_logs_navs.diffs_nav, - replacement in inflorescence/src/selection.rs at line 372
let log_entry = log.get(channel_ix).unwrap();let log_entry = log.get(change_ix).unwrap(); - edit in inflorescence/src/selection.rs at line 412
- replacement in inflorescence/src/selection.rs at line 523
Primary::Channel => select_up_channel(ctx),Primary::Channel => select_up_channel(ctx, delta), - replacement in inflorescence/src/selection.rs at line 709
fn select_up_channel(ctx: &mut Ctx<'_>) -> Task<crate::Msg> {let ix = match ctx.state.channel.take() {fn select_up_channel(ctx: &mut Ctx<'_>,delta: Option<Duration>,) -> Task<crate::Msg> {let (selection, task) = match ctx.state.channel.take() { - replacement in inflorescence/src/selection.rs at line 717
log: _,log: None, - replacement in inflorescence/src/selection.rs at line 719
if ix == 0 {ctx.repo.other_channels.len() - 1let ix = if ix == 0 {ctx.repo.other_channels.len().saturating_sub(1) - edit in inflorescence/src/selection.rs at line 723
};channel_selection(ix, VDir::Up, ctx)}None => {let ix = ctx.repo.other_channels.len().saturating_sub(1);channel_selection(ix, VDir::Up, ctx)}Some(Channel {ix: channel_ix,name,log:Some(LogChange {ix: change_ix,hash,message,file,}),}) => {if let Some(Log::Loaded { log }) =ctx.logs.other_channels_logs.get(&name){if let Some(LogChangeFileSelection {ix: file_ix,path,diff_selected,}) = file{if diff_selected {let selection = Channel {ix: channel_ix,name,log: Some(LogChange {ix: change_ix,hash,message,file: Some(LogChangeFileSelection {ix: file_ix,path,diff_selected,}),}),};nav_scrollable::scroll_up(&mut ctx.navigation.other_channel_logs_navs.diffs_nav,delta,);(selection, Task::none())} else {let log_entry = log.get(change_ix).unwrap();let file_ix = if 0 == file_ix {log_entry.file_paths.len().saturating_sub(1)} else {file_ix - 1};let (file, selection_task) = channel_log_file_selection(file_ix,hash,VDir::Up,ctx.navigation,log_entry,);let selection = Channel {ix: channel_ix,name,log: Some(LogChange {ix: change_ix,hash,message,file: Some(file),}),};(selection, selection_task)}} else {let (selection, task) = if 0 == change_ix {let ix = log.len().saturating_sub(1);channel_log_selection(ix, VDir::Down, ctx, log)} else {let ix = change_ix - 1;channel_log_selection(ix, VDir::Up, ctx, log)};let selection = Channel {ix: channel_ix,name,log: Some(selection),};(selection, task)}} else {let selection = Channel {ix: channel_ix,name,log: Some(LogChange {ix: change_ix,hash,message,file,}),};(selection, Task::none()) - edit in inflorescence/src/selection.rs at line 834
None => ctx.repo.other_channels.len() - 1, - edit in inflorescence/src/selection.rs at line 835
let (selection, task) = channel_selection(ix, VDir::Up, ctx); - edit in inflorescence/src/selection.rs at line 1674
Select::Channel { .. } => unreachable!(), - replacement in inflorescence/src/selection.rs at line 1680
// TODOlet (selection, task) = match select {Select::Channel { ix, name: _ } => {let (selection, task) =channel_selection(ix, VDir::Down, ctx);(Some(selection), task)}Select::LogChange {ix,hash: _,message: _,} => match ctx.state.channel.take() {Some(Channel {ix: channel_ix,name,log,}) => {if let Some(Log::Loaded { log }) =ctx.logs.other_channels_logs.get(&name){let (selection, task) =channel_log_selection(ix, VDir::Down, ctx, log);(Some(Channel {ix: channel_ix,name,log: Some(selection),}),task,)} else {(Some(Channel {ix: channel_ix,name,log,}),Task::none(),)}}selection => (selection, Task::none()),},Select::LogChangeFile { ix, path: _ } => {match ctx.state.channel.take() {Some(Channel {ix: channel_ix,name,log:Some(LogChange {ix: change_ix,hash,message,file,}),}) => {if let Some(Log::Loaded { log }) =ctx.logs.other_channels_logs.get(&name)&& let Some(log_entry) = log.get(change_ix){let (selection, task) =channel_log_file_selection(ix,hash,VDir::Down,ctx.navigation,log_entry,);(Some(Channel {ix: channel_ix,name,log: Some(LogChange {ix: change_ix,hash,message,file: Some(selection),}),}),task,)} else {(Some(Channel {ix: channel_ix,name,log: Some(LogChange {ix: change_ix,hash,message,file,}),}),Task::none(),)}}selection => (selection, Task::none()),}}Select::UntrackedFile { .. } | Select::ChangedFile { .. } => {unreachable!()}};ctx.state.channel = selection;return task; - replacement in inflorescence/src/selection.rs at line 1829
_ => {unreachable!()}Select::UntrackedFile { .. }| Select::ChangedFile { .. }| Select::Channel { .. } => unreachable!(), - replacement in inflorescence/src/selection.rs at line 2140
&mut navigation.other_channels_nav,&mut navigation.other_channel_log_nav, - replacement in inflorescence/src/selection.rs at line 2144
&mut navigation.other_channels_nav,&mut navigation.other_channel_log_nav,