+
+void MainWindow::connectToServer()
+{
+ // TODO: we asume the socket is not already connected
+ // TODO: we should add code to do nothing if the connection is ok, or close and open a new one if the server or port changed
+ QSettings settings;
+
+ serverSocket.connectToHost(settings.value(SETUP_XBMC_SERVER, SETUP_XBMC_SERVER_DEFAULT).toString(),
+ settings.value(SETUP_XBMC_PORT, SETUP_XBMC_PORT_DEFAULT).toInt());
+}
+
+void MainWindow::disconnectFromServer()
+{
+ serverSocket.disconnectFromHost();
+}
+
+void MainWindow::serverConnected()
+{
+ ui->testButton->setEnabled(true);
+ ui->actionConnect->setChecked(true);
+}
+
+void MainWindow::serverDisconnected()
+{
+ ui->testButton->setEnabled(false);
+ ui->actionConnect->setChecked(false);
+}
+
+void MainWindow::serverDataAvailable()
+{
+ QTextStream stream(&serverSocket);
+ ui->textEdit->setText(stream.readAll());
+}
+
+void MainWindow::serverError()
+{
+ ui->textEdit->setText(serverSocket.errorString());
+ ui->actionConnect->setChecked(serverSocket.state() == QTcpSocket::ConnectedState);
+ // clean the error window after 2 secs
+ QTimer::singleShot(2000, this, SLOT(cleanError()));
+}
+
+void MainWindow::cleanError()
+{
+ ui->textEdit->clear();
+}
+
+void MainWindow::on_testButton_clicked()
+{
+ QTextStream stream(&serverSocket);
+ stream << JsonEngine().playerGetActivePlayers();
+}
+
+void MainWindow::on_actionConnect_triggered(bool checked)
+{
+ qDebug("menu state: %d", checked);
+ if (checked) {
+ connectToServer();
+ } else {
+ disconnectFromServer();
+ }
+}