From 8d06444bdda6b89b36e07fceb1c4514ca50089b6 Mon Sep 17 00:00:00 2001 From: Jason Wen Date: Sat, 10 May 2025 12:46:02 -0400 Subject: [PATCH] ui: consolidate panel updates at a single location (#904) * init * minimize changes for all brands * more * even less diff * more less * wow srsly --- .../vehicle/brand_settings_interface.cc | 13 ++++++++++ .../vehicle/brand_settings_interface.h | 13 +++++++--- .../settings/vehicle/chrysler_settings.cc | 17 ------------ .../settings/vehicle/chrysler_settings.h | 3 +-- .../offroad/settings/vehicle/ford_settings.cc | 17 ------------ .../offroad/settings/vehicle/ford_settings.h | 3 +-- .../offroad/settings/vehicle/gm_settings.cc | 17 ------------ .../qt/offroad/settings/vehicle/gm_settings.h | 3 +-- .../settings/vehicle/honda_settings.cc | 17 ------------ .../offroad/settings/vehicle/honda_settings.h | 3 +-- .../settings/vehicle/hyundai_settings.cc | 17 ------------ .../settings/vehicle/hyundai_settings.h | 6 +---- .../settings/vehicle/mazda_settings.cc | 17 ------------ .../offroad/settings/vehicle/mazda_settings.h | 3 +-- .../settings/vehicle/nissan_settings.cc | 17 ------------ .../settings/vehicle/nissan_settings.h | 3 +-- .../settings/vehicle/rivian_settings.cc | 17 ------------ .../settings/vehicle/rivian_settings.h | 3 +-- .../settings/vehicle/subaru_settings.cc | 17 ------------ .../settings/vehicle/subaru_settings.h | 3 +-- .../settings/vehicle/tesla_settings.cc | 17 ------------ .../offroad/settings/vehicle/tesla_settings.h | 3 +-- .../settings/vehicle/toyota_settings.cc | 17 ------------ .../settings/vehicle/toyota_settings.h | 3 +-- .../settings/vehicle/volkswagen_settings.cc | 17 ------------ .../settings/vehicle/volkswagen_settings.h | 3 +-- .../qt/offroad/settings/vehicle_panel.cc | 26 ++++++++++--------- .../qt/offroad/settings/vehicle_panel.h | 4 +-- 28 files changed, 51 insertions(+), 248 deletions(-) diff --git a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/brand_settings_interface.cc b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/brand_settings_interface.cc index 4c4920727..03921c01a 100644 --- a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/brand_settings_interface.cc +++ b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/brand_settings_interface.cc @@ -6,3 +6,16 @@ */ #include "selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/brand_settings_interface.h" + +BrandSettingsInterface::BrandSettingsInterface(QWidget *parent) : QWidget(parent) { + QVBoxLayout *main_layout = new QVBoxLayout(this); + main_layout->setContentsMargins(0, 0, 0, 0); + + list = new ListWidget(this, false); + main_layout->addWidget(list); +} + +void BrandSettingsInterface::updatePanel(bool _offroad) { + offroad = _offroad; + updateSettings(); +} diff --git a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/brand_settings_interface.h b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/brand_settings_interface.h index 2b6c57ae9..4aff12317 100644 --- a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/brand_settings_interface.h +++ b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/brand_settings_interface.h @@ -7,15 +7,22 @@ #pragma once -#include +#include "selfdrive/ui/sunnypilot/ui.h" +#include "selfdrive/ui/sunnypilot/qt/offroad/settings/settings.h" +#include "selfdrive/ui/sunnypilot/qt/widgets/controls.h" class BrandSettingsInterface : public QWidget { Q_OBJECT public: - explicit BrandSettingsInterface(QWidget *parent = nullptr) : QWidget(parent) {} + explicit BrandSettingsInterface(QWidget *parent = nullptr); virtual ~BrandSettingsInterface() = default; - virtual void updatePanel(bool offroad) = 0; + void updatePanel(bool _offroad); virtual void updateSettings() = 0; + +protected: + ListWidget *list = nullptr; + Params params; + bool offroad = false; }; diff --git a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/chrysler_settings.cc b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/chrysler_settings.cc index 0912a7afd..fd8fc423f 100644 --- a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/chrysler_settings.cc +++ b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/chrysler_settings.cc @@ -7,25 +7,8 @@ #include "selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/chrysler_settings.h" -#include "selfdrive/ui/sunnypilot/qt/widgets/scrollview.h" - ChryslerSettings::ChryslerSettings(QWidget *parent) : BrandSettingsInterface(parent) { - QVBoxLayout *main_layout = new QVBoxLayout(this); - main_layout->setContentsMargins(0, 0, 0, 0); - - ListWidget *list = new ListWidget(this, false); - - main_layout->addWidget(new ScrollViewSP(list, this)); -} - -void ChryslerSettings::updatePanel(bool _offroad) { - updateSettings(); - - offroad = _offroad; } void ChryslerSettings::updateSettings() { - if (!isVisible()) { - return; - } } diff --git a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/chrysler_settings.h b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/chrysler_settings.h index 20a623554..ab84bec16 100644 --- a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/chrysler_settings.h +++ b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/chrysler_settings.h @@ -19,8 +19,7 @@ class ChryslerSettings : public BrandSettingsInterface { public: explicit ChryslerSettings(QWidget *parent = nullptr); - void updatePanel(bool _offroad); - void updateSettings(); + void updateSettings() override; private: bool offroad = false; diff --git a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/ford_settings.cc b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/ford_settings.cc index eaae5a621..96564cb8a 100644 --- a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/ford_settings.cc +++ b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/ford_settings.cc @@ -7,25 +7,8 @@ #include "selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/ford_settings.h" -#include "selfdrive/ui/sunnypilot/qt/widgets/scrollview.h" - FordSettings::FordSettings(QWidget *parent) : BrandSettingsInterface(parent) { - QVBoxLayout *main_layout = new QVBoxLayout(this); - main_layout->setContentsMargins(0, 0, 0, 0); - - ListWidget *list = new ListWidget(this, false); - - main_layout->addWidget(new ScrollViewSP(list, this)); -} - -void FordSettings::updatePanel(bool _offroad) { - updateSettings(); - - offroad = _offroad; } void FordSettings::updateSettings() { - if (!isVisible()) { - return; - } } diff --git a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/ford_settings.h b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/ford_settings.h index 1d97651ba..468bd6b7d 100644 --- a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/ford_settings.h +++ b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/ford_settings.h @@ -19,8 +19,7 @@ class FordSettings : public BrandSettingsInterface { public: explicit FordSettings(QWidget *parent = nullptr); - void updatePanel(bool _offroad); - void updateSettings(); + void updateSettings() override; private: bool offroad = false; diff --git a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/gm_settings.cc b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/gm_settings.cc index 1aa4ccf93..060a28424 100644 --- a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/gm_settings.cc +++ b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/gm_settings.cc @@ -7,25 +7,8 @@ #include "selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/gm_settings.h" -#include "selfdrive/ui/sunnypilot/qt/widgets/scrollview.h" - GMSettings::GMSettings(QWidget *parent) : BrandSettingsInterface(parent) { - QVBoxLayout *main_layout = new QVBoxLayout(this); - main_layout->setContentsMargins(0, 0, 0, 0); - - ListWidget *list = new ListWidget(this, false); - - main_layout->addWidget(new ScrollViewSP(list, this)); -} - -void GMSettings::updatePanel(bool _offroad) { - updateSettings(); - - offroad = _offroad; } void GMSettings::updateSettings() { - if (!isVisible()) { - return; - } } diff --git a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/gm_settings.h b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/gm_settings.h index 35988d95e..211563ab6 100644 --- a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/gm_settings.h +++ b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/gm_settings.h @@ -19,8 +19,7 @@ class GMSettings : public BrandSettingsInterface { public: explicit GMSettings(QWidget *parent = nullptr); - void updatePanel(bool _offroad); - void updateSettings(); + void updateSettings() override; private: bool offroad = false; diff --git a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/honda_settings.cc b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/honda_settings.cc index 1efdb747f..ca18fa724 100644 --- a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/honda_settings.cc +++ b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/honda_settings.cc @@ -7,25 +7,8 @@ #include "selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/honda_settings.h" -#include "selfdrive/ui/sunnypilot/qt/widgets/scrollview.h" - HondaSettings::HondaSettings(QWidget *parent) : BrandSettingsInterface(parent) { - QVBoxLayout *main_layout = new QVBoxLayout(this); - main_layout->setContentsMargins(0, 0, 0, 0); - - ListWidget *list = new ListWidget(this, false); - - main_layout->addWidget(new ScrollViewSP(list, this)); -} - -void HondaSettings::updatePanel(bool _offroad) { - updateSettings(); - - offroad = _offroad; } void HondaSettings::updateSettings() { - if (!isVisible()) { - return; - } } diff --git a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/honda_settings.h b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/honda_settings.h index e494e8001..e41602dc1 100644 --- a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/honda_settings.h +++ b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/honda_settings.h @@ -19,8 +19,7 @@ class HondaSettings : public BrandSettingsInterface { public: explicit HondaSettings(QWidget *parent = nullptr); - void updatePanel(bool _offroad); - void updateSettings(); + void updateSettings() override; private: bool offroad = false; diff --git a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/hyundai_settings.cc b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/hyundai_settings.cc index 7e4ea4326..693a185cd 100644 --- a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/hyundai_settings.cc +++ b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/hyundai_settings.cc @@ -7,25 +7,8 @@ #include "selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/hyundai_settings.h" -#include "selfdrive/ui/sunnypilot/qt/widgets/scrollview.h" - HyundaiSettings::HyundaiSettings(QWidget *parent) : BrandSettingsInterface(parent) { - QVBoxLayout *main_layout = new QVBoxLayout(this); - main_layout->setContentsMargins(0, 0, 0, 0); - - ListWidget *list = new ListWidget(this, false); - - main_layout->addWidget(new ScrollViewSP(list, this)); -} - -void HyundaiSettings::updatePanel(bool _offroad) { - updateSettings(); - - offroad = _offroad; } void HyundaiSettings::updateSettings() { - if (!isVisible()) { - return; - } } diff --git a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/hyundai_settings.h b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/hyundai_settings.h index 0f065124f..edf495844 100644 --- a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/hyundai_settings.h +++ b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/hyundai_settings.h @@ -19,9 +19,5 @@ class HyundaiSettings : public BrandSettingsInterface { public: explicit HyundaiSettings(QWidget *parent = nullptr); - void updatePanel(bool _offroad); - void updateSettings(); - -private: - bool offroad = false; + void updateSettings() override; }; diff --git a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/mazda_settings.cc b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/mazda_settings.cc index 330afdc48..b8b8825f2 100644 --- a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/mazda_settings.cc +++ b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/mazda_settings.cc @@ -7,25 +7,8 @@ #include "selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/mazda_settings.h" -#include "selfdrive/ui/sunnypilot/qt/widgets/scrollview.h" - MazdaSettings::MazdaSettings(QWidget *parent) : BrandSettingsInterface(parent) { - QVBoxLayout *main_layout = new QVBoxLayout(this); - main_layout->setContentsMargins(0, 0, 0, 0); - - ListWidget *list = new ListWidget(this, false); - - main_layout->addWidget(new ScrollViewSP(list, this)); -} - -void MazdaSettings::updatePanel(bool _offroad) { - updateSettings(); - - offroad = _offroad; } void MazdaSettings::updateSettings() { - if (!isVisible()) { - return; - } } diff --git a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/mazda_settings.h b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/mazda_settings.h index 3d109fbe9..cbbc38de7 100644 --- a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/mazda_settings.h +++ b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/mazda_settings.h @@ -19,8 +19,7 @@ class MazdaSettings : public BrandSettingsInterface { public: explicit MazdaSettings(QWidget *parent = nullptr); - void updatePanel(bool _offroad); - void updateSettings(); + void updateSettings() override; private: bool offroad = false; diff --git a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/nissan_settings.cc b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/nissan_settings.cc index 0faa6836f..3c2194362 100644 --- a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/nissan_settings.cc +++ b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/nissan_settings.cc @@ -7,25 +7,8 @@ #include "selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/nissan_settings.h" -#include "selfdrive/ui/sunnypilot/qt/widgets/scrollview.h" - NissanSettings::NissanSettings(QWidget *parent) : BrandSettingsInterface(parent) { - QVBoxLayout *main_layout = new QVBoxLayout(this); - main_layout->setContentsMargins(0, 0, 0, 0); - - ListWidget *list = new ListWidget(this, false); - - main_layout->addWidget(new ScrollViewSP(list, this)); -} - -void NissanSettings::updatePanel(bool _offroad) { - updateSettings(); - - offroad = _offroad; } void NissanSettings::updateSettings() { - if (!isVisible()) { - return; - } } diff --git a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/nissan_settings.h b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/nissan_settings.h index 397a17e97..d6eabac0b 100644 --- a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/nissan_settings.h +++ b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/nissan_settings.h @@ -19,8 +19,7 @@ class NissanSettings : public BrandSettingsInterface { public: explicit NissanSettings(QWidget *parent = nullptr); - void updatePanel(bool _offroad); - void updateSettings(); + void updateSettings() override; private: bool offroad = false; diff --git a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/rivian_settings.cc b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/rivian_settings.cc index 401048ee5..92cf3dcd6 100644 --- a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/rivian_settings.cc +++ b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/rivian_settings.cc @@ -7,25 +7,8 @@ #include "selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/rivian_settings.h" -#include "selfdrive/ui/sunnypilot/qt/widgets/scrollview.h" - RivianSettings::RivianSettings(QWidget *parent) : BrandSettingsInterface(parent) { - QVBoxLayout *main_layout = new QVBoxLayout(this); - main_layout->setContentsMargins(0, 0, 0, 0); - - ListWidget *list = new ListWidget(this, false); - - main_layout->addWidget(new ScrollViewSP(list, this)); -} - -void RivianSettings::updatePanel(bool _offroad) { - updateSettings(); - - offroad = _offroad; } void RivianSettings::updateSettings() { - if (!isVisible()) { - return; - } } diff --git a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/rivian_settings.h b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/rivian_settings.h index bf83f5966..be25d01b3 100644 --- a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/rivian_settings.h +++ b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/rivian_settings.h @@ -19,8 +19,7 @@ class RivianSettings : public BrandSettingsInterface { public: explicit RivianSettings(QWidget *parent = nullptr); - void updatePanel(bool _offroad); - void updateSettings(); + void updateSettings() override; private: bool offroad = false; diff --git a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/subaru_settings.cc b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/subaru_settings.cc index 7a021ef4c..47c4057f4 100644 --- a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/subaru_settings.cc +++ b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/subaru_settings.cc @@ -7,25 +7,8 @@ #include "selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/subaru_settings.h" -#include "selfdrive/ui/sunnypilot/qt/widgets/scrollview.h" - SubaruSettings::SubaruSettings(QWidget *parent) : BrandSettingsInterface(parent) { - QVBoxLayout *main_layout = new QVBoxLayout(this); - main_layout->setContentsMargins(0, 0, 0, 0); - - ListWidget *list = new ListWidget(this, false); - - main_layout->addWidget(new ScrollViewSP(list, this)); -} - -void SubaruSettings::updatePanel(bool _offroad) { - updateSettings(); - - offroad = _offroad; } void SubaruSettings::updateSettings() { - if (!isVisible()) { - return; - } } diff --git a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/subaru_settings.h b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/subaru_settings.h index bdf783559..a715951ad 100644 --- a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/subaru_settings.h +++ b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/subaru_settings.h @@ -19,8 +19,7 @@ class SubaruSettings : public BrandSettingsInterface { public: explicit SubaruSettings(QWidget *parent = nullptr); - void updatePanel(bool _offroad); - void updateSettings(); + void updateSettings() override; private: bool offroad = false; diff --git a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/tesla_settings.cc b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/tesla_settings.cc index d811f1991..50ab02302 100644 --- a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/tesla_settings.cc +++ b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/tesla_settings.cc @@ -7,25 +7,8 @@ #include "selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/tesla_settings.h" -#include "selfdrive/ui/sunnypilot/qt/widgets/scrollview.h" - TeslaSettings::TeslaSettings(QWidget *parent) : BrandSettingsInterface(parent) { - QVBoxLayout *main_layout = new QVBoxLayout(this); - main_layout->setContentsMargins(0, 0, 0, 0); - - ListWidget *list = new ListWidget(this, false); - - main_layout->addWidget(new ScrollViewSP(list, this)); -} - -void TeslaSettings::updatePanel(bool _offroad) { - updateSettings(); - - offroad = _offroad; } void TeslaSettings::updateSettings() { - if (!isVisible()) { - return; - } } diff --git a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/tesla_settings.h b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/tesla_settings.h index 5c40324dc..37f2936cd 100644 --- a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/tesla_settings.h +++ b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/tesla_settings.h @@ -19,8 +19,7 @@ class TeslaSettings : public BrandSettingsInterface { public: explicit TeslaSettings(QWidget *parent = nullptr); - void updatePanel(bool _offroad); - void updateSettings(); + void updateSettings() override; private: bool offroad = false; diff --git a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/toyota_settings.cc b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/toyota_settings.cc index 13b4435d1..c41617791 100644 --- a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/toyota_settings.cc +++ b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/toyota_settings.cc @@ -7,25 +7,8 @@ #include "selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/toyota_settings.h" -#include "selfdrive/ui/sunnypilot/qt/widgets/scrollview.h" - ToyotaSettings::ToyotaSettings(QWidget *parent) : BrandSettingsInterface(parent) { - QVBoxLayout *main_layout = new QVBoxLayout(this); - main_layout->setContentsMargins(0, 0, 0, 0); - - ListWidget *list = new ListWidget(this, false); - - main_layout->addWidget(new ScrollViewSP(list, this)); -} - -void ToyotaSettings::updatePanel(bool _offroad) { - updateSettings(); - - offroad = _offroad; } void ToyotaSettings::updateSettings() { - if (!isVisible()) { - return; - } } diff --git a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/toyota_settings.h b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/toyota_settings.h index 46c8ef982..9fc18a2a6 100644 --- a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/toyota_settings.h +++ b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/toyota_settings.h @@ -19,8 +19,7 @@ class ToyotaSettings : public BrandSettingsInterface { public: explicit ToyotaSettings(QWidget *parent = nullptr); - void updatePanel(bool _offroad); - void updateSettings(); + void updateSettings() override; private: bool offroad = false; diff --git a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/volkswagen_settings.cc b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/volkswagen_settings.cc index 457776f50..59f0aab72 100644 --- a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/volkswagen_settings.cc +++ b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/volkswagen_settings.cc @@ -7,25 +7,8 @@ #include "selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/volkswagen_settings.h" -#include "selfdrive/ui/sunnypilot/qt/widgets/scrollview.h" - VolkswagenSettings::VolkswagenSettings(QWidget *parent) : BrandSettingsInterface(parent) { - QVBoxLayout *main_layout = new QVBoxLayout(this); - main_layout->setContentsMargins(0, 0, 0, 0); - - ListWidget *list = new ListWidget(this, false); - - main_layout->addWidget(new ScrollViewSP(list, this)); -} - -void VolkswagenSettings::updatePanel(bool _offroad) { - updateSettings(); - - offroad = _offroad; } void VolkswagenSettings::updateSettings() { - if (!isVisible()) { - return; - } } diff --git a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/volkswagen_settings.h b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/volkswagen_settings.h index c74123e7b..25d3a07fa 100644 --- a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/volkswagen_settings.h +++ b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle/volkswagen_settings.h @@ -19,8 +19,7 @@ class VolkswagenSettings : public BrandSettingsInterface { public: explicit VolkswagenSettings(QWidget *parent = nullptr); - void updatePanel(bool _offroad); - void updateSettings(); + void updateSettings() override; private: bool offroad = false; diff --git a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle_panel.cc b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle_panel.cc index 7ba5790ac..5c00e746f 100644 --- a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle_panel.cc +++ b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle_panel.cc @@ -12,26 +12,27 @@ #include "selfdrive/ui/sunnypilot/qt/widgets/scrollview.h" VehiclePanel::VehiclePanel(QWidget *parent) : QFrame(parent) { - main_layout = new QStackedLayout(this); - ListWidget *list = new ListWidget(this); + QVBoxLayout *main_layout = new QVBoxLayout(this); + main_layout->setContentsMargins(50, 20, 50, 20); - vehicleScreen = new QWidget(this); - QVBoxLayout *vlayout = new QVBoxLayout(vehicleScreen); - vlayout->setContentsMargins(50, 20, 50, 20); + ListWidget *list = new ListWidget(this); platformSelector = new PlatformSelector(); QObject::connect(platformSelector, &PlatformSelector::refreshPanel, this, &VehiclePanel::updateBrandSettings); list->addItem(platformSelector); + brandSettingsContainer = new QWidget(this); + brandSettingsContainerLayout = new QVBoxLayout(brandSettingsContainer); + brandSettingsContainerLayout->setContentsMargins(0, 0, 0, 0); + brandSettingsContainerLayout->setSpacing(0); + list->addItem(brandSettingsContainer); + ScrollViewSP *scroller = new ScrollViewSP(list, this); - vlayout->addWidget(scroller); + main_layout->addWidget(scroller); currentBrandSettings = nullptr; QObject::connect(uiState(), &UIState::offroadTransition, this, &VehiclePanel::updatePanel); - - main_layout->addWidget(vehicleScreen); - main_layout->setCurrentWidget(vehicleScreen); } void VehiclePanel::showEvent(QShowEvent *event) { @@ -39,9 +40,9 @@ void VehiclePanel::showEvent(QShowEvent *event) { } void VehiclePanel::updatePanel(bool _offroad) { + offroad = _offroad; platformSelector->refresh(_offroad); updateBrandSettings(); - offroad = _offroad; } void VehiclePanel::updateBrandSettings() { @@ -50,7 +51,7 @@ void VehiclePanel::updateBrandSettings() { } if (currentBrandSettings) { - vehicleScreen->layout()->removeWidget(currentBrandSettings); + brandSettingsContainerLayout->removeWidget(currentBrandSettings); delete currentBrandSettings; currentBrandSettings = nullptr; } @@ -58,7 +59,8 @@ void VehiclePanel::updateBrandSettings() { if (BrandSettingsFactory::isBrandSupported(platformSelector->brand)) { currentBrandSettings = BrandSettingsFactory::createBrandSettings(platformSelector->brand, this); if (currentBrandSettings) { - vehicleScreen->layout()->addWidget(currentBrandSettings); + currentBrandSettings->setContentsMargins(0, 0, 0, 0); + brandSettingsContainerLayout->addWidget(currentBrandSettings); currentBrandSettings->updatePanel(offroad); } } diff --git a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle_panel.h b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle_panel.h index 5fc03d3d6..a170aa87c 100644 --- a/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle_panel.h +++ b/selfdrive/ui/sunnypilot/qt/offroad/settings/vehicle_panel.h @@ -23,10 +23,10 @@ public slots: void updatePanel(bool _offroad); private: - QStackedLayout* main_layout = nullptr; - QWidget* vehicleScreen = nullptr; PlatformSelector* platformSelector = nullptr; BrandSettingsInterface* currentBrandSettings = nullptr; + QWidget* brandSettingsContainer = nullptr; + QVBoxLayout* brandSettingsContainerLayout = nullptr; bool offroad = false; private slots: