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

Merge pull request #48 from F1ynn/master

Add option to copy friend's ID to the system clipboard
This commit is contained in:
Tux3 / Mlkj / !Lev.uXFMLA 2014-07-02 00:14:27 +02:00
commit 85eb3757d6
4 changed files with 24 additions and 2 deletions

View File

@ -62,7 +62,7 @@ void FriendWidget::contextMenuEvent(QContextMenuEvent * event)
{
QPoint pos = event->globalPos();
QMenu menu;
menu.addAction("Remove friend");
menu.addAction("Copy friend ID");
QMenu* inviteMenu = menu.addMenu("Invite in group");
QMap<QAction*, Group*> groupActions;
for (Group* group : GroupList::groupList)
@ -72,11 +72,18 @@ void FriendWidget::contextMenuEvent(QContextMenuEvent * event)
}
if (groupActions.isEmpty())
inviteMenu->setEnabled(false);
menu.addSeparator();
menu.addAction("Remove friend");
QAction* selectedItem = menu.exec(pos);
if (selectedItem)
{
if (selectedItem->text() == "Remove friend")
if (selectedItem->text() == "Copy friend ID")
{
emit copyFriendIdToClipboard(friendId);
return;
}
else if (selectedItem->text() == "Remove friend")
{
hide();
emit removeFriend(friendId);

View File

@ -22,6 +22,7 @@ public:
signals:
void friendWidgetClicked(FriendWidget* widget);
void removeFriend(int friendId);
void copyFriendIdToClipboard(int friendId);
public:
int friendId;

View File

@ -20,6 +20,7 @@
#include <QDesktopWidget>
#include <QCursor>
#include <QSettings>
#include <QClipboard>
Widget *Widget::instance{nullptr};
@ -378,6 +379,7 @@ void Widget::addFriend(int friendId, const QString &userId)
layout->addWidget(newfriend->widget);
connect(newfriend->widget, SIGNAL(friendWidgetClicked(FriendWidget*)), this, SLOT(onFriendWidgetClicked(FriendWidget*)));
connect(newfriend->widget, SIGNAL(removeFriend(int)), this, SLOT(removeFriend(int)));
connect(newfriend->widget, SIGNAL(copyFriendIdToClipboard(int)), this, SLOT(copyFriendIdToClipboard(int)));
connect(newfriend->chatForm, SIGNAL(sendMessage(int,QString)), core, SLOT(sendMessage(int,QString)));
connect(newfriend->chatForm, SIGNAL(sendFile(int32_t,QString,QByteArray)), core, SLOT(sendFile(int32_t,QString,QByteArray)));
connect(newfriend->chatForm, SIGNAL(answerCall(int)), core, SLOT(answerCall(int)));
@ -541,6 +543,17 @@ void Widget::removeFriend(int friendId)
onAddClicked();
}
void Widget::copyFriendIdToClipboard(int friendId)
{
Friend* f = FriendList::findFriend(friendId);
if (f != nullptr)
{
QClipboard *clipboard = QApplication::clipboard();
clipboard->setText(f->userId, QClipboard::Clipboard);
clipboard->deleteLater();
}
}
void Widget::onGroupInviteReceived(int32_t friendId, uint8_t* publicKey)
{
int groupId = core->joinGroupchat(friendId, publicKey);

View File

@ -86,6 +86,7 @@ private slots:
void onGroupNamelistChanged(int groupnumber, int peernumber, uint8_t change);
void onGroupWidgetClicked(GroupWidget* widget);
void removeFriend(int friendId);
void copyFriendIdToClipboard(int friendId);
void removeGroup(int groupId);
protected slots: