GeoCoordinate(topRightSceneCoordinate));
}
+void SituareEngine::requestSendMessage(const QString &receiverId, const QString &message,
+ bool addCoordinates)
+{
+ qDebug() << __PRETTY_FUNCTION__;
+
+ if (addCoordinates)
+ m_situareService->sendMessage(receiverId, message, m_mapEngine->centerGeoCoordinate());
+ else
+ m_situareService->sendMessage(receiverId, message);
+}
+
+
void SituareEngine::routeParsed(Route &route)
{
qDebug() << __PRETTY_FUNCTION__;
connect(m_ui, SIGNAL(requestMessageDialog(QPair<QString, QString>)),
this, SLOT(showMessageDialog(QPair<QString, QString>)));
- connect(m_ui, SIGNAL(sendMessage(QString,QString)),
- m_situareService, SLOT(sendMessage(QString,QString)));
+ connect(m_ui, SIGNAL(sendMessage(QString,QString,bool)),
+ this, SLOT(requestSendMessage(QString,QString,bool)));
// signals from message panel
connect(m_ui, SIGNAL(requestMessages()),
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
{
qDebug() << __PRETTY_FUNCTION__;
+ //People start
+ QString result;
+ result.append("{\"people\": [");
+
QHash<QString, QString> tags;
+ //Get friends
QSqlQuery tagQuery(QString("SELECT usertag.userid, tag.name FROM usertag, tag WHERE "
"usertag.tagid IN (SELECT usertag.tagid FROM usertag WHERE "
"usertag.userid = '%1') AND usertag.userid != '%2' "
.arg(southWestCoordinates.latitude()).arg(northEastCoordinates.latitude())
.arg(southWestCoordinates.longitude()).arg(northEastCoordinates.longitude()));
- QString result;
- result.append("{\"people\": [");
-
while (userQuery.next()) {
result.append("{");
result.append("\"uid\": \"" + userQuery.value(0).toString() + "\",");
if (lastComma != -1)
result.remove(result.lastIndexOf(","), 1);
+ //People end
result.append("]}");
return result.toUtf8();
tags.join(", ") + ")");
}
-bool Database::sendMessage(qulonglong senderId, qulonglong receiverId, const QString &message)
+bool Database::sendMessage(qulonglong senderId, qulonglong receiverId, const QString &message,
+ const GeoCoordinate &coordinates)
{
qDebug() << __PRETTY_FUNCTION__;
QSqlQuery sendMessageQuery;
return sendMessageQuery.exec(QString("INSERT INTO notification VALUES("
- "NULL, '%1', '%2', 0, strftime('%s','now'), '%3')")
- .arg(senderId).arg(receiverId).arg(message));
+ "NULL, '%1', '%2', strftime('%s','now'), '%3', '%4', '%5')")
+ .arg(senderId).arg(receiverId).arg(message).arg(coordinates.latitude()).
+ arg(coordinates.longitude()));
}
bool openDatabase();
bool removeMessage(qulonglong userId, const QString &id);
bool removeTags(qulonglong userId, const QStringList &tags);
- bool sendMessage(qulonglong senderId, qulonglong receiverId, const QString &message);
+ bool sendMessage(qulonglong senderId, qulonglong receiverId, const QString &message,
+ const GeoCoordinate &coordinates);
private:
QSqlDatabase m_database;
return parameters;
}
-void SituareService::sendMessage(const QString &receiverId, const QString &message)
+void SituareService::sendMessage(const QString &receiverId, const QString &message,
+ const GeoCoordinate &coordinates)
{
qDebug() << __PRETTY_FUNCTION__;
- qWarning() << __PRETTY_FUNCTION__ << m_database->sendMessage(613374451, receiverId.toULongLong(), message);
+ qWarning() << __PRETTY_FUNCTION__ << m_database->sendMessage(613374451,
+ receiverId.toULongLong(), message,
+ coordinates);
}
void SituareService::sendRequest(const QUrl &url, const QString &cookieType, const QString &cookie)
*
* @param receiverId Facebook user ID
* @param message message text
+ * @param message coordinates
*/
- void sendMessage(const QString &receiverId, const QString &message);
+ void sendMessage(const QString &receiverId, const QString &message,
+ const GeoCoordinate &coordinates = GeoCoordinate());
private:
/**
}
else if (messageDialog) {
if (status != 0)
- emit sendMessage(messageDialog->input().first, messageDialog->input().second);
+ emit sendMessage(messageDialog->input().first, messageDialog->input().second,
+ messageDialog->isAddCoordinatesSelected());
}
dialog->deleteLater();
*
* @param receiverId Facebook user ID
* @param message message text
+ * @param addCoordinates true if coordinates should be added, false otherwise
*/
- void sendMessage(const QString &receiverId, const QString &message);
+ void sendMessage(const QString &receiverId, const QString &message, bool addCoordinates);
/**
* @brief Signal for requestLocationUpdate from SituareEngine
#include <QDebug>
#include <QDialogButtonBox>
#include <QHBoxLayout>
+#include <QVBoxLayout>
#include <QLineEdit>
#include <QPushButton>
+#include <QCheckBox>
#include "messagedialog.h"
setWindowTitle(tr("Message to ") + receiver);
m_messageField = new QLineEdit(this);
+ m_addCoordinatesCheckBox = new QCheckBox(tr("Add coordinates"));
QHBoxLayout *layout = new QHBoxLayout(this);
+ QVBoxLayout *leftLayout = new QVBoxLayout();
QDialogButtonBox *buttonBox = new QDialogButtonBox(Qt::Vertical);
QPushButton *sendButton = buttonBox->addButton(QDialogButtonBox::Ok);
QPushButton *cancelButton = buttonBox->addButton(QDialogButtonBox::Cancel);
sendButton->setText(tr("Send"));
- layout->addWidget(m_messageField);
+ leftLayout->addWidget(m_messageField);
+ leftLayout->addWidget(m_addCoordinatesCheckBox);
+ layout->addLayout(leftLayout);
layout->addWidget(buttonBox);
+
connect(sendButton, SIGNAL(clicked()),
this, SLOT(accept()));
connect(cancelButton, SIGNAL(clicked()),
return pair;
}
+
+bool MessageDialog::isAddCoordinatesSelected()
+{
+ return m_addCoordinatesCheckBox->isChecked();
+}
#include <QDialog>
+class QCheckBox;
class QDialogButtonBox;
class QLineEdit;
*/
MessageDialog(const QString &id, const QString &receiver, QWidget *parent = 0);
+ /**
+ * @brief Returns add coordinates check box selection state.
+ *
+ * @return true if check box is selected, false otherwise
+ */
+ bool isAddCoordinatesSelected();
+
/*******************************************************************************
* MEMBER FUNCTIONS AND SLOTS
******************************************************************************/
******************************************************************************/
private:
- QLineEdit *m_messageField; ///< Pointer to message field
- QString m_id; ///< Receiver ID
+ QCheckBox *m_addCoordinatesCheckBox; ///< Add coordinates check box
+ QLineEdit *m_messageField; ///< Pointer to message field
+ QString m_id; ///< Receiver ID
};
#endif // MESSAGEDIALOG_H