allow to copy error report

[?]
Sep 11, 2025, 9:35 AM
U3EAZKHRN3DBOOYM4GDEVJK2DJ6ULHOPOHJLCCHYV2EEPUBMYX5QC

Dependencies

  • [2] D7A7MSIH allow to defer or abandon record, add buttons
  • [3] 23SFYK4Q big view refactor into a new crate
  • [4] I2AG42PA new cols layout
  • [5] EJPSD5XO shared allowed actions conditions between update and view
  • [6] 7WCB5YQJ refactor msgs and modules
  • [7] PKLUHYE4 allow to copy change hash
  • [8] CULHFNIV add error report view
  • [9] WGID4LS4 absolutely slayed testing with iced task
  • [10] UB2ITZJS refresh changed files on FS changes
  • [11] YBJRDOTC make all repo actions async
  • [12] FVA36HBV restart repo manager task if it crashes
  • [13] 6YZAVBWU Initial commit
  • [14] SASAN2XC use nav-scrollable
  • [15] YKHE3XMW refactor diffs handling

Change contents

  • edit in inflorescence_model/src/action.rs at line 35
    [8.6732]
    [5.4320]
    ClipboardCopyErrorReports,
  • edit in inflorescence_model/src/action.rs at line 75
    [8.6791]
    [5.5127]
    (ClipboardCopyErrorReports, ClipboardCopyErrorReports) => true,
  • edit in inflorescence_model/src/action.rs at line 93
    [8.6834]
    [5.5587]
    (ClipboardCopyErrorReports, _) => false,
  • replacement in inflorescence_model/src/action.rs at line 109
    [8.7058][8.7058:7084]()
    "Hide errors"
    [8.7058]
    [8.7084]
    "hide errors"
  • replacement in inflorescence_model/src/action.rs at line 111
    [8.7101][8.7101:7127]()
    "Show errors"
    [8.7101]
    [8.7127]
    "show errors"
  • edit in inflorescence_model/src/action.rs at line 118
    [8.7281]
    [5.5862]
    if !report.hidden {
    bindings.push(Binding {
    key: "S-C-c",
    label: "copy errors",
    msg: Some(FilteredMsg::ClipboardCopyErrorReports),
    });
    }
  • replacement in inflorescence/src/main.rs at line 136
    [4.4884][5.23854:23909]()
    Msg::View(msg) => update_from_app(state, msg),
    [4.4884]
    [4.4885]
    Msg::View(msg) => update_from_view(state, msg),
  • replacement in inflorescence/src/main.rs at line 278
    [3.26301][6.11765:11834]()
    fn update_from_app(state: &mut State, msg: view::Msg) -> Task<Msg> {
    [3.26301]
    [5.24444]
    fn update_from_view(state: &mut State, msg: view::Msg) -> Task<Msg> {
  • edit in inflorescence/src/main.rs at line 486
    [8.7537]
    [8.7537]
    if !state.model.report.hidden {
    // Mark all entries as seen
    state
    .model
    .report
    .entries
    .iter_mut()
    .for_each(|entry| entry.is_read = true);
    }
  • edit in inflorescence/src/main.rs at line 497
    [8.7630]
    [8.7630]
    }
    action::FilteredMsg::ClipboardCopyErrorReports => {
    let to_copy = report::entries_to_string(&state.model.report);
    task::clipboard_write(to_copy)
  • edit in inflorescence/src/main.rs at line 1423
    [7.3477]
    [2.2234]
    "c" if mods == Modifiers::SHIFT | Modifiers::CTRL => {
    action(action::FilteredMsg::ClipboardCopyErrorReports)
    }
  • edit in iced_expl_widget/src/report.rs at line 303
    [8.15600]
    pub fn entries_to_string(report: &Container) -> String {
    use std::fmt::Write;
    let mut output = "".to_string();
    report.entries.iter().for_each(
    |Entry {
    level,
    msg,
    time,
    is_read: _,
    }| {
    let level = match level {
    Level::Warning => "WARNING",
    Level::Error => "ERROR",
    };
    writeln!(&mut output, "{time} - {level}: {msg}").unwrap();
    },
    );
    output
    }