diff --git a/selfdrive/ui/qt/offroad/settings.cc b/selfdrive/ui/qt/offroad/settings.cc index c79e2f2972..c3c5f16fad 100644 --- a/selfdrive/ui/qt/offroad/settings.cc +++ b/selfdrive/ui/qt/offroad/settings.cc @@ -293,11 +293,6 @@ QWidget * network_panel(QWidget * parent) { } -void SettingsWindow::setActivePanel() { - auto *btn = qobject_cast(nav_btns->checkedButton()); - panel_layout->setCurrentWidget(panels[btn->text()]); -} - SettingsWindow::SettingsWindow(QWidget *parent) : QFrame(parent) { // setup two main layouts QVBoxLayout *sidebar_layout = new QVBoxLayout(); @@ -319,17 +314,17 @@ SettingsWindow::SettingsWindow(QWidget *parent) : QFrame(parent) { QObject::connect(close_btn, SIGNAL(released()), this, SIGNAL(closeSettings())); // setup panels - panels = { - {"Developer", developer_panel()}, + QPair panels[] = { {"Device", device_panel()}, {"Network", network_panel(this)}, {"Toggles", toggles_panel()}, + {"Developer", developer_panel()}, }; sidebar_layout->addSpacing(45); nav_btns = new QButtonGroup(); - for (auto &panel : panels) { - QPushButton *btn = new QPushButton(panel.first); + for (auto &[name, panel] : panels) { + QPushButton *btn = new QPushButton(name); btn->setCheckable(true); btn->setStyleSheet(R"( * { @@ -348,9 +343,9 @@ SettingsWindow::SettingsWindow(QWidget *parent) : QFrame(parent) { nav_btns->addButton(btn); sidebar_layout->addWidget(btn, 0, Qt::AlignRight); - panel_layout->addWidget(panel.second); - QObject::connect(btn, SIGNAL(released()), this, SLOT(setActivePanel())); - QObject::connect(btn, &QPushButton::released, [=](){emit sidebarPressed();}); + + panel_layout->addWidget(panel); + QObject::connect(btn, &QPushButton::released, [=, w = panel]() { panel_layout->setCurrentWidget(w); }); } qobject_cast(nav_btns->buttons()[0])->setChecked(true); sidebar_layout->setContentsMargins(50, 50, 100, 50); diff --git a/selfdrive/ui/qt/offroad/settings.hpp b/selfdrive/ui/qt/offroad/settings.hpp index bd7f413982..6ceb7d0248 100644 --- a/selfdrive/ui/qt/offroad/settings.hpp +++ b/selfdrive/ui/qt/offroad/settings.hpp @@ -37,16 +37,11 @@ public: signals: void closeSettings(); - void sidebarPressed(); private: QPushButton *sidebar_alert_widget; QWidget *sidebar_widget; - std::map panels; QButtonGroup *nav_btns; QStackedLayout *panel_layout; QFrame* panel_frame; - -public slots: - void setActivePanel(); };