From 10f94f27492b290ba5f2da3442f40c6153c861d6 Mon Sep 17 00:00:00 2001 From: floty Date: Thu, 29 Nov 2012 20:52:51 +0100 Subject: [PATCH] provide functions for enhanced log preview --- src/gui/qt/gametable/log/guilog.cpp | 56 ++++++++++++++++++++++++++--- src/gui/qt/gametable/log/guilog.h | 5 +-- 2 files changed, 55 insertions(+), 6 deletions(-) diff --git a/src/gui/qt/gametable/log/guilog.cpp b/src/gui/qt/gametable/log/guilog.cpp index 83c97f5d..30f50777 100644 --- a/src/gui/qt/gametable/log/guilog.cpp +++ b/src/gui/qt/gametable/log/guilog.cpp @@ -735,15 +735,15 @@ void guiLog::exportLogPdbToTxt(QString fileStringPdb, QString exportFileString) } -void guiLog::showLog(QString fileStringPdb, QTextBrowser *tb_tmp) +void guiLog::showLog(QString fileStringPdb, QTextBrowser *tb_tmp, int uniqueGameID) { tb = tb_tmp; tb->clear(); - exportLog(fileStringPdb,3); + exportLog(fileStringPdb,3,uniqueGameID); } -int guiLog::exportLog(QString fileStringPdb,int modus) +int guiLog::exportLog(QString fileStringPdb,int modus,int uniqueGameID_req) { bool neu = false; @@ -857,7 +857,11 @@ int guiLog::exportLog(QString fileStringPdb,int modus) log_string = ""; // read game - sql = "SELECT * FROM Game"; + if(uniqueGameID_req > 0) { + sql = "SELECT * FROM Game WHERE UniqueGameID=" + boost::lexical_cast(uniqueGameID_req); + } else { + sql = "SELECT * FROM Game"; + } if(sqlite3_get_table(mySqliteLogDb,sql.c_str(),&results.result_Game,&nRow_Game,&nCol_Game,&errmsg) != SQLITE_OK) { cout << "Error in statement: " << sql.c_str() << "[" << errmsg << "]." << endl; cleanUp(results, mySqliteLogDb); @@ -1492,6 +1496,50 @@ int guiLog::exportLog(QString fileStringPdb,int modus) } +QList guiLog::getGameList(QString fileStringPdb) +{ + + result_struct results; + results.result_Session = 0; + results.result_Game = 0; + results.result_Player = 0; + results.result_Hand = 0; + results.result_Hand_ID = 0; + results.result_Action = 0; + + int nRow_Game=0; + int nCol_Game=0; + char *errmsg = 0; + int game_ctr = 0; + int i = 0; + + QList gameList; + + // open sqlite log-db + sqlite3 *mySqliteLogDb; + sqlite3_open(fileStringPdb.toStdString().c_str(), &mySqliteLogDb); + if( mySqliteLogDb != 0 ) { + + string sql = "SELECT * FROM Game"; + if(sqlite3_get_table(mySqliteLogDb,sql.c_str(),&results.result_Game,&nRow_Game,&nCol_Game,&errmsg) != SQLITE_OK) { + cout << "Error in statement: " << sql.c_str() << "[" << errmsg << "]." << endl; + } else { + for(game_ctr=1; game_ctr<=nRow_Game; game_ctr++) { + for(i=0; i(results.result_Game[i]) == "UniqueGameID") { + gameList.append(boost::lexical_cast(results.result_Game[i+nCol_Game*game_ctr])); + } + } + } + } + } + + cleanUp(results, mySqliteLogDb); + + return gameList; + +} + void guiLog::cleanUp(result_struct &results, sqlite3 *mySqliteLogDb) { diff --git a/src/gui/qt/gametable/log/guilog.h b/src/gui/qt/gametable/log/guilog.h index 0099ef04..e81c2e18 100644 --- a/src/gui/qt/gametable/log/guilog.h +++ b/src/gui/qt/gametable/log/guilog.h @@ -67,8 +67,9 @@ public slots: void flushLogAtHand(); void exportLogPdbToHtml(QString fileStringPdb, QString exportFileString); void exportLogPdbToTxt(QString fileStringPdb, QString exportFileString); - void showLog(QString fileStringPdb, QTextBrowser *tb); - int exportLog(QString fileStringPdb, int modus); + void showLog(QString fileStringPdb, QTextBrowser *tb, int uniqueGameID = 0); + int exportLog(QString fileStringPdb, int modus, int uniqueGameID = 0); + QList getGameList(QString fileStringPdb); public: QStringList translateCardCode(int cardCode);