diff --git a/src/config/configfile.cpp b/src/config/configfile.cpp index d89a9b9b..a50490ee 100644 --- a/src/config/configfile.cpp +++ b/src/config/configfile.cpp @@ -34,23 +34,34 @@ using namespace std; ConfigFile::ConfigFile() { // !!!! Revisionsnummer der Configdefaults !!!!! - configRev = 3; + configRev = 4; // Pfad und Dateinamen setzen #ifdef _WIN32 const char *appDataPath = getenv("AppData"); if (appDataPath) - { + { //Programmordner erstellen configFileName = appDataPath; configFileName += "\\pokerth\\"; mkdir(configFileName.c_str()); + //Log-File Ordner auch erstellen + logDir = configFileName; + logDir += "\\log-files\\"; + mkdir(logDir.c_str()); + } #else - // hier Linux/Mac Code zur Basispfadbestimmung, z.B. - string homePath = getenv("HOME"); - configFileName = homePath+"/.pokerth/"; - mkdir(configFileName.c_str(), MODUS) ; - // wenn nicht existiert, erzeugen! + //Programmordner erstellen + const char *homePath = getenv("HOME"); + if(homePath) { + configFileName = homePath; + configFileName += "/.pokerth/"; + mkdir(configFileName.c_str(), MODUS) ; + //Log-File Ordner auch erstellen + logDir = configFileName; + logDir += "/log-files/"; + mkdir(logDir.c_str(), MODUS); + } #endif configFileName += "config.xml"; @@ -147,7 +158,13 @@ void ConfigFile::createDefaultConfig() { TiXmlElement * confElement18 = new TiXmlElement( "FlipsideOwnFile" ); config->LinkEndChild( confElement18 ); confElement18->SetAttribute("value", ""); - + TiXmlElement * confElement20 = new TiXmlElement( "LogDir" ); + config->LinkEndChild( confElement20 ); + confElement20->SetAttribute("value", logDir); + TiXmlElement * confElement21 = new TiXmlElement( "LogStoreDuration" ); + config->LinkEndChild( confElement21 ); + confElement21->SetAttribute("value", 2); + doc.SaveFile( configFileName ); } diff --git a/src/config/configfile.h b/src/config/configfile.h index 966e135b..196c3a26 100644 --- a/src/config/configfile.h +++ b/src/config/configfile.h @@ -40,6 +40,7 @@ public: private: std::string configFileName; + std::string logDir; int configRev; }; diff --git a/src/gui/qt/settingsdialog.ui b/src/gui/qt/settingsdialog.ui index 8a3d420b..e051f66e 100644 --- a/src/gui/qt/settingsdialog.ui +++ b/src/gui/qt/settingsdialog.ui @@ -6,7 +6,7 @@ 0 0 580 - 342 + 349 @@ -435,7 +435,56 @@ p, li { white-space: pre-wrap; } 6 - + + + + 0 + + + 6 + + + + + + 99 + 16777215 + + + + Store Log Files for + + + + + + + + 50 + 16777215 + + + + 7 + + + 1 + + + 2 + + + + + + + Day(s) + + + + + + Qt::Vertical @@ -448,13 +497,6 @@ p, li { white-space: pre-wrap; } - - - - Qt::Horizontal - - - @@ -468,6 +510,52 @@ p, li { white-space: pre-wrap; } + + + + Qt::Horizontal + + + + + + + 0 + + + 0 + + + + + Log File Directory: + + + + + + + + + + + 27 + 23 + + + + + 27 + 23 + + + + :/graphics/graphics/fileopen16.png + + + + + diff --git a/src/gui/qt/settingsdialogimpl.cpp b/src/gui/qt/settingsdialogimpl.cpp index f4513735..002583dc 100644 --- a/src/gui/qt/settingsdialogimpl.cpp +++ b/src/gui/qt/settingsdialogimpl.cpp @@ -61,6 +61,10 @@ settingsDialogImpl::settingsDialogImpl(QWidget *parent) pushButton_openFlipsidePicture->setEnabled(TRUE); } lineEdit_OwnFlipsideFilename->setText(QString::fromStdString(myConfig.readConfigString("FlipsideOwnFile", ""))); + + //Log + lineEdit_logDir->setText(QString::fromStdString(myConfig.readConfigString("LogDir", ""))); + spinBox_logStoreDuration->setValue(myConfig.readConfigInt("LogStoreDuration", 2)); connect( buttonBox, SIGNAL( accepted() ), this, SLOT( isAccepted() ) ); connect( lineEdit_humanPlayerName, SIGNAL( textChanged( const QString &) ), this, SLOT( playerNickChanged() ) ); @@ -69,6 +73,7 @@ settingsDialogImpl::settingsDialogImpl(QWidget *parent) connect( lineEdit_Opponent3Name, SIGNAL( textChanged(const QString &) ), this, SLOT( playerNickChanged() ) ); connect( lineEdit_Opponent4Name, SIGNAL( textChanged(const QString &) ), this, SLOT( playerNickChanged() ) ); connect( pushButton_openFlipsidePicture, SIGNAL( clicked() ), this, SLOT( setFlipsidePicFileName()) ); + connect( pushButton_openLogDir, SIGNAL( clicked() ), this, SLOT( setLogDir()) ); } @@ -104,6 +109,10 @@ void settingsDialogImpl::isAccepted() { myConfig.writeConfigInt("FlipsideOwn", radioButton_flipsideOwn->isChecked()); myConfig.writeConfigString("FlipsideOwnFile", lineEdit_OwnFlipsideFilename->text().toStdString()); +// Log + myConfig.writeConfigString("LogDir", lineEdit_logDir->text().toStdString()); + myConfig.writeConfigInt("LogStoreDuration", spinBox_logStoreDuration->value()); + } void settingsDialogImpl::setFlipsidePicFileName() @@ -115,3 +124,13 @@ void settingsDialogImpl::setFlipsidePicFileName() if (!fileName.isEmpty()) lineEdit_OwnFlipsideFilename->setText(fileName); } + +void settingsDialogImpl::setLogDir() + { + QString dir = QFileDialog::getExistingDirectory(this, tr("Open Directory"), + QDir::homePath(), + QFileDialog::ShowDirsOnly + | QFileDialog::DontResolveSymlinks); + + if (!dir.isEmpty()) lineEdit_logDir->setText(dir); + } diff --git a/src/gui/qt/settingsdialogimpl.h b/src/gui/qt/settingsdialogimpl.h index bcadec17..0102ca6c 100644 --- a/src/gui/qt/settingsdialogimpl.h +++ b/src/gui/qt/settingsdialogimpl.h @@ -39,6 +39,7 @@ public slots: void isAccepted(); void playerNickChanged() { setPlayerNickIsChanged(TRUE); }; void setFlipsidePicFileName(); + void setLogDir(); private: