mirror of
https://github.com/dragonpilot/dragonpilot.git
synced 2026-06-22 06:22:06 +08:00
map panel for free
This commit is contained in:
@@ -221,6 +221,7 @@ std::unordered_map<std::string, uint32_t> keys = {
|
||||
{"dp_vag_sng", PERSISTENT},
|
||||
{"dp_vehicle_list", PERSISTENT},
|
||||
{"dp_vehicle_assigned", PERSISTENT},
|
||||
{"dp_ui_map_panel", PERSISTENT},
|
||||
};
|
||||
|
||||
} // namespace
|
||||
|
||||
+1
-1
Submodule dp_ext updated: 22edb00adc...33c4c75b32
+1
-1
Submodule dp_priv updated: ef6eac9805...586b0725b1
@@ -37,7 +37,8 @@ if maps:
|
||||
base_libs += ['QMapLibre']
|
||||
widgets_src += ["qt/maps/map_helpers.cc", "qt/maps/map_settings.cc", "qt/maps/map.cc", "qt/maps/map_panel.cc",
|
||||
"qt/maps/map_eta.cc", "qt/maps/map_instructions.cc"]
|
||||
# if dp_priv:
|
||||
if dp_priv:
|
||||
widgets_src = insert_src(widgets_src, "qt/maps/map_helpers.cc", ["#dp_priv/selfdrive/ui/qt/maps/map_helpers.cc"])
|
||||
# widgets_src = insert_src(widgets_src, "qt/maps/map_settings.cc", ["#dp_priv/selfdrive/ui/qt/maps/map_settings.cc"])
|
||||
qt_env['CPPDEFINES'] += ["ENABLE_MAPS"]
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include "selfdrive/ui/qt/util.h"
|
||||
#include "selfdrive/ui/ui.h"
|
||||
|
||||
#include "dp_priv/selfdrive/ui/qt/maps/map_helpers.h"
|
||||
|
||||
const int INTERACTION_TIMEOUT = 100;
|
||||
|
||||
@@ -262,6 +263,12 @@ void MapWindow::initializeGL() {
|
||||
m_map->setPitch(MIN_PITCH);
|
||||
m_map->setStyleUrl("mapbox://styles/commaai/clkqztk0f00ou01qyhsa5bzpj");
|
||||
|
||||
#ifdef DP
|
||||
if (uiState()->scene.dp_ui_map_panel) {
|
||||
ReconfigureMapPanel(m_map);
|
||||
}
|
||||
#endif
|
||||
|
||||
QObject::connect(m_map.data(), &QMapLibre::Map::mapChanged, [=](QMapLibre::Map::MapChange change) {
|
||||
// set global animation duration to 0 ms so visibility changes are instant
|
||||
if (change == QMapLibre::Map::MapChange::MapChangeDidFinishLoadingStyle) {
|
||||
|
||||
@@ -54,6 +54,7 @@ OnroadWindow::OnroadWindow(QWidget *parent) : QWidget(parent) {
|
||||
#endif
|
||||
// rick - read full screen param
|
||||
dp_nav_full_screen = Params().getBool("dp_nav_full_screen");
|
||||
dp_ui_map_panel = Params().getBool("dp_ui_map_panel");
|
||||
}
|
||||
|
||||
void OnroadWindow::updateState(const UIState &s) {
|
||||
@@ -114,13 +115,18 @@ void OnroadWindow::createMapWidget() {
|
||||
split->insertWidget(0, m);
|
||||
// hidden by default, made visible when navRoute is published
|
||||
m->setVisible(false);
|
||||
|
||||
if (dp_ui_map_panel) {
|
||||
nvg->map_settings_btn->setEnabled(false);
|
||||
nvg->map_settings_btn->setVisible(false);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void OnroadWindow::offroadTransition(bool offroad) {
|
||||
#ifdef ENABLE_MAPS
|
||||
if (!offroad) {
|
||||
if (map == nullptr && (uiState()->hasPrime() || !MAPBOX_TOKEN.isEmpty())) {
|
||||
if (map == nullptr && (dp_ui_map_panel || uiState()->hasPrime() || !MAPBOX_TOKEN.isEmpty())) {
|
||||
createMapWidget();
|
||||
}
|
||||
}
|
||||
@@ -130,12 +136,12 @@ void OnroadWindow::offroadTransition(bool offroad) {
|
||||
|
||||
void OnroadWindow::primeChanged(bool prime) {
|
||||
#ifdef ENABLE_MAPS
|
||||
if (map && (!prime && MAPBOX_TOKEN.isEmpty())) {
|
||||
if (map && (!dp_ui_map_panel && !prime && MAPBOX_TOKEN.isEmpty())) {
|
||||
nvg->map_settings_btn->setEnabled(false);
|
||||
nvg->map_settings_btn->setVisible(false);
|
||||
map->deleteLater();
|
||||
map = nullptr;
|
||||
} else if (!map && (prime || !MAPBOX_TOKEN.isEmpty())) {
|
||||
} else if (!map && (dp_ui_map_panel || prime || !MAPBOX_TOKEN.isEmpty())) {
|
||||
createMapWidget();
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -30,6 +30,7 @@ private:
|
||||
|
||||
// dp
|
||||
bool dp_nav_full_screen = false;
|
||||
bool dp_ui_map_panel = false;
|
||||
#ifdef DP
|
||||
BorderIndicator *border_indicator;
|
||||
#endif
|
||||
|
||||
@@ -215,6 +215,9 @@ void ui_update_params(UIState *s) {
|
||||
auto params = Params();
|
||||
s->scene.is_metric = params.getBool("IsMetric");
|
||||
s->scene.map_on_left = params.getBool("NavSettingLeftSide");
|
||||
|
||||
// dp
|
||||
s->scene.dp_ui_map_panel = params.getBool("dp_ui_map_panel");
|
||||
}
|
||||
|
||||
void UIState::updateStatus() {
|
||||
|
||||
@@ -108,6 +108,9 @@ typedef struct UIScene {
|
||||
bool started, ignition, is_metric, map_on_left, longitudinal_control;
|
||||
bool world_objects_visible = false;
|
||||
uint64_t started_frame;
|
||||
|
||||
// dp
|
||||
bool dp_ui_map_panel;
|
||||
} UIScene;
|
||||
|
||||
class UIState : public QObject {
|
||||
|
||||
@@ -53,6 +53,7 @@ def manager_init() -> None:
|
||||
("dp_vag_sng", "0"),
|
||||
("dp_vehicle_list", ""),
|
||||
("dp_vehicle_assigned", ""),
|
||||
("dp_ui_map_panel", "0"),
|
||||
]
|
||||
if not PC:
|
||||
default_params.append(("LastUpdateTime", datetime.datetime.now(datetime.UTC).replace(tzinfo=None).isoformat().encode('utf8')))
|
||||
|
||||
Reference in New Issue
Block a user