Henri Lampela - henri.lampela@ixonos.com
Kaj Wallin - kaj.wallin@ixonos.com
+ Jussi Laitinen - jussi.laitinen@ixonos.com
Sami Rämö - sami.ramo@ixonos.com
+ Ville Tiensuu - ville.tiensuu@ixonos.com
Katri Kaikkonen - katri.kaikkonen@ixonos.com
Situare is free software; you can redistribute it and/or
class QWebView;
class FacebookAuthentication;
-class FullScreenButton;
+class FacebookLoginBrowser;
class FriendListPanel;
-class IndicatorButton;
+class FullScreenButton;
class GeoCoordinate;
+class IndicatorButtonPanel;
+class Location;
+class LocationSearchPanel;
class MapScale;
class MapScene;
class MapView;
-class TabbedPanel;
-class SettingsDialog;
+class Route;
+class RoutingPanel;
class SceneCoordinate;
+class SettingsDialog;
class SituareService;
+class TabbedPanel;
class User;
class UserInfoPanel;
class ZoomButtonPanel;
/**
-* @brief Main Window Class
-*/
+ * @brief Main Window Class
+ */
class MainWindow : public QMainWindow
{
Q_OBJECT
/**
* @brief Destructor
- *
*/
~MainWindow();
* MEMBER FUNCTIONS AND SLOTS
******************************************************************************/
public:
+ FacebookLoginBrowser* buildFacebookLoginBrowser();
+
/**
* @brief Clears cookie jar
*
public slots:
/**
- * @brief Build direction indicator button and connect slots
- */
- void buildIndicatorButton();
-
- /**
* @brief Builds information box with message.
*
* @param message Information message
*
* @param visible
*/
- void setOwnLocationCrosshairVisibility(bool visible);
+ void setCrosshairVisibility(bool visible);
/**
* @brief Sets username to member variable for login dialog
void setUsername(const QString &username);
/**
- * @brief Method to show panels
- */
- void showPanels();
+ * @brief Shows contact dialog.
+ *
+ * Shows contact dialog with contact's information.
+ * @param guid globally unique ID of a contact
+ */
+ void showContactDialog(const QString &guid);
/**
* @brief Public slot to intercept signal when old cerdentials are invalid or credentials
* doesn't exist yet
- *
*/
void startLoginProcess();
private:
/**
- * @brief Build fullscreen toggle button and connect slots
+ * @brief Build manual location setting cross hair and connect slots
*/
- void buildFullScreenButton();
+ void buildCrosshair();
/**
* @brief Build friend list panel and connect slots
void buildFriendListPanel();
/**
- * @brief Build manual location setting cross hair and connect slots
+ * @brief Build fullscreen toggle button and connect slots
+ */
+ void buildFullScreenButton();
+
+ /**
+ * @brief Build direction indicator button panel and connect signals
+ */
+ void buildIndicatorButtonPanel();
+
+
+ /**
+ * @brief Build location search panel and connect signals
*/
- void buildManualLocationCrosshair();
+ void buildLocationSearchPanel();
/**
* @brief Build map and connect slots
void buildOsmLicense();
/**
+ * @brief Build application panels
+ */
+ void buildPanels();
+
+ /**
+ * @brief Build routing panel and connect slots
+ */
+ void buildRoutingPanel();
+
+ /**
* @brief Build user info panel and connect slots
*/
void buildUserInfoPanel();
void drawOsmLicense(const QSize &size);
/**
- * @brief Slot for drawing the own location crosshair
- *
- * @param size Size of the screen
- */
- void drawOwnLocationCrosshair(const QSize &size);
-
- /**
* @brief Slot to intercept signal when error dialog/information note is processed
*
* @param status Status of the dialog
void loadDone(bool done);
/**
+ * @brief Called when map center point horizontal shifting is changed
+ *
+ * @param shifting New shifting value
+ */
+ void mapCenterHorizontalShiftingChanged(int shifting);
+
+ /**
+ * @brief Move the crosshair
+ */
+ void moveCrosshair();
+
+ /**
* @brief Slot to save cookies to settings
*/
void saveCookies();
void settingsDialogAccepted();
/**
- * @brief Set correnct view port size to datamembers
- *
- * @param size Size of the screen
- */
- void setViewPortSize(const QSize &size);
-
- /**
* @brief Start location search (open search dialog)
*/
void startLocationSearch();
void cancelLoginProcess();
/**
+ * @brief Signal for centering to coordinates.
+ *
+ * @param coordinates geo coordinates to center to.
+ */
+ void centerToCoordinates(const GeoCoordinate &coordinates);
+
+ /**
* @brief View should be centered to new location
*
* @param coordinate Scene coordinates of the new center point
void centerToSceneCoordinates(const SceneCoordinate &coordinate);
/**
+ * @brief Emitted when route is cleared
+ */
+ void clearRoute();
+
+ /**
+ * @brief Signal when direction and distance from current map center point to current GPS
+ * location is changed
+ *
+ * @param direction Direction in degrees
+ * @param distance Distance in meters
+ * @param draw Should the indicator triangle be drawn or not
+ */
+ void directionIndicatorValuesUpdate(qreal direction, qreal distance, bool draw);
+
+ /**
* @brief Signal for enabling automatic location update.
*
* @param enabled true if enabled, false otherwise
void fetchUsernameFromSettings();
/**
- * @brief Signal for finding user.
- *
- * @param coordinates user geo coordinates
- */
- void findUser(const GeoCoordinate &coordinates);
-
- /**
* @brief Signals when friend's profile image is ready
*
* @param user Friend
void gpsTriggered(bool enabled);
/**
- * @brief Signal for finding friend.
- *
- * @param coordinates friend's geo coordinates
- */
- void findFriend(const GeoCoordinate &coordinates);
-
- /**
* @brief Signal for friend location ready.
*
* @param friendsList
void friendsLocationsReady(QList<User *> &friendsList);
/**
- * @brief Signal is emitted when location item is clicked.
+ * @brief Emited when location request is parsed and is ready for further processing
+ *
+ * @param result List of Location items
+ */
+ void locationDataParsed(const QList<Location> &result);
+
+ /**
+ * @brief Signal is emitted when location item is clicked on map.
*
* @param userIDs list of friends user IDs in the group
*/
void locationItemClicked(const QList<QString> &userIDs);
/**
+ * @brief Signal is emitted when location item is clicked in list.
+ *
+ * @param swBound south-west bound in GeoCoorinate
+ * @param neBound north-east bound in GeoCoordinate
+ */
+ void locationItemClicked(const GeoCoordinate &swBound, const GeoCoordinate &neBound);
+
+ /**
* @brief Signals when Login/Logout action is pressed
*
*/
/**
* @brief Forwarding signal from MapView to MapEngine
*
- * @param coordinate
+ * @param coordinate New center point coordinate
*/
void mapViewScrolled(const SceneCoordinate &coordinate);
void refreshUserData();
/**
+ * @brief Requests contact dialog.
+ *
+ * @param facebookId contact's facebookId
+ */
+ void requestContactDialog(const QString &facebookId);
+
+ /**
* @brief Signal for requesting reverseGeo from SituareEngine
*
*/
void reverseGeoReady(const QString &address);
/**
+ * @brief Emited when route is parsed and is ready for further processing
+ *
+ * @param route Route item containing parsed route details
+ */
+ void routeParsed(Route &route);
+
+ /**
+ * @brief Signal for routing to geo coordinates.
+ *
+ * @param coordinates destination geo coordinates
+ */
+ void routeTo(const GeoCoordinate &coordinates);
+
+ /**
+ * @brief Request routing to current cursor position
+ */
+ void routeToCursor();
+
+ /**
* @brief Signal to save username to settings
*
* @param username Username
void searchForLocation(QString location);
/**
+ * @brief Signal is emitted when search history item is clicked.
+ *
+ * @param searchString search string used
+ */
+ void searchHistoryItemClicked(const QString &searchString);
+
+ /**
* @brief Signal for requestLocationUpdate from SituareEngine
*
* @param status Status message
bool m_loggedIn; ///< Indicates login state
bool m_refresh; ///< Indicates when webpage is refreshed
+ int m_mapCenterHorizontalShifting; ///< Amount of map center point horizontal shifting
int m_progressIndicatorCount; ///< Indicates the number of progress indicator calls
QAction *m_gpsToggleAct; ///< Action to trigger gps toggle
QAction *m_loginAct; ///< Action to Login/Logout
QAction *m_toSettingsAct; ///< Action to trigger switch to settings dialog
- QAction *m_searchLocationAct; /// @todo this is temporary, remove when not needed!
+ QLabel *m_crosshair; ///< Label for center point crosshair
QLabel *m_osmLicense; ///< Label for Open Street Map license
- QLabel *m_ownLocationCrosshair; ///< Label that show ownLocationCrosshair
+ QList<int> m_situareTabsIndexes; ///< List of Situare tab indexes
QList<QDialog *> m_error_queue; ///< QList type error dialog queue
QList<QDialog *> m_queue; ///< QList type dialog queue
QMessageBox *m_automaticUpdateLocationDialog; ///< Automatic update location dialog
- QSize m_viewPortSize; ///< Size of the viewport
-
QString m_email; ///< Placeholder for email
QString m_password; ///< Placeholder for password
QWebView *m_webView; ///< Shows facebook login page
+ FacebookLoginBrowser *m_facebookLoginBrowser;
FriendListPanel *m_friendsListPanel; ///< Instance of friends list panel
FullScreenButton *m_fullScreenButton; ///< Instance of the fullscreen toggle button
- IndicatorButton *m_indicatorButton; ///< Instance of direction indicator button
+ IndicatorButtonPanel *m_indicatorButtonPanel; ///< Instance of direction indicator button
+ LocationSearchPanel *m_locationSearchPanel; ///< Location search panel
MapScale *m_mapScale; ///< Instance of the map scale
MapView *m_mapView; ///< Instance of the map view
NetworkCookieJar *m_cookieJar; ///< Placeholder for QNetworkCookies
+ RoutingPanel *m_routingPanel; ///< Instance of routing panel
TabbedPanel *m_tabbedPanel; ///< Widget for tabbed panels
UserInfoPanel *m_userInfoPanel; ///< Instance of the user information panel
ZoomButtonPanel *m_zoomButtonPanel; ///< Instance of zoom button panel