From e8cbac12cc86231a5303826ee817f7f1c72e0f24 Mon Sep 17 00:00:00 2001 From: doitux Date: Wed, 23 May 2007 07:16:28 +0000 Subject: [PATCH] check for maxnumberofplayers to start network game doubleclick on join list item will directly connect --- src/gui/qt/joinnetworkgamedialog.ui | 16 ++++++++++++++++ src/gui/qt/mainwindow/mainwindowimpl.cpp | 1 + .../startnetworkgamedialogimpl.cpp | 11 +++++++++++ .../startnetworkgamedialogimpl.h | 11 ++++++++++- 4 files changed, 38 insertions(+), 1 deletion(-) diff --git a/src/gui/qt/joinnetworkgamedialog.ui b/src/gui/qt/joinnetworkgamedialog.ui index 8d38b7b1..eb2d2b63 100644 --- a/src/gui/qt/joinnetworkgamedialog.ui +++ b/src/gui/qt/joinnetworkgamedialog.ui @@ -287,5 +287,21 @@ + + treeWidget + itemDoubleClicked(QTreeWidgetItem*,int) + pushButton_connect + click() + + + 113 + 206 + + + 394 + 427 + + + diff --git a/src/gui/qt/mainwindow/mainwindowimpl.cpp b/src/gui/qt/mainwindow/mainwindowimpl.cpp index 8f5123e0..4c1f770a 100755 --- a/src/gui/qt/mainwindow/mainwindowimpl.cpp +++ b/src/gui/qt/mainwindow/mainwindowimpl.cpp @@ -703,6 +703,7 @@ void mainWindowImpl::callCreateNetworkGameDialog() { myServerGuiInterface->getSession().startNetworkServer(gameData); mySession->startNetworkClientForLocalServer(); + myStartNetworkGameDialog->setMaxPlayerNumber(gameData.numberOfPlayers); myStartNetworkGameDialog->exec(); diff --git a/src/gui/qt/startnetworkgamedialog/startnetworkgamedialogimpl.cpp b/src/gui/qt/startnetworkgamedialog/startnetworkgamedialogimpl.cpp index 37d0d1bc..e81b861f 100644 --- a/src/gui/qt/startnetworkgamedialog/startnetworkgamedialogimpl.cpp +++ b/src/gui/qt/startnetworkgamedialog/startnetworkgamedialogimpl.cpp @@ -45,6 +45,8 @@ void startNetworkGameDialogImpl::addConnectedPlayer(QString playerName) { QTreeWidgetItem *item = new QTreeWidgetItem(treeWidget,0); item->setData(0, 0, playerName); + + checkPlayerQuantity(); } void startNetworkGameDialogImpl::removePlayer(QString playerName) { @@ -53,6 +55,15 @@ void startNetworkGameDialogImpl::removePlayer(QString playerName) { if(!list.empty()) { treeWidget->takeTopLevelItem(treeWidget->indexOfTopLevelItem(list[0])); } + + checkPlayerQuantity(); +} + +void startNetworkGameDialogImpl::checkPlayerQuantity() { + + if(treeWidget->topLevelItemCount() == maxPlayerNumber) pushButton_startGame->setEnabled(TRUE); + else pushButton_startGame->setDisabled(TRUE); + } void startNetworkGameDialogImpl::keyPressEvent ( QKeyEvent * event ) { diff --git a/src/gui/qt/startnetworkgamedialog/startnetworkgamedialogimpl.h b/src/gui/qt/startnetworkgamedialog/startnetworkgamedialogimpl.h index 1290b6b4..e87f00ab 100644 --- a/src/gui/qt/startnetworkgamedialog/startnetworkgamedialogimpl.h +++ b/src/gui/qt/startnetworkgamedialog/startnetworkgamedialogimpl.h @@ -39,8 +39,17 @@ public slots: void cancel(); void addConnectedPlayer(QString playerName); void removePlayer(QString playerName); - + void checkPlayerQuantity(); + void keyPressEvent ( QKeyEvent*); + + void setMaxPlayerNumber ( int theValue ) { maxPlayerNumber = theValue; label_maxPlayerNumber->setText(QString::number(theValue,10)); } + int getMaxPlayerNumber() const { return maxPlayerNumber; } + + +private: + + int maxPlayerNumber; }; #endif