@@ -421,7 +421,6 @@ class MyControlPanel : public Flint::Panel {
421
421
hbox_container->add_child (label);
422
422
423
423
channel_button_ = std::make_shared<Flint::MenuButton>();
424
- channel_button_->set_text (std::to_string (channel));
425
424
channel_button_->container_sizing .expand_h = true ;
426
425
channel_button_->container_sizing .flag_h = Flint::ContainerSizingFlag::Fill;
427
426
hbox_container->add_child (channel_button_);
@@ -432,9 +431,15 @@ class MyControlPanel : public Flint::Panel {
432
431
auto callback = [this ](uint32_t ) { channel = std::stoi (channel_button_->get_selected_item_text ()); };
433
432
channel_button_->connect_signal (" item_selected" , callback);
434
433
434
+ uint32_t selected = 0 ;
435
435
for (auto c : CHANNELS) {
436
436
channel_menu.lock ()->create_item (std::to_string (c));
437
+ if (std::to_string (channel) == std::to_string (c)) {
438
+ selected = channel_menu.lock ()->get_item_count () - 1 ;
439
+ }
437
440
}
441
+
442
+ channel_button_->select_item (selected);
438
443
}
439
444
}
440
445
@@ -449,18 +454,28 @@ class MyControlPanel : public Flint::Panel {
449
454
channel_width_button_ = std::make_shared<Flint::MenuButton>();
450
455
channel_width_button_->container_sizing .expand_h = true ;
451
456
channel_width_button_->container_sizing .flag_h = Flint::ContainerSizingFlag::Fill;
452
- channel_width_button_->set_text (CHANNEL_WIDTHS[channelWidthMode]);
453
457
hbox_container->add_child (channel_width_button_);
454
458
455
459
{
456
460
auto channel_width_menu = channel_width_button_->get_popup_menu ();
457
461
458
- auto callback = [this ](uint32_t ) { channelWidthMode = channel_button_->get_selected_item_index (); };
462
+ auto callback = [this ](uint32_t ) {
463
+ auto selected = channel_width_button_->get_selected_item_index ();
464
+ if (selected.has_value ()) {
465
+ channelWidthMode = selected.value ();
466
+ }
467
+ };
459
468
channel_width_button_->connect_signal (" item_selected" , callback);
460
469
470
+ uint32_t selected = 0 ;
461
471
for (auto width : CHANNEL_WIDTHS) {
462
472
channel_width_menu.lock ()->create_item (width);
473
+ int current_index = channel_width_menu.lock ()->get_item_count () - 1 ;
474
+ if (channelWidthMode == current_index) {
475
+ selected = current_index;
476
+ }
463
477
}
478
+ channel_width_button_->select_item (selected);
464
479
}
465
480
}
466
481
@@ -529,8 +544,12 @@ class MyControlPanel : public Flint::Panel {
529
544
530
545
int main () {
531
546
Flint::App app ({1280 , 720 });
547
+ Flint::Logger::set_module_level (" Flint" , Flint::Logger::Level::Debug);
532
548
app.set_window_title (" Aviateur - OpenIPC FPV Ground Station" );
533
549
550
+ // Redirect standard ouput to a file
551
+ freopen (" last_run_log.txt" , " w" , stdout);
552
+
534
553
auto hbox_container = std::make_shared<Flint::HBoxContainer>();
535
554
hbox_container->set_separation (2 );
536
555
hbox_container->set_anchor_flag (Flint::AnchorFlag::FullRect);
0 commit comments