refactor sub-menu option selection

tzemanovic
Mar 31, 2026, 12:15 PM
OEBGSXWU7DKZTMIHOHJ6HECYMCPMOUIL7BVRWYTTTVASTEOB5QGQC

Dependencies

  • [2] LFEMJYYD start of to_record selection
  • [3] TEDT26JQ add push and pull sub-menus
  • [4] IOXNOVX2 allow to initiate a new repo
  • [5] E7HE2UFT handle multiple or no pijul identity
  • [6] DNTMUCMO allow to compare local with remote records
  • [7] O46EFE5J add option to select remote for push
  • [8] VQ3THWJJ add option to select remote for pull
  • [9] YRGDFHAB project dir picker
  • [10] ODCT4QJN add pull
  • [11] TMDH7GPV dir picker scrollables handling + confirmation
  • [12] EJPSD5XO shared allowed actions conditions between update and view
  • [13] 7WCB5YQJ refactor msgs and modules
  • [14] YK3MOJJL chonky refactor, wip other channels logs & diffs
  • [15] BJ3CYLUT allow to reset changed file
  • [*] 23SFYK4Q big view refactor into a new crate
  • [*] OPXFZKEB view tests setup
  • [*] 6YZAVBWU Initial commit

Change contents

  • edit in inflorescence_view/src/view.rs at line 73
    [8.522][8.522:556]()
    selecting_remote,
  • replacement in inflorescence_view/src/view.rs at line 74
    [7.715][7.715:771]()
    model::PushOption::SelectingRemote => {
    [7.715]
    [7.771]
    model::PushOption::SelectingRemote { remote } => {
  • replacement in inflorescence_view/src/view.rs at line 80
    [7.963][8.557:599]()
    selecting_remote,
    [7.963]
    [8.599]
    remote,
  • edit in inflorescence_view/src/view.rs at line 88
    [8.783][8.783:817]()
    selecting_remote,
  • replacement in inflorescence_view/src/view.rs at line 89
    [8.846][8.846:902]()
    model::PullOption::SelectingRemote => {
    [8.846]
    [8.902]
    model::PullOption::SelectingRemote { remote } => {
  • replacement in inflorescence_view/src/view.rs at line 95
    [8.1094][8.1094:1136]()
    selecting_remote,
    [8.1094]
    [7.995]
    remote,
  • edit in inflorescence_view/src/view.rs at line 484
    [8.2596][8.2596:2633]()
    selecting_remote: _,
  • edit in inflorescence_view/src/view.rs at line 491
    [7.3934][8.2813:2850]()
    selecting_remote: _,
  • edit in inflorescence_view/src/view/test.rs at line 329
    [7.4770][8.3498:3530]()
    selecting_remote: None,
  • replacement in inflorescence_model/src/model.rs at line 85
    [7.4833][8.3758:3787]()
    /// Confirmed remote
    [7.4833]
    [7.4833]
    /// Confirmed remote selection
  • edit in inflorescence_model/src/model.rs at line 87
    [7.4865][8.3788:3893]()
    /// Set while selecting remote and discarded on cancel
    selecting_remote: Option<String>,
  • replacement in inflorescence_model/src/model.rs at line 90
    [8.3905][8.3905:3934]()
    /// Confirmed remote
    [8.3905]
    [8.3934]
    /// Confirmed remote selection
  • edit in inflorescence_model/src/model.rs at line 92
    [8.3966][8.3966:4071]()
    /// Set while selecting remote and discarded on cancel
    selecting_remote: Option<String>,
  • replacement in inflorescence_model/src/model.rs at line 120
    [7.4976][7.4976:4997]()
    SelectingRemote,
    [7.4976]
    [3.531968]
    SelectingRemote {
    /// Set while selecting remote and discarded on cancel
    remote: Option<String>,
    },
  • replacement in inflorescence_model/src/model.rs at line 128
    [8.4179][8.4179:4200]()
    SelectingRemote,
    [8.4179]
    [8.4200]
    SelectingRemote {
    /// Set while selecting remote and discarded on cancel
    remote: Option<String>,
    },
  • edit in inflorescence_model/src/action.rs at line 123
    [7.5147]
    [7.5147]
    core::mem::discriminant(left) == core::mem::discriminant(right)
    }
    (SubMenuPushOption(left), SubMenuPushOption(right)) => {
  • replacement in inflorescence_model/src/action.rs at line 128
    [7.5233][7.5233:5311](),[7.5311][8.4298:4376]()
    (SubMenuPushOption(left), SubMenuPushOption(right)) => left == right,
    (SubMenuPullOption(left), SubMenuPullOption(right)) => left == right,
    [7.5233]
    [5.2306]
    (SubMenuPullOption(left), SubMenuPullOption(right)) => {
    core::mem::discriminant(left) == core::mem::discriminant(right)
    }
  • replacement in inflorescence_model/src/action.rs at line 202
    [3.532243][8.4422:4561]()
    model::SubMenu::Push {
    remote: _,
    selecting_remote: _,
    opt,
    } => {
    [3.532243]
    [7.5414]
    model::SubMenu::Push { remote: _, opt } => {
  • replacement in inflorescence_model/src/action.rs at line 221
    [8.4637][8.4637:4701]()
    model::PushOption::SelectingRemote,
    [8.4637]
    [8.4701]
    model::PushOption::SelectingRemote { remote: None },
  • replacement in inflorescence_model/src/action.rs at line 234
    [8.5048][8.5048:5187]()
    model::SubMenu::Pull {
    remote: _,
    selecting_remote: _,
    opt,
    } => {
    [8.5048]
    [8.5187]
    model::SubMenu::Pull { remote: _, opt } => {
  • replacement in inflorescence_model/src/action.rs at line 253
    [8.5966][8.5966:6030]()
    model::PullOption::SelectingRemote,
    [8.5966]
    [8.6030]
    model::PullOption::SelectingRemote { remote: None },
  • edit in inflorescence_model/src/action.rs at line 787
    [7.7098][8.6060:6104]()
    selecting_remote: None,
  • edit in inflorescence_model/src/action.rs at line 803
    [8.6241][8.6241:6285]()
    selecting_remote: None,
  • replacement in inflorescence/src/main.rs at line 1181
    [4.5957][8.7492:7631](),[8.7631][7.8121:8156](),[7.8121][7.8121:8156]()
    Some(model::SubMenu::Push {
    remote,
    selecting_remote,
    opt,
    }) => {
    if opt.is_some() {
    [4.5957]
    [7.8156]
    Some(model::SubMenu::Push { remote, opt }) => {
    if let Some(model::PushOption::SelectingRemote { remote }) = opt
    {
  • replacement in inflorescence/src/main.rs at line 1185
    [7.8216][8.7632:7738]()
    remote: selecting_remote.clone(),
    selecting_remote: None,
    [7.8216]
    [7.8264]
    remote: remote.clone(),
  • replacement in inflorescence/src/main.rs at line 1193
    [7.8486][8.7739:7913]()
    Some(model::SubMenu::Pull {
    remote,
    selecting_remote,
    opt,
    }) => {
    if opt.is_some() {
    [7.8486]
    [8.7913]
    Some(model::SubMenu::Pull { remote, opt }) => {
    if let Some(model::PullOption::SelectingRemote { remote }) = opt
    {
  • replacement in inflorescence/src/main.rs at line 1197
    [8.7973][8.7973:8079]()
    remote: selecting_remote.clone(),
    selecting_remote: None,
    [8.7973]
    [8.8079]
    remote: remote.clone(),
  • replacement in inflorescence/src/main.rs at line 1343
    [7.8557][8.8352:8528]()
    model::SubMenu::Push {
    remote,
    selecting_remote: _,
    opt,
    } => {
    [7.8557]
    [7.8622]
    model::SubMenu::Push { remote, opt } => {
  • edit in inflorescence/src/main.rs at line 1347
    [8.8569][8.8569:8625]()
    selecting_remote: None,
  • replacement in inflorescence/src/main.rs at line 1352
    [8.8797][8.8797:8973]()
    model::SubMenu::Pull {
    remote,
    selecting_remote: _,
    opt,
    } => {
    [8.8797]
    [8.8973]
    model::SubMenu::Pull { remote, opt } => {
  • edit in inflorescence/src/main.rs at line 1356
    [8.9124][8.9124:9180]()
    selecting_remote: None,
  • edit in inflorescence/src/main.rs at line 1402
    [8.9315][8.9315:9357]()
    selecting_remote,
  • replacement in inflorescence/src/main.rs at line 1407
    [7.9596][7.9596:9660](),[7.9660][8.9358:9551]()
    return sub_menu_push_opt_selection(
    msg,
    selecting_remote,
    opt,
    repo,
    );
    [7.9596]
    [8.9551]
    return sub_menu_push_opt_selection(msg, opt, repo);
  • edit in inflorescence/src/main.rs at line 1412
    [8.9677][8.9677:9719]()
    selecting_remote,
  • replacement in inflorescence/src/main.rs at line 1417
    [8.9930][8.9930:10156](),[8.10156][7.9716:9747](),[7.9716][7.9716:9747]()
    return sub_menu_pull_opt_selection(
    msg,
    selecting_remote,
    opt,
    repo,
    );
    [8.9930]
    [7.9747]
    return sub_menu_pull_opt_selection(msg, opt, repo);
  • replacement in inflorescence/src/main.rs at line 1625
    [7.10232][7.10232:10293](),[7.10293][8.10208:10467]()
    action::FilteredMsg::SubMenuPushOption(new_opt) => {
    if let Some(model::SubMenu::Push {
    opt,
    remote,
    selecting_remote,
    }) = sub_menu
    {
    match &new_opt {
    model::PushOption::SelectingRemote => {
    [7.10232]
    [8.10467]
    action::FilteredMsg::SubMenuPushOption(mut new_opt) => {
    if let Some(model::SubMenu::Push { opt, remote }) = sub_menu {
    match &mut new_opt {
    model::PushOption::SelectingRemote {
    remote: selecting_remote,
    } => {
  • replacement in inflorescence/src/main.rs at line 1638
    [2.18195][8.10568:10888]()
    action::FilteredMsg::SubMenuPullOption(new_opt) => {
    if let Some(model::SubMenu::Pull {
    opt,
    remote,
    selecting_remote,
    }) = sub_menu
    {
    match &new_opt {
    model::PullOption::SelectingRemote => {
    [2.18195]
    [8.10888]
    action::FilteredMsg::SubMenuPullOption(mut new_opt) => {
    if let Some(model::SubMenu::Pull { opt, remote }) = sub_menu {
    match &mut new_opt {
    model::PullOption::SelectingRemote {
    remote: selecting_remote,
    } => {
  • edit in inflorescence/src/main.rs at line 1808
    [7.10477][7.10477:10510]()
    remote: &mut Option<String>,
  • replacement in inflorescence/src/main.rs at line 1814
    [7.10725][8.11147:11195]()
    model::PushOption::SelectingRemote => {
    [7.10725]
    [8.11195]
    model::PushOption::SelectingRemote { remote } => {
  • edit in inflorescence/src/main.rs at line 1822
    [8.11327][8.11327:11360]()
    remote: &mut Option<String>,
  • replacement in inflorescence/src/main.rs at line 1828
    [8.11582][8.11582:11630]()
    model::PullOption::SelectingRemote => {
    [8.11582]
    [8.11630]
    model::PullOption::SelectingRemote { remote } => {