Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "messagespage.h"
- #include "mainpage.h"
- MessagesPage::MessagesPage(QGraphicsItem *parent) :
- ApplicationPage(parent)
- {
- createContent();
- }
- void MessagesPage::createContent()
- {
- MApplicationPage::createContent();
- setStyleName(inv("CommonApplicationPage", MainPage::invertedUi()));
- // Create list
- m_model = new FacebookObjectModel(this);
- m_messagesList = new MList(this);
- connect(m_messagesList, SIGNAL(itemClicked(QModelIndex)), this, SLOT(onMessageClicked(QModelIndex)));
- m_messagesList->setItemModel(m_model);
- m_messagesList->setCellCreator(new ListItemCreator);
- QGraphicsLinearLayout *mainLayout = new QGraphicsLinearLayout(Qt::Vertical, centralWidget());
- mainLayout->addItem(m_messagesList);
- // Create toolbar
- QString iconName = "icon-m-toolbar-refresh";
- if (MainPage::invertedUi())
- iconName.append("-white");
- MAction *refreshButton = new MAction(iconName, "", this);
- refreshButton->setLocation(MAction::ToolBarLocation);
- connect(refreshButton, SIGNAL(triggered()), this, SLOT(refresh()));
- addAction(refreshButton);
- refresh();
- }
- void MessagesPage::refresh()
- {
- setProgressIndicatorVisible(true);
- m_messagesReply = FacebookSession::instance()->QFBInstance()->getConnections("me", "inbox");
- if (m_messagesReply)
- connect(m_messagesReply, SIGNAL(finished()), this, SLOT(onReplyReceived()));
- }
- void MessagesPage::onReplyReceived()
- {
- setProgressIndicatorVisible(false);
- if (m_messagesReply->error() != QNetworkReply::NoError) {
- qDebug() << Q_FUNC_INFO << "Error loading messages!";
- qDebug() << m_messagesReply->data();
- m_messagesReply->deleteLater();
- return;
- }
- QVariant jsonData = m_messagesReply->data();
- m_messagesReply->deleteLater();
- QVariantList listData;
- listData = jsonData.toMap().value("data").toList();
- foreach(jsonData, listData) {
- QString id = jsonData.toMap().value("id").toString();
- QList<FacebookUser> to;
- QVariantList toList = jsonData.toMap().value("to").toMap().value("data").toList();
- foreach (QVariant toUser, toList) {
- if (toUser.toMap().value("id").toString() == FacebookSession::instance()->userId()) {
- continue;
- } else {
- FacebookUser user;
- user.name = toUser.toMap().value("name").toString();
- user.id = toUser.toMap().value("id").toString();
- to.append(user);
- }
- }
- int unreadCount = jsonData.toMap().value("unread").toInt();
- QVariantList messages = jsonData.toMap().value("comments").toMap().value("data").toList();
- QString latestMessage = messages.last().toMap().value("message").toString();
- QDateTime t = QDateTime::fromString(jsonData.toMap().value("updated_time").toString(), Qt::ISODate);
- FacebookObject *object = new FacebookObject(this, true);
- object->setName(to.first().name);
- object->setId(id);
- object->setImage(QUrl(QString("https://graph.facebook.com/%1/picture?type=normal&access_token=").arg(id) + FacebookSession::instance()->accessToken()));
- object->setTimestamp(t.toString("hh:mm"));
- m_model->appendObject(object);
- }
- }
- void MessagesPage::onMessageClicked(QModelIndex)
- {
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement