# pragma once
# include <QLabel>
# include <QStackedWidget>
# include <QVBoxLayout>
# include <QWidget>
# include "selfdrive/ui/qt/widgets/input.h"
enum PrimeType {
NONE = 0 ,
MAGENTA = 1 ,
LITE = 2 ,
BLUE = 3 ,
MAGENTA_NEW = 4 ,
} ;
// pairing QR code
class PairingQRWidget : public QWidget {
Q_OBJECT
public :
explicit PairingQRWidget ( QWidget * parent = 0 ) ;
void paintEvent ( QPaintEvent * ) override ;
private :
QPixmap img ;
QTimer * timer ;
void updateQrCode ( const QString & text ) ;
void showEvent ( QShowEvent * event ) override ;
void hideEvent ( QHideEvent * event ) override ;
private slots :
void refresh ( ) ;
} ;
// pairing popup widget
class PairingPopup : public QDialogBase {
Q_OBJECT
public :
explicit PairingPopup ( QWidget * parent ) ;
} ;
// widget for paired users with prime
class PrimeUserWidget : public QFrame {
Q_OBJECT
public :
explicit PrimeUserWidget ( QWidget * parent = 0 ) ;
} ;
// widget for paired users without prime
class PrimeAdWidget : public QFrame {
Q_OBJECT
public :
explicit PrimeAdWidget ( QWidget * parent = 0 ) ;
} ;
// container widget
class SetupWidget : public QFrame {
Q_OBJECT
public :
explicit SetupWidget ( QWidget * parent = 0 ) ;
signals :
void openSettings ( int index = 0 , const QString & param = " " ) ;
private :
PairingPopup * popup ;
QStackedWidget * mainLayout ;
PrimeUserWidget * primeUser ;
private slots :
void replyFinished ( const QString & response , bool success ) ;
} ;