qTox  Version: nightly | Commit: bc751c8e1cac455f9690654fcfe0f560d2d7dfdd
contentdialogmanager.h
Go to the documentation of this file.
1 /*
2  Copyright © 2018-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 "contentdialog.h"
23 #include "src/core/contactid.h"
24 #include "src/core/groupid.h"
25 #include "src/core/toxpk.h"
27 
28 #include <QObject>
29 
33 class ContentDialogManager : public QObject, public IDialogsManager
34 {
35  Q_OBJECT
36 public:
38  bool contactWidgetExists(const ContactId& groupId);
39  void focusContact(const ContactId& contactId);
40  void updateFriendStatus(const ToxPk& friendPk);
41  void updateGroupStatus(const GroupId& friendPk);
42  bool isContactActive(const ContactId& contactId);
43  ContentDialog* getFriendDialog(const ToxPk& friendPk) const;
44  ContentDialog* getGroupDialog(const GroupId& friendPk) const;
45 
46  IDialogs* getFriendDialogs(const ToxPk& friendPk) const;
47  IDialogs* getGroupDialogs(const GroupId& groupId) const;
48 
49  FriendWidget* addFriendToDialog(ContentDialog* dialog, std::shared_ptr<FriendChatroom> chatroom,
50  GenericChatForm* form);
51  GroupWidget* addGroupToDialog(ContentDialog* dialog, std::shared_ptr<GroupChatroom> chatroom,
52  GenericChatForm* form);
53 
54  void addContentDialog(ContentDialog& dialog);
55 
57 
58 private slots:
59  void onDialogClose();
60  void onDialogActivate();
61 
62 private:
65 
67 
69 
71 };
IDialogsManager
Definition: idialogsmanager.h:27
ContentDialogManager::updateFriendStatus
void updateFriendStatus(const ToxPk &friendPk)
Definition: contentdialogmanager.cpp:125
GenericChatForm
Parent class for all chatforms. It's provide the minimum required UI elements and methods to work wit...
Definition: genericchatform.h:67
ContentDialogManager::focusDialog
ContentDialog * focusDialog(const ContactId &id, const QHash< const ContactId &, ContentDialog * > &list)
Focus the dialog if it exists.
Definition: contentdialogmanager.cpp:107
idialogsmanager.h
contentdialog.h
toxpk.h
ContentDialogManager::getInstance
static ContentDialogManager * getInstance()
Definition: contentdialogmanager.cpp:174
ContentDialogManager::current
ContentDialog * current()
Definition: contentdialogmanager.cpp:46
ContentDialogManager::getFriendDialog
ContentDialog * getFriendDialog(const ToxPk &friendPk) const
Definition: contentdialogmanager.cpp:164
ContentDialogManager::currentDialog
ContentDialog * currentDialog
Definition: contentdialogmanager.h:66
ContentDialogManager::instance
static ContentDialogManager * instance
Definition: contentdialogmanager.h:70
ContentDialogManager::addFriendToDialog
FriendWidget * addFriendToDialog(ContentDialog *dialog, std::shared_ptr< FriendChatroom > chatroom, GenericChatForm *form)
Definition: contentdialogmanager.cpp:61
ContentDialogManager::getFriendDialogs
IDialogs * getFriendDialogs(const ToxPk &friendPk) const
Definition: contentdialogmanager.cpp:206
ContentDialogManager::getGroupDialogs
IDialogs * getGroupDialogs(const GroupId &groupId) const
Definition: contentdialogmanager.cpp:211
contactid.h
ContentDialogManager::focusContact
void focusContact(const ContactId &contactId)
Definition: contentdialogmanager.cpp:93
ContentDialogManager::contactWidgetExists
bool contactWidgetExists(const ContactId &groupId)
Definition: contentdialogmanager.cpp:51
ContentDialog
Definition: contentdialog.h:49
ToxPk
This class represents a Tox Public Key, which is a part of Tox ID.
Definition: toxpk.h:26
IDialogs
Definition: idialogs.h:26
ContentDialogManager::isContactActive
bool isContactActive(const ContactId &contactId)
Definition: contentdialogmanager.cpp:154
QHash< const ContactId &, ContentDialog * >
ContentDialogManager::getGroupDialog
ContentDialog * getGroupDialog(const GroupId &friendPk) const
Definition: contentdialogmanager.cpp:169
GroupWidget
Definition: groupwidget.h:30
groupid.h
GroupId
This class represents a long term persistent group identifier.
Definition: groupid.h:26
ContentDialogManager::onDialogActivate
void onDialogActivate()
Definition: contentdialogmanager.cpp:190
ContactId
Definition: contactid.h:28
ContentDialogManager::contactDialogs
QHash< const ContactId &, ContentDialog * > contactDialogs
Definition: contentdialogmanager.h:68
ContentDialogManager::addGroupToDialog
GroupWidget * addGroupToDialog(ContentDialog *dialog, std::shared_ptr< GroupChatroom > chatroom, GenericChatForm *form)
Definition: contentdialogmanager.cpp:77
ContentDialogManager
Definition: contentdialogmanager.h:33
ContentDialogManager::addContentDialog
void addContentDialog(ContentDialog &dialog)
Definition: contentdialogmanager.cpp:183
ContentDialogManager::onDialogClose
void onDialogClose()
Definition: contentdialogmanager.cpp:196
ContentDialogManager::updateGroupStatus
void updateGroupStatus(const GroupId &friendPk)
Definition: contentdialogmanager.cpp:141
FriendWidget
Definition: friendwidget.h:33