From b34dcdc5977870a484fb31ced3642bb138d69634 Mon Sep 17 00:00:00 2001 From: doitux Date: Tue, 13 Jul 2010 19:13:38 +0000 Subject: [PATCH] fix Qt Database error message when close the app --- src/engine/local_engine/replay.cpp | 10 +- src/gui/generic/serverguiwrapper.h | 1 + src/gui/guiinterface.h | 4 +- src/gui/qt/gametable/log/log.cpp | 3380 ++++++++++---------- src/gui/qt/gametable/log/log.h | 2 + src/gui/qt/guiwrapper.h | 3 +- src/gui/qt/startwindow/startwindowimpl.cpp | 16 + src/gui/qt/startwindow/startwindowimpl.h | 1 + 8 files changed, 1724 insertions(+), 1693 deletions(-) diff --git a/src/engine/local_engine/replay.cpp b/src/engine/local_engine/replay.cpp index d7cf42a7..c7b25563 100644 --- a/src/engine/local_engine/replay.cpp +++ b/src/engine/local_engine/replay.cpp @@ -22,9 +22,9 @@ Replay::Replay() : replaySqliteLogDb(0) { - replaySqliteLogDb = new QSqlDatabase(); - - *replaySqliteLogDb = QSqlDatabase::addDatabase("QSQLITE"); +// replaySqliteLogDb = new QSqlDatabase(); +// +// *replaySqliteLogDb = QSqlDatabase::addDatabase("QSQLITE"); //replaySqliteLogDb->setDatabaseName(myLogDir->absolutePath()+"/pokerth-log-"+currentTime.toString("yyyy-MM-dd_hh.mm.ss")+".pdb"); //if(!mySqliteLogDb->open()) { // QMessageBox::critical(0, tr("ERROR"),mySqliteLogDb->lastError().text().toUtf8().data(), QMessageBox::Cancel); @@ -35,7 +35,7 @@ Replay::Replay() : replaySqliteLogDb(0) Replay::~Replay() { - replaySqliteLogDb->close(); - delete replaySqliteLogDb; +// replaySqliteLogDb->close(); +// delete replaySqliteLogDb; } diff --git a/src/gui/generic/serverguiwrapper.h b/src/gui/generic/serverguiwrapper.h index 916290b2..d2e0e352 100644 --- a/src/gui/generic/serverguiwrapper.h +++ b/src/gui/generic/serverguiwrapper.h @@ -37,6 +37,7 @@ public: void setSession(boost::shared_ptr session); gameTableImpl* getMyW() const {return NULL;} + Log* getMyLog() const {return NULL;} void refreshSet() const; void refreshCash() const; diff --git a/src/gui/guiinterface.h b/src/gui/guiinterface.h index 87b59085..1b8da26e 100644 --- a/src/gui/guiinterface.h +++ b/src/gui/guiinterface.h @@ -27,7 +27,7 @@ #include #include - +class Log; class Session; class gameTableImpl; @@ -41,6 +41,8 @@ public: virtual void setSession(boost::shared_ptr session) =0; virtual gameTableImpl *getMyW() const=0; + virtual Log* getMyLog() const=0; + //refresh-Funktionen virtual void refreshSet() const=0; diff --git a/src/gui/qt/gametable/log/log.cpp b/src/gui/qt/gametable/log/log.cpp index fcf8d05f..c505dfc6 100755 --- a/src/gui/qt/gametable/log/log.cpp +++ b/src/gui/qt/gametable/log/log.cpp @@ -30,1860 +30,1868 @@ using namespace std; Log::Log(gameTableImpl* w, ConfigFile *c) : myW(w), myConfig(c), myLogDir(0), myHtmlLogFile(0), mySqliteLogDb(0) { - myW->setLog(this); - myStyle = myW->getMyGameTableStyle(); - - myAppDataPath = QString::fromUtf8(myConfig->readConfigString("AppDataDir").c_str()); - - connect(this, SIGNAL(signalLogPlayerActionMsg(QString, int, int, int)), this, SLOT(logPlayerActionMsg(QString, int, int, int))); - connect(this, SIGNAL(signalLogNewGameHandMsg(int, int)), this, SLOT(logNewGameHandMsg(int, int))); - connect(this, SIGNAL(signalLogNewBlindsSetsMsg(int, int, QString, QString)), this, SLOT(logNewBlindsSetsMsg(int, int, QString, QString))); - connect(this, SIGNAL(signalLogPlayerWinsMsg(QString, int, bool)), this, SLOT(logPlayerWinsMsg(QString, int, bool))); - connect(this, SIGNAL(signalLogPlayerSitsOut(QString)), this, SLOT(logPlayerSitsOut(QString))); - connect(this, SIGNAL(signalLogDealBoardCardsMsg(int, int, int, int, int, int)), this, SLOT(logDealBoardCardsMsg(int, int, int, int, int, int))); - connect(this, SIGNAL(signalLogFlipHoleCardsMsg(QString, int, int, int, int, QString)), this, SLOT(logFlipHoleCardsMsg(QString, int, int, int, int, QString))); - connect(this, SIGNAL(signalLogPlayerLeftMsg(QString, int)), this, SLOT(logPlayerLeftMsg(QString, int))); - connect(this, SIGNAL(signalLogNewGameAdminMsg(QString)), this, SLOT(logNewGameAdminMsg(QString))); - connect(this, SIGNAL(signalLogPlayerWinGame(QString, int)), this, SLOT(logPlayerWinGame(QString, int))); - connect(this, SIGNAL(signalFlushLogAtGame(int)), this, SLOT(flushLogAtGame(int))); - connect(this, SIGNAL(signalFlushLogAtHand()), this, SLOT(flushLogAtHand())); + myW->setLog(this); + myStyle = myW->getMyGameTableStyle(); + + myAppDataPath = QString::fromUtf8(myConfig->readConfigString("AppDataDir").c_str()); + + connect(this, SIGNAL(signalLogPlayerActionMsg(QString, int, int, int)), this, SLOT(logPlayerActionMsg(QString, int, int, int))); + connect(this, SIGNAL(signalLogNewGameHandMsg(int, int)), this, SLOT(logNewGameHandMsg(int, int))); + connect(this, SIGNAL(signalLogNewBlindsSetsMsg(int, int, QString, QString)), this, SLOT(logNewBlindsSetsMsg(int, int, QString, QString))); + connect(this, SIGNAL(signalLogPlayerWinsMsg(QString, int, bool)), this, SLOT(logPlayerWinsMsg(QString, int, bool))); + connect(this, SIGNAL(signalLogPlayerSitsOut(QString)), this, SLOT(logPlayerSitsOut(QString))); + connect(this, SIGNAL(signalLogDealBoardCardsMsg(int, int, int, int, int, int)), this, SLOT(logDealBoardCardsMsg(int, int, int, int, int, int))); + connect(this, SIGNAL(signalLogFlipHoleCardsMsg(QString, int, int, int, int, QString)), this, SLOT(logFlipHoleCardsMsg(QString, int, int, int, int, QString))); + connect(this, SIGNAL(signalLogPlayerLeftMsg(QString, int)), this, SLOT(logPlayerLeftMsg(QString, int))); + connect(this, SIGNAL(signalLogNewGameAdminMsg(QString)), this, SLOT(logNewGameAdminMsg(QString))); + connect(this, SIGNAL(signalLogPlayerWinGame(QString, int)), this, SLOT(logPlayerWinGame(QString, int))); + connect(this, SIGNAL(signalFlushLogAtGame(int)), this, SLOT(flushLogAtGame(int))); + connect(this, SIGNAL(signalFlushLogAtHand()), this, SLOT(flushLogAtHand())); - logFileStreamString = ""; - lastGameID = 0; + logFileStreamString = ""; + lastGameID = 0; - if(myConfig->readConfigInt("LogOnOff")) { + if(myConfig->readConfigInt("LogOnOff")) { //if write logfiles is enabled - QDir logDir(QString::fromUtf8(myConfig->readConfigString("LogDir").c_str())); - if(myConfig->readConfigString("LogDir") != "" && logDir.exists()) { + QDir logDir(QString::fromUtf8(myConfig->readConfigString("LogDir").c_str())); + if(myConfig->readConfigString("LogDir") != "" && logDir.exists()) { - myLogDir = new QDir(QString::fromUtf8(myConfig->readConfigString("LogDir").c_str())); - QDateTime currentTime = QDateTime::currentDateTime(); - myHtmlLogFile = new QFile(myLogDir->absolutePath()+"/pokerth-log-"+currentTime.toString("yyyy-MM-dd_hh.mm.ss")+".html"); - mySqliteLogDb = new QSqlDatabase; - - //Logo-Pixmap extrahieren - QPixmap logoChipPixmapFile(":/gfx/logoChip3D.png"); - logoChipPixmapFile.save(myLogDir->absolutePath()+"/logo.png"); - - // myW->textBrowser_Log->append(myHtmlLogFile->fileName()); - - // erstelle html-Datei - myHtmlLogFile->open( QIODevice::WriteOnly ); - QTextStream stream( myHtmlLogFile ); - stream << "\n"; - stream << "\n"; - stream << ""; - stream << "\n"; - stream << "\n"; - stream << "\n"; - stream << QString("

Log-File for PokerTH %1 Session started on ").arg(POKERTH_BETA_RELEASE_STRING)+QDate::currentDate().toString("yyyy-MM-dd")+" at "+QTime::currentTime().toString("hh:mm:ss")+"

\n"; - myHtmlLogFile->close(); + myLogDir = new QDir(QString::fromUtf8(myConfig->readConfigString("LogDir").c_str())); + QDateTime currentTime = QDateTime::currentDateTime(); + myHtmlLogFile = new QFile(myLogDir->absolutePath()+"/pokerth-log-"+currentTime.toString("yyyy-MM-dd_hh.mm.ss")+".html"); + mySqliteLogDb = new QSqlDatabase; - int i; - // lege sqlite-Datenbank - *mySqliteLogDb = QSqlDatabase::addDatabase("QSQLITE"); - mySqliteLogDb->setDatabaseName(myLogDir->absolutePath()+"/pokerth-log-"+currentTime.toString("yyyy-MM-dd_hh.mm.ss")+".pdb"); - if(mySqliteLogDb->open()) { + //Logo-Pixmap extrahieren + QPixmap logoChipPixmapFile(":/gfx/logoChip3D.png"); + logoChipPixmapFile.save(myLogDir->absolutePath()+"/logo.png"); - QSqlQuery query(*mySqliteLogDb); - QString sql; + // myW->textBrowser_Log->append(myHtmlLogFile->fileName()); - // Session-Tabelle - sql = "CREATE TABLE Session ("; - sql += "Version TEXT,"; - sql += "Date TEXT,"; - sql += "Time TEXT,"; - sql += "PRIMARY KEY(Date,Time))"; - if(!query.exec(sql)) { - QMessageBox::critical(0, tr("ERROR"),query.lastError().text().toUtf8().data(), QMessageBox::Cancel); - } - sql = "INSERT INTO Session (Version,Date,Time) VALUES ("; - sql += "'"+QString("%1").arg(POKERTH_BETA_RELEASE_STRING)+"',"; - sql += "'"+currentTime.toString("yyyy-MM-dd")+"',"; - sql += "'"+currentTime.toString("hh:mm:ss")+"')"; - if(!query.exec(sql)) { - QMessageBox::critical(0, tr("ERROR"),query.lastError().text().toUtf8().data(), QMessageBox::Cancel); - } + // erstelle html-Datei + myHtmlLogFile->open( QIODevice::WriteOnly ); + QTextStream stream( myHtmlLogFile ); + stream << "\n"; + stream << "\n"; + stream << ""; + stream << "\n"; + stream << "\n"; + stream << "\n"; + stream << QString("

Log-File for PokerTH %1 Session started on ").arg(POKERTH_BETA_RELEASE_STRING)+QDate::currentDate().toString("yyyy-MM-dd")+" at "+QTime::currentTime().toString("hh:mm:ss")+"

\n"; + myHtmlLogFile->close(); - // Game-Tabelle - sql = "CREATE TABLE Game ("; - sql += "GameID INTEGER NOT NULL PRIMARY KEY,"; - sql += "Startmoney INTEGER NOT NULL,"; - sql += "StartSb INTEGER NOT NULL,"; - sql += "DealerPos INTEGER NOT NULL"; - for(i=1; i<=MAX_NUMBER_OF_PLAYERS; i++) { - sql += ",Seat_" + QString("%1").arg(i); - } - sql += ")"; - if(!query.exec(sql)) { - QMessageBox::critical(0, tr("ERROR"),query.lastError().text().toUtf8().data(), QMessageBox::Cancel); - } + int i; + // lege sqlite-Datenbank + *mySqliteLogDb = QSqlDatabase::addDatabase("QSQLITE"); + mySqliteLogDb->setDatabaseName(myLogDir->absolutePath()+"/pokerth-log-"+currentTime.toString("yyyy-MM-dd_hh.mm.ss")+".pdb"); + if(mySqliteLogDb->open()) { - // Hand-Tabelle - sql = "CREATE TABLE Hand ("; - sql += "HandID INTEGER NOT NULL,"; - sql += "GameID INTEGER NOT NULL,"; - for(i=1; i<=MAX_NUMBER_OF_PLAYERS; i++) { - sql += "Seat_" + QString("%1").arg(i) + "_Cash INTEGER,"; - sql += "Seat_" + QString("%1").arg(i) + "_Card_1 INTEGER,"; - sql += "Seat_" + QString("%1").arg(i) + "_Card_2 INTEGER,"; - } - for(i=1; i<=5; i++) { - sql += "BoardCard_" + QString("%1").arg(i) + " INTEGER,"; - } - sql += "PRIMARY KEY(HandID,GameID))"; - if(!query.exec(sql)) { - QMessageBox::critical(0, tr("ERROR"),query.lastError().text().toUtf8().data(), QMessageBox::Cancel); - } + QSqlQuery query(*mySqliteLogDb); + QString sql; - // Action-Tabelle - sql = "CREATE TABLE Action ("; - sql += "ActionID INTEGER PRIMARY KEY AUTOINCREMENT,"; - sql += "HandID INTEGER NOT NULL,"; - sql += "GameID INTEGER NOT NULL,"; - sql += "BeRo INTEGER NOT NULL,"; - sql += "Player INTEGER NOT NULL,"; - sql += "Action INTEGER NOT NULL,"; - sql += "Amount INTEGER)"; - if(!query.exec(sql)) { - QMessageBox::critical(0, tr("ERROR"),query.lastError().text().toUtf8().data(), QMessageBox::Cancel); - } + // Session-Tabelle + sql = "CREATE TABLE Session ("; + sql += "Version TEXT,"; + sql += "Date TEXT,"; + sql += "Time TEXT,"; + sql += "PRIMARY KEY(Date,Time))"; + if(!query.exec(sql)) { + QMessageBox::critical(0, tr("ERROR"),query.lastError().text().toUtf8().data(), QMessageBox::Cancel); + } + sql = "INSERT INTO Session (Version,Date,Time) VALUES ("; + sql += "'"+QString("%1").arg(POKERTH_BETA_RELEASE_STRING)+"',"; + sql += "'"+currentTime.toString("yyyy-MM-dd")+"',"; + sql += "'"+currentTime.toString("hh:mm:ss")+"')"; + if(!query.exec(sql)) { + QMessageBox::critical(0, tr("ERROR"),query.lastError().text().toUtf8().data(), QMessageBox::Cancel); + } - } else { + // Game-Tabelle + sql = "CREATE TABLE Game ("; + sql += "GameID INTEGER NOT NULL PRIMARY KEY,"; + sql += "Startmoney INTEGER NOT NULL,"; + sql += "StartSb INTEGER NOT NULL,"; + sql += "DealerPos INTEGER NOT NULL"; + for(i=1; i<=MAX_NUMBER_OF_PLAYERS; i++) { + sql += ",Seat_" + QString("%1").arg(i); + } + sql += ")"; + if(!query.exec(sql)) { + QMessageBox::critical(0, tr("ERROR"),query.lastError().text().toUtf8().data(), QMessageBox::Cancel); + } - QMessageBox::critical(0, tr("ERROR"),mySqliteLogDb->lastError().text().toUtf8().data(), QMessageBox::Cancel); + // Hand-Tabelle + sql = "CREATE TABLE Hand ("; + sql += "HandID INTEGER NOT NULL,"; + sql += "GameID INTEGER NOT NULL,"; + for(i=1; i<=MAX_NUMBER_OF_PLAYERS; i++) { + sql += "Seat_" + QString("%1").arg(i) + "_Cash INTEGER,"; + sql += "Seat_" + QString("%1").arg(i) + "_Card_1 INTEGER,"; + sql += "Seat_" + QString("%1").arg(i) + "_Card_2 INTEGER,"; + } + for(i=1; i<=5; i++) { + sql += "BoardCard_" + QString("%1").arg(i) + " INTEGER,"; + } + sql += "PRIMARY KEY(HandID,GameID))"; + if(!query.exec(sql)) { + QMessageBox::critical(0, tr("ERROR"),query.lastError().text().toUtf8().data(), QMessageBox::Cancel); + } - } - - //Zu alte Dateien löschen!!! - int daysUntilWaste = myConfig->readConfigInt("LogStoreDuration"); - - QStringList filters("pokerth-log*"); - QStringList logFileList = myLogDir->entryList(filters, QDir::Files); - - for(i=0; ilastError().text().toUtf8().data(), QMessageBox::Cancel); + + } + + //Zu alte Dateien löschen!!! + int daysUntilWaste = myConfig->readConfigInt("LogStoreDuration"); + + QStringList filters("pokerth-log*"); + QStringList logFileList = myLogDir->entryList(filters, QDir::Files); + + for(i=0; i daysUntilWaste) { - - // cout << QString::QString(myLogDir->absolutePath()+"/"+logFileList.at(i)).toStdString() << endl; - QFile fileToDelete(myLogDir->absolutePath()+"/"+logFileList.at(i)); - fileToDelete.remove(); - } + if (dateOfFile.daysTo(today) > daysUntilWaste) { + + // cout << QString::QString(myLogDir->absolutePath()+"/"+logFileList.at(i)).toStdString() << endl; + QFile fileToDelete(myLogDir->absolutePath()+"/"+logFileList.at(i)); + fileToDelete.remove(); + } - } - - } - else { cout << "Log directory doesn't exist. Cannot create log files"; } - } + } + + } + else { cout << "Log directory doesn't exist. Cannot create log files"; } + } } Log::~Log() { -qDebug() << "close log"; + cerr << "log destruktor"; + delete myConfig; + delete myLogDir; + delete myHtmlLogFile; + delete mySqliteLogDb; - // Datenbank schließe - mySqliteLogDb->close(); - - delete myConfig; - delete myLogDir; - delete myHtmlLogFile; - delete mySqliteLogDb; - - myConfig = 0; + myConfig = 0; } +bool Log::closeLogDb() +{ + // Datenbank schließen + mySqliteLogDb->close(); + *mySqliteLogDb = QSqlDatabase(); + if(mySqliteLogDb->isOpen()) + return FALSE; + else + return TRUE; +} + + void Log::logPlayerActionMsg(QString msg, int playerID, int action, int setValue) { - switch (action) { + switch (action) { - case 1: msg += " folds."; - break; - case 2: msg += " checks."; - break; - case 3: msg += " calls "; - break; - case 4: msg += " bets "; - break; - case 5: msg += " bets "; - break; - case 6: msg += " is all in with "; - break; - default: msg += "ERROR"; - } - - if (action >= 3) { msg += "$"+QString::number(setValue,10)+"."; } - - myW->textBrowser_Log->append("getChatLogTextColor()+";\">"+msg+""); + case 1: msg += " folds."; + break; + case 2: msg += " checks."; + break; + case 3: msg += " calls "; + break; + case 4: msg += " bets "; + break; + case 5: msg += " bets "; + break; + case 6: msg += " is all in with "; + break; + default: msg += "ERROR"; + } - if(myConfig->readConfigInt("LogOnOff")) { + if (action >= 3) { msg += "$"+QString::number(setValue,10)+"."; } + + myW->textBrowser_Log->append("getChatLogTextColor()+";\">"+msg+""); + + if(myConfig->readConfigInt("LogOnOff")) { //if write logfiles is enabled - logFileStreamString += msg+"
\n"; - - if(myConfig->readConfigInt("LogInterval") == 0) { - writeLogFileStream(logFileStreamString); - logFileStreamString = ""; - } + logFileStreamString += msg+"
\n"; - if(mySqliteLogDb->isOpen()) { - - QSqlQuery query(*mySqliteLogDb); - QString sql; - - sql = "INSERT INTO Action (HandID,GameID,BeRo,Player,Action,Amount) VALUES ("; - sql += QString::number(myW->getSession()->getCurrentGame()->getCurrentHandID(),10); - sql += "," + QString::number(myW->getSession()->getCurrentGame()->getMyGameID(),10); - sql += "," + QString::number(myW->getSession()->getCurrentGame()->getCurrentHand()->getCurrentBeRo()->getMyBeRoID(),10); - sql += "," + QString::number(playerID,10); - sql += "," + QString::number(action,10); - sql += "," + QString::number(setValue,10); - sql += ")"; - - if(!query.exec(sql)) { - QMessageBox::critical(0, tr("ERROR"),query.lastError().text().toUtf8().data(), QMessageBox::Cancel); - } - - } - - } -} - -void Log::logNewGameHandMsg(int gameID, int handID) { - - PlayerListConstIterator it_c; - HandInterface *currentHand = myW->getSession()->getCurrentGame()->getCurrentHand(); - - myW->textBrowser_Log->append("getChatLogTextColor()+"; font-size:large; font-weight:bold\">## Game: "+QString::number(gameID,10)+" | Hand: "+QString::number(handID,10)+" ##"); - - if(myConfig->readConfigInt("LogOnOff")) { - //if write logfiles is enabled - - int i; - - logFileStreamString += "

Game: "+QString::number(gameID,10)+" | Hand: "+QString::number(handID,10)+"
"; - logFileStreamString += "BLIND LEVEL: $"+QString::number(currentHand->getSmallBlind())+" / $"+QString::number(currentHand->getSmallBlind()*2)+"
"; - - if(!mySqliteLogDb->open()) { - QMessageBox::critical(0, tr("ERROR"),mySqliteLogDb->lastError().text().toUtf8().data(), QMessageBox::Cancel); - } - - - if(mySqliteLogDb->isOpen()) { - - QSqlQuery query(*mySqliteLogDb); - QString sql; - - // bei Beginn eines Games - if(handID == 1) { - sql = "INSERT INTO Game (GameID,Startmoney,StartSb,DealerPos"; - for(i=1;i<=MAX_NUMBER_OF_PLAYERS; i++) { - sql += ",Seat_" + QString::number(i,10); - } - sql += ") VALUES ("; - sql += QString::number(gameID,10) + ","; - sql += QString::number(myW->getSession()->getCurrentGame()->getStartCash(),10) + ","; - sql += QString::number(myW->getSession()->getCurrentGame()->getStartSmallBlind(),10) + ","; - sql += QString::number(myW->getSession()->getCurrentGame()->getDealerPosition(),10); - for(it_c = currentHand->getSeatsList()->begin();it_c!=currentHand->getSeatsList()->end();it_c++) { - if((*it_c)->getMyActiveStatus()) { - sql += ",'" + QString::fromUtf8((*it_c)->getMyName().c_str()) +"'"; - } else { - sql += ",NULL"; - } - } - sql += ")"; - if(!query.exec(sql)) { - QMessageBox::critical(0, tr("ERROR"),query.lastError().text().toUtf8().data(), QMessageBox::Cancel); - } - } - - sql = "INSERT INTO Hand (HandID,GameID"; - for(i=1;i<=MAX_NUMBER_OF_PLAYERS; i++) { - sql += ",Seat_" + QString("%1").arg(i) + "_Cash"; - } - sql += ") VALUES ("; - sql += QString::number(handID,10); - sql += "," + QString::number(gameID,10); - for(it_c = currentHand->getSeatsList()->begin();it_c!=currentHand->getSeatsList()->end();it_c++) { - if((*it_c)->getMyActiveStatus()) { - sql += "," + QString::number((*it_c)->getMyCash()+(*it_c)->getMySet(),10); - } else { - sql += ",NULL"; - } - } - sql += ")"; - - if(!query.exec(sql)) { - QMessageBox::critical(0, tr("ERROR"),query.lastError().text().toUtf8().data(), QMessageBox::Cancel); - } - - } - - - //print cash only for active players - for(it_c=currentHand->getActivePlayerList()->begin(); it_c!=currentHand->getActivePlayerList()->end(); it_c++) { - - logFileStreamString += "Seat " + QString::number((*it_c)->getMyID()+1,10) + ": " + QString::fromUtf8((*it_c)->getMyName().c_str()) + " ($" + QString::number((*it_c)->getMyCash()+(*it_c)->getMySet(),10)+")
"; - - } - - - } - -} - -void Log::logNewBlindsSetsMsg(int sbSet, int bbSet, QString sbName, QString bbName) { - - // log blinds - logFileStreamString += "BLINDS: "; - - logFileStreamString += sbName+" ($"+QString::number(sbSet,10)+"), "; - logFileStreamString += bbName+" ($"+QString::number(bbSet,10)+")"; - - myW->textBrowser_Log->append("getChatLogTextColor()+";\">"+sbName+" posts small blind ($"+QString::number(sbSet,10)+")"); - myW->textBrowser_Log->append("getChatLogTextColor()+";\">"+bbName+" posts big blind ($"+QString::number(bbSet,10)+")"); - - PlayerListConstIterator it_c; - HandInterface *currentHand = myW->getSession()->getCurrentGame()->getCurrentHand(); - for(it_c=currentHand->getActivePlayerList()->begin(); it_c!=currentHand->getActivePlayerList()->end(); it_c++) { - if(currentHand->getActivePlayerList()->size() > 2) { - if((*it_c)->getMyButton() == BUTTON_DEALER) { - - logFileStreamString += "
" + QString::fromUtf8((*it_c)->getMyName().c_str()) + " starts as dealer."; - break; - } - } else { - if((*it_c)->getMyButton() == BUTTON_SMALL_BLIND) { - - logFileStreamString += "
" + QString::fromUtf8((*it_c)->getMyName().c_str()) + " starts as dealer."; - break; - } - } - } - - logFileStreamString += "

PREFLOP"; - logFileStreamString += "
\n"; -} - -void Log::logPlayerWinsMsg(QString playerName, int pot, bool main) { - - if(main) { - myW->textBrowser_Log->append("getLogWinnerMainPotColor()+";\">"+playerName+" wins $"+QString::number(pot,10)+""); - } else { - myW->textBrowser_Log->append("getLogWinnerSidePotColor()+";\">"+playerName+" wins $"+QString::number(pot,10)+" (side pot)"); - } - - if(myConfig->readConfigInt("LogOnOff")) { - //if write logfiles is enabled - - logFileStreamString += "
"+playerName+" wins $"+QString::number(pot,10); - if(!main) { - logFileStreamString += " (side pot)"; - } - logFileStreamString += "\n"; - - if(myConfig->readConfigInt("LogInterval") == 0) { - writeLogFileStream(logFileStreamString); - logFileStreamString = ""; - } - } -} - - -void Log::logPlayerSitsOut(QString playerName) { - - myW->textBrowser_Log->append("getLogPlayerSitsOutColor()+";\">"+playerName+" sits out"); - - if(myConfig->readConfigInt("LogOnOff")) { - - logFileStreamString += "
"+playerName+" sits out\n"; - - if(myConfig->readConfigInt("LogInterval") == 0) { - writeLogFileStream(logFileStreamString); - logFileStreamString = ""; - } - } -} - - -void Log::logDealBoardCardsMsg(int roundID, int card1, int card2, int card3, int card4, int card5) { - - QString round; - - switch (roundID) { - - case 1: round = "Flop"; - myW->textBrowser_Log->append("getLogPlayerSitsOutColor()+";\">--- "+round+" --- "+"["+translateCardCode(card1).at(0)+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+translateCardCode(card2).at(1)+","+translateCardCode(card3).at(0)+translateCardCode(card3).at(1)+"]"); - break; - case 2: round = "Turn"; - myW->textBrowser_Log->append("getLogPlayerSitsOutColor()+";\">--- "+round+" --- "+"["+translateCardCode(card1).at(0)+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+translateCardCode(card2).at(1)+","+translateCardCode(card3).at(0)+translateCardCode(card3).at(1)+","+translateCardCode(card4).at(0)+translateCardCode(card4).at(1)+"]"); - break; - case 3: round = "River"; - myW->textBrowser_Log->append("getLogPlayerSitsOutColor()+";\">--- "+round+" --- "+"["+translateCardCode(card1).at(0)+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+translateCardCode(card2).at(1)+","+translateCardCode(card3).at(0)+translateCardCode(card3).at(1)+","+translateCardCode(card4).at(0)+translateCardCode(card4).at(1)+","+translateCardCode(card5).at(0)+translateCardCode(card5).at(1)+"]"); - break; - default: round = "ERROR"; - } - - if(myConfig->readConfigInt("LogOnOff")) { - //if write logfiles is enabled - - QString sql; - sql = "UPDATE Hand SET "; - - switch (roundID) { - - case 1: round = "Flop"; - logFileStreamString += "
"+round.toUpper()+" [board cards "+translateCardCode(card1).at(0)+""+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+""+translateCardCode(card2).at(1)+","+translateCardCode(card3).at(0)+""+translateCardCode(card3).at(1)+"]"+"
\n"; - sql += "BoardCard_1 = " + QString::number(card1,10) + ","; - sql += "BoardCard_2 = " + QString::number(card2,10) + ","; - sql += "BoardCard_3 = " + QString::number(card3,10); - break; - case 2: round = "Turn"; - logFileStreamString += "
"+round.toUpper()+" [board cards "+translateCardCode(card1).at(0)+""+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+""+translateCardCode(card2).at(1)+","+translateCardCode(card3).at(0)+""+translateCardCode(card3).at(1)+","+translateCardCode(card4).at(0)+""+translateCardCode(card4).at(1)+"]"+"
\n"; - sql += "BoardCard_4 = " + QString::number(card4,10); - break; - case 3: round = "River"; - logFileStreamString += "
"+round.toUpper()+" [board cards "+translateCardCode(card1).at(0)+""+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+""+translateCardCode(card2).at(1)+","+translateCardCode(card3).at(0)+""+translateCardCode(card3).at(1)+","+translateCardCode(card4).at(0)+""+translateCardCode(card4).at(1)+","+translateCardCode(card5).at(0)+""+translateCardCode(card5).at(1)+"]"+"
\n"; - sql += "BoardCard_5 = " + QString::number(card5,10); - break; - default: round = "ERROR"; - } - if(myConfig->readConfigInt("LogInterval") == 0) { - writeLogFileStream(logFileStreamString); - logFileStreamString = ""; - } - - sql += " WHERE "; - sql += "HandID = " + QString::number(myW->getSession()->getCurrentGame()->getCurrentHandID(),10) + " AND "; - sql += "GameID = " + QString::number(myW->getSession()->getCurrentGame()->getMyGameID(),10); - - if(roundID <= 3) { - if(mySqliteLogDb->isOpen()) { - - QSqlQuery query(*mySqliteLogDb); - if(!query.exec(sql)) { - QMessageBox::critical(0, tr("ERROR"),query.lastError().text().toUtf8().data(), QMessageBox::Cancel); - } - - } - - } - - } -} - -void Log::logFlipHoleCardsMsg(QString playerName, int playerID, int card1, int card2, int cardsValueInt, QString showHas) { - - if (cardsValueInt != -1) { - - QString tempHandName = determineHandName(cardsValueInt); - - myW->textBrowser_Log->append("getChatLogTextColor()+";\">"+playerName+" "+showHas+" \""+tempHandName+"\""); - - if(myConfig->readConfigInt("LogOnOff")) { - //if write logfiles is enabled - - logFileStreamString += playerName+" "+showHas+" [ "+translateCardCode(card1).at(0)+""+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+""+translateCardCode(card2).at(1)+"] - "+tempHandName+"
\n"; - - if(myConfig->readConfigInt("LogInterval") == 0) { - writeLogFileStream(logFileStreamString); - logFileStreamString = ""; - } - - } - } - else { - myW->textBrowser_Log->append("getChatLogTextColor()+";\">"+playerName+" "+showHas+" ["+translateCardCode(card1).at(0)+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+translateCardCode(card2).at(1)+"]"); - - if(myConfig->readConfigInt("LogOnOff")) { - //if write logfiles is enabled - - logFileStreamString += playerName+" "+showHas+" ["+translateCardCode(card1).at(0)+""+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+""+translateCardCode(card2).at(1)+"]"+"
\n"; - if(myConfig->readConfigInt("LogInterval") == 0) { - writeLogFileStream(logFileStreamString); - logFileStreamString = ""; - } - } - } - - QString sql = "UPDATE Hand SET "; - sql += "Seat_" + QString::number(playerID+1,10) + "_Card_1 = " + QString::number(card1,10) + ","; - sql += "Seat_" + QString::number(playerID+1,10) + "_Card_2 = " + QString::number(card2,10); - sql += " WHERE "; - sql += "HandID = " + QString::number(myW->getSession()->getCurrentGame()->getCurrentHandID(),10) + " AND "; - sql += "GameID = " + QString::number(myW->getSession()->getCurrentGame()->getMyGameID(),10); + if(myConfig->readConfigInt("LogInterval") == 0) { + writeLogFileStream(logFileStreamString); + logFileStreamString = ""; + } if(mySqliteLogDb->isOpen()) { QSqlQuery query(*mySqliteLogDb); + QString sql; + + sql = "INSERT INTO Action (HandID,GameID,BeRo,Player,Action,Amount) VALUES ("; + sql += QString::number(myW->getSession()->getCurrentGame()->getCurrentHandID(),10); + sql += "," + QString::number(myW->getSession()->getCurrentGame()->getMyGameID(),10); + sql += "," + QString::number(myW->getSession()->getCurrentGame()->getCurrentHand()->getCurrentBeRo()->getMyBeRoID(),10); + sql += "," + QString::number(playerID,10); + sql += "," + QString::number(action,10); + sql += "," + QString::number(setValue,10); + sql += ")"; + if(!query.exec(sql)) { QMessageBox::critical(0, tr("ERROR"),query.lastError().text().toUtf8().data(), QMessageBox::Cancel); } } + + } +} + +void Log::logNewGameHandMsg(int gameID, int handID) { + + PlayerListConstIterator it_c; + HandInterface *currentHand = myW->getSession()->getCurrentGame()->getCurrentHand(); + + myW->textBrowser_Log->append("getChatLogTextColor()+"; font-size:large; font-weight:bold\">## Game: "+QString::number(gameID,10)+" | Hand: "+QString::number(handID,10)+" ##"); + + if(myConfig->readConfigInt("LogOnOff")) { + //if write logfiles is enabled + + int i; + + logFileStreamString += "

Game: "+QString::number(gameID,10)+" | Hand: "+QString::number(handID,10)+"
"; + logFileStreamString += "BLIND LEVEL: $"+QString::number(currentHand->getSmallBlind())+" / $"+QString::number(currentHand->getSmallBlind()*2)+"
"; + + if(!mySqliteLogDb->open()) { + QMessageBox::critical(0, tr("ERROR"),mySqliteLogDb->lastError().text().toUtf8().data(), QMessageBox::Cancel); + } + + + if(mySqliteLogDb->isOpen()) { + + QSqlQuery query(*mySqliteLogDb); + QString sql; + + // bei Beginn eines Games + if(handID == 1) { + sql = "INSERT INTO Game (GameID,Startmoney,StartSb,DealerPos"; + for(i=1;i<=MAX_NUMBER_OF_PLAYERS; i++) { + sql += ",Seat_" + QString::number(i,10); + } + sql += ") VALUES ("; + sql += QString::number(gameID,10) + ","; + sql += QString::number(myW->getSession()->getCurrentGame()->getStartCash(),10) + ","; + sql += QString::number(myW->getSession()->getCurrentGame()->getStartSmallBlind(),10) + ","; + sql += QString::number(myW->getSession()->getCurrentGame()->getDealerPosition(),10); + for(it_c = currentHand->getSeatsList()->begin();it_c!=currentHand->getSeatsList()->end();it_c++) { + if((*it_c)->getMyActiveStatus()) { + sql += ",'" + QString::fromUtf8((*it_c)->getMyName().c_str()) +"'"; + } else { + sql += ",NULL"; + } + } + sql += ")"; + if(!query.exec(sql)) { + QMessageBox::critical(0, tr("ERROR"),query.lastError().text().toUtf8().data(), QMessageBox::Cancel); + } + } + + sql = "INSERT INTO Hand (HandID,GameID"; + for(i=1;i<=MAX_NUMBER_OF_PLAYERS; i++) { + sql += ",Seat_" + QString("%1").arg(i) + "_Cash"; + } + sql += ") VALUES ("; + sql += QString::number(handID,10); + sql += "," + QString::number(gameID,10); + for(it_c = currentHand->getSeatsList()->begin();it_c!=currentHand->getSeatsList()->end();it_c++) { + if((*it_c)->getMyActiveStatus()) { + sql += "," + QString::number((*it_c)->getMyCash()+(*it_c)->getMySet(),10); + } else { + sql += ",NULL"; + } + } + sql += ")"; + + if(!query.exec(sql)) { + QMessageBox::critical(0, tr("ERROR"),query.lastError().text().toUtf8().data(), QMessageBox::Cancel); + } + + } + + + //print cash only for active players + for(it_c=currentHand->getActivePlayerList()->begin(); it_c!=currentHand->getActivePlayerList()->end(); it_c++) { + + logFileStreamString += "Seat " + QString::number((*it_c)->getMyID()+1,10) + ": " + QString::fromUtf8((*it_c)->getMyName().c_str()) + " ($" + QString::number((*it_c)->getMyCash()+(*it_c)->getMySet(),10)+")
"; + + } + + + } + +} + +void Log::logNewBlindsSetsMsg(int sbSet, int bbSet, QString sbName, QString bbName) { + + // log blinds + logFileStreamString += "BLINDS: "; + + logFileStreamString += sbName+" ($"+QString::number(sbSet,10)+"), "; + logFileStreamString += bbName+" ($"+QString::number(bbSet,10)+")"; + + myW->textBrowser_Log->append("getChatLogTextColor()+";\">"+sbName+" posts small blind ($"+QString::number(sbSet,10)+")"); + myW->textBrowser_Log->append("getChatLogTextColor()+";\">"+bbName+" posts big blind ($"+QString::number(bbSet,10)+")"); + + PlayerListConstIterator it_c; + HandInterface *currentHand = myW->getSession()->getCurrentGame()->getCurrentHand(); + for(it_c=currentHand->getActivePlayerList()->begin(); it_c!=currentHand->getActivePlayerList()->end(); it_c++) { + if(currentHand->getActivePlayerList()->size() > 2) { + if((*it_c)->getMyButton() == BUTTON_DEALER) { + + logFileStreamString += "
" + QString::fromUtf8((*it_c)->getMyName().c_str()) + " starts as dealer."; + break; + } + } else { + if((*it_c)->getMyButton() == BUTTON_SMALL_BLIND) { + + logFileStreamString += "
" + QString::fromUtf8((*it_c)->getMyName().c_str()) + " starts as dealer."; + break; + } + } + } + + logFileStreamString += "

PREFLOP"; + logFileStreamString += "
\n"; +} + +void Log::logPlayerWinsMsg(QString playerName, int pot, bool main) { + + if(main) { + myW->textBrowser_Log->append("getLogWinnerMainPotColor()+";\">"+playerName+" wins $"+QString::number(pot,10)+""); + } else { + myW->textBrowser_Log->append("getLogWinnerSidePotColor()+";\">"+playerName+" wins $"+QString::number(pot,10)+" (side pot)"); + } + + if(myConfig->readConfigInt("LogOnOff")) { + //if write logfiles is enabled + + logFileStreamString += "
"+playerName+" wins $"+QString::number(pot,10); + if(!main) { + logFileStreamString += " (side pot)"; + } + logFileStreamString += "\n"; + + if(myConfig->readConfigInt("LogInterval") == 0) { + writeLogFileStream(logFileStreamString); + logFileStreamString = ""; + } + } +} + + +void Log::logPlayerSitsOut(QString playerName) { + + myW->textBrowser_Log->append("getLogPlayerSitsOutColor()+";\">"+playerName+" sits out"); + + if(myConfig->readConfigInt("LogOnOff")) { + + logFileStreamString += "
"+playerName+" sits out\n"; + + if(myConfig->readConfigInt("LogInterval") == 0) { + writeLogFileStream(logFileStreamString); + logFileStreamString = ""; + } + } +} + + +void Log::logDealBoardCardsMsg(int roundID, int card1, int card2, int card3, int card4, int card5) { + + QString round; + + switch (roundID) { + + case 1: round = "Flop"; + myW->textBrowser_Log->append("getLogPlayerSitsOutColor()+";\">--- "+round+" --- "+"["+translateCardCode(card1).at(0)+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+translateCardCode(card2).at(1)+","+translateCardCode(card3).at(0)+translateCardCode(card3).at(1)+"]"); + break; + case 2: round = "Turn"; + myW->textBrowser_Log->append("getLogPlayerSitsOutColor()+";\">--- "+round+" --- "+"["+translateCardCode(card1).at(0)+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+translateCardCode(card2).at(1)+","+translateCardCode(card3).at(0)+translateCardCode(card3).at(1)+","+translateCardCode(card4).at(0)+translateCardCode(card4).at(1)+"]"); + break; + case 3: round = "River"; + myW->textBrowser_Log->append("getLogPlayerSitsOutColor()+";\">--- "+round+" --- "+"["+translateCardCode(card1).at(0)+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+translateCardCode(card2).at(1)+","+translateCardCode(card3).at(0)+translateCardCode(card3).at(1)+","+translateCardCode(card4).at(0)+translateCardCode(card4).at(1)+","+translateCardCode(card5).at(0)+translateCardCode(card5).at(1)+"]"); + break; + default: round = "ERROR"; + } + + if(myConfig->readConfigInt("LogOnOff")) { + //if write logfiles is enabled + + QString sql; + sql = "UPDATE Hand SET "; + + switch (roundID) { + + case 1: round = "Flop"; + logFileStreamString += "
"+round.toUpper()+" [board cards "+translateCardCode(card1).at(0)+""+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+""+translateCardCode(card2).at(1)+","+translateCardCode(card3).at(0)+""+translateCardCode(card3).at(1)+"]"+"
\n"; + sql += "BoardCard_1 = " + QString::number(card1,10) + ","; + sql += "BoardCard_2 = " + QString::number(card2,10) + ","; + sql += "BoardCard_3 = " + QString::number(card3,10); + break; + case 2: round = "Turn"; + logFileStreamString += "
"+round.toUpper()+" [board cards "+translateCardCode(card1).at(0)+""+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+""+translateCardCode(card2).at(1)+","+translateCardCode(card3).at(0)+""+translateCardCode(card3).at(1)+","+translateCardCode(card4).at(0)+""+translateCardCode(card4).at(1)+"]"+"
\n"; + sql += "BoardCard_4 = " + QString::number(card4,10); + break; + case 3: round = "River"; + logFileStreamString += "
"+round.toUpper()+" [board cards "+translateCardCode(card1).at(0)+""+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+""+translateCardCode(card2).at(1)+","+translateCardCode(card3).at(0)+""+translateCardCode(card3).at(1)+","+translateCardCode(card4).at(0)+""+translateCardCode(card4).at(1)+","+translateCardCode(card5).at(0)+""+translateCardCode(card5).at(1)+"]"+"
\n"; + sql += "BoardCard_5 = " + QString::number(card5,10); + break; + default: round = "ERROR"; + } + if(myConfig->readConfigInt("LogInterval") == 0) { + writeLogFileStream(logFileStreamString); + logFileStreamString = ""; + } + + sql += " WHERE "; + sql += "HandID = " + QString::number(myW->getSession()->getCurrentGame()->getCurrentHandID(),10) + " AND "; + sql += "GameID = " + QString::number(myW->getSession()->getCurrentGame()->getMyGameID(),10); + + if(roundID <= 3) { + if(mySqliteLogDb->isOpen()) { + + QSqlQuery query(*mySqliteLogDb); + if(!query.exec(sql)) { + QMessageBox::critical(0, tr("ERROR"),query.lastError().text().toUtf8().data(), QMessageBox::Cancel); + } + + } + + } + + } +} + +void Log::logFlipHoleCardsMsg(QString playerName, int playerID, int card1, int card2, int cardsValueInt, QString showHas) { + + if (cardsValueInt != -1) { + QString tempHandName = determineHandName(cardsValueInt); + + myW->textBrowser_Log->append("getChatLogTextColor()+";\">"+playerName+" "+showHas+" \""+tempHandName+"\""); + + if(myConfig->readConfigInt("LogOnOff")) { + //if write logfiles is enabled + + logFileStreamString += playerName+" "+showHas+" [ "+translateCardCode(card1).at(0)+""+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+""+translateCardCode(card2).at(1)+"] - "+tempHandName+"
\n"; + + if(myConfig->readConfigInt("LogInterval") == 0) { + writeLogFileStream(logFileStreamString); + logFileStreamString = ""; + } + + } + } + else { + myW->textBrowser_Log->append("getChatLogTextColor()+";\">"+playerName+" "+showHas+" ["+translateCardCode(card1).at(0)+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+translateCardCode(card2).at(1)+"]"); + + if(myConfig->readConfigInt("LogOnOff")) { + //if write logfiles is enabled + + logFileStreamString += playerName+" "+showHas+" ["+translateCardCode(card1).at(0)+""+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+""+translateCardCode(card2).at(1)+"]"+"
\n"; + if(myConfig->readConfigInt("LogInterval") == 0) { + writeLogFileStream(logFileStreamString); + logFileStreamString = ""; + } + } + } + + QString sql = "UPDATE Hand SET "; + sql += "Seat_" + QString::number(playerID+1,10) + "_Card_1 = " + QString::number(card1,10) + ","; + sql += "Seat_" + QString::number(playerID+1,10) + "_Card_2 = " + QString::number(card2,10); + sql += " WHERE "; + sql += "HandID = " + QString::number(myW->getSession()->getCurrentGame()->getCurrentHandID(),10) + " AND "; + sql += "GameID = " + QString::number(myW->getSession()->getCurrentGame()->getMyGameID(),10); + + if(mySqliteLogDb->isOpen()) { + + QSqlQuery query(*mySqliteLogDb); + if(!query.exec(sql)) { + QMessageBox::critical(0, tr("ERROR"),query.lastError().text().toUtf8().data(), QMessageBox::Cancel); + } + + } + } void Log::logPlayerLeftMsg(QString playerName, int wasKicked) { - QString action; - if(wasKicked) action = "was kicked from"; - else action = "has left"; + QString action; + if(wasKicked) action = "was kicked from"; + else action = "has left"; - myW->textBrowser_Log->append( "getChatLogTextColor()+";\">"+playerName+" "+action+" the game!"); - - if(myConfig->readConfigInt("LogOnOff")) { - - logFileStreamString += ""+playerName+" "+action+" the game!
\n"; + myW->textBrowser_Log->append( "getChatLogTextColor()+";\">"+playerName+" "+action+" the game!"); - if(myConfig->readConfigInt("LogInterval") == 0) { - writeLogFileStream(logFileStreamString); - logFileStreamString = ""; - } - } + if(myConfig->readConfigInt("LogOnOff")) { + + logFileStreamString += ""+playerName+" "+action+" the game!
\n"; + + if(myConfig->readConfigInt("LogInterval") == 0) { + writeLogFileStream(logFileStreamString); + logFileStreamString = ""; + } + } } void Log::logNewGameAdminMsg(QString playerName) { - myW->textBrowser_Log->append( "getLogNewGameAdminColor()+";\">"+playerName+" is game admin now!"); - - if(myConfig->readConfigInt("LogOnOff")) { - - logFileStreamString += ""+playerName+" is game admin now!
\n"; + myW->textBrowser_Log->append( "getLogNewGameAdminColor()+";\">"+playerName+" is game admin now!"); - if(myConfig->readConfigInt("LogInterval") == 0) { - writeLogFileStream(logFileStreamString); - logFileStreamString = ""; - } - } + if(myConfig->readConfigInt("LogOnOff")) { + + logFileStreamString += ""+playerName+" is game admin now!
\n"; + + if(myConfig->readConfigInt("LogInterval") == 0) { + writeLogFileStream(logFileStreamString); + logFileStreamString = ""; + } + } } void Log::logPlayerWinGame(QString playerName, int gameID) { - myW->textBrowser_Log->append( ""+playerName+" wins game " + QString::number(gameID,10) +"!
"); - - if(myConfig->readConfigInt("LogOnOff")) { - - logFileStreamString += "

"+playerName+" wins game " + QString::number(gameID,10) +"!
\n"; + myW->textBrowser_Log->append( ""+playerName+" wins game " + QString::number(gameID,10) +"!
"); - if(myConfig->readConfigInt("LogInterval") == 0) { - writeLogFileStream(logFileStreamString); - logFileStreamString = ""; - } - } + if(myConfig->readConfigInt("LogOnOff")) { + + logFileStreamString += "

"+playerName+" wins game " + QString::number(gameID,10) +"!
\n"; + + if(myConfig->readConfigInt("LogInterval") == 0) { + writeLogFileStream(logFileStreamString); + logFileStreamString = ""; + } + } } QStringList Log::translateCardCode(int cardCode) { - int value = cardCode%13; - int color = cardCode/13; - - QStringList cardString; - - switch (value) { - - case 0: cardString << "2"; - break; - case 1: cardString << "3"; - break; - case 2: cardString << "4"; - break; - case 3: cardString << "5"; - break; - case 4: cardString << "6"; - break; - case 5: cardString << "7"; - break; - case 6: cardString << "8"; - break; - case 7: cardString << "9"; - break; - case 8: cardString << "T"; - break; - case 9: cardString << "J"; - break; - case 10: cardString << "Q"; - break; - case 11: cardString << "K"; - break; - case 12: cardString << "A"; - break; - default: cardString << "ERROR"; - } + int value = cardCode%13; + int color = cardCode/13; - switch (color) { + QStringList cardString; + + switch (value) { - case 0: cardString << "d"; - break; - case 1: cardString << "h"; - break; - case 2: cardString << "s"; - break; - case 3: cardString << "c"; - break; - default: cardString << "ERROR"; - } + case 0: cardString << "2"; + break; + case 1: cardString << "3"; + break; + case 2: cardString << "4"; + break; + case 3: cardString << "5"; + break; + case 4: cardString << "6"; + break; + case 5: cardString << "7"; + break; + case 6: cardString << "8"; + break; + case 7: cardString << "9"; + break; + case 8: cardString << "T"; + break; + case 9: cardString << "J"; + break; + case 10: cardString << "Q"; + break; + case 11: cardString << "K"; + break; + case 12: cardString << "A"; + break; + default: cardString << "ERROR"; + } + + switch (color) { - return cardString; + case 0: cardString << "d"; + break; + case 1: cardString << "h"; + break; + case 2: cardString << "s"; + break; + case 3: cardString << "c"; + break; + default: cardString << "ERROR"; + } + + return cardString; } QStringList Log::translateCardsValueCode(int cardsValueCode) { - QStringList cardString; + QStringList cardString; - //erste Ziffer : Blattname - int firstPart = cardsValueCode/100000000; - //zweite und dritte Ziffer : Kicker, highest Card, usw. - int secondPart = cardsValueCode/1000000 - firstPart*100; - //vierte und fünfte Ziffer - int thirdPart = cardsValueCode/10000 - firstPart*10000 - secondPart*100; - // usw - int fourthPart = cardsValueCode/100 - firstPart*1000000 - secondPart*10000 - thirdPart*100; - // - int fifthPart = cardsValueCode - firstPart*100000000 - secondPart*1000000 - thirdPart*10000 - fourthPart*100; - // fuer highest Card - int fifthPartA = cardsValueCode/10 - firstPart*10000000 - secondPart*100000 - thirdPart*1000 - fourthPart*10; - int fifthPartB = cardsValueCode - firstPart*100000000 - secondPart*1000000 - thirdPart*10000 - fourthPart*100 - fifthPartA*10; + //erste Ziffer : Blattname + int firstPart = cardsValueCode/100000000; + //zweite und dritte Ziffer : Kicker, highest Card, usw. + int secondPart = cardsValueCode/1000000 - firstPart*100; + //vierte und fünfte Ziffer + int thirdPart = cardsValueCode/10000 - firstPart*10000 - secondPart*100; + // usw + int fourthPart = cardsValueCode/100 - firstPart*1000000 - secondPart*10000 - thirdPart*100; + // + int fifthPart = cardsValueCode - firstPart*100000000 - secondPart*1000000 - thirdPart*10000 - fourthPart*100; + // fuer highest Card + int fifthPartA = cardsValueCode/10 - firstPart*10000000 - secondPart*100000 - thirdPart*1000 - fourthPart*10; + int fifthPartB = cardsValueCode - firstPart*100000000 - secondPart*1000000 - thirdPart*10000 - fourthPart*100 - fifthPartA*10; - switch (firstPart) { + switch (firstPart) { - // Royal Flush - case 9: cardString << "Royal Flush"; - break; - // Straight Flush - case 8: { - cardString << "Straight Flush, "; - switch(secondPart) { - case 11: cardString << "King high"; - break; - case 10: cardString << "Queen high"; - break; - case 9: cardString << "Jack high"; - break; - case 8: cardString << "Ten high"; - break; - case 7: cardString << "Nine high"; - break; - case 6: cardString << "Eight high"; - break; - case 5: cardString << "Seven high"; - break; - case 4: cardString << "Six high"; - break; - case 3: cardString << "Five high"; - break; - default: cardString << "ERROR"; - } - } - break; - // Four of a Kind - case 7: { - cardString << "Four of a Kind, "; - switch(secondPart) { - case 12: cardString << "Aces"; - break; - case 11: cardString << "Kings"; - break; - case 10: cardString << "Queens"; - break; - case 9: cardString << "Jacks"; - break; - case 8: cardString << "Tens"; - break; - case 7: cardString << "Nines"; - break; - case 6: cardString << "Eights"; - break; - case 5: cardString << "Sevens"; - break; - case 4: cardString << "Sixes"; - break; - case 3: cardString << "Fives"; - break; - case 2: cardString << "Fours"; - break; - case 1: cardString << "Threes"; - break; - case 0: cardString << "Deuces"; - break; - default: cardString << "ERROR"; - } - // Kicker - switch(thirdPart) { - case 12: cardString << "Ace"; - break; - case 11: cardString << "King"; - break; - case 10: cardString << "Queen"; - break; - case 9: cardString << "Jack"; - break; - case 8: cardString << "Ten"; - break; - case 7: cardString << "Nine"; - break; - case 6: cardString << "Eight"; - break; - case 5: cardString << "Seven"; - break; - case 4: cardString << "Six"; - break; - case 3: cardString << "Five"; - break; - case 2: cardString << "Four"; - break; - case 1: cardString << "Three"; - break; - case 0: cardString << "Deuce"; - break; - default: cardString << "ERROR"; - } - } - break; - // Full House - case 6: { - cardString << "Full House, "; - //Drilling - switch(secondPart) { - case 12: cardString << "Aces full of "; - break; - case 11: cardString << "Kings full of "; - break; - case 10: cardString << "Queens full of "; - break; - case 9: cardString << "Jacks full of "; - break; - case 8: cardString << "Tens full of "; - break; - case 7: cardString << "Nines full of "; - break; - case 6: cardString << "Eights full of "; - break; - case 5: cardString << "Sevens full of "; - break; - case 4: cardString << "Sixes full of "; - break; - case 3: cardString << "Fives full of "; - break; - case 2: cardString << "Fours full of "; - break; - case 1: cardString << "Threes full of "; - break; - case 0: cardString << "Deuces full of "; - break; - default: cardString << "ERROR"; - } - //Pärchen - switch(thirdPart) { - case 12: cardString << "Aces"; - break; - case 11: cardString << "Kings"; - break; - case 10: cardString << "Queens"; - break; - case 9: cardString << "Jacks"; - break; - case 8: cardString << "Tens"; - break; - case 7: cardString << "Nines"; - break; - case 6: cardString << "Eights"; - break; - case 5: cardString << "Sevens"; - break; - case 4: cardString << "Sixes"; - break; - case 3: cardString << "Fives"; - break; - case 2: cardString << "Fours"; - break; - case 1: cardString << "Threes"; - break; - case 0: cardString << "Deuces"; - break; - default: cardString << "ERROR"; - } - } - break; - // Flush - case 5: { - cardString << "Flush, "; - //highest Card - switch(secondPart) { - case 12: cardString << "Ace high"; - break; - case 11: cardString << "King high"; - break; - case 10: cardString << "Queen high"; - break; - case 9: cardString << "Jack high"; - break; - case 8: cardString << "Ten high"; - break; - case 7: cardString << "Nine high"; - break; - case 6: cardString << "Eight high"; - break; - case 5: cardString << "Seven high"; - break; - case 4: cardString << "Six high"; - break; - default: cardString << "ERROR"; - } - // Kicker 1 - switch(thirdPart) { - case 12: cardString << "Ace"; - break; - case 11: cardString << "King"; - break; - case 10: cardString << "Queen"; - break; - case 9: cardString << "Jack"; - break; - case 8: cardString << "Ten"; - break; - case 7: cardString << "Nine"; - break; - case 6: cardString << "Eight"; - break; - case 5: cardString << "Seven"; - break; - case 4: cardString << "Six"; - break; - case 3: cardString << "Five"; - break; - case 2: cardString << "Four"; - break; - case 1: cardString << "Three"; - break; - case 0: cardString << "Deuce"; - break; - default: cardString << "ERROR"; - } - //Kicker 2 - switch(fourthPart) { - case 12: cardString << "Ace"; - break; - case 11: cardString << "King"; - break; - case 10: cardString << "Queen"; - break; - case 9: cardString << "Jack"; - break; - case 8: cardString << "Ten"; - break; - case 7: cardString << "Nine"; - break; - case 6: cardString << "Eight"; - break; - case 5: cardString << "Seven"; - break; - case 4: cardString << "Six"; - break; - case 3: cardString << "Five"; - break; - case 2: cardString << "Four"; - break; - case 1: cardString << "Three"; - break; - case 0: cardString << "Deuce"; - break; - default: cardString << "ERROR"; - } - //Kicker 3 - switch(fifthPartA) { - case 9: cardString << "Jack"; - break; - case 8: cardString << "Ten"; - break; - case 7: cardString << "Nine"; - break; - case 6: cardString << "Eight"; - break; - case 5: cardString << "Seven"; - break; - case 4: cardString << "Six"; - break; - case 3: cardString << "Five"; - break; - case 2: cardString << "Four"; - break; - case 1: cardString << "Three"; - break; - case 0: cardString << "Deuce"; - break; - default: cardString << "ERROR"; - } - //Kicker 4 - switch(fifthPartB) { - case 9: cardString << "Jack"; - break; - case 8: cardString << "Ten"; - break; - case 7: cardString << "Nine"; - break; - case 6: cardString << "Eight"; - break; - case 5: cardString << "Seven"; - break; - case 4: cardString << "Six"; - break; - case 3: cardString << "Five"; - break; - case 2: cardString << "Four"; - break; - case 1: cardString << "Three"; - break; - case 0: cardString << "Deuce"; - break; - default: cardString << "ERROR"; - } - } - break; - // Straight - case 4: { - cardString << "Straight, "; - switch(secondPart) { - case 12: cardString << "Ace high"; - break; - case 11: cardString << "King high"; - break; - case 10: cardString << "Queen high"; - break; - case 9: cardString << "Jack high"; - break; - case 8: cardString << "Ten high"; - break; - case 7: cardString << "Nine high"; - break; - case 6: cardString << "Eight high"; - break; - case 5: cardString << "Seven high"; - break; - case 4: cardString << "Six high"; - break; - case 3: cardString << "Five high"; - break; - default: cardString << "ERROR"; - } - } - break; - // Three of a Kind - case 3: { - cardString << "Three of a Kind, "; - switch(secondPart) { - case 12: cardString << "Aces"; - break; - case 11: cardString << "Kings"; - break; - case 10: cardString << "Queens"; - break; - case 9: cardString << "Jacks"; - break; - case 8: cardString << "Tens"; - break; - case 7: cardString << "Nines"; - break; - case 6: cardString << "Eights"; - break; - case 5: cardString << "Sevens"; - break; - case 4: cardString << "Sixes"; - break; - case 3: cardString << "Fives"; - break; - case 2: cardString << "Fours"; - break; - case 1: cardString << "Threes"; - break; - case 0: cardString << "Deuces"; - break; - default: cardString << "ERROR"; - } - //Kicker 1 - switch(thirdPart) { - case 12: cardString << "Ace"; - break; - case 11: cardString << "King"; - break; - case 10: cardString << "Queen"; - break; - case 9: cardString << "Jack"; - break; - case 8: cardString << "Ten"; - break; - case 7: cardString << "Nine"; - break; - case 6: cardString << "Eight"; - break; - case 5: cardString << "Seven"; - break; - case 4: cardString << "Six"; - break; - case 3: cardString << "Five"; - break; - case 2: cardString << "Four"; - break; - case 1: cardString << "Three"; - break; - case 0: cardString << "Deuce"; - break; - default: cardString << "ERROR"; - } - //Kicker 2 - switch(fourthPart) { - case 12: cardString << "Ace"; - break; - case 11: cardString << "King"; - break; - case 10: cardString << "Queen"; - break; - case 9: cardString << "Jack"; - break; - case 8: cardString << "Ten"; - break; - case 7: cardString << "Nine"; - break; - case 6: cardString << "Eight"; - break; - case 5: cardString << "Seven"; - break; - case 4: cardString << "Six"; - break; - case 3: cardString << "Five"; - break; - case 2: cardString << "Four"; - break; - case 1: cardString << "Three"; - break; - case 0: cardString << "Deuce"; - break; - default: cardString << "ERROR"; - } - } - break; - // Two Pairs + // Royal Flush + case 9: cardString << "Royal Flush"; + break; + // Straight Flush + case 8: { + cardString << "Straight Flush, "; + switch(secondPart) { + case 11: cardString << "King high"; + break; + case 10: cardString << "Queen high"; + break; + case 9: cardString << "Jack high"; + break; + case 8: cardString << "Ten high"; + break; + case 7: cardString << "Nine high"; + break; + case 6: cardString << "Eight high"; + break; + case 5: cardString << "Seven high"; + break; + case 4: cardString << "Six high"; + break; + case 3: cardString << "Five high"; + break; + default: cardString << "ERROR"; + } + } + break; + // Four of a Kind + case 7: { + cardString << "Four of a Kind, "; + switch(secondPart) { + case 12: cardString << "Aces"; + break; + case 11: cardString << "Kings"; + break; + case 10: cardString << "Queens"; + break; + case 9: cardString << "Jacks"; + break; + case 8: cardString << "Tens"; + break; + case 7: cardString << "Nines"; + break; + case 6: cardString << "Eights"; + break; + case 5: cardString << "Sevens"; + break; + case 4: cardString << "Sixes"; + break; + case 3: cardString << "Fives"; + break; + case 2: cardString << "Fours"; + break; + case 1: cardString << "Threes"; + break; + case 0: cardString << "Deuces"; + break; + default: cardString << "ERROR"; + } + // Kicker + switch(thirdPart) { + case 12: cardString << "Ace"; + break; + case 11: cardString << "King"; + break; + case 10: cardString << "Queen"; + break; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; + } + } + break; + // Full House + case 6: { + cardString << "Full House, "; + //Drilling + switch(secondPart) { + case 12: cardString << "Aces full of "; + break; + case 11: cardString << "Kings full of "; + break; + case 10: cardString << "Queens full of "; + break; + case 9: cardString << "Jacks full of "; + break; + case 8: cardString << "Tens full of "; + break; + case 7: cardString << "Nines full of "; + break; + case 6: cardString << "Eights full of "; + break; + case 5: cardString << "Sevens full of "; + break; + case 4: cardString << "Sixes full of "; + break; + case 3: cardString << "Fives full of "; + break; + case 2: cardString << "Fours full of "; + break; + case 1: cardString << "Threes full of "; + break; + case 0: cardString << "Deuces full of "; + break; + default: cardString << "ERROR"; + } + //Pärchen + switch(thirdPart) { + case 12: cardString << "Aces"; + break; + case 11: cardString << "Kings"; + break; + case 10: cardString << "Queens"; + break; + case 9: cardString << "Jacks"; + break; + case 8: cardString << "Tens"; + break; + case 7: cardString << "Nines"; + break; + case 6: cardString << "Eights"; + break; + case 5: cardString << "Sevens"; + break; + case 4: cardString << "Sixes"; + break; + case 3: cardString << "Fives"; + break; + case 2: cardString << "Fours"; + break; + case 1: cardString << "Threes"; + break; + case 0: cardString << "Deuces"; + break; + default: cardString << "ERROR"; + } + } + break; + // Flush + case 5: { + cardString << "Flush, "; + //highest Card + switch(secondPart) { + case 12: cardString << "Ace high"; + break; + case 11: cardString << "King high"; + break; + case 10: cardString << "Queen high"; + break; + case 9: cardString << "Jack high"; + break; + case 8: cardString << "Ten high"; + break; + case 7: cardString << "Nine high"; + break; + case 6: cardString << "Eight high"; + break; + case 5: cardString << "Seven high"; + break; + case 4: cardString << "Six high"; + break; + default: cardString << "ERROR"; + } + // Kicker 1 + switch(thirdPart) { + case 12: cardString << "Ace"; + break; + case 11: cardString << "King"; + break; + case 10: cardString << "Queen"; + break; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; + } + //Kicker 2 + switch(fourthPart) { + case 12: cardString << "Ace"; + break; + case 11: cardString << "King"; + break; + case 10: cardString << "Queen"; + break; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; + } + //Kicker 3 + switch(fifthPartA) { + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; + } + //Kicker 4 + switch(fifthPartB) { + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; + } + } + break; + // Straight + case 4: { + cardString << "Straight, "; + switch(secondPart) { + case 12: cardString << "Ace high"; + break; + case 11: cardString << "King high"; + break; + case 10: cardString << "Queen high"; + break; + case 9: cardString << "Jack high"; + break; + case 8: cardString << "Ten high"; + break; + case 7: cardString << "Nine high"; + break; + case 6: cardString << "Eight high"; + break; + case 5: cardString << "Seven high"; + break; + case 4: cardString << "Six high"; + break; + case 3: cardString << "Five high"; + break; + default: cardString << "ERROR"; + } + } + break; + // Three of a Kind + case 3: { + cardString << "Three of a Kind, "; + switch(secondPart) { + case 12: cardString << "Aces"; + break; + case 11: cardString << "Kings"; + break; + case 10: cardString << "Queens"; + break; + case 9: cardString << "Jacks"; + break; + case 8: cardString << "Tens"; + break; + case 7: cardString << "Nines"; + break; + case 6: cardString << "Eights"; + break; + case 5: cardString << "Sevens"; + break; + case 4: cardString << "Sixes"; + break; + case 3: cardString << "Fives"; + break; + case 2: cardString << "Fours"; + break; + case 1: cardString << "Threes"; + break; + case 0: cardString << "Deuces"; + break; + default: cardString << "ERROR"; + } + //Kicker 1 + switch(thirdPart) { + case 12: cardString << "Ace"; + break; + case 11: cardString << "King"; + break; + case 10: cardString << "Queen"; + break; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; + } + //Kicker 2 + switch(fourthPart) { + case 12: cardString << "Ace"; + break; + case 11: cardString << "King"; + break; + case 10: cardString << "Queen"; + break; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; + } + } + break; + // Two Pairs case 2: { cardString << "Two Pairs, "; // erster Pair switch(secondPart) { - case 12: cardString << "Aces and "; - break; - case 11: cardString << "Kings and "; - break; - case 10: cardString << "Queens and "; - break; - case 9: cardString << "Jacks and "; - break; - case 8: cardString << "Tens and "; - break; - case 7: cardString << "Nines and "; - break; - case 6: cardString << "Eights and "; - break; - case 5: cardString << "Sevens and "; - break; - case 4: cardString << "Sixes and "; - break; - case 3: cardString << "Fives and "; - break; - case 2: cardString << "Fours and "; - break; - case 1: cardString << "Threes and "; - break; - case 0: cardString << "Deuces and "; - break; - default: cardString << "ERROR"; + case 12: cardString << "Aces and "; + break; + case 11: cardString << "Kings and "; + break; + case 10: cardString << "Queens and "; + break; + case 9: cardString << "Jacks and "; + break; + case 8: cardString << "Tens and "; + break; + case 7: cardString << "Nines and "; + break; + case 6: cardString << "Eights and "; + break; + case 5: cardString << "Sevens and "; + break; + case 4: cardString << "Sixes and "; + break; + case 3: cardString << "Fives and "; + break; + case 2: cardString << "Fours and "; + break; + case 1: cardString << "Threes and "; + break; + case 0: cardString << "Deuces and "; + break; + default: cardString << "ERROR"; } // zweiter Pair switch(thirdPart) { - case 12: cardString << "Aces"; - break; - case 11: cardString << "Kings"; - break; - case 10: cardString << "Queens"; - break; - case 9: cardString << "Jacks"; - break; - case 8: cardString << "Tens"; - break; - case 7: cardString << "Nines"; - break; - case 6: cardString << "Eights"; - break; - case 5: cardString << "Sevens"; - break; - case 4: cardString << "Sixes"; - break; - case 3: cardString << "Fives"; - break; - case 2: cardString << "Fours"; - break; - case 1: cardString << "Threes"; - break; - case 0: cardString << "Deuces"; - break; - default: cardString << "ERROR"; + case 12: cardString << "Aces"; + break; + case 11: cardString << "Kings"; + break; + case 10: cardString << "Queens"; + break; + case 9: cardString << "Jacks"; + break; + case 8: cardString << "Tens"; + break; + case 7: cardString << "Nines"; + break; + case 6: cardString << "Eights"; + break; + case 5: cardString << "Sevens"; + break; + case 4: cardString << "Sixes"; + break; + case 3: cardString << "Fives"; + break; + case 2: cardString << "Fours"; + break; + case 1: cardString << "Threes"; + break; + case 0: cardString << "Deuces"; + break; + default: cardString << "ERROR"; } //Kicker switch(fourthPart) { - case 12: cardString << "Ace"; - break; - case 11: cardString << "King"; - break; - case 10: cardString << "Queen"; - break; - case 9: cardString << "Jack"; - break; - case 8: cardString << "Ten"; - break; - case 7: cardString << "Nine"; - break; - case 6: cardString << "Eight"; - break; - case 5: cardString << "Seven"; - break; - case 4: cardString << "Six"; - break; - case 3: cardString << "Five"; - break; - case 2: cardString << "Four"; - break; - case 1: cardString << "Three"; - break; - case 0: cardString << "Deuce"; - break; - default: cardString << "ERROR"; + case 12: cardString << "Ace"; + break; + case 11: cardString << "King"; + break; + case 10: cardString << "Queen"; + break; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; } - } - break; - // One Pair + } + break; + // One Pair case 1: { cardString << "One Pair, "; // Pair switch(secondPart) { - case 12: cardString << "Aces"; - break; - case 11: cardString << "Kings"; - break; - case 10: cardString << "Queens"; - break; - case 9: cardString << "Jacks"; - break; - case 8: cardString << "Tens"; - break; - case 7: cardString << "Nines"; - break; - case 6: cardString << "Eights"; - break; - case 5: cardString << "Sevens"; - break; - case 4: cardString << "Sixes"; - break; - case 3: cardString << "Fives"; - break; - case 2: cardString << "Fours"; - break; - case 1: cardString << "Threes"; - break; - case 0: cardString << "Deuces"; - break; - default: cardString << "ERROR"; + case 12: cardString << "Aces"; + break; + case 11: cardString << "Kings"; + break; + case 10: cardString << "Queens"; + break; + case 9: cardString << "Jacks"; + break; + case 8: cardString << "Tens"; + break; + case 7: cardString << "Nines"; + break; + case 6: cardString << "Eights"; + break; + case 5: cardString << "Sevens"; + break; + case 4: cardString << "Sixes"; + break; + case 3: cardString << "Fives"; + break; + case 2: cardString << "Fours"; + break; + case 1: cardString << "Threes"; + break; + case 0: cardString << "Deuces"; + break; + default: cardString << "ERROR"; } // Kicker 1 switch(thirdPart) { - case 12: cardString << "Ace"; - break; - case 11: cardString << "King"; - break; - case 10: cardString << "Queen"; - break; - case 9: cardString << "Jack"; - break; - case 8: cardString << "Ten"; - break; - case 7: cardString << "Nine"; - break; - case 6: cardString << "Eight"; - break; - case 5: cardString << "Seven"; - break; - case 4: cardString << "Six"; - break; - case 3: cardString << "Five"; - break; - case 2: cardString << "Four"; - break; - case 1: cardString << "Three"; - break; - case 0: cardString << "Deuce"; - break; - default: cardString << "ERROR"; + case 12: cardString << "Ace"; + break; + case 11: cardString << "King"; + break; + case 10: cardString << "Queen"; + break; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; } //Kicker 2 switch(fourthPart) { - case 12: cardString << "Ace"; - break; - case 11: cardString << "King"; - break; - case 10: cardString << "Queen"; - break; - case 9: cardString << "Jack"; - break; - case 8: cardString << "Ten"; - break; - case 7: cardString << "Nine"; - break; - case 6: cardString << "Eight"; - break; - case 5: cardString << "Seven"; - break; - case 4: cardString << "Six"; - break; - case 3: cardString << "Five"; - break; - case 2: cardString << "Four"; - break; - case 1: cardString << "Three"; - break; - case 0: cardString << "Deuce"; - break; - default: cardString << "ERROR"; + case 12: cardString << "Ace"; + break; + case 11: cardString << "King"; + break; + case 10: cardString << "Queen"; + break; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; } //Kicker 3 switch(fifthPart) { - case 12: cardString << "Ace"; - break; - case 11: cardString << "King"; - break; - case 10: cardString << "Queen"; - break; - case 9: cardString << "Jack"; - break; - case 8: cardString << "Ten"; - break; - case 7: cardString << "Nine"; - break; - case 6: cardString << "Eight"; - break; - case 5: cardString << "Seven"; - break; - case 4: cardString << "Six"; - break; - case 3: cardString << "Five"; - break; - case 2: cardString << "Four"; - break; - case 1: cardString << "Three"; - break; - case 0: cardString << "Deuce"; - break; - default: cardString << "ERROR"; + case 12: cardString << "Ace"; + break; + case 11: cardString << "King"; + break; + case 10: cardString << "Queen"; + break; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; } - } - break; - // Highest Card + } + break; + // Highest Card case 0: { cardString << "High Card, "; // Kicker 1 switch(secondPart) { - case 12: cardString << "Ace"; - break; - case 11: cardString << "King"; - break; - case 10: cardString << "Queen"; - break; - case 9: cardString << "Jack"; - break; - case 8: cardString << "Ten"; - break; - case 7: cardString << "Nine"; - break; - case 6: cardString << "Eight"; - break; - case 5: cardString << "Seven"; - break; - case 4: cardString << "Six"; - break; - case 3: cardString << "Five"; - break; - case 2: cardString << "Four"; - break; - case 1: cardString << "Three"; - break; - case 0: cardString << "Deuces"; - break; - default: cardString << "ERROR"; + case 12: cardString << "Ace"; + break; + case 11: cardString << "King"; + break; + case 10: cardString << "Queen"; + break; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuces"; + break; + default: cardString << "ERROR"; } // Kicker 2 switch(thirdPart) { - case 12: cardString << "Ace"; - break; - case 11: cardString << "King"; - break; - case 10: cardString << "Queen"; - break; - case 9: cardString << "Jack"; - break; - case 8: cardString << "Ten"; - break; - case 7: cardString << "Nine"; - break; - case 6: cardString << "Eight"; - break; - case 5: cardString << "Seven"; - break; - case 4: cardString << "Six"; - break; - case 3: cardString << "Five"; - break; - case 2: cardString << "Four"; - break; - case 1: cardString << "Three"; - break; - case 0: cardString << "Deuce"; - break; - default: cardString << "ERROR"; + case 12: cardString << "Ace"; + break; + case 11: cardString << "King"; + break; + case 10: cardString << "Queen"; + break; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; } //Kicker 3 switch(fourthPart) { - case 12: cardString << "Ace"; - break; - case 11: cardString << "King"; - break; - case 10: cardString << "Queen"; - break; - case 9: cardString << "Jack"; - break; - case 8: cardString << "Ten"; - break; - case 7: cardString << "Nine"; - break; - case 6: cardString << "Eight"; - break; - case 5: cardString << "Seven"; - break; - case 4: cardString << "Six"; - break; - case 3: cardString << "Five"; - break; - case 2: cardString << "Four"; - break; - case 1: cardString << "Three"; - break; - case 0: cardString << "Deuce"; - break; - default: cardString << "ERROR"; + case 12: cardString << "Ace"; + break; + case 11: cardString << "King"; + break; + case 10: cardString << "Queen"; + break; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; } //Kicker 4 switch(fifthPartA) { - case 9: cardString << "Jack"; - break; - case 8: cardString << "Ten"; - break; - case 7: cardString << "Nine"; - break; - case 6: cardString << "Eight"; - break; - case 5: cardString << "Seven"; - break; - case 4: cardString << "Six"; - break; - case 3: cardString << "Five"; - break; - case 2: cardString << "Four"; - break; - case 1: cardString << "Three"; - break; - case 0: cardString << "Deuce"; - break; - default: cardString << "ERROR"; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; } //Kicker 5 switch(fifthPartB) { - case 9: cardString << "Jack"; - break; - case 8: cardString << "Ten"; - break; - case 7: cardString << "Nine"; - break; - case 6: cardString << "Eight"; - break; - case 5: cardString << "Seven"; - break; - case 4: cardString << "Six"; - break; - case 3: cardString << "Five"; - break; - case 2: cardString << "Four"; - break; - case 1: cardString << "Three"; - break; - case 0: cardString << "Deuce"; - break; - default: cardString << "ERROR"; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; } - } - break; + } + break; default: cardString << "ERROR"; - } + } - return cardString; + return cardString; } QString Log::determineHandName(int myCardsValueInt) { - list shownCardsValueInt; - list sameHandCardsValueInt; - bool different = false; - bool equal = false; - HandInterface *currentHand = myW->getSession()->getCurrentGame()->getCurrentHand(); - PlayerListConstIterator it_c; + list shownCardsValueInt; + list sameHandCardsValueInt; + bool different = false; + bool equal = false; + HandInterface *currentHand = myW->getSession()->getCurrentGame()->getCurrentHand(); + PlayerListConstIterator it_c; - // collect cardsValueInt of all players who will show their cards - for(it_c=currentHand->getActivePlayerList()->begin(); it_c!=currentHand->getActivePlayerList()->end(); it_c++) { - if( (*it_c)->getMyAction() != PLAYER_ACTION_FOLD) { - shownCardsValueInt.push_back( (*it_c)->getMyCardsValueInt()); - } - } + // collect cardsValueInt of all players who will show their cards + for(it_c=currentHand->getActivePlayerList()->begin(); it_c!=currentHand->getActivePlayerList()->end(); it_c++) { + if( (*it_c)->getMyAction() != PLAYER_ACTION_FOLD) { + shownCardsValueInt.push_back( (*it_c)->getMyCardsValueInt()); + } + } - // erase own cardsValueInt - list::iterator it; - for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) { - if((*it) == myCardsValueInt) { - shownCardsValueInt.erase(it); - break; - } - } + // erase own cardsValueInt + list::iterator it; + for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) { + if((*it) == myCardsValueInt) { + shownCardsValueInt.erase(it); + break; + } + } - QString handName; + QString handName; - switch(myCardsValueInt/100000000) { - // Royal Flush - case 9: { - handName = translateCardsValueCode(myCardsValueInt).at(0); - } - break; - // Straight Flush - case 8: { - handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1); - } - break; - // Four of a kind - case 7: { + switch(myCardsValueInt/100000000) { + // Royal Flush + case 9: { + handName = translateCardsValueCode(myCardsValueInt).at(0); + } + break; + // Straight Flush + case 8: { + handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1); + } + break; + // Four of a kind + case 7: { - handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1); + handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1); - // same hand detection - for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) { - if(((*it)/1000000) == (myCardsValueInt/1000000)) { - sameHandCardsValueInt.push_back(*it); - } - } + // same hand detection + for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) { + if(((*it)/1000000) == (myCardsValueInt/1000000)) { + sameHandCardsValueInt.push_back(*it); + } + } - // 1.same hands existing - if(!(sameHandCardsValueInt.empty())) { - // first kicker? - for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { - if(((*it)/10000) == (myCardsValueInt/10000)) { - equal = true; - it++; - } else { - different = true; - it = sameHandCardsValueInt.erase(it); - } - } - if(different) { - handName += ", fifth card " + translateCardsValueCode(myCardsValueInt).at(2); - } + // 1.same hands existing + if(!(sameHandCardsValueInt.empty())) { + // first kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if(((*it)/10000) == (myCardsValueInt/10000)) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", fifth card " + translateCardsValueCode(myCardsValueInt).at(2); + } - } + } - } - break; - // Full House - case 6: { - handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1)+translateCardsValueCode(myCardsValueInt).at(2); - } - break; - // Flush - case 5: { + } + break; + // Full House + case 6: { + handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1)+translateCardsValueCode(myCardsValueInt).at(2); + } + break; + // Flush + case 5: { - handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1); + handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1); - // same hand detection - for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) { - if(((*it)/1000000) == (myCardsValueInt/1000000)) { - sameHandCardsValueInt.push_back(*it); - } - } + // same hand detection + for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) { + if(((*it)/1000000) == (myCardsValueInt/1000000)) { + sameHandCardsValueInt.push_back(*it); + } + } - // 1.same hands existing - if(!(sameHandCardsValueInt.empty())) { - // first kicker? - for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { - if(((*it)/10000) == (myCardsValueInt/10000)) { - equal = true; - it++; - } else { - different = true; - it = sameHandCardsValueInt.erase(it); - } - } - if(different) { - handName += ", second card " + translateCardsValueCode(myCardsValueInt).at(2); - } - // 2.there are still same hands - if(equal) { - different = false; - equal = false; - // second kicker? - for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { - if(((*it)/100) == (myCardsValueInt/100)) { - equal = true; - it++; - } else { - different = true; - it = sameHandCardsValueInt.erase(it); - } - } - if(different) { - handName += ", third card " + translateCardsValueCode(myCardsValueInt).at(3); - } - // 3.there are still same hands - if(equal) { - different = false; - equal = false; - // third kicker? - for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { - if(((*it)/10) == (myCardsValueInt/10)) { - equal = true; - it++; - } else { - different = true; - it = sameHandCardsValueInt.erase(it); - } - } - if(different) { - handName += ", fourth card " + translateCardsValueCode(myCardsValueInt).at(4); - } - // 4.there are still same hands - if(equal) { - different = false; - equal = false; - // third kicker? - for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { - if((*it) == myCardsValueInt) { - equal = true; - it++; - } else { - different = true; - it = sameHandCardsValueInt.erase(it); - } - } - if(different) { - handName += ", fifth card " + translateCardsValueCode(myCardsValueInt).at(5); - } - } - } - } - } + // 1.same hands existing + if(!(sameHandCardsValueInt.empty())) { + // first kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if(((*it)/10000) == (myCardsValueInt/10000)) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", second card " + translateCardsValueCode(myCardsValueInt).at(2); + } + // 2.there are still same hands + if(equal) { + different = false; + equal = false; + // second kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if(((*it)/100) == (myCardsValueInt/100)) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", third card " + translateCardsValueCode(myCardsValueInt).at(3); + } + // 3.there are still same hands + if(equal) { + different = false; + equal = false; + // third kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if(((*it)/10) == (myCardsValueInt/10)) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", fourth card " + translateCardsValueCode(myCardsValueInt).at(4); + } + // 4.there are still same hands + if(equal) { + different = false; + equal = false; + // third kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if((*it) == myCardsValueInt) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", fifth card " + translateCardsValueCode(myCardsValueInt).at(5); + } + } + } + } + } - } - break; - // Straight - case 4: { - handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1); - } - break; - // Three of a kind - case 3: { - handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1); + } + break; + // Straight + case 4: { + handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1); + } + break; + // Three of a kind + case 3: { + handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1); - // same hand detection - for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) { - if(((*it)/1000000) == (myCardsValueInt/1000000)) { - sameHandCardsValueInt.push_back(*it); - } - } + // same hand detection + for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) { + if(((*it)/1000000) == (myCardsValueInt/1000000)) { + sameHandCardsValueInt.push_back(*it); + } + } - // 1.same hands existing - if(!(sameHandCardsValueInt.empty())) { - // first kicker? - for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { - if(((*it)/10000) == (myCardsValueInt/10000)) { - equal = true; - it++; - } else { - different = true; - it = sameHandCardsValueInt.erase(it); - } - } - if(different) { - handName += ", fourth card " + translateCardsValueCode(myCardsValueInt).at(2); - } - // 2.there are still same hands - if(equal) { - different = false; - equal = false; - // second kicker? - for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { - if(((*it)/100) == (myCardsValueInt/100)) { - equal = true; - it++; - } else { - different = true; - it = sameHandCardsValueInt.erase(it); - } - } - if(different) { - handName += ", fifth card " + translateCardsValueCode(myCardsValueInt).at(3); - } - } - } + // 1.same hands existing + if(!(sameHandCardsValueInt.empty())) { + // first kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if(((*it)/10000) == (myCardsValueInt/10000)) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", fourth card " + translateCardsValueCode(myCardsValueInt).at(2); + } + // 2.there are still same hands + if(equal) { + different = false; + equal = false; + // second kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if(((*it)/100) == (myCardsValueInt/100)) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", fifth card " + translateCardsValueCode(myCardsValueInt).at(3); + } + } + } - } - break; - // Two Pairs - case 2: { + } + break; + // Two Pairs + case 2: { - handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1)+translateCardsValueCode(myCardsValueInt).at(2); + handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1)+translateCardsValueCode(myCardsValueInt).at(2); - // same hand detection - for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) { - if(((*it)/10000) == (myCardsValueInt/10000)) { - sameHandCardsValueInt.push_back(*it); - } - } + // same hand detection + for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) { + if(((*it)/10000) == (myCardsValueInt/10000)) { + sameHandCardsValueInt.push_back(*it); + } + } - // 1.same hands existing - if(!(sameHandCardsValueInt.empty())) { - // first kicker? - for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { - if(((*it)/100) == (myCardsValueInt/100)) { - equal = true; - it++; - } else { - different = true; - it = sameHandCardsValueInt.erase(it); - } - } - if(different) { - handName += ", fifth card " + translateCardsValueCode(myCardsValueInt).at(3); - } + // 1.same hands existing + if(!(sameHandCardsValueInt.empty())) { + // first kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if(((*it)/100) == (myCardsValueInt/100)) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", fifth card " + translateCardsValueCode(myCardsValueInt).at(3); + } - } + } - } - break; - // Pair - case 1: { + } + break; + // Pair + case 1: { - handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1); + handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1); - // same hand detection - for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) { - if(((*it)/1000000) == (myCardsValueInt/1000000)) { - sameHandCardsValueInt.push_back(*it); - } - } + // same hand detection + for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) { + if(((*it)/1000000) == (myCardsValueInt/1000000)) { + sameHandCardsValueInt.push_back(*it); + } + } - // 1.same hands existing - if(!(sameHandCardsValueInt.empty())) { - // first kicker? - for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { - if(((*it)/10000) == (myCardsValueInt/10000)) { - equal = true; - it++; - } else { - different = true; - it = sameHandCardsValueInt.erase(it); - } - } - if(different) { - handName += ", third card " + translateCardsValueCode(myCardsValueInt).at(2); - } - // 2.there are still same hands - if(equal) { - different = false; - equal = false; - // second kicker? - for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { - if(((*it)/100) == (myCardsValueInt/100)) { - equal = true; - it++; - } else { - different = true; - it = sameHandCardsValueInt.erase(it); - } - } - if(different) { - handName += ", fourth card " + translateCardsValueCode(myCardsValueInt).at(3); - } - // 3.there are still same hands - if(equal) { - different = false; - equal = false; - // third kicker? - for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { - if((*it) == myCardsValueInt) { - equal = true; - it++; - } else { - different = true; - it = sameHandCardsValueInt.erase(it); - } - } - if(different) { - handName += ", fifth card " + translateCardsValueCode(myCardsValueInt).at(4); - } - } - } - } + // 1.same hands existing + if(!(sameHandCardsValueInt.empty())) { + // first kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if(((*it)/10000) == (myCardsValueInt/10000)) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", third card " + translateCardsValueCode(myCardsValueInt).at(2); + } + // 2.there are still same hands + if(equal) { + different = false; + equal = false; + // second kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if(((*it)/100) == (myCardsValueInt/100)) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", fourth card " + translateCardsValueCode(myCardsValueInt).at(3); + } + // 3.there are still same hands + if(equal) { + different = false; + equal = false; + // third kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if((*it) == myCardsValueInt) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", fifth card " + translateCardsValueCode(myCardsValueInt).at(4); + } + } + } + } - } - break; - // highestCard - case 0: { + } + break; + // highestCard + case 0: { - handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1); + handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1); - // same hand detection - for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) { - if(((*it)/1000000) == (myCardsValueInt/1000000)) { - sameHandCardsValueInt.push_back(*it); - } - } + // same hand detection + for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) { + if(((*it)/1000000) == (myCardsValueInt/1000000)) { + sameHandCardsValueInt.push_back(*it); + } + } - // 1.same hands existing - if(!(sameHandCardsValueInt.empty())) { - // first kicker? - for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { - if(((*it)/10000) == (myCardsValueInt/10000)) { - equal = true; - it++; - } else { - different = true; - it = sameHandCardsValueInt.erase(it); - } - } - if(different) { - handName += ", second card " + translateCardsValueCode(myCardsValueInt).at(2); - } - // 2.there are still same hands - if(equal) { - different = false; - equal = false; - // second kicker? - for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { - if(((*it)/100) == (myCardsValueInt/100)) { - equal = true; - it++; - } else { - different = true; - it = sameHandCardsValueInt.erase(it); - } - } - if(different) { - handName += ", third card " + translateCardsValueCode(myCardsValueInt).at(3); - } - // 3.there are still same hands - if(equal) { - different = false; - equal = false; - // third kicker? - for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { - if(((*it)/10) == (myCardsValueInt/10)) { - equal = true; - it++; - } else { - different = true; - it = sameHandCardsValueInt.erase(it); - } - } - if(different) { - handName += ", fourth card " + translateCardsValueCode(myCardsValueInt).at(4); - } - // 4.there are still same hands - if(equal) { - different = false; - equal = false; - // third kicker? - for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { - if((*it) == myCardsValueInt) { - equal = true; - it++; - } else { - different = true; - it = sameHandCardsValueInt.erase(it); - } - } - if(different) { - handName += ", fifth card " + translateCardsValueCode(myCardsValueInt).at(5); - } - } - } - } - } + // 1.same hands existing + if(!(sameHandCardsValueInt.empty())) { + // first kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if(((*it)/10000) == (myCardsValueInt/10000)) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", second card " + translateCardsValueCode(myCardsValueInt).at(2); + } + // 2.there are still same hands + if(equal) { + different = false; + equal = false; + // second kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if(((*it)/100) == (myCardsValueInt/100)) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", third card " + translateCardsValueCode(myCardsValueInt).at(3); + } + // 3.there are still same hands + if(equal) { + different = false; + equal = false; + // third kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if(((*it)/10) == (myCardsValueInt/10)) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", fourth card " + translateCardsValueCode(myCardsValueInt).at(4); + } + // 4.there are still same hands + if(equal) { + different = false; + equal = false; + // third kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if((*it) == myCardsValueInt) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", fifth card " + translateCardsValueCode(myCardsValueInt).at(5); + } + } + } + } + } - } - break; - default: {} - } + } + break; + default: {} + } - return handName; + return handName; } void Log::writeLogFileStream(QString streamString) { - if(myHtmlLogFile) { - if(myHtmlLogFile->open( QIODevice::ReadWrite )) { - QTextStream stream( myHtmlLogFile ); - stream.readAll(); - stream << streamString; - myHtmlLogFile->close(); - } - else { cout << "Could not open log-file to write log-messages!" << endl; } - } - else { cout << "Could not find log-file to write log-messages!" << endl; } + if(myHtmlLogFile) { + if(myHtmlLogFile->open( QIODevice::ReadWrite )) { + QTextStream stream( myHtmlLogFile ); + stream.readAll(); + stream << streamString; + myHtmlLogFile->close(); + } + else { cout << "Could not open log-file to write log-messages!" << endl; } + } + else { cout << "Could not find log-file to write log-messages!" << endl; } } void Log::flushLogAtHand() { - if(myConfig->readConfigInt("LogOnOff")) { - if(myConfig->readConfigInt("LogInterval") < 2) { - // write for log after every action and after every hand - writeLogFileStream(logFileStreamString); - logFileStreamString = ""; - } - } + if(myConfig->readConfigInt("LogOnOff")) { + if(myConfig->readConfigInt("LogInterval") < 2) { + // write for log after every action and after every hand + writeLogFileStream(logFileStreamString); + logFileStreamString = ""; + } + } } void Log::flushLogAtGame(int gameID) { - if(myConfig->readConfigInt("LogOnOff")) { + if(myConfig->readConfigInt("LogOnOff")) { // write for log after every game - if(gameID > lastGameID) { - writeLogFileStream(logFileStreamString); - logFileStreamString = ""; - lastGameID = gameID; - } - } + if(gameID > lastGameID) { + writeLogFileStream(logFileStreamString); + logFileStreamString = ""; + lastGameID = gameID; + } + } } diff --git a/src/gui/qt/gametable/log/log.h b/src/gui/qt/gametable/log/log.h index a6861d8b..804bb0ed 100755 --- a/src/gui/qt/gametable/log/log.h +++ b/src/gui/qt/gametable/log/log.h @@ -40,6 +40,8 @@ public: ~Log(); public slots: + + bool closeLogDb(); void logPlayerActionMsg(QString playerName, int playerID, int action, int setValue); void logNewGameHandMsg(int gameID, int handID); void logNewBlindsSetsMsg(int sbSet, int bbSet, QString sbName, QString bbName); diff --git a/src/gui/qt/guiwrapper.h b/src/gui/qt/guiwrapper.h index c20ef90e..63fa11b6 100644 --- a/src/gui/qt/guiwrapper.h +++ b/src/gui/qt/guiwrapper.h @@ -43,7 +43,8 @@ public: boost::shared_ptr getSession(); void setSession(boost::shared_ptr session); - gameTableImpl* getMyW() const { return myW; } + gameTableImpl* getMyW() const { return myW; } + Log* getMyLog() const { return myLog; } void refreshSet() const; void refreshCash() const; diff --git a/src/gui/qt/startwindow/startwindowimpl.cpp b/src/gui/qt/startwindow/startwindowimpl.cpp index 4ed48807..c67540fd 100644 --- a/src/gui/qt/startwindow/startwindowimpl.cpp +++ b/src/gui/qt/startwindow/startwindowimpl.cpp @@ -26,6 +26,7 @@ #include #include "tools.h" +#include "log.h" #include "session.h" #include "game.h" #include "guiwrapper.h" @@ -68,6 +69,7 @@ startWindowImpl::startWindowImpl(ConfigFile *c) // #endif setupUi(this); this->setWindowTitle(QString(tr("PokerTH %1").arg(POKERTH_BETA_RELEASE_STRING))); + this->installEventFilter(this); //Widgets Grafiken per Stylesheets setzen QString myAppDataPath = QString::fromUtf8(myConfig->readConfigString("AppDataDir").c_str()); @@ -936,3 +938,17 @@ QString startWindowImpl::checkForFirstStartAfterUpdated() return QString(); } + +bool startWindowImpl::eventFilter(QObject *obj, QEvent *event) +{ + + if (event->type() == QEvent::Close) { + event->ignore(); + myGuiInterface->getMyLog()->closeLogDb(); + return QMainWindow::eventFilter(obj, event); + } + else { + // pass the event on to the parent class + return QMainWindow::eventFilter(obj, event); + } +} diff --git a/src/gui/qt/startwindow/startwindowimpl.h b/src/gui/qt/startwindow/startwindowimpl.h index fabd8ffb..525302fb 100644 --- a/src/gui/qt/startwindow/startwindowimpl.h +++ b/src/gui/qt/startwindow/startwindowimpl.h @@ -58,6 +58,7 @@ public: connectToServerDialogImpl* getMyConnectToServerDialog() const { return myConnectToServerDialog; } // void keyPressEvent( QKeyEvent *); + bool eventFilter(QObject *obj, QEvent *event); signals: void signalShowClientDialog();