summaryrefslogtreecommitdiffstats
path: root/MainApp.h
diff options
context:
space:
mode:
Diffstat (limited to 'MainApp.h')
-rw-r--r--MainApp.h98
1 files changed, 98 insertions, 0 deletions
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 <QMainWindow>
+#include <QtWidgets>
+#include <QNetworkAccessManager>
+#include <QNetworkReply>
+#include <QMutex>
+#include <QTreeWidget>
+#include <vector>
+#include "Business.h"
+#include "InfoPanel.h"
+#include "Keyboard.h"
+
+#include <libnavicore.hpp>
+
+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<Business> & 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<Business> & 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<Business> 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__