mirror of
https://github.com/qTox/qTox.git
synced 2024-03-22 14:00:36 +08:00
Add group invite context menu to friends
This commit is contained in:
parent
1f11f7bad8
commit
f906d5b8f4
|
@ -7,8 +7,8 @@ However, it is not a fork.
|
|||
|
||||
<h2>Features</h2>
|
||||
|
||||
- Friends chat
|
||||
- Group chats (experimental, can only accept invitations)
|
||||
- One to one chat with friends
|
||||
- Group chats
|
||||
- File transfers, with previewing of images
|
||||
- Audio calls
|
||||
|
||||
|
|
6
core.cpp
6
core.cpp
|
@ -786,6 +786,7 @@ QList<QString> Core::getGroupPeerNames(int groupId) const
|
|||
|
||||
int Core::joinGroupchat(int32_t friendnumber, uint8_t* friend_group_public_key) const
|
||||
{
|
||||
qDebug() << QString("Trying to join groupchat invite by friend %1").arg(friendnumber);
|
||||
return tox_join_groupchat(tox, friendnumber, friend_group_public_key);
|
||||
}
|
||||
|
||||
|
@ -1162,3 +1163,8 @@ void Core::sendCallAudio(int callId, ToxAv* toxav)
|
|||
QThread::msleep(5);
|
||||
}
|
||||
}
|
||||
|
||||
void Core::groupInviteFriend(int friendId, int groupId)
|
||||
{
|
||||
tox_invite_friend(tox, friendId, groupId);
|
||||
}
|
||||
|
|
1
core.h
1
core.h
|
@ -116,6 +116,7 @@ public slots:
|
|||
|
||||
void acceptFriendRequest(const QString& userId);
|
||||
void requestFriendship(const QString& friendAddress, const QString& message);
|
||||
void groupInviteFriend(int friendId, int groupId);
|
||||
|
||||
void removeFriend(int friendId);
|
||||
void removeGroup(int groupId);
|
||||
|
|
1
main.cpp
1
main.cpp
|
@ -25,7 +25,6 @@ int main(int argc, char *argv[])
|
|||
* Adjust all status icons to match the mockup, including scooting the friendslist ones to the left and making the user one the same size
|
||||
* Sidepanel (friendlist) should be resizeable
|
||||
* The online/offline/away status at the top (our) is way too big i think (follow the mockup/uTox)
|
||||
* In-chat messages should have line wrapping
|
||||
* An extra side panel for groupchats, like Venom does (?)
|
||||
*
|
||||
*/
|
||||
|
|
|
@ -1,4 +1,8 @@
|
|||
#include "friendwidget.h"
|
||||
#include "group.h"
|
||||
#include "grouplist.h"
|
||||
#include "groupwidget.h"
|
||||
#include "widget.h"
|
||||
#include <QContextMenuEvent>
|
||||
#include <QMenu>
|
||||
|
||||
|
@ -52,6 +56,15 @@ void FriendWidget::contextMenuEvent(QContextMenuEvent * event)
|
|||
QPoint pos = event->globalPos();
|
||||
QMenu menu;
|
||||
menu.addAction("Remove friend");
|
||||
QMenu* inviteMenu = menu.addMenu("Invite in group");
|
||||
QMap<QAction*, Group*> groupActions;
|
||||
for (Group* group : GroupList::groupList)
|
||||
{
|
||||
QAction* groupAction = inviteMenu->addAction(group->widget->name.text());
|
||||
groupActions[groupAction] = group;
|
||||
}
|
||||
if (groupActions.isEmpty())
|
||||
inviteMenu->setEnabled(false);
|
||||
|
||||
QAction* selectedItem = menu.exec(pos);
|
||||
if (selectedItem)
|
||||
|
@ -62,6 +75,11 @@ void FriendWidget::contextMenuEvent(QContextMenuEvent * event)
|
|||
emit removeFriend(friendId);
|
||||
return;
|
||||
}
|
||||
else if (groupActions.contains(selectedItem))
|
||||
{
|
||||
Group* group = groupActions[selectedItem];
|
||||
Widget::getInstance()->getCore()->groupInviteFriend(friendId, group->groupId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user