From 272cd1408d5d613ebff01299a8d2d2b82d4b51a8 Mon Sep 17 00:00:00 2001 From: doitux Date: Sat, 26 Nov 2011 21:07:22 +0000 Subject: [PATCH] gui preperation for log export and live preview --- src/game_defs.h | 2 +- src/gui/qt/gametable/log/guilog.cpp | 15 +- src/gui/qt/gametable/log/guilog.h | 7 +- src/gui/qt/guiwrapper.cpp | 1 + src/gui/qt/settingsdialog.ui | 148 +++++++++++------- .../qt/settingsdialog/settingsdialogimpl.cpp | 31 ++++ .../qt/settingsdialog/settingsdialogimpl.h | 7 + src/gui/qt/startwindow/startwindowimpl.cpp | 2 + src/gui/qt/startwindow/startwindowimpl.h | 6 + 9 files changed, 156 insertions(+), 63 deletions(-) diff --git a/src/game_defs.h b/src/game_defs.h index 5a4f68c0..8002869d 100644 --- a/src/game_defs.h +++ b/src/game_defs.h @@ -25,7 +25,7 @@ #define MAX_GUI_SPEED 11 #define DEBUG_MODE 0 -#define SQLITE_LOG 0 +#define SQLITE_LOG 1 #define HTML_LOG 1 #define POKERTH_VERSION_MAJOR 0 diff --git a/src/gui/qt/gametable/log/guilog.cpp b/src/gui/qt/gametable/log/guilog.cpp index 30ec3d5f..0cabece4 100644 --- a/src/gui/qt/gametable/log/guilog.cpp +++ b/src/gui/qt/gametable/log/guilog.cpp @@ -580,23 +580,26 @@ void guiLog::flushLogAtGame(int gameID) } } -void guiLog::exportLogPdbToHtml(string fileString) +void guiLog::exportLogPdbToHtml(QString fileString) { - cout << "Export pdb to html" << endl; + qDebug() << "Export pdb to html" << fileString; } -void guiLog::exportLogPdbToTxt(string fileString) +void guiLog::exportLogPdbToTxt(QString fileString) { - cout << "Export pdb to txt" << endl; + qDebug() << "Export pdb to txt" << fileString; } -void guiLog::showLog(string fileString) +void guiLog::showLog(QString fileString, QTextBrowser *tb) { - cout << "show Log" << endl; + tb->clear(); + for(int i=0; i<5; i++) { + tb->append(fileString); + } } diff --git a/src/gui/qt/gametable/log/guilog.h b/src/gui/qt/gametable/log/guilog.h index ae878b12..0c60a0ac 100644 --- a/src/gui/qt/gametable/log/guilog.h +++ b/src/gui/qt/gametable/log/guilog.h @@ -26,6 +26,7 @@ #include #include +#include #include class gameTableImpl; @@ -55,9 +56,9 @@ public slots: void logPlayerWinGame(QString playerName, int gameID); void flushLogAtGame(int gameID); void flushLogAtHand(); - void exportLogPdbToHtml(std::string fileString); - void exportLogPdbToTxt(std::string fileString); - void showLog(std::string fileString); + void exportLogPdbToHtml(QString fileString); + void exportLogPdbToTxt(QString fileString); + void showLog(QString fileString, QTextBrowser* tb); public: diff --git a/src/gui/qt/guiwrapper.cpp b/src/gui/qt/guiwrapper.cpp index 06a8cdfa..85ef4f6a 100644 --- a/src/gui/qt/guiwrapper.cpp +++ b/src/gui/qt/guiwrapper.cpp @@ -34,6 +34,7 @@ GuiWrapper::GuiWrapper(ConfigFile *c, startWindowImpl *s) : myGuiLog(NULL), myW( myW = new gameTableImpl(myConfig); myGuiLog = new guiLog(myW, myConfig); + myStartWindow->setGuiLog(myGuiLog); myW->setStartWindow(myStartWindow); } diff --git a/src/gui/qt/settingsdialog.ui b/src/gui/qt/settingsdialog.ui index 821bc661..83cd74c7 100644 --- a/src/gui/qt/settingsdialog.ui +++ b/src/gui/qt/settingsdialog.ui @@ -3356,6 +3356,23 @@ p, li { white-space: pre-wrap; } 6 + + + + QLabel { font-weight: bold; } + + + Log Messages + + + + + + + Qt::Horizontal + + + @@ -3370,8 +3387,14 @@ p, li { white-space: pre-wrap; } + + + 0 + 0 + + - Store log files for + Store log files for: spinBox_logStoreDuration @@ -3380,6 +3403,12 @@ p, li { white-space: pre-wrap; } + + + 0 + 0 + + Day(s) @@ -3396,6 +3425,12 @@ p, li { white-space: pre-wrap; } + + + 0 + 0 + + Write log after every: @@ -3434,6 +3469,12 @@ p, li { white-space: pre-wrap; } + + + 0 + 0 + + Log File Directory: @@ -3472,12 +3513,64 @@ p, li { white-space: pre-wrap; } + + + + + + + 0 + 0 + + + + true + + + 5 + + + false + + + true + + + + Log File + + + + + + + + + + Preview: + + + + + + + + 0 + 0 + + + + + + + + - Export as html + Export as HTML @@ -3520,60 +3613,9 @@ p, li { white-space: pre-wrap; } - - - - true - - - 5 - - - false - - - true - - - - Log File - - - - - - - - QLabel { font-weight: bold; } - - - Log Messages - - - - - - - Qt::Horizontal - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - diff --git a/src/gui/qt/settingsdialog/settingsdialogimpl.cpp b/src/gui/qt/settingsdialog/settingsdialogimpl.cpp index ce7c2cb3..5c58365f 100644 --- a/src/gui/qt/settingsdialog/settingsdialogimpl.cpp +++ b/src/gui/qt/settingsdialog/settingsdialogimpl.cpp @@ -22,6 +22,7 @@ #include "carddeckstylereader.h" #include "configfile.h" +#include "guilog.h" #include enum StyleType { POKERTH_DISTRIBUTED_STYLE, ADDITIONAL_STYLE }; @@ -135,6 +136,7 @@ settingsDialogImpl::settingsDialogImpl(QWidget *parent, ConfigFile *c, selectAva connect( pushButton_exportLogHtml, SIGNAL(clicked()), this, SLOT (exportLogToHtml())); connect( pushButton_exportLogTxt, SIGNAL(clicked()), this, SLOT (exportLogToTxt())); connect( pushButton_saveLogAs, SIGNAL(clicked()), this, SLOT (saveLogFileAs())); + connect( treeWidget_logFiles, SIGNAL(itemSelectionChanged()), this, SLOT(showLogFilePreview())); } @@ -1309,12 +1311,32 @@ void settingsDialogImpl::deleteLogFile() void settingsDialogImpl::exportLogToHtml() { + QTreeWidgetItem* selectedItem = treeWidget_logFiles->currentItem(); + if(selectedItem) { + QString fileName = QFileDialog::getSaveFileName(this, tr("Export PokerTH log file to HTML"), + QDir::homePath()+"/"+selectedItem->text(0), + tr("PokerTH HTML log (*.html)")); + + if(!fileName.isEmpty()) { + myGuiLog->exportLogPdbToHtml(fileName); + } + } } void settingsDialogImpl::exportLogToTxt() { + QTreeWidgetItem* selectedItem = treeWidget_logFiles->currentItem(); + if(selectedItem) { + QString fileName = QFileDialog::getSaveFileName(this, tr("Export PokerTH log file to plain text"), + QDir::homePath()+"/"+selectedItem->text(0), + tr("PokerTH plain text log (*.txt)")); + + if(!fileName.isEmpty()) { + myGuiLog->exportLogPdbToTxt(fileName); + } + } } void settingsDialogImpl::saveLogFileAs() @@ -1331,3 +1353,12 @@ void settingsDialogImpl::saveLogFileAs() } } } + +void settingsDialogImpl::showLogFilePreview() +{ + QTreeWidgetItem* selectedItem = treeWidget_logFiles->currentItem(); + + if(selectedItem) { + myGuiLog->showLog(selectedItem->data(0, Qt::UserRole).toString(), textBrowser_logPreview); + } +} diff --git a/src/gui/qt/settingsdialog/settingsdialogimpl.h b/src/gui/qt/settingsdialog/settingsdialogimpl.h index c4e00c04..a56b14ac 100644 --- a/src/gui/qt/settingsdialog/settingsdialogimpl.h +++ b/src/gui/qt/settingsdialog/settingsdialogimpl.h @@ -33,6 +33,7 @@ class ConfigFile; class selectAvatarDialogImpl; class manualBlindsOrderDialogImpl; class MyStyleListItem; +class guiLog; class settingsDialogImpl: public QDialog, public Ui::settingsDialog { @@ -56,6 +57,10 @@ public: return settingsCorrect; } + void setGuiLog(guiLog* l) { + myGuiLog = l; + } + public slots: void isAccepted(); @@ -108,6 +113,7 @@ public slots: void exportLogToHtml(); void exportLogToTxt(); void saveLogFileAs(); + void showLogFilePreview(); private: @@ -128,6 +134,7 @@ private: std::list myCardDeckStylesList; ConfigFile* myConfig; + guiLog* myGuiLog; selectAvatarDialogImpl *mySelectAvatarDialogImpl; manualBlindsOrderDialogImpl *myManualBlindsOrderDialog; diff --git a/src/gui/qt/startwindow/startwindowimpl.cpp b/src/gui/qt/startwindow/startwindowimpl.cpp index 77ab48f8..f3d50bef 100644 --- a/src/gui/qt/startwindow/startwindowimpl.cpp +++ b/src/gui/qt/startwindow/startwindowimpl.cpp @@ -42,6 +42,7 @@ #include "chattools.h" #include "serverlistdialogimpl.h" #include "internetgamelogindialogimpl.h" +#include "guilog.h" using namespace std; @@ -85,6 +86,7 @@ startWindowImpl::startWindowImpl(ConfigFile *c) myStartNetworkGameDialog->setMyW(myGuiInterface->getMyW()); myGameLobbyDialog->setMyW(myGuiInterface->getMyW()); + mySettingsDialog->setGuiLog(myGuiLog); myTimeoutDialog = new timeoutMsgBoxImpl(this); myServerListDialog = new serverListDialogImpl(this, this, myConfig); diff --git a/src/gui/qt/startwindow/startwindowimpl.h b/src/gui/qt/startwindow/startwindowimpl.h index 8afa65ad..7711ea66 100644 --- a/src/gui/qt/startwindow/startwindowimpl.h +++ b/src/gui/qt/startwindow/startwindowimpl.h @@ -50,6 +50,7 @@ class gameLobbyDialogImpl; class timeoutMsgBoxImpl; class serverListDialogImpl; class internetGameLoginDialogImpl; +class guiLog; class startWindowImpl: public QMainWindow, public Ui::startWindow { @@ -72,6 +73,10 @@ public: return myConnectToServerDialog; } + void setGuiLog(guiLog* l) { + myGuiLog = l; + } + // void keyPressEvent( QKeyEvent *); bool eventFilter(QObject *obj, QEvent *event); @@ -149,6 +154,7 @@ public slots: private: ConfigFile *myConfig; + guiLog *myGuiLog; boost::shared_ptr myGuiInterface; boost::shared_ptr mySession;