mirror of
https://github.com/qTox/qTox.git
synced 2024-03-22 14:00:36 +08:00
Merge branch 'pr595'
This commit is contained in:
commit
4c0ae2503a
20
src/core.cpp
20
src/core.cpp
|
@ -473,7 +473,8 @@ void Core::onAction(Tox*/* tox*/, int friendId, const uint8_t *cMessage, uint16_
|
||||||
void Core::onGroupAction(Tox*, int groupnumber, int peernumber, const uint8_t *action, uint16_t length, void* _core)
|
void Core::onGroupAction(Tox*, int groupnumber, int peernumber, const uint8_t *action, uint16_t length, void* _core)
|
||||||
{
|
{
|
||||||
Core* core = static_cast<Core*>(_core);
|
Core* core = static_cast<Core*>(_core);
|
||||||
emit core->groupMessageReceived(groupnumber, CString::toString(action, length), core->getGroupPeerName(groupnumber, peernumber));
|
emit core->groupMessageReceived(groupnumber, CString::toString(action, length),
|
||||||
|
core->getGroupPeerName(groupnumber, peernumber), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Core::onGroupInvite(Tox*, int friendnumber, const uint8_t *group_public_key, uint16_t length,void *core)
|
void Core::onGroupInvite(Tox*, int friendnumber, const uint8_t *group_public_key, uint16_t length,void *core)
|
||||||
|
@ -485,7 +486,8 @@ void Core::onGroupInvite(Tox*, int friendnumber, const uint8_t *group_public_key
|
||||||
void Core::onGroupMessage(Tox*, int groupnumber, int peernumber, const uint8_t * message, uint16_t length, void *_core)
|
void Core::onGroupMessage(Tox*, int groupnumber, int peernumber, const uint8_t * message, uint16_t length, void *_core)
|
||||||
{
|
{
|
||||||
Core* core = static_cast<Core*>(_core);
|
Core* core = static_cast<Core*>(_core);
|
||||||
emit core->groupMessageReceived(groupnumber, CString::toString(message, length), core->getGroupPeerName(groupnumber, peernumber));
|
emit core->groupMessageReceived(groupnumber, CString::toString(message, length),
|
||||||
|
core->getGroupPeerName(groupnumber, peernumber), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Core::onGroupNamelistChange(Tox*, int groupnumber, int peernumber, uint8_t change, void *core)
|
void Core::onGroupNamelistChange(Tox*, int groupnumber, int peernumber, uint8_t change, void *core)
|
||||||
|
@ -769,6 +771,20 @@ void Core::sendGroupMessage(int groupId, const QString& message)
|
||||||
for (auto &cMsg :cMessages)
|
for (auto &cMsg :cMessages)
|
||||||
{
|
{
|
||||||
int ret = tox_group_message_send(tox, groupId, cMsg.data(), cMsg.size());
|
int ret = tox_group_message_send(tox, groupId, cMsg.data(), cMsg.size());
|
||||||
|
|
||||||
|
if (ret == -1)
|
||||||
|
emit groupSentResult(groupId, message, ret);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Core::sendGroupAction(int groupId, const QString& message)
|
||||||
|
{
|
||||||
|
QList<CString> cMessages = splitMessage(message);
|
||||||
|
|
||||||
|
for (auto &cMsg :cMessages)
|
||||||
|
{
|
||||||
|
int ret = tox_group_action_send(tox, groupId, cMsg.data(), cMsg.size());
|
||||||
|
|
||||||
if (ret == -1)
|
if (ret == -1)
|
||||||
emit groupSentResult(groupId, message, ret);
|
emit groupSentResult(groupId, message, ret);
|
||||||
}
|
}
|
||||||
|
|
|
@ -89,6 +89,7 @@ public slots:
|
||||||
|
|
||||||
void sendMessage(int friendId, const QString& message);
|
void sendMessage(int friendId, const QString& message);
|
||||||
void sendGroupMessage(int groupId, const QString& message);
|
void sendGroupMessage(int groupId, const QString& message);
|
||||||
|
void sendGroupAction(int groupId, const QString& message);
|
||||||
void sendAction(int friendId, const QString& action);
|
void sendAction(int friendId, const QString& action);
|
||||||
void sendTyping(int friendId, bool typing);
|
void sendTyping(int friendId, bool typing);
|
||||||
|
|
||||||
|
@ -137,7 +138,7 @@ signals:
|
||||||
|
|
||||||
void emptyGroupCreated(int groupnumber);
|
void emptyGroupCreated(int groupnumber);
|
||||||
void groupInviteReceived(int friendnumber, const uint8_t *group_public_key,uint16_t length);
|
void groupInviteReceived(int friendnumber, const uint8_t *group_public_key,uint16_t length);
|
||||||
void groupMessageReceived(int groupnumber, const QString& message, const QString& author);
|
void groupMessageReceived(int groupnumber, const QString& message, const QString& author, bool isAction);
|
||||||
void groupNamelistChanged(int groupnumber, int peernumber, uint8_t change);
|
void groupNamelistChanged(int groupnumber, int peernumber, uint8_t change);
|
||||||
|
|
||||||
void usernameSet(const QString& username);
|
void usernameSet(const QString& username);
|
||||||
|
|
|
@ -76,8 +76,16 @@ void GroupChatForm::onSendTriggered()
|
||||||
QString msg = msgEdit->toPlainText();
|
QString msg = msgEdit->toPlainText();
|
||||||
if (msg.isEmpty())
|
if (msg.isEmpty())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
msgEdit->clear();
|
msgEdit->clear();
|
||||||
emit sendMessage(group->groupId, msg);
|
|
||||||
|
if (msg.startsWith("/me "))
|
||||||
|
{
|
||||||
|
msg = msg.right(msg.length() - 4);
|
||||||
|
emit sendAction(group->groupId, msg);
|
||||||
|
} else {
|
||||||
|
emit sendMessage(group->groupId, msg);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void GroupChatForm::onUserListChanged()
|
void GroupChatForm::onUserListChanged()
|
||||||
|
|
|
@ -834,18 +834,19 @@ void Widget::onGroupInviteReceived(int32_t friendId, const uint8_t* publicKey,ui
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Widget::onGroupMessageReceived(int groupnumber, const QString& message, const QString& author)
|
void Widget::onGroupMessageReceived(int groupnumber, const QString& message, const QString& author, bool isAction)
|
||||||
{
|
{
|
||||||
Group* g = GroupList::findGroup(groupnumber);
|
Group* g = GroupList::findGroup(groupnumber);
|
||||||
if (!g)
|
if (!g)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
QString name = core->getUsername();
|
QString name = core->getUsername();
|
||||||
|
|
||||||
bool targeted = (author != name) && message.contains(name, Qt::CaseInsensitive);
|
bool targeted = (author != name) && message.contains(name, Qt::CaseInsensitive);
|
||||||
if (targeted)
|
if (targeted)
|
||||||
g->chatForm->addAlertMessage(author, message, QDateTime::currentDateTime());
|
g->chatForm->addAlertMessage(author, message, QDateTime::currentDateTime());
|
||||||
else
|
else
|
||||||
g->chatForm->addMessage(author, message, false, QDateTime::currentDateTime());
|
g->chatForm->addMessage(author, message, isAction, QDateTime::currentDateTime());
|
||||||
|
|
||||||
if ((static_cast<GenericChatroomWidget*>(g->widget) != activeChatroomWidget) || isMinimized() || !isActiveWindow())
|
if ((static_cast<GenericChatroomWidget*>(g->widget) != activeChatroomWidget) || isMinimized() || !isActiveWindow())
|
||||||
{
|
{
|
||||||
|
@ -932,6 +933,7 @@ Group *Widget::createGroup(int groupId)
|
||||||
connect(newgroup->widget, SIGNAL(removeGroup(int)), this, SLOT(removeGroup(int)));
|
connect(newgroup->widget, SIGNAL(removeGroup(int)), this, SLOT(removeGroup(int)));
|
||||||
connect(newgroup->widget, SIGNAL(chatroomWidgetClicked(GenericChatroomWidget*)), newgroup->chatForm, SLOT(focusInput()));
|
connect(newgroup->widget, SIGNAL(chatroomWidgetClicked(GenericChatroomWidget*)), newgroup->chatForm, SLOT(focusInput()));
|
||||||
connect(newgroup->chatForm, SIGNAL(sendMessage(int,QString)), core, SLOT(sendGroupMessage(int,QString)));
|
connect(newgroup->chatForm, SIGNAL(sendMessage(int,QString)), core, SLOT(sendGroupMessage(int,QString)));
|
||||||
|
connect(newgroup->chatForm, SIGNAL(sendAction(int,QString)), core, SLOT(sendGroupAction(int,QString)));
|
||||||
return newgroup;
|
return newgroup;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -109,7 +109,7 @@ private slots:
|
||||||
void onFriendRequestReceived(const QString& userId, const QString& message);
|
void onFriendRequestReceived(const QString& userId, const QString& message);
|
||||||
void onEmptyGroupCreated(int groupId);
|
void onEmptyGroupCreated(int groupId);
|
||||||
void onGroupInviteReceived(int32_t friendId, const uint8_t *publicKey,uint16_t length);
|
void onGroupInviteReceived(int32_t friendId, const uint8_t *publicKey,uint16_t length);
|
||||||
void onGroupMessageReceived(int groupnumber, const QString& message, const QString& author);
|
void onGroupMessageReceived(int groupnumber, const QString& message, const QString& author, bool isAction);
|
||||||
void onGroupNamelistChanged(int groupnumber, int peernumber, uint8_t change);
|
void onGroupNamelistChanged(int groupnumber, int peernumber, uint8_t change);
|
||||||
void removeFriend(int friendId);
|
void removeFriend(int friendId);
|
||||||
void copyFriendIdToClipboard(int friendId);
|
void copyFriendIdToClipboard(int friendId);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user