class FacebookAuthentication;
class FriendListPanel;
+class MapScale;
class MapScene;
class MapView;
class SituareService;
class User;
class UserInfoPanel;
class ZoomButtonPanel;
+class SettingsDialog;
+class QToolButton;
/**
* @brief Main Window Class
const QString username();
public slots:
-
/**
* @brief Slot to intercept signal when login has failed (loginFailure signal)
*
void setUsername(const QString &username);
/**
- * @brief Shows / hides Situare related UI items
- *
- * @param show
- */
- void updateItemVisibility(bool show);
-
- /**
* @brief Public slot to intercept signal when old cerdentials are invalid or credentials
* doesn't exist yet
*
*/
void toggleProgressIndicator(bool state);
+ /**
+ * @brief Shows / hides Situare related UI items
+ *
+ * @param show
+ */
+ void updateItemVisibility(bool show);
+
private:
/**
+ * @brief Build fullscreen toggle button and connect slots
+ */
+ void buildFullScreenButton();
+
+ /**
* @brief Build friend list panel and connect slots
*/
void buildFriendListPanel();
void buildMap();
/**
+ * @brief Build map scale and connect slots
+ */
+ void buildMapScale();
+
+ /**
* @brief Build OSM license and connect slots
*/
void buildOsmLicense();
private slots:
/**
+ * @brief Slot for drawing the fullscreen toggle button
+ *
+ * @param size Size of the screen
+ */
+ void drawFullScreenButton(const QSize &size);
+
+ /**
+ * @brief Slot for drawing the map distance scale
+ *
+ * @param size Size of the screen
+ */
+ void drawMapScale(const QSize &size);
+
+ /**
* @brief Slot for drawing the Open Street Map license text
*
* @param size Size of the screen
void drawOwnLocationCrosshair(int width, int height);
/**
- * @brief Slot for gps error.
- *
- * @param message error message
- */
- void gpsError(const QString &message);
-
- /**
* @brief Slot for gps timeout.
*
* Called when request timeout occurs.
*/
void setViewPortSize(const int width, const int height);
+ /**
+ * @brief Toggle between fullscreen and normal window mode
+ */
+ void toggleFullScreen();
+
/*******************************************************************************
* SIGNALS
******************************************************************************/
void centerToSceneCoordinates(QPoint sceneCoordinate);
/**
+ * @brief Signal for enabling automatic location update.
+ *
+ * @param enabled true if enabled, false otherwise
+ * @param updateIntervalMsecs update interval in milliseconds
+ */
+ void enableAutomaticLocationUpdate(bool enabled, int updateIntervalMsecs);
+
+ /**
* @brief Signal for requesting username from settings
*
*/
void minZoomLevelReached();
/**
+ * @brief Forwarding signal from MapEngine to MapScale
+ */
+ void newMapResolution(qreal scale);
+
+ /**
* @brief Signal for refreshing user data.
*
*/
void reverseGeoReady(const QString &address);
/**
+ * @brief Signal to save username to settings
+ *
+ * @param username Username
+ */
+ void saveUsername(const QString &username);
+
+ /**
* @brief Signal for requestLocationUpdate from SituareEngine
*
* @param status Status message
* DATA MEMBERS
******************************************************************************/
private:
-
bool m_drawOwnLocationCrosshair; ///< Flag for making ownLocationCrosshair visible or not
bool m_loggedIn; ///< Indicates login state
bool m_refresh; ///< Indicates when webpage is refreshed
QString m_email; ///< Placeholder for email
QString m_password; ///< Placeholder for password
+ QToolButton *m_fullScreenButton; ///< Instance of the fullscreen toggle button
+
QWebView *m_webView; ///< Shows facebook login page
FriendListPanel *m_friendsListPanel; ///< Instance of friends list panel
+ MapScale *m_mapScale; ///< Instance of the map scale
MapView *m_mapView; ///< Instance of the map view
NetworkCookieJar *m_cookieJar; ///< Placeholder for QNetworkCookies
PanelSideBar *m_userPanelSidebar; ///< User panel side bar
PanelSideBar *m_friendsListPanelSidebar;///< Friends panel side bar
UserInfoPanel *m_userPanel; ///< Instance of the user information panel
ZoomButtonPanel *m_zoomButtonPanel; ///< Instance of zoom button panel
+
+ SettingsDialog *m_settingsDialog; ///< Settings dialog
};
#endif // MAINWINDOW_H