Skip to content

Commit 4212fd1

Browse files
committed
fixed many problems
1 parent f10febf commit 4212fd1

File tree

8 files changed

+39
-34
lines changed

8 files changed

+39
-34
lines changed

XMYChatClient/loginsession.cpp

+2-3
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,11 @@ bool loginsession::user_register(QString email, QString password, QString userna
5252

5353
void loginsession::establish_connect()
5454
{
55-
socket->deleteLater();
55+
socket->disconnectFromHost();
5656
socket=new XMY_tcpsocket;
5757
connect(socket,&XMY_tcpsocket::connected,this,&loginsession::slot_connected);
5858
connect(socket,&XMY_tcpsocket::disconnected,this,&loginsession::slot_disconnected);
5959
connect(socket,&XMY_tcpsocket::receive_json,this,&loginsession::callback_process);
60-
6160
qDebug()<<"connecting";
6261
QVariant ip, port;
6362
settings->get_value("Server ip",ip);
@@ -252,5 +251,5 @@ void loginsession::slot_disconnected()
252251
qDebug("disconnected");
253252
emit general_return(CONNECTION_ERROR);
254253
emit sig_logout();
255-
delete socket;
254+
socket->deleteLater();
256255
}

XMYChatClient/loginwindow.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ LoginWindow::LoginWindow(QWidget *parent)
1919
QVariant ip, port;
2020
if(!settings->get_value("Server ip", ip)) settings->set_value("Server ip","127.0.0.1");
2121
if(!settings->get_value("Server port", port)) settings->set_value("Server port",42000);
22-
2322
}
2423

2524
LoginWindow::~LoginWindow()

XMYChatClient/usermainwindow.cpp

+14-15
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@ UserMainWindow::UserMainWindow(QWidget *parent, loginsession* session) :
66
ui(new Ui::UserMainWindow),
77
session(session)
88
{
9+
if(!QFile(".cache\\default.png").exists()) {
10+
QString default_avatar="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";
11+
XMY_Utilities::checkDir(".cache");
12+
XMY_Utilities::save_pic_from_base64(default_avatar,".cache\\default.png");
13+
}
914
ui->setupUi(this);
1015
connect(session,&loginsession::sig_logout,this,&UserMainWindow::slot_logout);
1116
connect(session,&loginsession::sig_receive_message,this,&UserMainWindow::slot_receive_message);
@@ -32,11 +37,6 @@ UserMainWindow::UserMainWindow(QWidget *parent, loginsession* session) :
3237
session->fetch_friend_list();
3338
session->get_avatar();
3439
ui->plainTextEdit_msginput->installEventFilter(this);
35-
if(!QFile(".cache\\default.png").exists()) {
36-
QString default_avatar="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";
37-
XMY_Utilities::checkDir(".cache");
38-
XMY_Utilities::save_pic_from_base64(default_avatar,".cache\\default.png");
39-
}
4040
}
4141

4242
UserMainWindow::~UserMainWindow()
@@ -109,12 +109,7 @@ void UserMainWindow::slot_avatar_got(QString email)
109109

110110
void UserMainWindow::slot_user_found(userStruct user)
111111
{
112-
// QEventLoop *loop=new QEventLoop;
113-
// connect(session,&loginsession::avatar_got,loop,&QEventLoop::quit);
114-
// QTimer::singleShot(100,NULL,[loop]{loop->quit();});
115-
// loop->exec();
116112
FriendSearchDialog dialog(session,this,user.username,user.email);
117-
// session->get_avatar(user.email,user.avatarmd5);
118113
if(dialog.exec()==QDialog::Accepted) {
119114
if(!session->friend_email_list.contains(user.email)){
120115
session->add_user(user.email);
@@ -182,7 +177,7 @@ void UserMainWindow::on_listWidget_friends_itemClicked(QListWidgetItem *item)
182177
QStringList info=item->text().split('\n');
183178
ui->label_email_friend->setText(info[1]);
184179
ui->label_username_friend->setText(info[0]);
185-
QPixmap avatar(".cache\\"+XMY_Utilities::emailtomd5(info[1])+".png");
180+
QPixmap avatar(XMY_Utilities::get_avatar_filename(".cache\\",info[1]));
186181
ui->label_avatar_friend->setPixmap(avatar);
187182
ui->pushButton_send->setEnabled(true);
188183
show_messages();
@@ -196,7 +191,11 @@ void UserMainWindow::on_pushButton_search_clicked()
196191
warning.exec();
197192
}
198193
else {
199-
session->search_user(ui->lineEdit_usersearchinput->text());
194+
if(ui->lineEdit_usersearchinput->text()==session->info.value("email")) {
195+
QMessageBox warning(QMessageBox::Warning,"Error","You can't add yourself to contact!",QMessageBox::Ok,this);
196+
warning.exec();
197+
}
198+
else session->search_user(ui->lineEdit_usersearchinput->text());
200199
}
201200
ui->lineEdit_usersearchinput->clear();
202201
}
@@ -209,8 +208,8 @@ void UserMainWindow::show_messages()
209208
msg=session->get_messages_by_email(email);
210209
ui->listWidget_messages->clear();
211210
for(auto &i:msg) {
212-
ui->listWidget_messages->addItem(i.time+" - "+i.sender+"\n"+i.msg);
213-
211+
ui->listWidget_messages->addItem(i.time+" - "+i.sender);
212+
ui->listWidget_messages->addItem(i.msg);
214213
}
215214
ui->listWidget_messages->scrollToBottom();
216215
}
@@ -225,7 +224,7 @@ bool UserMainWindow::eventFilter(QObject *object, QEvent *event)
225224
return true;
226225
}
227226
if(peve->key()==Qt::Key_Return || peve->key()==Qt::Key_Enter) {
228-
on_pushButton_send_clicked();
227+
if(ui->pushButton_send->isEnabled()) on_pushButton_send_clicked();
229228
return true;
230229
}
231230
}

XMYChatClient/usermainwindow.ui

+8-1
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,14 @@
164164
<property name="orientation">
165165
<enum>Qt::Vertical</enum>
166166
</property>
167-
<widget class="QListWidget" name="listWidget_messages"/>
167+
<widget class="QListWidget" name="listWidget_messages">
168+
<property name="textElideMode">
169+
<enum>Qt::ElideNone</enum>
170+
</property>
171+
<property name="wordWrap">
172+
<bool>true</bool>
173+
</property>
174+
</widget>
168175
<widget class="QPlainTextEdit" name="plainTextEdit_msginput"/>
169176
</widget>
170177
</item>

XMYChatServer/xmy_tcpserver.cpp

+8-7
Original file line numberDiff line numberDiff line change
@@ -57,14 +57,15 @@ XMY_tcpserver::~XMY_tcpserver()
5757

5858
void XMY_tcpserver::incomingConnection(qintptr socketDescriptor)
5959
{
60-
XMY_tcpsocket* socket=new XMY_tcpsocket(socketDescriptor);
61-
clients.insert(socketDescriptor,socket);
60+
QUuid socketId=QUuid().createUuid();
61+
XMY_tcpsocket* socket=new XMY_tcpsocket(socketDescriptor,socketId);
62+
clients.insert(socketId,socket);
6263
connect(socket,&XMY_tcpsocket::receive_json,this,&XMY_tcpserver::request_process);
6364
connect(socket,&XMY_tcpsocket::disconnected,this,&XMY_tcpserver::slot_disconnected);
64-
emit new_log(QString("New connection from [%1]:%2 %3.").arg(socket->peerAddress().toString()).arg(socket->peerPort()).arg(socketDescriptor));
65+
emit new_log(QString("New connection from [%1]:%2 %3.").arg(socket->peerAddress().toString()).arg(socket->peerPort()).arg(socketId.toString()));
6566
}
6667

67-
void XMY_tcpserver::user_authentication(QJsonObject login_info, QJsonObject& ret_data, qintptr socketDescriptor)
68+
void XMY_tcpserver::user_authentication(QJsonObject login_info, QJsonObject& ret_data, QUuid socketId)
6869
{
6970
QString email=login_info.value("email").toString();
7071
if(!XMY_Utilities::check_valid_email(email)) {
@@ -84,7 +85,7 @@ void XMY_tcpserver::user_authentication(QJsonObject login_info, QJsonObject& ret
8485
else {
8586
result=LOGIN_SUCCESS;
8687
if(loginusers.contains(email) && clients.contains(loginusers.value(email))) clients.value(loginusers.value(email))->disconnectFromHost();
87-
loginusers.insert(login_info.value("email").toString(),socketDescriptor);
88+
loginusers.insert(login_info.value("email").toString(),socketId);
8889
}
8990
}
9091
else result=LOGIN_INFO_ERROR;
@@ -250,7 +251,7 @@ void XMY_tcpserver::request_process(QJsonObject req)
250251
switch(req.value("type").toInt()){
251252
case TYPE_LOGIN: {
252253
ret.insert("type",TYPE_LOGIN);
253-
user_authentication(req,ret,socket->socketDescriptor());
254+
user_authentication(req,ret,socket->id);
254255
break;
255256
}
256257
case TYPE_REGISTER: {
@@ -349,7 +350,7 @@ void XMY_tcpserver::handleEndOfRequest(QNetworkReply *reply)
349350
void XMY_tcpserver::slot_disconnected()
350351
{
351352
XMY_tcpsocket* client=qobject_cast<XMY_tcpsocket*>(sender());
352-
emit new_log(QString("[%1]:%2 %3 disconnected.").arg(client->peerAddress().toString()).arg(client->peerPort()).arg(client->id));
353+
emit new_log(QString("[%1]:%2 %3 disconnected.").arg(client->peerAddress().toString()).arg(client->peerPort()).arg(client->id.toString()));
353354
clients.remove(client->id);
354355
client->deleteLater();
355356
}

XMYChatServer/xmy_tcpserver.h

+3-3
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,10 @@ class XMY_tcpserver : public QTcpServer
2929

3030
private:
3131
XMY_database* db;
32-
QHash<qintptr,XMY_tcpsocket*> clients;
33-
QHash<QString, qintptr> loginusers;
32+
QHash<QUuid,XMY_tcpsocket*> clients;
33+
QHash<QString, QUuid> loginusers;
3434

35-
void user_authentication(QJsonObject login_info, QJsonObject& ret_data, qintptr socketDescriptor);
35+
void user_authentication(QJsonObject login_info, QJsonObject& ret_data, QUuid socketId);
3636
void user_create(QJsonObject user_info, QJsonObject& ret_data);
3737
bool send_message(QString from_username, QString to_username, QString msg);
3838
bool email_verify(QString email, int code, QJsonObject& ret_data);

XMYChatShare/xmy_tcpsocket.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ XMY_tcpsocket::XMY_tcpsocket(QObject *parent) : QTcpSocket(parent)
66
setSocketOption(QAbstractSocket::LowDelayOption,1);
77
}
88

9-
XMY_tcpsocket::XMY_tcpsocket(qintptr socketDescriptor)
9+
XMY_tcpsocket::XMY_tcpsocket(qintptr socketDescriptor, QUuid socketId)
1010
{
11+
id=socketId;
1112
setSocketDescriptor(socketDescriptor);
12-
id=socketDescriptor;
1313
connect(this,&XMY_tcpsocket::readyRead,this,&XMY_tcpsocket::slot_ready_read);
1414
}
1515

XMYChatShare/xmy_tcpsocket.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ class XMY_tcpsocket : public QTcpSocket
1111
Q_OBJECT
1212
public:
1313
explicit XMY_tcpsocket(QObject *parent = nullptr);
14-
XMY_tcpsocket(qintptr socketDescriptor);
14+
XMY_tcpsocket(qintptr socketDescriptor, QUuid socketId);
1515
void send_json(QJsonObject data);
16-
qintptr id;
16+
QUuid id;
1717

1818
signals:
1919
void receive_json(QJsonObject data);

0 commit comments

Comments
 (0)