/** * @licence app begin@ * SPDX-License-Identifier: MPL-2.0 * * \copyright Copyright (C) 2013-2014, PCA Peugeot Citroen * * \file mainwindow.h * * \brief This file is part of the poi proof of concept. * * \author Philippe Colliot * * \version 1.1 * * This Source Code Form is subject to the terms of the * Mozilla Public License (MPL), v. 2.0. * If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * * For further information see http://www.genivi.org/. * * List of changes: * 10-02-2014, Philippe Colliot, refinement and migration to the new repository * , , * * @licence end@ */ #ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include "QStandardItemModel" #include #include #include #include #include #include #include #include "../poi-common/genivi-positioning-constants.h" #include "../poi-common/genivi-mapviewer-constants.h" #include "../poi-common/genivi-navigationcore-constants.h" #include "../poi-common/genivi-poiservice-constants.h" #include "poi-client-DBusSearchInterface.h" #include "poi-client-DBusContentAccessInterface.h" #include "poi-client-DBusRoutingInterface.h" #include "poi-client-DBusGuidanceInterface.h" #include "poi-client-DBusEnhancedPositionInterface.h" #include "poi-client-DBusNavigationCoreSessionInterface.h" namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: enum ScreenOrientation { ScreenOrientationLockPortrait, ScreenOrientationLockLandscape, ScreenOrientationAuto }; explicit MainWindow(QWidget *parent = 0); virtual ~MainWindow(); void InitUi(); // settings (from the config file) uint settingsInvalidHandle; int settingsPoiDisplayTableRows; //max number of rows displayed at a time QString settingsDefaultTextToSearch; geoCoordinate3D_t settingsDefaultLocation; QString settingsDefaultTextToBeInitialized; uint settingsDefaultRadius; version_t settingsVersion; QString settingsLanguageCode; QString settingsCountryCode; QString settingsHMIlanguage; // Must fit that list and order of attributes: "Source","WebSite","Phone","Stars","Open hours","HouseNumber","Street","Post code","City","Brand","Operateur" QString settingsAttributeSource; QString settingsAttributeWebSite; QString settingsAttributePhone; QString settingsAttributeStars; QString settingsAttributeOpeningHours; QString settingsAttributeAddrHouseNumber; QString settingsAttributeAddrStreet; QString settingsAttributeAddrPostCode; QString settingsAttributeAddrCity; QString settingsAttributeBrand; QString settingsAttributeOperateur; uint settingsMapWidthInMeter; uint settingsMapHeightInMeter; int settingsTimerPeriodForPosition; private slots: void on_startSearch_clicked(); void on_createpoiHandle_clicked(); void on_deletepoiHandle_clicked(); void on_cancelSearch_clicked(); void on_About_clicked(); void on_getTopList_clicked(); void on_getNextList_clicked(); void on_getPrevList_clicked(); void on_DBusSignalPoiStatus(uchar poiSearchHandle,ushort statusValue); void on_DBusSignalResultListChanged(uchar poiSearchHandle,ushort resultListSize); void on_DBusSignalCategoriesUpdated(QList poiCategories); void on_DBusSignalPositionUpdate(QList changedValues); void on_DBusSignalRouteCalculationSuccessful(uchar routeHandle,tupleUshort_t unfullfilledPreferences); void on_DBusSignalRouteDeleted(uchar routeHandle); void on_setProximity_clicked(); void on_cancelProximity_clicked(); private: void select_category(); void manageDBusError(QDBusMessage reply); void initSettings(); void manageStatus(ushort statusValue); void refreshViewTable(ushort windowSize); void clearViewTable(); bool giveCategoryIndex(ushort id,ushort *index_in_table); bool giveCategoryIndexAdditional(ushort id,ushort *index_in_table); bool isNewCategory(ushort id,QList poiList); enum tableViewPoiConstants { columnName = 0, columnCategory = 1, columnDistance = 2, columnId = 3, columnLatitude = 4, columnLongitude = 5, columnSource = 6, columnWebSite = 7, columnPhone = 8, columnStars = 9, columnOpeningHours = 10, columnAddrHouseNumber = 11, columnAddrStreet = 12, columnAddrPostcode = 13, columnAddrCity = 14, columnBrand = 15, columnOperateur = 16, columnIcon = 17, columnSize }; Ui::MainWindow *ui; QGraphicsScene m_scenePOI; QList m_tableIconPOI; //handles to DBus interfaces org::genivi::poiservice::poiSearch::DBusSearchInterface *m_dbusPoiSearchInterface; org::genivi::navigationcore::Routing::DBusRoutingInterface *m_dbusNavigationRoutingInterface; org::genivi::navigationcore::Guidance::DBusGuidanceInterface *m_dbusNavigationGuidanceInterface; DBusEnhancedPositionInterface *m_dbusPositioningEnhancedPositionInterface; org::genivi::navigationcore::Session::DBusNavigationCoreSessionInterface *m_dbusNavigationCoreSessionInterface; org::genivi::poiservice::poiContentAccess::DBusContentAccessInterface *m_dbusContentAccessInterface; geoCoordinate3D_t m_geoLocation; //handles to managed elements by GENIVI components uint m_poiSearchHandle; uchar m_routeHandle; uchar m_sessionHandle; std::string m_languageCode; std::string m_countryCode; ushort m_searchStatus; poiCategoryFull_t m_rootCategory; QList m_poiCategoryList; QList m_poiCategoryListAdditional; QList m_poiCategoryDetailsList; QList m_poiCategoryDetailsListAdditional; QList mp_radiusLineEditBox; QList mp_categoryCheckBox; QList mp_attributeSourceCheckBox; QList mp_attributeWebSiteCheckBox; QList mp_attributePhoneCheckBox; QList mp_attributeStarsCheckBox; QList mp_attributeOpeningHoursCheckBox; QList mp_attributeAddrHouseNumberCheckBox; QList mp_attributeAddrStreetCheckBox; QList mp_attributeAddrPostCodeCheckBox; QList mp_attributeAddrCityCheckBox; QList mp_attributeBrandCheckBox; QList mp_attributeOperateurCheckBox; QList mp_attributeGetCheckBox; QList mp_radiusLineEditBoxAdditional; QList mp_categoryCheckBoxAdditional; QList mp_attributeSourceCheckBoxAdditional; QList mp_attributeWebSiteCheckBoxAdditional; QList mp_attributePhoneCheckBoxAdditional; QList mp_attributeStarsCheckBoxAdditional; QList mp_attributeOpeningHoursCheckBoxAdditional; QList mp_attributeAddrHouseNumberCheckBoxAdditional; QList mp_attributeAddrStreetCheckBoxAdditional; QList mp_attributeAddrPostCodeCheckBoxAdditional; QList mp_attributeAddrCityCheckBoxAdditional; QList mp_attributeBrandCheckBoxAdditional; QList mp_attributeOperateurCheckBoxAdditional; QList mp_attributeGetCheckBoxAdditional; QStandardItemModel *mp_tableViewPoi; ushort m_totalSize; ushort m_currentTopListIndex; ushort m_startSearchOffset; ushort m_endSearchOffset; // QList mp_radiusEllipse; QList mp_radiusEllipseAdditional; QList m_categoryColor; uint m_mapWidth; uint m_mapHeight; uint m_mapCenterX; uint m_mapCenterY; uint m_totalNumberOfSegments; QList m_route; bool isSetProximityModeSelected; bool isSearchAroundTheVehicleSelected; QList m_satelliteDetails; uchar m_satelliteAmount; }; #endif // MAINWINDOW_H