connect(m_situareService, SIGNAL(userDataChanged(User*, QList<User*>&)),
this, SLOT(userDataChanged(User*, QList<User*>&)));
+ connect(m_situareService, SIGNAL(userTagsReceived(QHash<QString,QString>&)),
+ m_ui, SIGNAL(userTagsReceived(QHash<QString,QString>&)));
+
connect(m_situareService, SIGNAL(updateWasSuccessful(SituareService::SuccessfulMethod)),
this, SLOT(updateWasSuccessful(SituareService::SuccessfulMethod)));
connect(m_situareService, SIGNAL(messagesReceived(QList<Message>&, QList<Message> &)),
this, SLOT(setProgressIndicatorDisabled()));
-
connect(m_situareService, SIGNAL(messagesReceived(QList<Message>&, QList<Message> &)),
m_ui, SIGNAL(messagesReceived(QList<Message>&, QList<Message>&)));
emit userLocationReady(user);
emit friendsLocationsReady(friendsList);
+ m_situareService->getTags();
}
const QString GET_PEOPLE_WITH_SIMILAR_INTEREST = "getInterestingPeople.php";
const QString GET_POPULAR_TAGS = "getPopularTags.php";
const QString ADD_TAGS = "addTags.php";
+const QString GET_TAGS = "getTags.php";
// Cookies
const QString COOKIE = "Cookie";
return SituareService::RequestGetPopularTags;
else if (url.toString().contains(ADD_TAGS))
return SituareService::RequestAddTags;
+ else if (url.toString().contains(GET_TAGS))
+ return SituareService::RequestGetTags;
else
return SituareService::RequestUnknown;
}
-QHash<QString, QString> SituareService::getTags(const QString &userId)
+void SituareService::getTags()
{
qDebug() << __PRETTY_FUNCTION__;
- return m_database->getTags(userId.toInt());
+ QHash<QString, QString> parameters;
+ buildRequest(GET_TAGS, parameters);
}
void SituareService::imageReceived(const QString &id, const QPixmap &image)
parsePopularTagsData(resultData);
else if (requestName == SituareService::RequestAddTags)
emit updateWasSuccessful(SituareService::SuccessfulAddTags);
+ else if (requestName == SituareService::RequestGetTags)
+ parseUserTagsData(resultData);
}
}
}
}
tmpFriendsList.clear();
- //REMOVE WHEN NOT NEEDED! get user tags and set tags to the user
- m_user->setTags(getTags(m_user->userId()));
-
emit userDataChanged(m_user, m_friendsList);
// set silhouette image to imageUrlList for downloading
emit popularTagsReceived(popularTags);
}
+void SituareService::parseUserTagsData(const QVariant &userTagsData)
+{
+ qDebug() << __PRETTY_FUNCTION__;
+
+ QVariantMap result = userTagsData.toMap();
+ QHash<QString, QString> userTags;
+
+ foreach (QVariant tagVariant, result["user_tags"].toList()) {
+ QMap<QString, QVariant> tag = tagVariant.toMap();
+ userTags.insert(tag["tid"].toString(), tag["name"].toString());
+ }
+
+ emit userTagsReceived(userTags);
+}
+
void SituareService::removeMessage(const QString &id)
{
qDebug() << __PRETTY_FUNCTION__;
RequestSendMessage,
RequestGetPeopleWithSimilarInterest,
RequestGetPopularTags,
- RequestAddTags};
+ RequestAddTags,
+ RequestGetTags };
public:
* MEMBER FUNCTIONS AND SLOTS
******************************************************************************/
/**
+ * @brief Retriesves user tags.
+ *
+ * @return QStringList list of tags
+ */
+ void getTags();
+
+ /**
* @brief Retrieves people with similart interest (same tags).
*
* People is searched from area defined by maximum distance
SituareService::RequestName getRequestName(const QUrl &url) const;
/**
- * @brief Temporary method to get tags.
- *
- * Tags are fetch from local database instead of Situare server.
- * @param userId
- * @return QStringList list of tags
- */
- QHash<QString, QString> getTags(const QString &userId);
-
- /**
* @brief Parses interesting people data from JSON string
*
* @param interestingPeopleData interesting people data QVariant tree
void parseReverseGeoData(const QVariant &reverseGeoData);
/**
+ * @brief Parses user tags data from JSON string
+ *
+ * @param userTagsData user tags data QVariant tree
+ */
+ void parseUserTagsData(const QVariant &userTagsData);
+
+ /**
* @brief Parses user and friend data from JSON string
*
* @param userData user data QVariant tree
*/
void userDataChanged(User *user, QList<User *> &friendList);
+ /**
+ * @brief Signals when getTags request is finished
+ *
+ * @param userTags list of user tags
+ */
+ void userTagsReceived(QHash<QString, QString> &userTags);
+
/*******************************************************************************
* DATA MEMBERS
******************************************************************************/
connect(m_userInfoPanel, SIGNAL(requestPopularTags()),
this, SIGNAL(requestPopularTags()));
+
+ connect(this, SIGNAL(userTagsReceived(QHash<QString,QString>&)),
+ m_userInfoPanel, SLOT(userTagsReceived(QHash<QString,QString>&)));
}
void MainWindow::buildZoomButtonPanel()
void userImageReady(const QString &id, const QPixmap &image);
/**
+ * @brief Signals when getTags request is finished
+ *
+ * @param userTags list of user tags
+ */
+ void userTagsReceived(QHash<QString, QString> &userTags);
+
+ /**
* @brief Dragging mode triggered.
*/
void draggingModeTriggered();
m_userInfo->show();
}
}
+
+void UserInfoPanel::userTagsReceived(QHash<QString, QString> &userTags)
+{
+ qDebug() << __PRETTY_FUNCTION__;
+
+ m_userInfo->setTags(userTags);
+}
*/
void userDataReceived(User *user);
+ /**
+ * @brief Slot to populate user tags
+ *
+ * @param userTags list of user tags
+ */
+ void userTagsReceived(QHash<QString, QString> &userTags);
+
private slots:
/**
* @brief Sets user's image.