1
0
mirror of https://github.com/qTox/qTox.git synced 2024-03-22 14:00:36 +08:00

fix(group): Send all parts of long message

Fix #4832
This commit is contained in:
Diadlo 2017-11-24 12:46:27 +03:00
parent c0a7488c12
commit 7c76bebebe
No known key found for this signature in database
GPG Key ID: 5AF9F2E29107C727

View File

@ -644,6 +644,30 @@ void Core::sendTyping(uint32_t friendId, bool typing)
}
}
bool parseConferenceSendMessageError(TOX_ERR_CONFERENCE_SEND_MESSAGE error)
{
switch (error) {
case TOX_ERR_CONFERENCE_SEND_MESSAGE_OK:
return true;
case TOX_ERR_CONFERENCE_SEND_MESSAGE_CONFERENCE_NOT_FOUND:
qCritical() << "Conference not found";
return false;
case TOX_ERR_CONFERENCE_SEND_MESSAGE_FAIL_SEND:
qCritical() << "Conference message failed to send";
return false;
case TOX_ERR_CONFERENCE_SEND_MESSAGE_NO_CONNECTION:
qCritical() << "No connection";
return false;
case TOX_ERR_CONFERENCE_SEND_MESSAGE_TOO_LONG:
qCritical() << "Message too long";
return false;
}
}
void Core::sendGroupMessageWithType(int groupId, const QString& message, TOX_MESSAGE_TYPE type)
{
QStringList cMessages = splitMessage(message, MAX_GROUP_MESSAGE_LEN);
@ -652,33 +676,11 @@ void Core::sendGroupMessageWithType(int groupId, const QString& message, TOX_MES
ToxString cMsg(part);
TOX_ERR_CONFERENCE_SEND_MESSAGE error;
bool ok = tox_conference_send_message(tox, groupId, type, cMsg.data(), cMsg.size(), &error);
if (ok && error == TOX_ERR_CONFERENCE_SEND_MESSAGE_OK) {
if (!ok || !parseConferenceSendMessageError(error)) {
emit groupSentResult(groupId, message, -1);
return;
}
qCritical() << "Fail of tox_conference_send_message";
switch (error) {
case TOX_ERR_CONFERENCE_SEND_MESSAGE_CONFERENCE_NOT_FOUND:
qCritical() << "Conference not found";
return;
case TOX_ERR_CONFERENCE_SEND_MESSAGE_FAIL_SEND:
qCritical() << "Conference message failed to send";
return;
case TOX_ERR_CONFERENCE_SEND_MESSAGE_NO_CONNECTION:
qCritical() << "No connection";
return;
case TOX_ERR_CONFERENCE_SEND_MESSAGE_TOO_LONG:
qCritical() << "Meesage too long";
return;
default:
break;
}
emit groupSentResult(groupId, message, -1);
}
}