Added coordinates to sendMessage.
[situare] / src / engine / engine.h
index f6c4cc3..2cd2341 100644 (file)
 
 #include <QObject>
 #include <QTime>
+#include <QPair>
 
 #include "coordinates/geocoordinate.h"
+#include "situareservice/situareservice.h"
 
 class QTimer;
 
-#ifdef Q_WS_MAEMO_5
 class Application;
-#endif
+class ContactManager;
 class FacebookAuthentication;
 class FacebookCredentials;
 class GeocodingService;
@@ -45,6 +46,7 @@ class MainWindow;
 class MapEngine;
 class MCE;
 class NetworkAccessManager;
+class Route;
 class RoutingService;
 class SituareService;
 class User;
@@ -141,8 +143,9 @@ public slots:
     /**
     * @brief Slot to intercept signal from successful location update
     *
+    * @param successfulMethod which method was successful
     */
-    void updateWasSuccessful();
+    void updateWasSuccessful(SituareService::SuccessfulMethod successfulMethod);
 
     /**
     * @brief Slot to intercept signal when new user data is available.
@@ -227,18 +230,12 @@ private slots:
     void enableAutomaticLocationUpdate(bool enabled, int updateIntervalMsecs = 0);
 
     /**
-    * @brief Slot for enabling power saving.
+    * @brief Slot for image ready
     *
-    * @param enabled true if enabled, false otherwise
+    * @param id image ID
+    * @param image image pixmap
     */
-    void enablePowerSave(bool enabled);
-
-    /**
-    * @brief Slot to intercept signal when user's/friend's image is downloaded
-    *
-    * @param user Instance of user/friend
-    */
-    void imageReady(User *user);
+    void imageReady(const QString &id, const QPixmap &image);
 
     /**
     * @brief Requests automatic update.
@@ -250,6 +247,43 @@ private slots:
     void requestAutomaticUpdateIfMoved(GeoCoordinate position);
 
     /**
+    * @brief Requests interesting people from current map viewport.
+    *
+    * Interesting people is defined by people with same tags as user has.
+    */
+    void requestInterestingPeople();
+
+    /**
+    * @brief Route is parsed and is ready for further processing.
+    *
+    * @param route Route item containing parsed route details
+    */
+    void routeParsed(Route &route);
+
+    /**
+    * @brief Routes to geo coordinates.
+    *
+    * Uses map center coordinates as start point.
+    * @param endPointCoordinates end point geo coordinates
+    */
+    void routeTo(const GeoCoordinate &endPointCoordinates);
+
+    /**
+    * @brief Route to current cursor position
+    */
+    void routeToCursor();
+
+    /**
+    * @brief Requests to send a message to a person.
+    *
+    * Adds coordinates to to message if selected.
+    * @param receiverId Facebook user ID
+    * @param message message text
+    * @param addCoordinates true if coordinates should be added, false otherwise
+    */
+    void requestSendMessage(const QString &receiverId, const QString &message, bool addCoordinates);
+
+    /**
     * @brief Slot for setting auto centering state.
     *
     * Calls gps to send last known position
@@ -272,12 +306,44 @@ private slots:
     void setGPS(bool enabled);
 
     /**
+    * @brief Slot for setting power saving state.
+    *
+    * @param enabled true if enabled, false otherwise
+    */
+    void setPowerSaving(bool enabled);
+
+    /**
+    * @brief Shows contact dialog.
+    *
+    * Calls MainWindow showContactDialog with contact guid defined by contact's Facebook ID.
+    * @param facebookId contact's facebookId
+    */
+    void showContactDialog(const QString &facebookId);
+
+    /**
+    * @brief Shows message dialog.
+    *
+    * If contact is a friend, show contact dialog instead.
+    * @param receiver receiver facebook ID and name
+    */
+    void showMessageDialog(const QPair<QString, QString> &receiver);
+
+    /**
     * @brief Automatic update interval timer timeout.
     *
     * Requests update location if user has moved.
     */
     void startAutomaticUpdate();
 
+    /**
+    * @brief Called when topmost window is changed
+    *
+    * Does set power saving state.
+    *
+    * @param isMainWindow True if MainWindow is the topmost one
+    */
+    void topmostWindowChanged(bool isMainWindow);
+
 /*******************************************************************************
  * SIGNALS
  ******************************************************************************/
@@ -317,7 +383,7 @@ signals:
     *
     * @param user Instance of friend
     */
-    void friendImageReady(User *user);
+    void friendImageReady(const QString &id, const QPixmap &image);
 
     /**
     * @brief Emited when location request is parsed and is ready for further processing
@@ -327,6 +393,13 @@ signals:
     void locationDataParsed(QList<Location> &result);
 
     /**
+    * @brief Signals when users's image is ready
+    *
+    * @param user Instance of friend
+    */
+    void userImageReady(const QString &id, const QPixmap &image);
+
+    /**
     * @brief Signals when new user data is ready
     *
     * @param user Instance of User
@@ -342,11 +415,12 @@ private:
     bool m_automaticUpdateRequest;      ///< Flag for automatic update request
     bool m_userMoved;                   ///< Flag for user move
 
-#ifdef Q_WS_MAEMO_5
-    Application *m_app;                              ///< Pointer to Application
-#endif
+    QTimer *m_automaticUpdateIntervalTimer; ///< Automatic update interval timer
+
+    ContactManager *m_contactManager;                ///< Instance of contact manager
     FacebookAuthentication *m_facebookAuthenticator; ///< Instance for facebook authenticator
     GeocodingService *m_geocodingService;            ///< Instance of the geocoding service
+    GeoCoordinate m_lastUpdatedGPSPosition;          ///< Last updated GPS position
     GPSPosition *m_gps;                              ///< Instance of the gps position
     MainWindow *m_ui;                                ///< Instance of the MainWindow UI
     MapEngine *m_mapEngine;                          ///< MapEngine
@@ -354,10 +428,6 @@ private:
     RoutingService *m_routingService;  ///< Instance of the routing service
     SituareService *m_situareService;  ///< Instance of the situare server communication service
     MCE *m_mce;                        ///< Instance of the MCE
-
-    QTimer *m_automaticUpdateIntervalTimer; ///< Automatic update interval timer
-    GeoCoordinate m_lastUpdatedGPSPosition; ///< Last updated GPS position
-
 };
 
 #endif // ENGINE_H