summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--quacker/macondo.cpp10
-rw-r--r--quacker/macondo.h1
-rw-r--r--quacker/macondobackend.cpp4
-rw-r--r--quacker/quacker.cpp1
4 files changed, 11 insertions, 5 deletions
diff --git a/quacker/macondo.cpp b/quacker/macondo.cpp
index 3048195..a6d5d9d 100644
--- a/quacker/macondo.cpp
+++ b/quacker/macondo.cpp
@@ -21,7 +21,7 @@ Macondo::Macondo(Quackle::Game *game) : View() {
execPath += "/apps/macondo/macondo";
initOptions = std::make_unique<MacondoInitOptions>(execPath);
m_backend = new MacondoBackend(game, *initOptions);
- connect(m_backend, SIGNAL(gotMoves(const Quackle::MoveList &)), this, SLOT(gotMoves(const Quackle::MoveList &)));
+ connectBackendSignals();
m_solve = new QPushButton(tr("Solve"));
m_solve->setDisabled(true);
QGridLayout *layout = new QGridLayout(this);
@@ -70,9 +70,14 @@ void Macondo::solve() {
void Macondo::gameChanged(Quackle::Game *game) {
delete m_backend;
m_backend = new MacondoBackend(game, *initOptions);
+ connectBackendSignals();
m_game = game;
}
+void Macondo::connectBackendSignals() {
+ connect(m_backend, SIGNAL(gotMoves(const Quackle::MoveList &)), this, SLOT(gotMoves(const Quackle::MoveList &)));
+}
+
void Macondo::stop() {
m_backend->stop();
m_anyUpdates = false;
@@ -85,9 +90,10 @@ bool Macondo::useForSimulation() const {
}
void Macondo::gotMoves(const Quackle::MoveList &moves) {
- printf("aaa moves\n");
m_moves = moves;
m_anyUpdates = true;
+ if (moves.size() == 1)
+ emit setCandidateMove(&moves[0]);
}
void Macondo::positionChanged(const Quackle::GamePosition *position) {
diff --git a/quacker/macondo.h b/quacker/macondo.h
index 638456f..a95a5a7 100644
--- a/quacker/macondo.h
+++ b/quacker/macondo.h
@@ -39,6 +39,7 @@ public slots:
private slots:
void gotMoves(const Quackle::MoveList &moves);
private:
+ void connectBackendSignals();
void updateSolveButton();
QCheckBox *m_useMacondo;
QPushButton *m_solve;
diff --git a/quacker/macondobackend.cpp b/quacker/macondobackend.cpp
index 59db5cf..a82d115 100644
--- a/quacker/macondobackend.cpp
+++ b/quacker/macondobackend.cpp
@@ -74,7 +74,7 @@ static string trimLeft(const string &s) {
}
-MacondoBackend::MacondoBackend(Quackle::Game *game, const MacondoInitOptions &options) {
+MacondoBackend::MacondoBackend(Quackle::Game *game, const MacondoInitOptions &options): QObject() {
m_execPath = options.execPath;
m_game = game;
m_updateTimer = new QTimer(this);
@@ -319,12 +319,12 @@ void MacondoBackend::timer() {
// give Macondo a bit more time to write out the full sequence
QThread::msleep(60);
m_processOutput.append(m_process->readAllStandardOutput());
+ //printf("%.*s\n",m_processOutput.size(),m_processOutput.data());
}
Quackle::Move move;
if (extractEndgameMove(m_processOutput, move)) {
Quackle::MoveList list;
list.push_back(move);
- printf("EMIT\n");
emit gotMoves(list);
}
}
diff --git a/quacker/quacker.cpp b/quacker/quacker.cpp
index 3d8d8d4..d3945ac 100644
--- a/quacker/quacker.cpp
+++ b/quacker/quacker.cpp
@@ -1269,7 +1269,6 @@ void TopLevel::incrementSimulation()
if (m_macondo->isRunning()) {
if (m_macondo->anyUpdates()) {
- printf("aaa update\n");
updateMoveViews();
updateSimViews();
}