diff --git a/cockatrice/src/client.cpp b/cockatrice/src/client.cpp index 03af1524..a7d6b42a 100644 --- a/cockatrice/src/client.cpp +++ b/cockatrice/src/client.cpp @@ -2,13 +2,12 @@ #include "client.h" Client::Client(QObject *parent) - : QObject(parent) + : QObject(parent), MsgId(0) { timer = new QTimer(this); timer->setInterval(1000); connect(timer, SIGNAL(timeout()), this, SLOT(checkTimeout())); - MsgId = 0; status = StatusDisconnected; socket = new QTcpSocket(this); socket->setTextModeEnabled(true); diff --git a/servatrice/src/main.cpp b/servatrice/src/main.cpp index 9945a1ac..0c0b9b11 100644 --- a/servatrice/src/main.cpp +++ b/servatrice/src/main.cpp @@ -20,6 +20,7 @@ #include +#include #include "server.h" int main(int argc, char *argv[]) @@ -27,6 +28,8 @@ int main(int argc, char *argv[]) QCoreApplication app(argc, argv); app.setOrganizationName("Cockatrice"); app.setApplicationName("Servatrice"); + + QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); Server server; if (!server.openDatabase()) { diff --git a/servatrice/src/serversocket.cpp b/servatrice/src/serversocket.cpp index 83dc226d..8409d8a4 100644 --- a/servatrice/src/serversocket.cpp +++ b/servatrice/src/serversocket.cpp @@ -142,25 +142,11 @@ void ServerSocket::leaveGame() void ServerSocket::readClient() { - QTextStream *stream = new QTextStream(this); - stream->setCodec("UTF-8"); - QStringList lines; - - // Before parsing, everything has to be buffered so that the stream - // can be deleted in order to avoid problems when moving the object - // to another thread while this function is still running. - for (;;) { - QString line = stream->readLine(); + while (canReadLine()) { + QString line = QString(readLine()).trimmed(); if (line.isNull()) break; - lines << line; - } - delete stream; - - QStringListIterator i(lines); - while (i.hasNext()) { - QString line = i.next(); - + qDebug(QString("<<< %1").arg(line).toLatin1()); switch (PlayerStatus) { case StatusNormal: