Modified search interesting people by tag to use maximum distance
authorJussi Laitinen <jussi.laitinen@ixonos.com>
Sun, 14 Aug 2011 11:54:37 +0000 (14:54 +0300)
committerJussi Laitinen <jussi.laitinen@ixonos.com>
Sun, 14 Aug 2011 11:54:37 +0000 (14:54 +0300)
src/engine/engine.cpp
src/engine/engine.h
src/situareservice/situareservice.cpp
src/situareservice/situareservice.h
src/ui/mainwindow.cpp

index ba35d6c..3f14f61 100644 (file)
@@ -495,6 +495,16 @@ void SituareEngine::routeToCursor()
     routeTo(m_mapEngine->centerGeoCoordinate());
 }
 
+void SituareEngine::searchPeopleByTag(const QString &tag)
+{
+    QRectF currentSceneRect = m_mapEngine->currentViewSceneRect();
+    GeoCoordinate centerGeoCoordinate = m_mapEngine->centerGeoCoordinate();
+    SceneCoordinate topCenterSceneCoordinate(
+                currentSceneRect.left() - currentSceneRect.width() / 2, currentSceneRect.top());
+
+    m_situareService->searchPeopleByTag(tag, centerGeoCoordinate.distanceTo(GeoCoordinate(topCenterSceneCoordinate)));
+}
+
 void SituareEngine::setAutoCentering(bool enabled)
 {
     qDebug() << __PRETTY_FUNCTION__ << enabled;
@@ -742,7 +752,7 @@ void SituareEngine::signalsFromMainWindow()
             this, SLOT(setProgressIndicatorEnabled()));
 
     connect(m_ui, SIGNAL(requestSearchPeopleByTag(QString)),
-            m_situareService, SLOT(searchPeopleByTag(QString)));
+            this, SLOT(searchPeopleByTag(QString)));
 
     // signals from meet people panel
     connect(m_ui, SIGNAL(requestInterestingPeople()),
index 136c4ad..c64ad45 100644 (file)
@@ -273,6 +273,14 @@ private slots:
     void requestSendMessage(const QString &receiverId, const QString &message, bool addCoordinates);
 
     /**
+    * @brief Searches people by tag name.
+    *
+    * @param tag tag name
+    * @param maximumDistance maximum distance to people
+    */
+    void searchPeopleByTag(const QString &tag);
+
+    /**
     * @brief Slot for setting auto centering state.
     *
     * Calls gps to send last known position
index ee3d0ea..0c0c986 100644 (file)
@@ -682,12 +682,14 @@ void SituareService::reverseGeo(const GeoCoordinate &coordinates)
     buildRequest(REVERSE_GEO, parameters);
 }
 
-void SituareService::searchPeopleByTag(const QString &tag)
+void SituareService::searchPeopleByTag(const QString &tag, const qreal distance)
 {
     qDebug() << __PRETTY_FUNCTION__;
 
+    const int TO_KM_DIVIDER = 1000;
     QHash<QString, QString> parameters;
     parameters.insert("tag",tag);
+    parameters.insert("distance", degreesToString(distance / TO_KM_DIVIDER));
 
     buildRequest(SEARCH_PEOPLE_WITH_TAG, parameters);
 }
index d90fc39..26aafc3 100644 (file)
@@ -183,8 +183,9 @@ public slots:
     * @brief Searches people by tag name.
     *
     * @param tag tag name
+    * @param maximumDistance maximum distance to people
     */
-    void searchPeopleByTag(const QString &tag);
+    void searchPeopleByTag(const QString &tag, const qreal distance);
 
     /**
     * @brief Sends a message to a person.
index 0d59333..71ad6bc 100644 (file)
@@ -646,13 +646,14 @@ void MainWindow::dialogFinished(int status)
             emit searchForLocation(searchDialog->input());
         else if (searchDialog->type() == SearchDialog::PeopleTag)
             emit requestSearchPeopleByTag(searchDialog->input());
+
+        searchDialog->deleteLater();
     } else if ((messageDialog) && (status != 0)) {
         emit sendMessage(messageDialog->input().first, messageDialog->input().second,
                          messageDialog->isAddCoordinatesSelected());
+        messageDialog->deleteLater();
     }
 
-    dialog->deleteLater();
-
     if(!m_error_queue.isEmpty() && m_errorShown == false) {
         showErrorInformationBox();
     } else {