Fixing empty output file/store button/text display (#1475)

This commit is contained in:
gullradriel 2023-10-08 22:21:00 +02:00 committed by GitHub
parent ad987f2b5e
commit d7c961ea4f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -103,7 +103,6 @@ void ReconView::reset_indexes() {
void ReconView::update_description() { void ReconView::update_description() {
if (frequency_list.empty() || current_entry().description.empty()) { if (frequency_list.empty() || current_entry().description.empty()) {
description = "...no description..."; description = "...no description...";
return;
} else { } else {
switch (current_entry().type) { switch (current_entry().type) {
case freqman_type::Range: case freqman_type::Range:
@ -117,7 +116,6 @@ void ReconView::update_description() {
} }
description += current_entry().description; description += current_entry().description;
} }
desc_cycle.set(description); desc_cycle.set(description);
} }
@ -539,7 +537,7 @@ ReconView::ReconView(NavigationView& nav)
button_scanner_mode.set_style(&Styles::white); button_scanner_mode.set_style(&Styles::white);
button_scanner_mode.set_text("MANUAL"); button_scanner_mode.set_text("MANUAL");
file_name.set_style(&Styles::white); file_name.set_style(&Styles::white);
file_name.set("MANUAL RANGE RECON"); file_name.set("MANUAL => " + output_file);
desc_cycle.set_style(&Styles::white); desc_cycle.set_style(&Styles::white);
last_entry.modulation = freqman_invalid_index; last_entry.modulation = freqman_invalid_index;
@ -608,12 +606,12 @@ ReconView::ReconView(NavigationView& nav)
scanner_mode = false; scanner_mode = false;
button_scanner_mode.set_style(&Styles::blue); button_scanner_mode.set_style(&Styles::blue);
button_scanner_mode.set_text("RECON"); button_scanner_mode.set_text("RECON");
button_remove.set_text("DELETE"); button_remove.set_text("REMOVE");
} else { } else {
scanner_mode = true; scanner_mode = true;
button_scanner_mode.set_style(&Styles::red); button_scanner_mode.set_style(&Styles::red);
button_scanner_mode.set_text("SCAN"); button_scanner_mode.set_text("SCAN");
button_scanner_mode.set_text("REMOVE"); button_remove.set_text("DELETE");
} }
frequency_file_load(true); frequency_file_load(true);
if (autostart) { if (autostart) {
@ -621,12 +619,16 @@ ReconView::ReconView(NavigationView& nav)
} else { } else {
recon_pause(); recon_pause();
} }
button_add.hidden(scanner_mode);
set_dirty();
}; };
button_config.on_select = [this, &nav](Button&) { button_config.on_select = [this, &nav](Button&) {
if (is_recording) // disabling config while recording if (is_recording) // disabling config while recording
return; return;
clear_freqlist_for_ui_action(); clear_freqlist_for_ui_action();
freq_lock = 0; freq_lock = 0;
timer = 0; timer = 0;
auto open_view = nav.push<ReconSetupView>(input_file, output_file); auto open_view = nav.push<ReconSetupView>(input_file, output_file);
@ -733,30 +735,22 @@ void ReconView::frequency_file_load(bool) {
button_scanner_mode.set_text("RECON"); button_scanner_mode.set_text("RECON");
} }
file_name.set(file_input + "=>" + output_file);
freqman_load_options options{ freqman_load_options options{
.load_freqs = load_freqs, .load_freqs = load_freqs,
.load_ranges = load_ranges, .load_ranges = load_ranges,
.load_hamradios = load_hamradios}; .load_hamradios = load_hamradios};
if (!load_freqman_file(file_input, frequency_list, options)) { if (!load_freqman_file(file_input, frequency_list, options) || frequency_list.empty()) {
file_name.set_style(&Styles::red); file_name.set_style(&Styles::red);
desc_cycle.set(" NO " + file_input + ".TXT FILE ..."); desc_cycle.set("...empty file...");
file_name.set("=> NO DATA"); frequency_list.clear();
} else { text_cycle.set_text(" ");
file_name.set(file_input + "=>" + output_file); return;
if (frequency_list.size() == 0) {
file_name.set_style(&Styles::red);
desc_cycle.set("/0 no entries in list");
file_name.set("BadOrEmpty " + file_input);
} else {
if (frequency_list.size() > FREQMAN_MAX_PER_FILE) {
file_name.set_style(&Styles::yellow);
}
}
} }
if (frequency_list.empty()) { if (frequency_list.size() > FREQMAN_MAX_PER_FILE) {
text_cycle.set_text(" "); file_name.set_style(&Styles::yellow);
return; // Can't really do much.
} }
reset_indexes(); reset_indexes();
@ -1214,14 +1208,6 @@ void ReconView::handle_remove_current_item() {
if (current_is_valid()) { if (current_is_valid()) {
frequency_list.erase(frequency_list.begin() + current_index); frequency_list.erase(frequency_list.begin() + current_index);
} }
if (frequency_list.size() > 0) {
current_index = clip<int32_t>(current_index, 0u, frequency_list.size() - 1);
text_cycle.set_text(to_string_dec_uint(current_index + 1, 3));
update_description();
} else {
current_index = 0;
}
} }
// In Scanner or Manual mode, remove the entry from the output file. // In Scanner or Manual mode, remove the entry from the output file.
@ -1232,6 +1218,17 @@ void ReconView::handle_remove_current_item() {
freq_db.delete_entry(entry); freq_db.delete_entry(entry);
} }
// Clip
if (frequency_list.size() > 0) {
current_index = clip<int32_t>(current_index, 0u, frequency_list.size() - 1);
text_cycle.set_text(to_string_dec_uint(current_index + 1, 3));
} else {
current_index = 0;
text_cycle.set_text(" ");
}
update_description();
} }
} /* namespace ui */ } /* namespace ui */