Proper detection whether SCTP is available. Do not update player names on configuration change if network client is running.

This commit is contained in:
lotodore
2007-06-04 16:19:11 +00:00
parent ffbe8ac924
commit b9ccba6ed4
8 changed files with 37 additions and 15 deletions
@@ -21,6 +21,7 @@
#include "session.h"
#include "configfile.h"
#include "tinyxml.h"
#include <net/socket_startup.h>
using namespace std;
@@ -90,6 +91,8 @@ void joinNetworkGameDialogImpl::exec() {
fillServerProfileList();
}
checkBox_sctp->setEnabled(socket_has_sctp());
QDialog::exec();
}
+1 -5
View File
@@ -511,10 +511,6 @@ mainWindowImpl::mainWindowImpl(ConfigFile *c, QMainWindow *parent)
myWaitingForServerGameDialog = new waitForServerToStartGameDialogImpl(this);
myAboutPokerthDialog = new aboutPokerthImpl(this);
//dialog settings
// mySettingsDialog->checkBox_useSctp->setEnabled(mySession->hasSctp());
// myJoinNetworkGameDialog->checkBox_sctp->setEnabled(mySession->hasSctp());
// //ShortCuts
// QShortcut *quitPokerTHKeys = new QShortcut(QKeySequence(Qt::Key_Control + Qt::Key_Q), this);
// connect( quitPokerTHKeys, SIGNAL(activated() ), actionQuit, SLOT( trigger() ) );
@@ -798,7 +794,7 @@ void mainWindowImpl::callSettingsDialog() {
else { groupBox_RightToolBox->hide(); }
//Falls Spielernamen geändert wurden --> neu zeichnen --> erst beim nächsten Neustart neu ausgelesen
if (mySettingsDialog->getPlayerNickIsChanged() && mySession->getCurrentGame()) {
if (mySettingsDialog->getPlayerNickIsChanged() && mySession->getCurrentGame() && !mySession->isNetworkClientRunning()) {
HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand();
currentHand->getPlayerArray()[0]->setMyName(mySettingsDialog->lineEdit_HumanPlayerName->text().toUtf8().constData());
@@ -21,6 +21,7 @@
#include "myavatarlistitem.h"
#include "configfile.h"
#include <net/socket_startup.h>
#include <iostream>
@@ -135,7 +136,8 @@ void settingsDialogImpl::exec() {
lineEdit_logDir->setText(QString::fromUtf8(myConfig->readConfigString("LogDir").c_str()));
spinBox_logStoreDuration->setValue(myConfig->readConfigInt("LogStoreDuration"));
comboBox_logInterval->setCurrentIndex(myConfig->readConfigInt("LogInterval"));
checkBox_useSctp->setEnabled(socket_has_sctp());
QDialog::exec();
+19
View File
@@ -22,6 +22,10 @@
#include <net/socket_startup.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
bool
socket_startup()
{
@@ -33,3 +37,18 @@ socket_cleanup()
{
}
bool
socket_has_sctp()
{
#ifdef IPPROTO_SCTP
int test = socket(AF_INET, SOCK_STREAM, IPPROTO_SCTP);
if (test == -1)
return false;
close(test);
return true;
#else
return false;
#endif
}
+3 -1
View File
@@ -16,12 +16,14 @@
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
/* Socket startup/cleanup functions (required for Win32). */
/* Socket startup/cleanup/detection functions. */
#ifndef _SOCKET_STARTUP_H_
#define _SOCKET_STARTUP_H_
bool socket_startup();
void socket_cleanup();
bool socket_has_sctp();
#endif
+6
View File
@@ -66,3 +66,9 @@ socket_cleanup()
WSACleanup();
}
bool
socket_has_sctp()
{
return false; /* no SCTP on Windows */
}
+2 -1
View File
@@ -34,7 +34,7 @@
using namespace std;
Session::Session(GuiInterface *g, ConfigFile *c)
: currentGameID(0), myNetClient(0), myNetServer(0), myGui(g), myConfig(c), thisHasSctp(0)
: currentGameID(0), myNetClient(0), myNetServer(0), myGui(g), myConfig(c)
{
}
@@ -210,3 +210,4 @@ bool Session::isNetworkClientRunning() const
// TODO
return myNetClient != NULL;
}
-7
View File
@@ -63,10 +63,6 @@ public:
bool isNetworkClientRunning() const; // TODO hack
void setHasSctp ( bool theValue ) { thisHasSctp = theValue; }
bool hasSctp() const { return thisHasSctp; }
private:
int currentGameID;
@@ -77,9 +73,6 @@ private:
boost::shared_ptr<Game> currentGame;
GuiInterface *myGui;
ConfigFile *myConfig;
bool thisHasSctp;
};