35 m_game_connected(false), |
36 m_game_connected(false), |
36 loginStep(0), |
37 loginStep(0), |
37 netClientState(Disconnected) |
38 netClientState(Disconnected) |
38 { |
39 { |
39 m_roomsListModel = new RoomsListModel(this); |
40 m_roomsListModel = new RoomsListModel(this); |
40 m_lobbyPlayersModel = new PlayersListModel(this); |
41 |
41 m_roomPlayersModel = new PlayersListModel(this); |
42 m_playersModel = new PlayersListModel(this); |
42 // socket stuff |
43 |
|
44 m_lobbyPlayersModel = new QSortFilterProxyModel(this); |
|
45 m_lobbyPlayersModel->setSourceModel(m_playersModel); |
|
46 m_lobbyPlayersModel->setSortRole(PlayersListModel::SortRole); |
|
47 m_lobbyPlayersModel->setDynamicSortFilter(true); |
|
48 m_lobbyPlayersModel->sort(0); |
|
49 |
|
50 m_roomPlayersModel = new QSortFilterProxyModel(this); |
|
51 m_roomPlayersModel->setSourceModel(m_playersModel); |
|
52 m_roomPlayersModel->setSortRole(PlayersListModel::SortRole); |
|
53 m_roomPlayersModel->setDynamicSortFilter(true); |
|
54 m_roomPlayersModel->sort(0); |
|
55 |
|
56 // socket stuff |
43 connect(&NetSocket, SIGNAL(readyRead()), this, SLOT(ClientRead())); |
57 connect(&NetSocket, SIGNAL(readyRead()), this, SLOT(ClientRead())); |
44 connect(&NetSocket, SIGNAL(connected()), this, SLOT(OnConnect())); |
58 connect(&NetSocket, SIGNAL(connected()), this, SLOT(OnConnect())); |
45 connect(&NetSocket, SIGNAL(disconnected()), this, SLOT(OnDisconnect())); |
59 connect(&NetSocket, SIGNAL(disconnected()), this, SLOT(OnDisconnect())); |
46 connect(&NetSocket, SIGNAL(error(QAbstractSocket::SocketError)), this, |
60 connect(&NetSocket, SIGNAL(error(QAbstractSocket::SocketError)), this, |
47 SLOT(displayError(QAbstractSocket::SocketError))); |
61 SLOT(displayError(QAbstractSocket::SocketError))); |
377 { |
391 { |
378 if (isChief && !setFlag) ToggleReady(); |
392 if (isChief && !setFlag) ToggleReady(); |
379 else emit setMyReadyStatus(setFlag); |
393 else emit setMyReadyStatus(setFlag); |
380 } |
394 } |
381 emit setReadyStatus(nick, setFlag); |
395 emit setReadyStatus(nick, setFlag); |
382 m_lobbyPlayersModel->setFlag(nick, PlayersListModel::Ready, setFlag); |
396 m_playersModel->setFlag(nick, PlayersListModel::Ready, setFlag); |
383 } |
397 } |
384 break; |
398 break; |
385 |
399 |
386 // flag indicating if a player is a registered user |
400 // flag indicating if a player is a registered user |
387 case 'u': |
401 case 'u': |
388 emit setRegisteredStatus(nicks, setFlag); |
402 emit setRegisteredStatus(nicks, setFlag); |
389 foreach(const QString & nick, nicks) |
403 foreach(const QString & nick, nicks) |
390 m_lobbyPlayersModel->setFlag(nick, PlayersListModel::Registered, setFlag); |
404 m_playersModel->setFlag(nick, PlayersListModel::Registered, setFlag); |
391 break; |
405 break; |
392 |
406 |
393 // flag indicating if a player is the host/master of the room |
407 // flag indicating if a player is the host/master of the room |
394 case 'h': |
408 case 'h': |
395 foreach (const QString & nick, nicks) |
409 foreach (const QString & nick, nicks) |
399 isChief = setFlag; |
413 isChief = setFlag; |
400 emit roomMaster(isChief); |
414 emit roomMaster(isChief); |
401 } |
415 } |
402 |
416 |
403 emit setRoomMasterStatus(nick, setFlag); |
417 emit setRoomMasterStatus(nick, setFlag); |
404 m_lobbyPlayersModel->setFlag(nick, PlayersListModel::RoomAdmin, setFlag); |
418 m_playersModel->setFlag(nick, PlayersListModel::RoomAdmin, setFlag); |
405 } |
419 } |
406 break; |
420 break; |
407 |
421 |
408 // flag indicating if a player is admin (if so -> worship them!) |
422 // flag indicating if a player is admin (if so -> worship them!) |
409 case 'a': |
423 case 'a': |
411 { |
425 { |
412 if (nick == mynick) |
426 if (nick == mynick) |
413 emit adminAccess(setFlag); |
427 emit adminAccess(setFlag); |
414 |
428 |
415 emit setAdminStatus(nick, setFlag); |
429 emit setAdminStatus(nick, setFlag); |
416 m_lobbyPlayersModel->setFlag(nick, PlayersListModel::ServerAdmin, setFlag); |
430 m_playersModel->setFlag(nick, PlayersListModel::ServerAdmin, setFlag); |
417 } |
431 } |
418 break; |
432 break; |
419 |
433 |
420 default: |
434 default: |
421 qWarning() << "Net: Unknown client-flag: " << c; |
435 qWarning() << "Net: Unknown client-flag: " << c; |
450 emit connected(); |
464 emit connected(); |
451 } |
465 } |
452 |
466 |
453 emit nickAddedLobby(lst[i], false); |
467 emit nickAddedLobby(lst[i], false); |
454 emit chatStringLobby(lst[i], tr("%1 *** %2 has joined").arg('\x03').arg("|nick|")); |
468 emit chatStringLobby(lst[i], tr("%1 *** %2 has joined").arg('\x03').arg("|nick|")); |
455 m_lobbyPlayersModel->addPlayer(lst[i]); |
469 m_playersModel->addPlayer(lst[i]); |
456 } |
470 } |
457 return; |
471 return; |
458 } |
472 } |
459 |
473 |
460 if(lst[0] == "ROOM" && lst.size() == 10 && lst[1] == "ADD") |
474 if(lst[0] == "ROOM" && lst.size() == 10 && lst[1] == "ADD") |
500 if (lst.size() < 3) |
514 if (lst.size() < 3) |
501 emit chatStringLobby(tr("%1 *** %2 has left").arg('\x03').arg(lst[1])); |
515 emit chatStringLobby(tr("%1 *** %2 has left").arg('\x03').arg(lst[1])); |
502 else |
516 else |
503 emit chatStringLobby(lst[1], tr("%1 *** %2 has left (%3)").arg('\x03').arg("|nick|", lst[2])); |
517 emit chatStringLobby(lst[1], tr("%1 *** %2 has left (%3)").arg('\x03').arg("|nick|", lst[2])); |
504 |
518 |
505 m_lobbyPlayersModel->removePlayer(lst[1]); |
519 m_playersModel->removePlayer(lst[1]); |
506 |
520 |
507 return; |
521 return; |
508 } |
522 } |
509 |
523 |
510 if (lst[0] == "ASKPASSWORD") |
524 if (lst[0] == "ASKPASSWORD") |
931 RoomsListModel * HWNewNet::roomsListModel() |
945 RoomsListModel * HWNewNet::roomsListModel() |
932 { |
946 { |
933 return m_roomsListModel; |
947 return m_roomsListModel; |
934 } |
948 } |
935 |
949 |
936 PlayersListModel * HWNewNet::lobbyPlayersModel() |
950 QAbstractItemModel *HWNewNet::lobbyPlayersModel() |
937 { |
951 { |
938 return m_lobbyPlayersModel; |
952 return m_lobbyPlayersModel; |
939 } |
953 } |
940 |
954 |
941 PlayersListModel * HWNewNet::roomPlayersModel() |
955 QAbstractItemModel *HWNewNet::roomPlayersModel() |
942 { |
956 { |
943 return m_roomPlayersModel; |
957 return m_roomPlayersModel; |
944 } |
958 } |