@ -4,6 +4,7 @@
# include "selfdrive/common/util.h"
# include "selfdrive/ui/qt/util.h"
# include "selfdrive/ui/qt/qt_window.h"
# include "selfdrive/ui/qt/request_repeater.h"
# include "selfdrive/ui/qt/widgets/controls.h"
# include "selfdrive/ui/qt/widgets/scrollview.h"
@ -13,7 +14,10 @@ static QString shorten(const QString &str, int max_len) {
}
MapPanel : : MapPanel ( QWidget * parent ) : QWidget ( parent ) {
QVBoxLayout * main_layout = new QVBoxLayout ( this ) ;
stack = new QStackedWidget ;
QWidget * main_widget = new QWidget ;
QVBoxLayout * main_layout = new QVBoxLayout ( main_widget ) ;
const int icon_size = 200 ;
// Home
@ -57,6 +61,36 @@ MapPanel::MapPanel(QWidget* parent) : QWidget(parent) {
ScrollView * recent_scroller = new ScrollView ( recent_widget , this ) ;
main_layout - > addWidget ( recent_scroller , 1 ) ;
QWidget * no_prime_widget = new QWidget ;
QVBoxLayout * no_prime_layout = new QVBoxLayout ( no_prime_widget ) ;
QLabel * signup_header = new QLabel ( " Try the Navigation Beta " ) ;
signup_header - > setStyleSheet ( R " (font-size: 75px; color: white; font-weight:600;) " ) ;
signup_header - > setAlignment ( Qt : : AlignCenter ) ;
no_prime_layout - > addWidget ( signup_header ) ;
no_prime_layout - > addSpacing ( 50 ) ;
QLabel * screenshot = new QLabel ;
QPixmap pm = QPixmap ( " ../assets/navigation/screenshot.png " ) ;
screenshot - > setPixmap ( pm . scaledToWidth ( vwp_w * 0.5 , Qt : : SmoothTransformation ) ) ;
no_prime_layout - > addWidget ( screenshot , 0 , Qt : : AlignHCenter ) ;
QLabel * signup = new QLabel ( " Get turn-by-turn directions displayed and more with a comma \n prime subscription. Sign up now: https://connect.comma.ai " ) ;
signup - > setStyleSheet ( R " (font-size: 45px; color: white; font-weight:300;) " ) ;
signup - > setAlignment ( Qt : : AlignCenter ) ;
no_prime_layout - > addSpacing ( 50 ) ;
no_prime_layout - > addWidget ( signup ) ;
no_prime_layout - > addStretch ( ) ;
stack - > addWidget ( main_widget ) ;
stack - > addWidget ( no_prime_widget ) ;
stack - > setCurrentIndex ( 1 ) ;
QVBoxLayout * wrapper = new QVBoxLayout ( this ) ;
wrapper - > addWidget ( stack ) ;
clear ( ) ;
std : : string dongle_id = params . get ( " DongleId " ) ;
@ -66,6 +100,7 @@ MapPanel::MapPanel(QWidget* parent) : QWidget(parent) {
std : : string url = " https://api.commadotai.com/v1/navigation/ " + dongle_id + " /locations " ;
RequestRepeater * repeater = new RequestRepeater ( this , QString : : fromStdString ( url ) , " ApiCache_NavDestinations " , 30 ) ;
QObject : : connect ( repeater , & RequestRepeater : : receivedResponse , this , & MapPanel : : parseResponse ) ;
QObject : : connect ( repeater , & RequestRepeater : : failedResponse , this , & MapPanel : : failedResponse ) ;
}
// Destination set while offline
@ -199,6 +234,12 @@ void MapPanel::parseResponse(const QString &response) {
}
recent_layout - > addStretch ( ) ;
stack - > setCurrentIndex ( 0 ) ;
repaint ( ) ;
}
void MapPanel : : failedResponse ( const QString & response ) {
stack - > setCurrentIndex ( 1 ) ;
}
void MapPanel : : navigateTo ( const QJsonObject & place ) {