Skip to content

Commit 5779727

Browse files
committed
feat: add ui to change row size units
1 parent 38ee93b commit 5779727

File tree

2 files changed

+53
-8
lines changed

2 files changed

+53
-8
lines changed

src/app.rs

+42-3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ use self::{data::Data, data_display_options::DataDisplayOptions};
22
#[cfg(not(target_arch = "wasm32"))]
33
use anyhow::{bail, Context};
44
use data::filter::{Comparator, FieldSpecifier, FilterConfig, FilterOn};
5+
use data_display_options::SizeUnits;
56
use egui::{
67
text::{CCursor, CCursorRange},
78
Align, KeyboardShortcut, Label,
@@ -398,6 +399,45 @@ impl LogViewerApp {
398399
.radio_value(&mut self.track_item_align, None, "None (Bring into view)")
399400
.clicked();
400401
});
402+
ui.horizontal(|ui| {
403+
let mut show_row_size = self.data_display_options.row_size_config.is_some();
404+
ui.checkbox(&mut show_row_size, "Show row size");
405+
match (
406+
show_row_size,
407+
self.data_display_options.row_size_config.is_some(),
408+
) {
409+
(true, true) | (false, false) => {}
410+
(true, false) => {
411+
self.data_display_options.row_size_config = Some(Default::default())
412+
}
413+
(false, true) => self.data_display_options.row_size_config = None,
414+
}
415+
416+
if let Some(row_size) = self.data_display_options.row_size_config.as_mut() {
417+
ui.separator();
418+
ui.label("Field Name: ");
419+
ui.text_edit_singleline(&mut row_size.field_name);
420+
ui.separator();
421+
egui::ComboBox::from_label("Row Size Unit")
422+
.selected_text(row_size.units)
423+
.show_ui(ui, |ui| {
424+
ui.selectable_value(
425+
&mut row_size.units,
426+
SizeUnits::Bytes,
427+
SizeUnits::Bytes,
428+
);
429+
ui.selectable_value(&mut row_size.units, SizeUnits::KB, SizeUnits::KB);
430+
ui.selectable_value(&mut row_size.units, SizeUnits::MB, SizeUnits::MB);
431+
ui.selectable_value(&mut row_size.units, SizeUnits::GB, SizeUnits::GB);
432+
ui.selectable_value(&mut row_size.units, SizeUnits::TB, SizeUnits::TB);
433+
ui.selectable_value(
434+
&mut row_size.units,
435+
SizeUnits::Auto,
436+
SizeUnits::Auto,
437+
);
438+
});
439+
}
440+
});
401441
});
402442
}
403443

@@ -431,12 +471,11 @@ impl LogViewerApp {
431471

432472
fn ui_help(&mut self, ui: &mut egui::Ui) {
433473
ui.collapsing("Help", |ui| {
434-
ui.horizontal(|ui| {
435474
ui.label(
436-
"Text is selectable just hover over it for a short time if you want to copy",
475+
"- Text is selectable just hover over it for a short time if you want to copy",
437476
);
477+
ui.label("- Most display settings are only applied on load and will require the data to be reloaded")
438478
});
439-
});
440479
}
441480

442481
#[cfg(not(target_arch = "wasm32"))]

src/app/data_display_options.rs

+11-5
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ pub struct LevelConversion {
6060
pub convert_map: BTreeMap<i64, String>,
6161
}
6262

63-
#[derive(Default, serde::Deserialize, serde::Serialize, Debug, PartialEq, Eq)]
63+
#[derive(serde::Deserialize, serde::Serialize, Debug, PartialEq, Eq)]
6464
#[serde(default)]
6565
pub struct RowSizeConfig {
6666
pub field_name: String,
@@ -192,10 +192,7 @@ impl Default for DataDisplayOptions {
192192
.collect(),
193193
emphasize_if_matching_field_idx: Some(4),
194194
row_idx_field_name: Some("row#".to_string()),
195-
row_size_config: Some(RowSizeConfig {
196-
field_name: "row_size".to_string(),
197-
units: SizeUnits::KB,
198-
}),
195+
row_size_config: Some(Default::default()),
199196
row_parse_error_handling: Default::default(),
200197
level_conversion: Some(Default::default()),
201198
colored_fields: [(
@@ -260,3 +257,12 @@ impl From<SizeUnits> for WidgetText {
260257
value.as_str().into()
261258
}
262259
}
260+
261+
impl Default for RowSizeConfig {
262+
fn default() -> Self {
263+
Self {
264+
field_name: "row_size".to_string(),
265+
units: SizeUnits::KB,
266+
}
267+
}
268+
}

0 commit comments

Comments
 (0)