qTox  Version: nightly | Commit: bc751c8e1cac455f9690654fcfe0f560d2d7dfdd
groupwidget.h
Go to the documentation of this file.
1 /*
2  Copyright © 2014-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 
26 #include "src/core/groupid.h"
27 
28 #include <memory>
29 
31 {
32  Q_OBJECT
33 public:
34  GroupWidget(std::shared_ptr<GroupChatroom> chatroom, bool compact);
35  ~GroupWidget();
36  void setAsInactiveChatroom() final;
37  void setAsActiveChatroom() final;
38  void updateStatusLight() final;
39  void resetEventFlags() final;
40  QString getStatusString() const final;
41  Group* getGroup() const final;
42  const Contact* getContact() const final;
43  void setName(const QString& name);
44  void editName();
45 
46  bool isFriend() const final;
47  bool isGroup() const final;
48  QString getNameItem() const final;
49  bool isOnline() const final;
50  bool widgetIsVisible() const final;
51  QDateTime getLastActivity() const final;
52  QWidget* getWidget() final;
53  void setWidgetVisible(bool visible) final;
54 
55 signals:
56  void groupWidgetClicked(GroupWidget* widget);
57  void removeGroup(const GroupId& groupId);
58 
59 protected:
60  void contextMenuEvent(QContextMenuEvent* event) final;
61  void mousePressEvent(QMouseEvent* event) final;
62  void mouseMoveEvent(QMouseEvent* event) final;
63  void dragEnterEvent(QDragEnterEvent* ev) override;
64  void dragLeaveEvent(QDragLeaveEvent* ev) override;
65  void dropEvent(QDropEvent* ev) override;
66 
67 private slots:
68  void retranslateUi();
69  void updateTitle(const QString& author, const QString& newName);
70  void updateUserCount(int numPeers);
71 
72 public:
74 
75 private:
76  std::shared_ptr<GroupChatroom> chatroom;
77 };
GroupWidget::dragLeaveEvent
void dragLeaveEvent(QDragLeaveEvent *ev) override
Definition: groupwidget.cpp:263
GenericChatItemWidget::compact
bool compact
Definition: genericchatitemwidget.h:47
genericchatroomwidget.h
GroupWidget::setWidgetVisible
void setWidgetVisible(bool visible) final
Definition: groupwidget.cpp:227
GroupWidget::isGroup
bool isGroup() const final
Definition: groupwidget.cpp:197
GroupWidget::updateTitle
void updateTitle(const QString &author, const QString &newName)
Definition: groupwidget.cpp:70
GroupWidget::removeGroup
void removeGroup(const GroupId &groupId)
IFriendListItem
Definition: ifriendlistitem.h:26
GroupWidget::setName
void setName(const QString &name)
Definition: groupwidget.cpp:287
GroupWidget::updateStatusLight
void updateStatusLight() final
Definition: groupwidget.cpp:169
GroupWidget::editName
void editName()
Definition: groupwidget.cpp:187
GroupWidget::updateUserCount
void updateUserCount(int numPeers)
Definition: groupwidget.cpp:152
GroupWidget::dragEnterEvent
void dragEnterEvent(QDragEnterEvent *ev) override
Definition: groupwidget.cpp:248
GroupWidget::groupWidgetClicked
void groupWidgetClicked(GroupWidget *widget)
GroupWidget::getContact
const Contact * getContact() const final
Definition: groupwidget.cpp:238
ifriendlistitem.h
GroupWidget::mousePressEvent
void mousePressEvent(QMouseEvent *event) final
Definition: groupwidget.cpp:124
GroupWidget::getNameItem
QString getNameItem() const final
Definition: groupwidget.cpp:202
Contact
Definition: contact.h:26
GroupWidget::setAsActiveChatroom
void setAsActiveChatroom() final
Definition: groupwidget.cpp:157
GroupWidget::getStatusString
QString getStatusString() const final
Definition: groupwidget.cpp:178
GroupWidget::groupId
GroupId groupId
Definition: groupwidget.h:73
GroupWidget::setAsInactiveChatroom
void setAsInactiveChatroom() final
Definition: groupwidget.cpp:163
GroupWidget::isOnline
bool isOnline() const final
Definition: groupwidget.cpp:207
GroupWidget::retranslateUi
void retranslateUi()
Definition: groupwidget.cpp:292
GroupWidget::chatroom
std::shared_ptr< GroupChatroom > chatroom
Definition: groupwidget.h:76
GroupWidget
Definition: groupwidget.h:30
groupid.h
GroupId
This class represents a long term persistent group identifier.
Definition: groupid.h:26
Group
Definition: group.h:34
GroupWidget::getWidget
QWidget * getWidget() final
Definition: groupwidget.cpp:222
GroupWidget::GroupWidget
GroupWidget(std::shared_ptr< GroupChatroom > chatroom, bool compact)
Definition: groupwidget.cpp:44
GroupWidget::isFriend
bool isFriend() const final
Definition: groupwidget.cpp:192
GroupWidget::getLastActivity
QDateTime getLastActivity() const final
Definition: groupwidget.cpp:217
GroupWidget::~GroupWidget
~GroupWidget()
Definition: groupwidget.cpp:65
GroupWidget::mouseMoveEvent
void mouseMoveEvent(QMouseEvent *event) final
Definition: groupwidget.cpp:133
GroupWidget::resetEventFlags
void resetEventFlags() final
Definition: groupwidget.cpp:243
groupchatroom.h
GroupWidget::getGroup
Group * getGroup() const final
Definition: groupwidget.cpp:233
GenericChatroomWidget
Definition: genericchatroomwidget.h:32
GroupWidget::dropEvent
void dropEvent(QDropEvent *ev) override
Definition: groupwidget.cpp:270
GroupWidget::widgetIsVisible
bool widgetIsVisible() const final
Definition: groupwidget.cpp:212
GroupWidget::contextMenuEvent
void contextMenuEvent(QContextMenuEvent *event) final
Definition: groupwidget.cpp:76