--- src/dialogs/fl_digi.cxx 2026-08-03 20:37:39.000000000 +0800 +++ src/dialogs/fl_digi.cxx 2026-08-04 23:02:18.000000000 +0800 @@ -7002,6 +7002,13 @@ if (qtc_dialog) qtc_dialog->hide(); } +static void qtc_clear_rows_cb(Fl_Widget*, void*) +{ + qtc_clear_rows(); + if (qtc_series) qtc_series->value(""); + qtc_status_text("Rows cleared"); +} + static void qtc_make_dialog() { if (qtc_dialog) return; @@ -7018,11 +7025,7 @@ Fl_Button *load = new Fl_Button(505, 14, 130, 26, _("Load from Log")); load->callback(qtc_load_from_log_cb); Fl_Button *clear = new Fl_Button(505, 44, 130, 26, _("Clear All")); - clear->callback([](Fl_Widget*, void*) { - qtc_clear_rows(); - if (qtc_series) qtc_series->value(""); - qtc_status_text("Rows cleared"); - }); + clear->callback(qtc_clear_rows_cb); int y = 82; Fl_Box *qtc_hdr_idx = new Fl_Box(15, y, 35, 18, _("QTC-#")); @@ -7177,6 +7180,13 @@ qtc_view_dialog->end(); } +static void qtc_rx_clear_rows_cb(Fl_Widget*, void*) +{ + qtc_rx_clear_rows(); + if (qtc_rx_series) qtc_rx_series->value(""); + qtc_rx_status_text("Rows cleared"); +} + static void qtc_make_rx_dialog() { if (qtc_rx_dialog) return; @@ -7216,11 +7226,7 @@ Fl_Button *save = new Fl_Button(15, 370, 130, 28, _("Save")); save->callback(qtc_rx_save_cb); Fl_Button *clear = new Fl_Button(155, 370, 95, 28, _("Clear")); - clear->callback([](Fl_Widget*, void*) { - qtc_rx_clear_rows(); - if (qtc_rx_series) qtc_rx_series->value(""); - qtc_rx_status_text("Rows cleared"); - }); + clear->callback(qtc_rx_clear_rows_cb); Fl_Button *close = new Fl_Button(525, 370, 95, 28, _("Close")); close->callback(qtc_rx_close_cb); --- src/logbook/logsupport.cxx 2026-07-12 02:51:48.000000000 +0800 +++ src/logbook/logsupport.cxx 2026-08-04 23:20:28.000000000 +0800 @@ -2480,6 +2480,21 @@ } } +struct cabrillo_qso_item { + cQsoRec *rec; + int index; + std::string sort_key; + + cabrillo_qso_item() : rec(0), index(0) {} +}; + +static bool cabrillo_qso_item_less(const cabrillo_qso_item& a, const cabrillo_qso_item& b) +{ + if (a.sort_key == b.sort_key) + return a.index < b.index; + return a.sort_key < b.sort_key; +} + void WriteCabrillo() { if (chkCabBrowser->nchecked() == 0) @@ -2691,13 +2706,6 @@ #undef CONTEST_CATEGORY_VALUE - struct cabrillo_qso_item { - cQsoRec *rec; - int index; - std::string sort_key; - - cabrillo_qso_item() : rec(0), index(0) {} - }; std::vector qso_items; for (int i = 0; i < chkCabBrowser->FLTK_nitems() && i < qsodb.nbrRecs(); i++) { @@ -2713,12 +2721,7 @@ } if (contestnbr == DARC_HELL_SPRINT) { - std::stable_sort(qso_items.begin(), qso_items.end(), - [](const cabrillo_qso_item& a, const cabrillo_qso_item& b) { - if (a.sort_key == b.sort_key) - return a.index < b.index; - return a.sort_key < b.sort_key; - }); + std::stable_sort(qso_items.begin(), qso_items.end(), cabrillo_qso_item_less); } for (size_t i = 0; i < qso_items.size(); i++) {