qt: Save settings to settings.ini
Do not resetAiPlayers when autoRestart.
This commit is contained in:
parent
c7a6a58c91
commit
8ae49592c7
|
@ -342,6 +342,9 @@ plyInfo.dat
|
|||
preCalculatedVars.dat
|
||||
shortKnotValue.dat
|
||||
|
||||
# Settings
|
||||
settings.ini
|
||||
|
||||
# Executable files
|
||||
src/fishmill
|
||||
|
||||
|
|
|
@ -70,6 +70,11 @@ public:
|
|||
shufflingEnabled = enabled;
|
||||
}
|
||||
|
||||
bool getLearnEndgameEnabled() const noexcept
|
||||
{
|
||||
return learnEndgame;
|
||||
}
|
||||
|
||||
void setLearnEndgameEnabled(bool enabled) noexcept
|
||||
{
|
||||
#ifdef ENDGAME_LEARNING_FORCE
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
#include <QPropertyAnimation>
|
||||
#include <QParallelAnimationGroup>
|
||||
#include <QDir>
|
||||
#include <QFileInfo>
|
||||
#include <QThread>
|
||||
#include <iomanip>
|
||||
|
||||
|
@ -109,6 +110,35 @@ Game::Game(
|
|||
#endif
|
||||
|
||||
moveHistory.reserve(256);
|
||||
|
||||
loadSettings();
|
||||
}
|
||||
|
||||
void Game::loadSettings()
|
||||
{
|
||||
bool empty = false;
|
||||
|
||||
QFileInfo file(SETTINGS_FILE);
|
||||
if (!file.exists()) {
|
||||
cout << SETTINGS_FILE.toStdString() << " is not exists, create it." << endl;
|
||||
empty = true;
|
||||
}
|
||||
|
||||
settings = new QSettings(SETTINGS_FILE, QSettings::IniFormat);
|
||||
|
||||
setEngineBlack(empty? false : settings->value("Options/blackIsAiPlayer").toBool());
|
||||
setEngineWhite(empty ? true : settings->value("Options/whiteIsAiPlayer").toBool());
|
||||
setSound(empty ? true : settings->value("Options/Sound").toBool());
|
||||
setShuffling(empty ? true : settings->value("Options/Shuffling").toBool());
|
||||
setRule(empty ? DEFAULT_RULE_NUMBER : settings->value("Options/ruleNo").toInt());
|
||||
setResignIfMostLose(empty ? false : settings->value("Options/ResignIfMostLose").toBool());
|
||||
setOpeningBook(empty ? false : settings->value("Options/OpeningBook").toBool());
|
||||
setLearnEndgame(empty ? false : settings->value("Options/LearnEndgameEnabled").toBool());
|
||||
setIDS(empty ? false : settings->value("Options/IDS").toBool());
|
||||
setDepthExtension(empty ? true : settings->value("Options/DepthExtension").toBool());
|
||||
setAutoRestart(empty ? false : settings->value("Options/AutoRestart").toBool());
|
||||
setAutoChangeFirstMove(empty ? false : settings->value("Options/AutoChangeFirstMove").toBool());
|
||||
setAnimation(empty ? true : settings->value("Options/Animation").toBool());
|
||||
}
|
||||
|
||||
Game::~Game()
|
||||
|
@ -126,6 +156,9 @@ Game::~Game()
|
|||
#endif /* ENDGAME_LEARNING */
|
||||
|
||||
moveHistory.clear();
|
||||
|
||||
delete settings;
|
||||
settings = nullptr;
|
||||
}
|
||||
|
||||
const map<int, QStringList> Game::getActions()
|
||||
|
@ -205,7 +238,7 @@ void Game::gameReset()
|
|||
// Stop threads
|
||||
if (!gameOptions.getAutoRestart()) {
|
||||
pauseThreads();
|
||||
resetAiPlayers();
|
||||
//resetAiPlayers();
|
||||
}
|
||||
|
||||
// Clear pieces
|
||||
|
@ -353,6 +386,8 @@ void Game::setRule(int ruleNo, int stepLimited /*= -1*/, int timeLimited /*= -1*
|
|||
|
||||
// Reset game
|
||||
gameReset();
|
||||
|
||||
settings->setValue("Options/ruleNo", ruleNo);
|
||||
}
|
||||
|
||||
void Game::setEngine(Color color, bool enabled)
|
||||
|
@ -371,11 +406,13 @@ void Game::setEngine(Color color, bool enabled)
|
|||
void Game::setEngineBlack(bool enabled)
|
||||
{
|
||||
setEngine(BLACK, enabled);
|
||||
settings->setValue("Options/blackIsAiPlayer", enabled);
|
||||
}
|
||||
|
||||
void Game::setEngineWhite(bool enabled)
|
||||
{
|
||||
setEngine(WHITE, enabled);
|
||||
settings->setValue("Options/whiteIsAiPlayer", enabled);
|
||||
}
|
||||
|
||||
void Game::setAiDepthTime(int time1, int time2)
|
||||
|
@ -403,11 +440,14 @@ void Game::setAnimation(bool arg) noexcept
|
|||
durationTime = 500;
|
||||
else
|
||||
durationTime = 0;
|
||||
|
||||
settings->setValue("Options/Animation", arg);
|
||||
}
|
||||
|
||||
void Game::setSound(bool arg) noexcept
|
||||
{
|
||||
hasSound = arg;
|
||||
settings->setValue("Options/Sound", arg);
|
||||
}
|
||||
|
||||
void Game::playSound(GameSound soundType, Color c)
|
||||
|
@ -515,26 +555,31 @@ void Game::playSound(GameSound soundType, Color c)
|
|||
void Game::setResignIfMostLose(bool enabled)
|
||||
{
|
||||
gameOptions.setResignIfMostLose(enabled);
|
||||
settings->setValue("Options/ResignIfMostLose", enabled);
|
||||
}
|
||||
|
||||
void Game::setAutoRestart(bool enabled)
|
||||
{
|
||||
gameOptions.setAutoRestart(enabled);
|
||||
settings->setValue("Options/AutoRestart", enabled);
|
||||
}
|
||||
|
||||
void Game::setAutoChangeFirstMove(bool enabled)
|
||||
{
|
||||
gameOptions.setAutoChangeFirstMove(enabled);
|
||||
settings->setValue("Options/AutoChangeFirstMove", enabled);
|
||||
}
|
||||
|
||||
void Game::setShuffling(bool enabled)
|
||||
{
|
||||
gameOptions.setShufflingEnabled(enabled);
|
||||
settings->setValue("Options/Shuffling", enabled);
|
||||
}
|
||||
|
||||
void Game::setLearnEndgame(bool enabled)
|
||||
{
|
||||
gameOptions.setLearnEndgameEnabled(enabled);
|
||||
settings->setValue("Options/LearnEndgameEnabled", enabled);
|
||||
|
||||
#ifdef ENDGAME_LEARNING
|
||||
if (gameOptions.isEndgameLearningEnabled()) {
|
||||
|
@ -546,18 +591,21 @@ void Game::setLearnEndgame(bool enabled)
|
|||
void Game::setIDS(bool enabled)
|
||||
{
|
||||
gameOptions.setIDSEnabled(enabled);
|
||||
settings->setValue("Options/IDS", enabled);
|
||||
}
|
||||
|
||||
// DepthExtension
|
||||
void Game::setDepthExtension(bool enabled)
|
||||
{
|
||||
gameOptions.setDepthExtension(enabled);
|
||||
settings->setValue("Options/DepthExtension", enabled);
|
||||
}
|
||||
|
||||
// OpeningBook
|
||||
void Game::setOpeningBook(bool enabled)
|
||||
{
|
||||
gameOptions.setOpeningBook(enabled);
|
||||
settings->setValue("Options/OpeningBook", enabled);
|
||||
}
|
||||
|
||||
void Game::flip()
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
#include <QTextStream>
|
||||
#include <QStringListModel>
|
||||
#include <QModelIndex>
|
||||
#include <QSettings>
|
||||
|
||||
#include "position.h"
|
||||
#include "gamescene.h"
|
||||
|
@ -411,6 +412,20 @@ private:
|
|||
bool isInverted;
|
||||
|
||||
public:
|
||||
const QString SETTINGS_FILE = "settings.ini";
|
||||
QSettings *settings {nullptr};
|
||||
|
||||
void loadSettings();
|
||||
|
||||
bool soundEnabled()
|
||||
{
|
||||
return hasSound;
|
||||
}
|
||||
|
||||
bool animationEnabled()
|
||||
{
|
||||
return hasAnimation;
|
||||
}
|
||||
|
||||
// True when the computer takes the lead
|
||||
bool isAiPlayer[COLOR_NB];
|
||||
|
|
|
@ -306,10 +306,8 @@ void MillGameWindow::initialize()
|
|||
connect(game, SIGNAL(statusBarChanged(QString)),
|
||||
statusBarlabel, SLOT(setText(QString)));
|
||||
|
||||
ruleNo = DEFAULT_RULE_NUMBER;
|
||||
ruleActionList[ruleNo]->setChecked(true);
|
||||
|
||||
game->setRule(ruleNo);
|
||||
ruleActionList[game->getRuleIndex()]->setChecked(true);
|
||||
game->setRule(game->getRuleIndex());
|
||||
|
||||
// Update rule display
|
||||
ruleInfo();
|
||||
|
@ -391,7 +389,19 @@ void MillGameWindow::initialize()
|
|||
connect(ui.pushButton_option, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(ctxMenu(const QPoint &)));
|
||||
#endif /* MOBILE_APP_UI */
|
||||
|
||||
ui.actionEngine2_R->setChecked(true);
|
||||
ui.actionEngine1_T->setChecked(game->isAiPlayer[BLACK]);
|
||||
ui.actionEngine2_R->setChecked(game->isAiPlayer[WHITE]);
|
||||
|
||||
ui.actionSound_S->setChecked(game->soundEnabled());
|
||||
ui.actionAnimation_A->setChecked(game->animationEnabled());
|
||||
|
||||
ui.actionShuffling_R->setChecked(gameOptions.getShufflingEnabled());
|
||||
ui.actionIDS_I->setChecked(gameOptions.getIDSEnabled());
|
||||
ui.actionDepthExtension_D->setChecked(gameOptions.getDepthExtension());
|
||||
ui.actionResignIfMostLose_G->setChecked(gameOptions.getResignIfMostLose());
|
||||
ui.actionAutoRestart_A->setChecked(gameOptions.getAutoRestart());
|
||||
ui.actionOpeningBook_O->setChecked(gameOptions.getOpeningBook());
|
||||
ui.actionLearnEndgame_E->setChecked(gameOptions.getLearnEndgameEnabled());
|
||||
}
|
||||
|
||||
#ifdef MOBILE_APP_UI
|
||||
|
|
Loading…
Reference in New Issue