import QtQuick 2.0
import Hedgewars.Engine 1.0
Rectangle {
ListView {
id: roomsList
x: 20
y: 0
width: parent.width
height: parent.height - x
focus: true
clip: true
model: ListModel {
id: roomsListModel
}
delegate: Rectangle {
id: roomDelegate
height: 24
width: parent.width
color: "transparent"
Row {
spacing: 8;
Text {
text: name
}
Text {
text: players + " / " + teams
}
Text {
text: host
}
Text {
text: map
}
Text {
text: script
}
Text {
text: scheme
}
Text {
text: weapons
}
}
MouseArea {
z: 1
anchors.fill: parent
onDoubleClicked: HWEngine.joinRoom(name);
}
}
Connections {
target: HWEngine
onRoomAdded: roomsListModel.append({
"name" : name
, "players": players
, "teams": teams
, "host": host
, "map": map
, "script": script
, "scheme": scheme
, "weapons": weapons
})
onRoomUpdated: {
var i = roomsListModel.count - 1;
while ((i >= 0) && (roomsListModel.get(i).name !== name)) --i
if(i >= 0) {
roomsListModel.set(i, {
"name" : newName
, "players": players
, "teams": teams
, "host": host
, "map": map
, "script": script
, "scheme": scheme
, "weapons": weapons
})
}
}
onRoomRemoved: {
var i = roomsListModel.count - 1;
while ((i >= 0) && (roomsListModel.get(i).name !== name)) --i
if(i >= 0) roomsListModel.remove(i, 1)
}
}
}
Chat {
id: lobbyChat;
x: 0;
y: 300;
width: parent.width;
height: parent.height - y;
Connections {
target: HWEngine
onNetConnected: lobbyChat.clear()
onLobbyChatLine: lobbyChat.addChatLine(nickname, line)
onLobbyClientAdded: lobbyChat.addClient(clientName)
onLobbyClientRemoved: lobbyChat.removeClient(clientName, reason)
}
}
}