nav: show star for favorites (#21434)

old-commit-hash: 2de4c09e62
commatwo_master
Willem Melching 4 years ago committed by GitHub
parent 9980d08915
commit 2db1d4589e
  1. 136
      selfdrive/ui/qt/maps/map_settings.cc

@ -94,7 +94,6 @@ MapPanel::MapPanel(QWidget* parent) : QWidget(parent) {
}); });
} }
} }
} }
void MapPanel::clear() { void MapPanel::clear() {
@ -122,66 +121,83 @@ void MapPanel::parseResponse(const QString &response) {
clear(); clear();
bool has_recents = false; bool has_recents = false;
for (auto location : doc.array()) { for (auto &save_type: {"favorite", "recent"}) {
auto obj = location.toObject(); for (auto location : doc.array()) {
auto obj = location.toObject();
auto type = obj["save_type"].toString();
auto label = obj["label"].toString(); auto type = obj["save_type"].toString();
auto name = obj["place_name"].toString(); auto label = obj["label"].toString();
auto details = shorten(obj["place_details"].toString(), 30); auto name = obj["place_name"].toString();
auto details = shorten(obj["place_details"].toString(), 30);
if (type == "favorite" && label == "home") {
home_address->setText(name); if (type != save_type) continue;
home_address->setStyleSheet(R"(font-size: 50px; color: white;)");
home_button->setIcon(QPixmap("../assets/navigation/home.png")); if (type == "favorite" && label == "home") {
QObject::connect(home_button, &QPushButton::clicked, [=]() { home_address->setText(name);
navigateTo(obj); home_address->setStyleSheet(R"(font-size: 50px; color: white;)");
emit closeSettings(); home_button->setIcon(QPixmap("../assets/navigation/home.png"));
}); QObject::connect(home_button, &QPushButton::clicked, [=]() {
} else if (type == "favorite" && label == "work") { navigateTo(obj);
work_address->setText(name); emit closeSettings();
work_address->setStyleSheet(R"(font-size: 50px; color: white;)"); });
work_button->setIcon(QPixmap("../assets/navigation/work.png")); } else if (type == "favorite" && label == "work") {
QObject::connect(work_button, &QPushButton::clicked, [=]() { work_address->setText(name);
navigateTo(obj); work_address->setStyleSheet(R"(font-size: 50px; color: white;)");
emit closeSettings(); work_button->setIcon(QPixmap("../assets/navigation/work.png"));
}); QObject::connect(work_button, &QPushButton::clicked, [=]() {
} else { navigateTo(obj);
ClickableWidget *widget = new ClickableWidget; emit closeSettings();
QHBoxLayout *layout = new QHBoxLayout(widget); });
layout->setContentsMargins(40, 10, 40, 10); } else {
ClickableWidget *widget = new ClickableWidget;
QLabel *recent_label = new QLabel(name + " " + details); QHBoxLayout *layout = new QHBoxLayout(widget);
recent_label->setStyleSheet(R"(font-size: 50px; color: #9c9c9c)"); layout->setContentsMargins(15, 10, 40, 10);
layout->addWidget(recent_label); QLabel *star = new QLabel("");
layout->addStretch(); auto sp = star->sizePolicy();
sp.setRetainSizeWhenHidden(true);
QLabel *arrow = new QLabel(""); star->setSizePolicy(sp);
arrow->setStyleSheet(R"(font-size: 60px;)");
layout->addWidget(arrow); star->setVisible(type == "favorite");
star->setStyleSheet(R"(font-size: 60px;)");
widget->setStyleSheet(R"( layout->addWidget(star);
.ClickableWidget { layout->addSpacing(10);
border-radius: 10px;
border-width: 1px;
border-style: solid; QLabel *recent_label = new QLabel(name + " " + details);
border-color: gray; recent_label->setStyleSheet(R"(font-size: 50px;)");
}
QWidget { layout->addWidget(recent_label);
background-color: #393939; layout->addStretch();
}
)"); QLabel *arrow = new QLabel("");
arrow->setStyleSheet(R"(font-size: 60px;)");
QObject::connect(widget, &ClickableWidget::clicked, [=]() { layout->addWidget(arrow);
navigateTo(obj);
emit closeSettings(); widget->setStyleSheet(R"(
}); .ClickableWidget {
border-radius: 10px;
recent_layout->addWidget(widget); border-width: 1px;
recent_layout->addSpacing(10); border-style: solid;
has_recents = true; border-color: gray;
}
QWidget {
background-color: #393939;
color: #9c9c9c;
}
)");
QObject::connect(widget, &ClickableWidget::clicked, [=]() {
navigateTo(obj);
emit closeSettings();
});
recent_layout->addWidget(widget);
recent_layout->addSpacing(10);
has_recents = true;
}
} }
} }
if (!has_recents) { if (!has_recents) {

Loading…
Cancel
Save