Exemplo n.º 1
0
void ChatSession::slotMessageStatus(quint32 status, bool timeout)
{
	Tasks::SendMessage* task = qobject_cast<Tasks::SendMessage*>(sender());
	if (!timeout && status == MESSAGE_DELIVERED)
	{
		qDebug() << "Message delivered";
		messages.removeAll(task->getMessage());
		Q_EMIT messageDelivered(true, task->getMessage());
	}
	else
	{
		qDebug() << "Message NOT delivered";
		Q_EMIT messageDelivered(false, task->getMessage());
	}
}
bool QXmppMessageReceiptManager::handleStanza(const QDomElement &stanza)
{
    if (stanza.tagName() != "message")
        return false;

    QXmppMessage message;
    message.parse(stanza);

    // Handle receipts and cancel any further processing.
    if (!message.receiptId().isEmpty()) {
        Q_EMIT messageDelivered(message.from(), message.receiptId());
        return true;
    }

    // If requested, send a receipt.
    if (message.isReceiptRequested()
        && !message.from().isEmpty()
        && !message.id().isEmpty()) {
        QXmppMessage receipt;
        receipt.setTo(message.from());
        receipt.setReceiptId(message.id());
        client()->sendPacket(receipt);
    }

    // Continue processing.
    return false;
}
Exemplo n.º 3
0
	void MSNMessage::SetDelivered ()
	{
		if (IsDelivered_)
			return;

		IsDelivered_ = true;
		emit messageDelivered ();
	}
Exemplo n.º 4
0
	void Connection::MsgStatus (HalfPacket hp)
	{
		quint32 seq = hp.Header_.Seq_;
		quint32 status = 0;
		FromMRIM (hp.Data_, status);

		if (status == MessageStatus::Delivered)
			emit messageDelivered (seq);
	}
Exemplo n.º 5
0
bool QuickChatController::eventFilter(QObject *obj, QEvent *ev)
{
	if (ev->type() == MessageReceiptEvent::eventType()) {
		MessageReceiptEvent *msgEvent = static_cast<MessageReceiptEvent *>(ev);
		emit messageDelivered(msgEvent->id());
		return true;
	}
	return QObject::eventFilter(obj, ev);
}
Exemplo n.º 6
0
void ChatSession::slotBroadcastMessageStatus(quint32 status, bool timeout)
{
	Tasks::BroadcastMessage* task = qobject_cast<Tasks::BroadcastMessage*>(sender());
/*	if (!timeout && status == MESSAGE_DELIVERED)
	{*/
		qDebug() << "Message delivered";
		messages.removeAll(task->getMessage());
		broadcastMessages.remove(broadcastMessages.key(task->getReceivers()));
		Q_EMIT messageDelivered(true, task->getMessage());
/*	}
	else
	{
		qDebug() << "Message NOT delivered";
		Q_EMIT messageDelivered(false, task->getMessage());
	}*/
}
bool QXmppDeliveryReceiptsManager::handleStanza(const QDomElement &stanza)
{
    if (stanza.tagName() != "message")
        return false;

    // Case 1: incoming receipt
    // This way we handle the receipt and cancel any further processing.
    const QDomElement &received = stanza.firstChildElement("received");
    if (received.namespaceURI() == ns_message_receipts)
    {
        QString id = received.attribute("id");

        // check if it's old-style XEP
        if (id.isEmpty())
            id = stanza.attribute("id");

        emit messageDelivered(id);
        return true;
    }

    // Case 2: incoming message requesting receipt
    // If autoreceipt is enabled, we queue sending back receipt, otherwise
    // we just ignore the message. In either case, we don't cancel any
    // further processing.
    if (m_autoReceipt && stanza.firstChildElement("request").namespaceURI() == ns_message_receipts)
    {
        const QString &jid = stanza.attribute("from");
        const QString &id = stanza.attribute("id");

        // Send out receipt only if jid and id is not empty, otherwise fail
        // silently.
        if (!jid.isEmpty() && !id.isEmpty())
            QMetaObject::invokeMethod(this,
                    "sendReceipt",
                    Q_ARG(QString, jid),
                    Q_ARG(QString, id));
    }

    return false;
}
Exemplo n.º 8
0
	void GlooxMessage::SetDelivered (bool delivered)
	{
		IsDelivered_ = delivered;
		if (delivered)
			emit messageDelivered ();
	}