@ -67,18 +67,60 @@ void MultiplayerState::Close() {
void MultiplayerState : : OnNetworkStateChanged ( const Network : : RoomMember : : State & state ) {
void MultiplayerState : : OnNetworkStateChanged ( const Network : : RoomMember : : State & state ) {
NGLOG_DEBUG ( Frontend , " Network state change " ) ;
NGLOG_DEBUG ( Frontend , " Network state change " ) ;
if ( state = = Network : : RoomMember : : State : : Joined ) {
bool is_connected = false ;
switch ( state ) {
case Network : : RoomMember : : State : : Idle :
NGLOG_DEBUG ( Network , " State: Idle " ) ;
break ;
case Network : : RoomMember : : State : : Joining :
NGLOG_DEBUG ( Network , " State: Joining " ) ;
break ;
case Network : : RoomMember : : State : : LostConnection :
NetworkMessage : : ShowError ( NetworkMessage : : LOST_CONNECTION ) ;
NGLOG_DEBUG ( Network , " State: LostConnection " ) ;
break ;
case Network : : RoomMember : : State : : CouldNotConnect :
NetworkMessage : : ShowError ( NetworkMessage : : UNABLE_TO_CONNECT ) ;
NGLOG_DEBUG ( Network , " State: CouldNotConnect " ) ;
break ;
case Network : : RoomMember : : State : : NameCollision :
NetworkMessage : : ShowError ( NetworkMessage : : USERNAME_IN_USE ) ;
NGLOG_DEBUG ( Network , " State: NameCollision " ) ;
break ;
case Network : : RoomMember : : State : : MacCollision :
NetworkMessage : : ShowError ( NetworkMessage : : MAC_COLLISION ) ;
NGLOG_DEBUG ( Network , " State: MacCollision " ) ;
break ;
case Network : : RoomMember : : State : : WrongPassword :
NetworkMessage : : ShowError ( NetworkMessage : : WRONG_PASSWORD ) ;
NGLOG_DEBUG ( Network , " State: WrongPassword " ) ;
break ;
case Network : : RoomMember : : State : : WrongVersion :
NetworkMessage : : ShowError ( NetworkMessage : : WRONG_VERSION ) ;
NGLOG_DEBUG ( Network , " State: WrongVersion " ) ;
break ;
case Network : : RoomMember : : State : : Error :
NetworkMessage : : ShowError ( NetworkMessage : : UNABLE_TO_CONNECT ) ;
NGLOG_DEBUG ( Network , " State: GenericError " ) ;
break ;
case Network : : RoomMember : : State : : Joined :
NGLOG_DEBUG ( Network , " State: Joined " ) ;
is_connected = true ;
OnOpenNetworkRoom ( ) ;
break ;
}
if ( is_connected ) {
status_icon - > setPixmap ( QIcon : : fromTheme ( " connected " ) . pixmap ( 16 ) ) ;
status_icon - > setPixmap ( QIcon : : fromTheme ( " connected " ) . pixmap ( 16 ) ) ;
status_text - > setText ( tr ( " Connected " ) ) ;
status_text - > setText ( tr ( " Connected " ) ) ;
leave_room - > setEnabled ( true ) ;
leave_room - > setEnabled ( true ) ;
show_room - > setEnabled ( true ) ;
show_room - > setEnabled ( true ) ;
return ;
} else {
}
status_icon - > setPixmap ( QIcon : : fromTheme ( " disconnected " ) . pixmap ( 16 ) ) ;
status_icon - > setPixmap ( QIcon : : fromTheme ( " disconnected " ) . pixmap ( 16 ) ) ;
status_text - > setText ( tr ( " Not Connected " ) ) ;
status_text - > setText ( tr ( " Not Connected " ) ) ;
leave_room - > setEnabled ( false ) ;
leave_room - > setEnabled ( false ) ;
show_room - > setEnabled ( false ) ;
show_room - > setEnabled ( false ) ;
}
}
}
void MultiplayerState : : OnAnnounceFailed ( const Common : : WebResult & result ) {
void MultiplayerState : : OnAnnounceFailed ( const Common : : WebResult & result ) {
announce_multiplayer_session - > Stop ( ) ;
announce_multiplayer_session - > Stop ( ) ;