qTox  Version: nightly | Commit: bc751c8e1cac455f9690654fcfe0f560d2d7dfdd
friendwidget.h
Go to the documentation of this file.
1 /*
2  Copyright © 2019 by The qTox Project Contributors
3 
4  This file is part of qTox, a Qt-based graphical interface for Tox.
5 
6  qTox is libre software: you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  qTox is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with qTox. If not, see <http://www.gnu.org/licenses/>.
18 */
19 
20 #pragma once
21 
22 #include "genericchatroomwidget.h"
23 #include "src/core/toxpk.h"
25 
26 #include <memory>
27 
28 class FriendChatroom;
29 class QPixmap;
31 class CircleWidget;
32 
34 {
35  Q_OBJECT
36 public:
37  FriendWidget(std::shared_ptr<FriendChatroom> chatform, bool compact);
38 
39  void contextMenuEvent(QContextMenuEvent* event) final;
40  void setAsActiveChatroom() final;
41  void setAsInactiveChatroom() final;
42  void updateStatusLight() final;
43  void resetEventFlags() final;
44  QString getStatusString() const final;
45  const Friend* getFriend() const final;
46  const Contact* getContact() const final;
47 
48  bool isFriend() const final;
49  bool isGroup() const final;
50  bool isOnline() const final;
51  bool widgetIsVisible() const final;
52  QString getNameItem() const final;
53  QDateTime getLastActivity() const final;
54  int getCircleId() const final;
55  QWidget* getWidget() final;
56  void setWidgetVisible(bool visible) final;
57 
58 signals:
59  void friendWidgetClicked(FriendWidget* widget);
60  void removeFriend(const ToxPk& friendPk);
61  void copyFriendIdToClipboard(const ToxPk& friendPk);
62  void contextMenuCalled(QContextMenuEvent* event);
63  void friendHistoryRemoved();
64  void updateFriendActivity(Friend& frnd);
65 
66 public slots:
67  void onAvatarSet(const ToxPk& friendPk, const QPixmap& pic);
68  void onAvatarRemoved(const ToxPk& friendPk);
69  void onContextMenuCalled(QContextMenuEvent* event);
70  void setActive(bool active);
71 
72 protected:
73  void mousePressEvent(QMouseEvent* ev) override;
74  void mouseMoveEvent(QMouseEvent* ev) override;
75  void setFriendAlias();
76 
77 private slots:
78  void removeChatWindow();
79  void moveToNewCircle();
80  void removeFromCircle();
81  void moveToCircle(int circleId);
82  void changeAutoAccept(bool enable);
83  void showDetails();
84 
85 public:
86  std::shared_ptr<FriendChatroom> chatroom;
88 };
FriendWidget::getWidget
QWidget * getWidget() final
Definition: friendwidget.cpp:389
FriendWidget::onAvatarSet
void onAvatarSet(const ToxPk &friendPk, const QPixmap &pic)
Definition: friendwidget.cpp:409
FriendWidget::widgetIsVisible
bool widgetIsVisible() const final
Definition: friendwidget.cpp:373
GenericChatItemWidget::compact
bool compact
Definition: genericchatitemwidget.h:47
FriendWidget::friendHistoryRemoved
void friendHistoryRemoved()
FriendWidget::getLastActivity
QDateTime getLastActivity() const final
Definition: friendwidget.cpp:383
genericchatroomwidget.h
FriendWidget::resetEventFlags
void resetEventFlags() final
Definition: friendwidget.cpp:404
FriendWidget::moveToCircle
void moveToCircle(int circleId)
Definition: friendwidget.cpp:244
FriendWidget::isGroup
bool isGroup() const final
Definition: friendwidget.cpp:362
FriendWidget::moveToNewCircle
void moveToNewCircle()
Definition: friendwidget.cpp:203
FriendWidget::setAsInactiveChatroom
void setAsInactiveChatroom() final
Definition: friendwidget.cpp:294
FriendWidget::setActive
void setActive(bool active)
Definition: friendwidget.cpp:299
IFriendListItem
Definition: ifriendlistitem.h:26
FriendWidget::onContextMenuCalled
void onContextMenuCalled(QContextMenuEvent *event)
FriendWidget::onContextMenuCalled.
Definition: friendwidget.cpp:96
FriendWidget::onAvatarRemoved
void onAvatarRemoved(const ToxPk &friendPk)
Definition: friendwidget.cpp:420
FriendWidget::changeAutoAccept
void changeAutoAccept(bool enable)
Definition: friendwidget.cpp:266
FriendWidget::removeChatWindow
void removeChatWindow()
Definition: friendwidget.cpp:184
toxpk.h
FriendWidget::getContact
const Contact * getContact() const final
Definition: friendwidget.cpp:352
FriendWidget::isFriend
bool isFriend() const final
Definition: friendwidget.cpp:357
FriendWidget::mousePressEvent
void mousePressEvent(QMouseEvent *ev) override
Definition: friendwidget.cpp:433
FriendWidget::updateFriendActivity
void updateFriendActivity(Friend &frnd)
FriendWidget::removeFriend
void removeFriend(const ToxPk &friendPk)
ifriendlistitem.h
MaskablePixmapWidget
Definition: maskablepixmapwidget.h:24
FriendWidget::getCircleId
int getCircleId() const final
Definition: friendwidget.cpp:399
ToxPk
This class represents a Tox Public Key, which is a part of Tox ID.
Definition: toxpk.h:26
Contact
Definition: contact.h:26
Friend
Definition: friend.h:31
FriendWidget::mouseMoveEvent
void mouseMoveEvent(QMouseEvent *ev) override
Definition: friendwidget.cpp:442
FriendWidget::getFriend
const Friend * getFriend() const final
Definition: friendwidget.cpp:347
FriendWidget::getStatusString
QString getStatusString() const final
Definition: friendwidget.cpp:329
FriendWidget::copyFriendIdToClipboard
void copyFriendIdToClipboard(const ToxPk &friendPk)
FriendWidget::isDefaultAvatar
bool isDefaultAvatar
Definition: friendwidget.h:87
FriendWidget::showDetails
void showDetails()
Definition: friendwidget.cpp:279
FriendWidget::setAsActiveChatroom
void setAsActiveChatroom() final
Definition: friendwidget.cpp:289
FriendWidget::updateStatusLight
void updateStatusLight() final
Definition: friendwidget.cpp:309
FriendWidget::setWidgetVisible
void setWidgetVisible(bool visible) final
Definition: friendwidget.cpp:394
FriendWidget::contextMenuCalled
void contextMenuCalled(QContextMenuEvent *event)
FriendWidget::contextMenuEvent
void contextMenuEvent(QContextMenuEvent *event) final
FriendWidget::contextMenuEvent.
Definition: friendwidget.cpp:85
FriendWidget::friendWidgetClicked
void friendWidgetClicked(FriendWidget *widget)
CircleWidget
Definition: circlewidget.h:27
GenericChatroomWidget::active
bool active
Definition: genericchatroomwidget.h:85
FriendWidget::FriendWidget
FriendWidget(std::shared_ptr< FriendChatroom > chatform, bool compact)
Definition: friendwidget.cpp:59
FriendWidget::removeFromCircle
void removeFromCircle()
Definition: friendwidget.cpp:224
GenericChatroomWidget
Definition: genericchatroomwidget.h:32
FriendWidget::getNameItem
QString getNameItem() const final
Definition: friendwidget.cpp:378
FriendWidget::isOnline
bool isOnline() const final
Definition: friendwidget.cpp:367
FriendWidget::chatroom
std::shared_ptr< FriendChatroom > chatroom
Definition: friendwidget.h:86
FriendWidget
Definition: friendwidget.h:33
FriendWidget::setFriendAlias
void setFriendAlias()
FriendChatroom
Definition: friendchatroom.h:45