#pragma once #include #include "starpilot/ui/qt/offroad/starpilot_settings.h" class StarPilotModelPanel : public StarPilotListWidget { Q_OBJECT public: explicit StarPilotModelPanel(StarPilotSettingsWindow *parent); signals: void openSubPanel(); protected: void showEvent(QShowEvent *event) override; private: void updateModelLabels(StarPilotListWidget *labelsList); void updateState(const UIState &s, const StarPilotUIState &fs); void updateToggles(); bool isModelInstalled(const QString &key) const; QMap getDeletableModelDisplayNames(); bool allModelsDownloaded; bool allModelsDownloading; bool cancellingDownload; bool finalizingDownload; bool forceOpenDescriptions; bool modelDownloading; bool noModelsDownloaded; bool started; bool tinygradUpdate; bool updatingTinygrad; int tuningLevel; std::map toggles; ButtonControl *selectModelButton; StarPilotButtonsControl *deleteModelButton; StarPilotButtonsControl *downloadModelButton; StarPilotButtonsControl *updateTinygradButton; StarPilotSettingsWindow *parent; Params params; Params params_memory{"", true}; QDir modelDir{"/data/models/"}; QJsonObject starpilotToggleLevels; QMap modelFileToNameMap; QMap modelFileToNameMapProcessed; QMap modelReleasedDates; QMap modelSeriesMap; QString currentModel; QStringList availableModelNames; QStringList availableModelSeries; };