forked from CPP-Final-Project/Chat_Client
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathChatClient.h
More file actions
124 lines (96 loc) · 3.09 KB
/
ChatClient.h
File metadata and controls
124 lines (96 loc) · 3.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#pragma once
#include <QtWidgets/QMainWindow>
#include <QTcpSocket>
#include <QInputDialog>
#include <QMessageBox>
#include <QFileDialog>
#include <QKeyEvent>
#include <QIcon>
#include <QTime>
#include <QUuid>
#include <QJsonObject>
#include <QJsonDocument>
#include <QJsonArray>
#include <QJsonParseError>
#include <QFile>
#include <QList>
#include <QBuffer>
#include "entities.h"
#include "client.h"
#include "ui_ChatClient.h"
#include "MessageItem.h"
#include "MessageWView.h"
#include "ChatItem.h"
#include "ChatWView.h"
#include "DTOUser.h"
#include "ConfigService.h"
const QString CONFIG_FILE_PATH = "./config.json";
QT_BEGIN_NAMESPACE
namespace Ui { class ChatClientClass; };
QT_END_NAMESPACE
class ChatClient : public QMainWindow
{
Q_OBJECT
public:
explicit ChatClient(QWidget *parent = nullptr);
~ChatClient();
ChatClient(const ChatClient&) = delete;
ChatClient(ChatClient&&) = delete;
const ChatClient& operator =(const ChatClient&) = delete;
ChatClient& operator = (ChatClient&&) = delete;
Q_SIGNALS:
void new_message(const QVariant& msg);
void new_chat(const QVariant& chat_);
void download_chats(const QVariantList& list_chats_);
void download_messages(const QVariantList& list_msg_);
void recivedLike(const QVariant& like_);
private Q_SLOTS:
//-----CtartW-----
void onStartAppClicked();
//-----LogInW-----
void on_log_in_button_clicked();
void on_sign_in_button_clicked();
//-----ProfileW
void on_start_chatting_clicked();
void onSaveClicked();
void onChangeButtonAvatarClicked();
void onChangeButtonPasswordClicked();
//-----ChatListW-----
void onAddChatButtonClicked();
void onProfileClicked();
//-----ChatW-----
void on_sendButton_clicked();
void on_attach_files();
void on_image_clicked(const QString& image_path);
void onChatClicked(qint32 chat_id_, const QString& chat_name_);
void onReactionClick(const Likes& mes_user_likes_);
void onExitRoomClicked();
//-----AddRoom-----
void onCreateClicked();
void onCancelClicked();
private slots:
void attemptConnection();
void connectedToServer();
void loginFailed(const QString& reason);
void loggedIn(const DTOUser& dto_user_);
void createUserFailed(const QString& reason);
void messageReceived(const DTOMessage& msg_);
void messageListReceived(const QList<MessageItem>& list_of_mess);
void roomCreated(const ChatItem& chat_);
void chatListRecived(const chatList& list_of_mess);
void topicsComes(const QStringList& topics_);
void connectedToRoom(const QList<MessageItem>& list_of_mess);
void userAvatarUpdated(const DTOUser& dto_user_);
void userPasswordUpdated(const DTOUser& dto_user_);
void userDataRecived(const DTOUser& dto_user_);
void exitingRoom(const QString& result_);
void likeReceivedServer(const Likes& like_);
void disconnectedFromServer();
protected:
void keyPressEvent(QKeyEvent* event) override;
void closeEvent(QCloseEvent* event) override;
private:
Ui::ChatClientClass *ui;
Client* client;
ConfigData config_data;
};