HWNewNet::HWNewNet() : isChief(false), m_game_connected(false), netClientState(Disconnected) { m_private_game = false; m_nick_registered = false; m_roomsListModel = new RoomsListModel(this); m_playersModel = new PlayersListModel(this); m_lobbyPlayersModel = new QSortFilterProxyModel(this); m_lobbyPlayersModel->setSourceModel(m_playersModel); m_lobbyPlayersModel->setSortRole(PlayersListModel::SortRole); m_lobbyPlayersModel->setDynamicSortFilter(true); m_lobbyPlayersModel->sort(0); m_roomPlayersModel = new QSortFilterProxyModel(this); m_roomPlayersModel->setSourceModel(m_playersModel); m_roomPlayersModel->setSortRole(PlayersListModel::SortRole); m_roomPlayersModel->setDynamicSortFilter(true); m_roomPlayersModel->sort(0); m_roomPlayersModel->setFilterRole(PlayersListModel::RoomFilterRole); m_roomPlayersModel->setFilterFixedString("true"); // socket stuff connect(&NetSocket, SIGNAL(readyRead()), this, SLOT(ClientRead())); connect(&NetSocket, SIGNAL(connected()), this, SLOT(OnConnect())); connect(&NetSocket, SIGNAL(disconnected()), this, SLOT(OnDisconnect())); connect(&NetSocket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(displayError(QAbstractSocket::SocketError))); connect(this, SIGNAL(messageProcessed()), this, SLOT(ClientRead()), Qt::QueuedConnection); }
void TCPBase::NewConnection() { if(IPCSocket) { // connection should be already finished return; } disconnect(IPCServer, SIGNAL(newConnection()), this, SLOT(NewConnection())); IPCSocket = IPCServer->nextPendingConnection(); if(!IPCSocket) return; m_connected = true; connect(IPCSocket, SIGNAL(disconnected()), this, SLOT(ClientDisconnect())); connect(IPCSocket, SIGNAL(readyRead()), this, SLOT(ClientRead())); SendToClientFirst(); if(simultaneousRun()) { srvsList.removeOne(this); emit isReadyNow(); } }
void TCPBase::ClientDisconnect() { disconnect(IPCSocket, SIGNAL(readyRead()), this, SLOT(ClientRead())); onClientDisconnect(); if(!simultaneousRun()) emit isReadyNow(); IPCSocket->deleteLater(); deleteLater(); }