From ededa7e3ef24a8cea9e513fa008ef481c1675457 Mon Sep 17 00:00:00 2001 From: Scott Murray Date: Fri, 30 Aug 2019 11:43:58 -0400 Subject: Initial check in Initial check in of the original repository: git://github.com/AGLExport/genivi-navi-yelp-client.git as of commit c2691cb265d9198542482a860f1df378e8c2708b. Bug-AGL: SPEC-2787 Signed-off-by: Scott Murray Change-Id: I7405367387622fb788a5712ed24005ee6d7ce495 --- MainApp.h | 98 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 MainApp.h (limited to 'MainApp.h') diff --git a/MainApp.h b/MainApp.h new file mode 100644 index 0000000..7e80c32 --- /dev/null +++ b/MainApp.h @@ -0,0 +1,98 @@ +#ifndef __MAINAPP_H__ +#define __MAINAPP_H__ + +#include +#include +#include +#include +#include +#include +#include +#include "Business.h" +#include "InfoPanel.h" +#include "Keyboard.h" + +#include + +class MainApp: public QMainWindow, public naviapi::NavicoreListener +{ + Q_OBJECT + + public: + explicit MainApp(); + ~MainApp(); + bool CheckNaviApi(int argc, char *argv[]); + int AuthenticatePOI(const QString & CredentialsFile); + int StartMonitoringUserInput(); + void setInfoScreen(bool val) { isInfoScreen = val; } + void setKeyboard(bool val) { isKeyboard = val; } + + private: + void ParseJsonBusinessList(const char* buf, std::vector & Output); + bool eventFilter(QObject *obj, QEvent *ev); + void resizeEvent(QResizeEvent* event); + void SetDestination(int index = 0); + bool IsCoordinatesConsistent(Business & business); + void DisplayLineEdit(bool display = true); + void DisplayResultList(bool display, bool RefreshDisplay = true); + void DisplayInformation(bool display, bool RefreshDisplay = true); + int FillResultList(std::vector & list, int focusIndex = 0); + void SetWayPoints(uint32_t myRoute); + + naviapi::Navicore naviapi; + QNetworkAccessManager networkManager; + QPushButton searchBtn; + QLineEdit lineEdit; + Keyboard keyboard; + QMutex mutex; // to protect pointers from concurrent access + QString token; + QString currentSearchingText; + QString currentSearchedText; + QNetworkReply *pSearchReply; + InfoPanel *pInfoPanel; + QTreeWidget *pResultList; + double currentLatitude; + double currentLongitude; + double destinationLatitude; + double destinationLongitude; + uint32_t navicoreSession; + uint32_t currentRouteHandle; + int currentIndex; + int fontId; + bool isInfoScreen; + bool isInputDisplayed; + bool isKeyboard; + bool isAglNavi; + std::vector Businesses; + QFont font; + + public: + void getAllSessions_reply(const std::map< uint32_t, std::string >& allSessions); + void getPosition_reply(std::map< int32_t, naviapi::variant > position); + void getAllRoutes_reply(std::vector< uint32_t > allRoutes); + void createRoute_reply(uint32_t routeHandle); + + private slots: + void searchBtnClicked(); + void textChanged(const QString & text); + void textAdded(const QString & text); + void keyPressed(int key); + void itemClicked(); + void networkReplySearch(QNetworkReply* reply); + void UpdateAglSurfaces(); + void goClicked(); + void cancelClicked(); + + void allSessionsGot(); + void positionGot(); + void allRoutesGot(); + void routeCreated(); + + signals: + void allSessionsGotSignal(); + void positionGotSignal(); + void allRoutesGotSignal(); + void routeCreatedSignal(); +}; + +#endif // __MAINAPP_H__ -- cgit 1.2.3-korg