//---dialog--- void MainWindow::loadDialogToListItem(Message const &dialog, QListWidgetItem *listItem) { QString name(vkLogic->storage->getFullName(dialog.user_id)), lastMessage(dialog.body); if (dialog.isMultiDialog) name.prepend(dialog.title + "\n"); if (dialog.out) lastMessage.prepend(tr("You: ")); int profileID; if (dialog.isMultiDialog) profileID = dialog.chat_id; else profileID = dialog.user_id; qDebug() << "Adding dialogitem with" << name; listItem->setData(Qt::DecorationRole, vkLogic->getAvatar(profileID)); listItem->setData(DialogDelegate::NAME_ROLE, name); listItem->setData(DialogDelegate::LAST_MESSAGE_ROLE, lastMessage); listItem->setData(DialogDelegate::PROFILE_ID_ROLE, profileID); listItem->setData(DialogDelegate::READ_STATE_ROLE, dialog.read_state); }
QVariant ChatItem::data(int role) const { QList<QVariant> qvl; qvl.clear(); switch(role) { case NameRole: return name(); case MessagesRole: return QVariant(&m_messages); //it doesnt work case TextRole: for(int i=0;m_messages->size()>i;i++){ qWarning() << qobject_cast<MessageItem*>(m_messages->at(i))->text(); qvl.append(qobject_cast<MessageItem*>(m_messages->at(i))->text()); } return qvl; //it doesnt work case PeerRole: for(int i=0;m_messages->size()>i;i++){ qWarning() << qobject_cast<MessageItem*>(m_messages->at(i))->peer(); qvl.append(qobject_cast<MessageItem*>(m_messages->at(i))->peer()); } return qvl; //it doesnt work case CountRole: return QVariant(m_messages->count()); //it doesnt work case LastRole: return lastMessage(); default: return QVariant(); } }
bool XMPPTestCommand::executeCommand(QStringList * const arguments) { bool ret = false; if (arguments->length() < 2) { this->client->write(tr("ERROR: xmppTest <resource> <field> <optional: value>") + "\r\n"); } else { QXmppClient * const client = XMPPResourceStore::instance()->getFromStore(arguments->first()); arguments->removeFirst(); if (client) { QSharedPointer<QXmppStanza> lastStanza(NULL); if (arguments->first() == "tx") { arguments->removeFirst(); lastStanza = XMPPResourceStore::instance()->getLastMessageSent(client); } else { lastStanza = XMPPResourceStore::instance()->getLastMessageReceived(client); } QSharedPointer<QXmppMessage> lastMessage(NULL); if (lastStanza) { lastMessage = lastStanza.dynamicCast<QXmppMessage>(); } if (lastMessage) { bool propertyOk = true; const QString property = arguments->first(); arguments->removeFirst(); QVariant value; // I tried to make this use reflection. // It didn't work - might use reflection on function calls later if (property == "body") { value = lastMessage->body(); } else if (property == "attentionRequired") { value = lastMessage->isAttentionRequested(); } else if (property == "mucInvitationJid") { value = lastMessage->mucInvitationJid(); } else if (property == "mucInvitationPassword") { value = lastMessage->mucInvitationPassword(); } else if (property == "mucInvitationReason") { value = lastMessage->mucInvitationReason(); } else if (property == "receiptId") { value = lastMessage->receiptId(); } else if (property == "stamp") { value = lastMessage->stamp(); } else if (property == "state") { value = lastMessage->state(); } else if (property == "subject") { value = lastMessage->subject(); } else if (property == "thread") { value = lastMessage->thread(); } else if (property == "type") { value = lastMessage->type(); } else if (property == "hasForward") { value = lastMessage->hasForwarded(); } else if (property == "forwardBody") { value = lastMessage->forwarded().body(); } else if (property == "hasCarbon") { value = lastMessage->hasMessageCarbon(); } else if (property == "carbonBody") { value = lastMessage->carbonMessage().body(); } else if (property == "markable") { value = lastMessage->isMarkable(); } else if (property == "marker") { value = lastMessage->marker(); } else if (property == "markedId") { value = lastMessage->markedId(); } else if (property == "markedThread") { value = lastMessage->markedThread(); } else if (property == "isReplace") { value = lastMessage->isReplace(); } else if (property == "replaceId") { value = lastMessage->replaceId(); } else if (property == "from") { value = lastMessage->from(); } else if (property == "to") { value = lastMessage->to(); } else { propertyOk = false; } if (propertyOk) { QVariant expectedValue; if (arguments->isEmpty()) { ret = value.isNull() or not value.isValid(); } else { const QString expected = arguments->join(" "); ret = (value.toString() == expected); expectedValue = expected; } if (not ret) { QString buffer = tr("ERROR: Value is {"); buffer += value.toString(); buffer += tr("} but expected {"); buffer += expectedValue.toString(); buffer += tr("}") + "\r\n"; this->client->write(buffer); } } else { this->client->write(tr("ERROR: Unknown property") + "\r\n"); } } else { this->client->write(tr("ERROR: Couldn't find the last received message") + "\r\n"); } } else { this->client->write(tr("ERROR: Unknown resource") + "\r\n"); } } return ret; }