diff -r e7673b036db5 -r 373353eaa742 QTfrontend/netwwwwidget.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/QTfrontend/netwwwwidget.cpp Sat Dec 01 12:38:15 2007 +0000 @@ -0,0 +1,68 @@ +/* + * Hedgewars, a worms-like game + * Copyright (c) 2007 Andrey Korotaev + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +#include +#include +#include + +#include "netwwwwidget.h" +#include "hwconsts.h" + +HWNetWwwWidget::HWNetWwwWidget(QWidget* parent) : + QWidget(parent), mainLayout(this) +{ + serversList = new QListWidget(this); + mainLayout.setMargin(0); + mainLayout.addWidget(serversList); + + http = new QHttp(this); + http->setHost("www.hedgewars.org", 80); + connect(http, SIGNAL(requestFinished(int, bool)), this, SLOT(onClientRead(int, bool))); + updateList(); +} +// http://hedgewars.org/games/create +// http://www.hedgewars.org/games/update_game?id=1&key=pufidzuk +// http://www.hedgewars.org/games/destroy_game?id=5&key=wrdeough +void HWNetWwwWidget::updateList() +{ + http->abort(); +// example for adding game to server list +/* QString request = QString("game[title]=%1&game[port]=%2&game[password]=%3&game[protocol_version]=%4") + .arg("hedgewarsserver") + .arg(46631) + .arg(false ? "true" : "false") + .arg(*cProtoVer); + http->post("/games/create", request.toUtf8()); +*/ +// query game list + QString request = QString("protocol_version=%1") + .arg(*cProtoVer); + http->post("/games/list_games", request.toUtf8()); + + serversList->clear(); +} + +void HWNetWwwWidget::onClientRead(int id, bool error) +{ + if (error) + { + QMessageBox::critical(this, tr("Error"), http->errorString()); + return; + } + serversList->addItem(http->readAll()); +}