fixed user list bug in threaded client, fixed buddy list crash in server
This commit is contained in:
parent
fd5be3d525
commit
d251078feb
5 changed files with 13 additions and 11 deletions
|
@ -62,8 +62,9 @@ void AbstractClient::processProtocolItem(const ServerMessage &item)
|
||||||
PendingCommand *pend = pendingCommands.value(cmdId, 0);
|
PendingCommand *pend = pendingCommands.value(cmdId, 0);
|
||||||
if (!pend)
|
if (!pend)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
pendingCommands.remove(cmdId);
|
pendingCommands.remove(cmdId);
|
||||||
|
locker.unlock();
|
||||||
|
|
||||||
pend->processResponse(response);
|
pend->processResponse(response);
|
||||||
pend->deleteLater();
|
pend->deleteLater();
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -614,7 +614,7 @@ void Player::retranslateUi()
|
||||||
aPeek->setText(tr("&Peek at card face"));
|
aPeek->setText(tr("&Peek at card face"));
|
||||||
aClone->setText(tr("&Clone"));
|
aClone->setText(tr("&Clone"));
|
||||||
aClone->setShortcut(tr("Ctrl+H"));
|
aClone->setShortcut(tr("Ctrl+H"));
|
||||||
aAttach->setText(tr("&Attach to card..."));
|
aAttach->setText(tr("Attac&h to card..."));
|
||||||
aAttach->setShortcut(tr("Ctrl+A"));
|
aAttach->setShortcut(tr("Ctrl+A"));
|
||||||
aUnattach->setText(tr("Unattac&h"));
|
aUnattach->setText(tr("Unattac&h"));
|
||||||
aDrawArrow->setText(tr("&Draw arrow..."));
|
aDrawArrow->setText(tr("&Draw arrow..."));
|
||||||
|
|
|
@ -107,6 +107,7 @@ void TabUserLists::processUserLeftEvent(const Event_UserLeft &event)
|
||||||
|
|
||||||
void TabUserLists::buddyListReceived(const QList<ServerInfo_User> &_buddyList)
|
void TabUserLists::buddyListReceived(const QList<ServerInfo_User> &_buddyList)
|
||||||
{
|
{
|
||||||
|
qDebug() << "BUDDY LIST" << _buddyList.size();
|
||||||
for (int i = 0; i < _buddyList.size(); ++i)
|
for (int i = 0; i < _buddyList.size(); ++i)
|
||||||
buddyList->processUserInfo(_buddyList[i], false);
|
buddyList->processUserInfo(_buddyList[i], false);
|
||||||
buddyList->sortItems();
|
buddyList->sortItems();
|
||||||
|
|
|
@ -348,7 +348,7 @@ MainWindow::MainWindow(QWidget *parent)
|
||||||
connect(client, SIGNAL(serverTimeout()), this, SLOT(serverTimeout()));
|
connect(client, SIGNAL(serverTimeout()), this, SLOT(serverTimeout()));
|
||||||
connect(client, SIGNAL(statusChanged(ClientStatus)), this, SLOT(statusChanged(ClientStatus)));
|
connect(client, SIGNAL(statusChanged(ClientStatus)), this, SLOT(statusChanged(ClientStatus)));
|
||||||
connect(client, SIGNAL(protocolVersionMismatch(int, int)), this, SLOT(protocolVersionMismatch(int, int)));
|
connect(client, SIGNAL(protocolVersionMismatch(int, int)), this, SLOT(protocolVersionMismatch(int, int)));
|
||||||
connect(client, SIGNAL(userInfoChanged(const ServerInfo_User &)), this, SLOT(userInfoReceived(const ServerInfo_User &)));
|
connect(client, SIGNAL(userInfoChanged(const ServerInfo_User &)), this, SLOT(userInfoReceived(const ServerInfo_User &)), Qt::BlockingQueuedConnection);
|
||||||
|
|
||||||
clientThread = new QThread(this);
|
clientThread = new QThread(this);
|
||||||
client->moveToThread(clientThread);
|
client->moveToThread(clientThread);
|
||||||
|
|
|
@ -197,10 +197,10 @@ Response::ResponseCode ServerSocketInterface::cmdAddToList(const Command_AddToLi
|
||||||
if (!servatrice->execSqlQuery(query))
|
if (!servatrice->execSqlQuery(query))
|
||||||
return Response::RespInternalError;
|
return Response::RespInternalError;
|
||||||
|
|
||||||
Event_AddToList *event = new Event_AddToList;
|
Event_AddToList event;
|
||||||
event->set_list_name(cmd.list());
|
event.set_list_name(cmd.list());
|
||||||
event->mutable_user_info()->CopyFrom(servatrice->getUserData(user));
|
event.mutable_user_info()->CopyFrom(servatrice->getUserData(user));
|
||||||
rc.enqueuePreResponseItem(ServerMessage::SESSION_EVENT, event);
|
rc.enqueuePreResponseItem(ServerMessage::SESSION_EVENT, prepareSessionEvent(event));
|
||||||
|
|
||||||
return Response::RespOk;
|
return Response::RespOk;
|
||||||
}
|
}
|
||||||
|
@ -236,10 +236,10 @@ Response::ResponseCode ServerSocketInterface::cmdRemoveFromList(const Command_Re
|
||||||
if (!servatrice->execSqlQuery(query))
|
if (!servatrice->execSqlQuery(query))
|
||||||
return Response::RespInternalError;
|
return Response::RespInternalError;
|
||||||
|
|
||||||
Event_RemoveFromList *event = new Event_RemoveFromList;
|
Event_RemoveFromList event;
|
||||||
event->set_list_name(cmd.list());
|
event.set_list_name(cmd.list());
|
||||||
event->set_user_name(cmd.user_name());
|
event.set_user_name(cmd.user_name());
|
||||||
rc.enqueuePreResponseItem(ServerMessage::SESSION_EVENT, event);
|
rc.enqueuePreResponseItem(ServerMessage::SESSION_EVENT, prepareSessionEvent(event));
|
||||||
|
|
||||||
return Response::RespOk;
|
return Response::RespOk;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue