diff options
author | John Fultz <jfultz@wolfram.com> | 2023-07-18 00:44:06 -0500 |
---|---|---|
committer | John Fultz <jfultz@wolfram.com> | 2023-07-18 00:44:06 -0500 |
commit | 53f394839396edd537785fc40db3090839dd7c04 (patch) | |
tree | 4198dc35fd903fbd537d798a5de06afb2e7b3253 /quacker | |
parent | a68140dfb546b8a89c48bfe99d7b56d9c2908569 (diff) |
Fix Qt6 MOC compilation on some platforms.
That was super painful. It seems that some of the Quackle types that
have custom operator==() give fits to the MOC compiler when those
types are used as arguments for slots and/or signals (or maybe it's
only when they're connected in a certain way...frankly, I never did
figure this out precisely to my satisfaction). The compilers provide
very little help in resolving this problem.
Once I understood the problem, VS22 was giving me just the tiniest
morsel, enough that I could hunt down the offending slot/signal
(it wasn't even giving me the name of the slot/signal...just the type
it was trying to use). I've changed all offending functions to use
const pointers to types instead of const references, and this makes
Qt happy.
I couldn't find any info on the web directly about this, but here's
the closest I did find, which suggests that this is related to
increased functionality in Qt6 regarding reflection.
https://forum.qt.io/topic/141434/
This fixes my VC++22 x86-64 build. Hopefully it fixes all of the
others, too.
Diffstat (limited to 'quacker')
-rw-r--r-- | quacker/bagdisplay.cpp | 6 | ||||
-rw-r--r-- | quacker/bagdisplay.h | 2 | ||||
-rw-r--r-- | quacker/boarddisplay.cpp | 29 | ||||
-rw-r--r-- | quacker/boarddisplay.h | 6 | ||||
-rw-r--r-- | quacker/boardsetup.h | 2 | ||||
-rw-r--r-- | quacker/brb.cpp | 2 | ||||
-rw-r--r-- | quacker/brb.h | 2 | ||||
-rw-r--r-- | quacker/graphicalboard.cpp | 31 | ||||
-rw-r--r-- | quacker/graphicalboard.h | 6 | ||||
-rw-r--r-- | quacker/history.cpp | 2 | ||||
-rw-r--r-- | quacker/movebox.cpp | 23 | ||||
-rw-r--r-- | quacker/movebox.h | 4 | ||||
-rw-r--r-- | quacker/noteeditor.cpp | 4 | ||||
-rw-r--r-- | quacker/noteeditor.h | 2 | ||||
-rw-r--r-- | quacker/quacker.cpp | 60 | ||||
-rw-r--r-- | quacker/quacker.h | 12 | ||||
-rw-r--r-- | quacker/rackdisplay.cpp | 6 | ||||
-rw-r--r-- | quacker/rackdisplay.h | 2 | ||||
-rw-r--r-- | quacker/view.cpp | 8 | ||||
-rw-r--r-- | quacker/view.h | 10 |
20 files changed, 119 insertions, 100 deletions
diff --git a/quacker/bagdisplay.cpp b/quacker/bagdisplay.cpp index f38854d..1facc05 100644 --- a/quacker/bagdisplay.cpp +++ b/quacker/bagdisplay.cpp @@ -53,12 +53,12 @@ BagDisplay::~BagDisplay() { } -void BagDisplay::positionChanged(const Quackle::GamePosition &position) +void BagDisplay::positionChanged(const Quackle::GamePosition *position) { - showTiles(position.unseenBag().tiles()); + showTiles(position->unseenBag().tiles()); // Birthday - for (const auto& it : position.players()) + for (const auto& it : position->players()) { if (it.name() == "zorbonauts") { diff --git a/quacker/bagdisplay.h b/quacker/bagdisplay.h index 5d09853..e513996 100644 --- a/quacker/bagdisplay.h +++ b/quacker/bagdisplay.h @@ -34,7 +34,7 @@ public: virtual ~BagDisplay(); public slots: - virtual void positionChanged(const Quackle::GamePosition &position); + virtual void positionChanged(const Quackle::GamePosition *position); protected slots: virtual void showTiles(const Quackle::LongLetterString &tiles); diff --git a/quacker/boarddisplay.cpp b/quacker/boarddisplay.cpp index 677179e..491b040 100644 --- a/quacker/boarddisplay.cpp +++ b/quacker/boarddisplay.cpp @@ -66,20 +66,20 @@ BoardWithQuickEntry::~BoardWithQuickEntry() { } -void BoardWithQuickEntry::positionChanged(const Quackle::GamePosition &position) +void BoardWithQuickEntry::positionChanged(const Quackle::GamePosition *position) { View::positionChanged(position); - setLocalCandidate(position.moveMade()); + setLocalCandidate(&position->moveMade()); } -void BoardWithQuickEntry::setLocalCandidate(const Quackle::Move &candidate) +void BoardWithQuickEntry::setLocalCandidate(const Quackle::Move *candidate) { - m_localCandidateMove = candidate; + m_localCandidateMove = *candidate; - if (candidate.isAMove()) + if (candidate->isAMove()) { - m_lineEdit->setText(QuackleIO::Util::moveToDetailedString(candidate)); - m_commitButton->setText(tr("Commit %1").arg(QuackleIO::Util::moveToDetailedString(candidate))); + m_lineEdit->setText(QuackleIO::Util::moveToDetailedString(*candidate)); + m_commitButton->setText(tr("Commit %1").arg(QuackleIO::Util::moveToDetailedString(*candidate))); } else { @@ -87,7 +87,7 @@ void BoardWithQuickEntry::setLocalCandidate(const Quackle::Move &candidate) m_commitButton->setText(tr("Commit")); } - m_commitButton->setEnabled(candidate.isAMove()); + m_commitButton->setEnabled(candidate->isAMove()); } void BoardWithQuickEntry::quickEditReturnPressed() @@ -107,18 +107,19 @@ void BoardWithQuickEntry::quickEditShiftReturnPressed() void BoardWithQuickEntry::plusFive() { m_localCandidateMove.setScoreAddition(m_localCandidateMove.scoreAddition() + 5); - emit setCandidateMove(m_localCandidateMove, nullptr); + emit setCandidateMove(&m_localCandidateMove, nullptr); } void BoardWithQuickEntry::performCommit() { - emit setCandidateMove(m_localCandidateMove, nullptr); + emit setCandidateMove(&m_localCandidateMove, nullptr); emit commit(); } void BoardWithQuickEntry::reset() { - emit setCandidateMove(Quackle::Move::createNonmove(), nullptr); + Quackle::Move move = Quackle::Move::createNonmove(); + emit setCandidateMove(&move, nullptr); } void BoardWithQuickEntry::provideHelp() @@ -207,7 +208,7 @@ void BoardWithQuickEntry::processCommand(const QString &command) } if (move.isAMove()) - emit setCandidateMove(move, nullptr); + emit setCandidateMove(&move, nullptr); } /////////// @@ -223,11 +224,11 @@ TextBoard::TextBoard(QWidget *parent) m_textEdit->setReadOnly(true); } -void TextBoard::positionChanged(const Quackle::GamePosition &position) +void TextBoard::positionChanged(const Quackle::GamePosition *position) { BoardWithQuickEntry::positionChanged(position); //m_textEdit->setHtml(QString("<html><font size=\"+4\"><pre>%1</pre></font></html>").arg(QuackleIO::Util::uvStringToQString(position.boardAfterMoveMade().toString()))); - m_textEdit->setPlainText(QString("%1").arg(QuackleIO::Util::uvStringToQString(position.boardAfterMoveMade().toString()))); + m_textEdit->setPlainText(QString("%1").arg(QuackleIO::Util::uvStringToQString(position->boardAfterMoveMade().toString()))); } /////////// diff --git a/quacker/boarddisplay.h b/quacker/boarddisplay.h index c0acf2b..a14b269 100644 --- a/quacker/boarddisplay.h +++ b/quacker/boarddisplay.h @@ -44,10 +44,10 @@ public: virtual ~BoardWithQuickEntry(); public slots: - virtual void positionChanged(const Quackle::GamePosition &position); + virtual void positionChanged(const Quackle::GamePosition *position); protected slots: - void setLocalCandidate(const Quackle::Move &candidate); + void setLocalCandidate(const Quackle::Move *candidate); private slots: void quickEditReturnPressed(); @@ -76,7 +76,7 @@ public: TextBoard(QWidget *parent = 0); public slots: - virtual void positionChanged(const Quackle::GamePosition &position); + virtual void positionChanged(const Quackle::GamePosition *position); private: QTextEdit *m_textEdit; diff --git a/quacker/boardsetup.h b/quacker/boardsetup.h index 67275ac..b609ca6 100644 --- a/quacker/boardsetup.h +++ b/quacker/boardsetup.h @@ -55,7 +55,7 @@ public: void parametersChanged(); public slots: - virtual void positionChanged(const Quackle::GamePosition & /* position */) {}; + virtual void positionChanged(const Quackle::GamePosition * /* position */) {}; protected slots: virtual void tileClicked(const QSize &tileLocation, const QMouseEvent *event); diff --git a/quacker/brb.cpp b/quacker/brb.cpp index 0a76218..4dd4d66 100644 --- a/quacker/brb.cpp +++ b/quacker/brb.cpp @@ -72,7 +72,7 @@ void BRB::grabFocus() m_rackDisplay->grabFocus(); } -void BRB::positionChanged(const Quackle::GamePosition &position) +void BRB::positionChanged(const Quackle::GamePosition *position) { View::positionChanged(position); } diff --git a/quacker/brb.h b/quacker/brb.h index ba38164..2650da4 100644 --- a/quacker/brb.h +++ b/quacker/brb.h @@ -40,7 +40,7 @@ public: View * getBoardView() const; public slots: - virtual void positionChanged(const Quackle::GamePosition &position); + virtual void positionChanged(const Quackle::GamePosition *position); virtual void grabFocus(); private: diff --git a/quacker/graphicalboard.cpp b/quacker/graphicalboard.cpp index 6b1d14b..1334def 100644 --- a/quacker/graphicalboard.cpp +++ b/quacker/graphicalboard.cpp @@ -43,7 +43,7 @@ GraphicalBoard::GraphicalBoard(QWidget *parent) : BoardWithQuickEntry(parent) { m_boardFrame = new GraphicalBoardFrame; - connect(m_boardFrame, SIGNAL(localCandidateChanged(const Quackle::Move &)), this, SLOT(setLocalCandidate(const Quackle::Move &))); + connect(m_boardFrame, SIGNAL(localCandidateChanged(const Quackle::Move *)), this, SLOT(setLocalCandidate(const Quackle::Move *))); m_boardWrapper = new QWidget; @@ -110,21 +110,21 @@ GraphicalBoardFrame::~GraphicalBoardFrame() void GraphicalBoardFrame::staticDrawPosition(const Quackle::GamePosition &position, const QSize &size, QPixmap *pixmap) { GraphicalBoardFrame doozy; - doozy.positionChanged(position); + doozy.positionChanged(&position); doozy.expandToSize(size); doozy.generateBoardPixmap(pixmap); } -void GraphicalBoardFrame::positionChanged(const Quackle::GamePosition &position) +void GraphicalBoardFrame::positionChanged(const Quackle::GamePosition *position) { - m_board = position.board(); - m_rack = position.currentPlayer().rack(); - m_ignoreRack = !position.currentPlayer().racksAreKnown(); + m_board = position->board(); + m_rack = position->currentPlayer().rack(); + m_ignoreRack = !position->currentPlayer().racksAreKnown(); m_board.updateBritishness(); resetArrow(); - m_candidate = position.moveMade(); + m_candidate = position->moveMade(); prepare(); } @@ -649,21 +649,22 @@ void GraphicalBoardFrame::prettifyAndSetLocalCandidate(const Quackle::Move &cand if (m_candidate.wordTilesWithNoPlayThru().length() == 1) { - emit localCandidateChanged(flip(m_candidate)); + const Quackle::Move &move = flip(m_candidate); + emit localCandidateChanged(&move); emit statusMessage(tr("Press Enter to add %1 to candidate list, or Control+Enter to commit to it immediately.").arg(QuackleIO::Util::moveToDetailedString(flip(m_candidate)))); } else { - emit localCandidateChanged(m_candidate); + emit localCandidateChanged(&m_candidate); emit statusMessage(tr("Press Enter to add %1 to candidate list, or Control+Enter to commit to it immediately.").arg(QuackleIO::Util::moveToDetailedString(m_candidate))); } } -void GraphicalBoardFrame::setLocalCandidate(const Quackle::Move &candidate) +void GraphicalBoardFrame::setLocalCandidate(const Quackle::Move *candidate) { - m_candidate = candidate; + m_candidate = *candidate; resetArrow(); prepare(); } @@ -748,7 +749,8 @@ void GraphicalBoardFrame::backspaceHandler() void GraphicalBoardFrame::deleteHandler() { - setLocalCandidate(Quackle::Move::createNonmove()); + const Quackle::Move move = Quackle::Move::createNonmove(); + setLocalCandidate(&move); } void GraphicalBoardFrame::submitHandler() @@ -771,11 +773,12 @@ void GraphicalBoardFrame::setGlobalCandidate(bool *carryOn) if (m_candidate.wordTilesWithNoPlayThru().length() == 1) { - emit setCandidateMove(flip(m_candidate), carryOn); + Quackle::Move flippedMove = flip(m_candidate); + emit setCandidateMove(&flippedMove, carryOn); } else { - emit setCandidateMove(m_candidate, carryOn); + emit setCandidateMove(&m_candidate, carryOn); } } diff --git a/quacker/graphicalboard.h b/quacker/graphicalboard.h index 3c37690..3371499 100644 --- a/quacker/graphicalboard.h +++ b/quacker/graphicalboard.h @@ -133,7 +133,7 @@ public: static void staticDrawPosition(const Quackle::GamePosition &position, const QSize &size, QPixmap *pixmap); public slots: - virtual void positionChanged(const Quackle::GamePosition &position); + virtual void positionChanged(const Quackle::GamePosition *position); virtual void expandToSize(const QSize &maxSize); protected slots: @@ -149,7 +149,7 @@ protected slots: virtual void tileClicked(const QSize &tileLocation, const QMouseEvent * /* event */); virtual void prepare(); - void setLocalCandidate(const Quackle::Move &candidate); + void setLocalCandidate(const Quackle::Move *candidate); protected: Quackle::Board m_board; @@ -196,7 +196,7 @@ protected: bool m_alwaysShowVerboseLabels; signals: - void localCandidateChanged(const Quackle::Move &candidate); + void localCandidateChanged(const Quackle::Move *candidate); void tileFontChanged(const QFont &font); private: diff --git a/quacker/history.cpp b/quacker/history.cpp index 30a5361..c391d61 100644 --- a/quacker/history.cpp +++ b/quacker/history.cpp @@ -148,7 +148,7 @@ void History::itemActivated(QTableWidgetItem *item) { if (it.value() == item) { - emit goToHistoryLocation(it.key()); + emit goToHistoryLocation(&it.key()); break; } } diff --git a/quacker/movebox.cpp b/quacker/movebox.cpp index 38fcfe7..ae6c2f5 100644 --- a/quacker/movebox.cpp +++ b/quacker/movebox.cpp @@ -61,7 +61,8 @@ void MoveBox::moveActivated(QTreeWidgetItem *item) { if (item == 0) { - emit setCandidateMove(Quackle::Move::createNonmove(), nullptr); + Quackle::Move nonMove = Quackle::Move::createNonmove(); + emit setCandidateMove(&nonMove, nullptr); return; } @@ -73,7 +74,8 @@ void MoveBox::moveActivated(QTreeWidgetItem *item) { if (it.value() == item) { - emit setCandidateMove(it.key(), nullptr); + const auto& key = it.key(); + emit setCandidateMove(&key, nullptr); break; } } @@ -106,7 +108,7 @@ void MoveBox::removeMove() } } - emit removeCandidateMoves(selectedMoves); + emit removeCandidateMoves(&selectedMoves); // TODO make this code work to select the next item QTreeWidgetItem *prevLastSelection = m_moveMap.value(selectedMoves.back()); @@ -130,7 +132,8 @@ void MoveBox::removeMove() { if (mapIt.value() == nextSelection) { - emit setCandidateMove(mapIt.key(), nullptr); + const auto& key = mapIt.key(); + emit setCandidateMove(&key, nullptr); break; } } @@ -232,9 +235,9 @@ void MoveBox::checkGeometry() m_treeWidget->resizeColumnToContents(PlayColumn); } -void MoveBox::positionChanged(const Quackle::GamePosition &position) +void MoveBox::positionChanged(const Quackle::GamePosition *position) { - if (m_rack.tiles() != position.currentPlayer().rack().tiles()) + if (m_rack.tiles() != position->currentPlayer().rack().tiles()) { for (auto& mapIt : m_moveMap) delete mapIt; @@ -242,13 +245,13 @@ void MoveBox::positionChanged(const Quackle::GamePosition &position) m_moveMap.clear(); } - m_rack = position.currentPlayer().rack(); - setMoves(position.moves(), position.moveMade()); + m_rack = position->currentPlayer().rack(); + setMoves(position->moves(), position->moveMade()); } -void MoveBox::movesChanged(const Quackle::MoveList &moves) +void MoveBox::movesChanged(const Quackle::MoveList *moves) { - setMoves(moves, m_previousSelection); + setMoves(*moves, m_previousSelection); } QTreeWidgetItem *MoveBox::createItem(const Quackle::Move &move) diff --git a/quacker/movebox.h b/quacker/movebox.h index 700423b..8ca6129 100644 --- a/quacker/movebox.h +++ b/quacker/movebox.h @@ -41,8 +41,8 @@ public: void setMoves(const Quackle::MoveList &moves, const Quackle::Move &selectedMove); public slots: - virtual void positionChanged(const Quackle::GamePosition &position); - virtual void movesChanged(const Quackle::MoveList &moves); + virtual void positionChanged(const Quackle::GamePosition *position); + virtual void movesChanged(const Quackle::MoveList *moves); private slots: void moveActivated(QTreeWidgetItem *item); diff --git a/quacker/noteeditor.cpp b/quacker/noteeditor.cpp index ec30f05..6209506 100644 --- a/quacker/noteeditor.cpp +++ b/quacker/noteeditor.cpp @@ -50,9 +50,9 @@ QSize NoteEditor::sizeHint() const return QSize(hint.width(), hint.height() / 2); } -void NoteEditor::positionChanged(const Quackle::GamePosition &position) +void NoteEditor::positionChanged(const Quackle::GamePosition *position) { - showNote(position.explanatoryNote()); + showNote(position->explanatoryNote()); } void NoteEditor::showNote(const UVString ¬e) diff --git a/quacker/noteeditor.h b/quacker/noteeditor.h index e1d408a..203ce58 100644 --- a/quacker/noteeditor.h +++ b/quacker/noteeditor.h @@ -35,7 +35,7 @@ public: virtual QSize sizeHint() const; public slots: - virtual void positionChanged(const Quackle::GamePosition &position); + virtual void positionChanged(const Quackle::GamePosition *position); protected slots: virtual void showNote(const UVString ¬e); diff --git a/quacker/quacker.cpp b/quacker/quacker.cpp index 7ab54c0..9e133c4 100644 --- a/quacker/quacker.cpp +++ b/quacker/quacker.cpp @@ -223,7 +223,7 @@ void TopLevel::commit() void TopLevel::pass() { Quackle::Move pass(Quackle::Move::createPassMove()); - setCandidateMove(pass); + setCandidateMove(&pass); } void TopLevel::overdraw() @@ -269,14 +269,14 @@ bool TopLevel::askToCarryOn(const QString &text) return QMessageBox::question(this, tr("Verify Play - Quackle"), dialogText(text), QMessageBox::Yes, QMessageBox::No) == QMessageBox::Yes; } -void TopLevel::setCandidateMove(const Quackle::Move &move, bool *carryOnPtr) +void TopLevel::setCandidateMove(const Quackle::Move *move, bool *carryOnPtr) { if (carryOnPtr != nullptr) *carryOnPtr = true; - if (!m_game->hasPositions() || (move.action == Quackle::Move::Place && move.tiles().empty())) + if (!m_game->hasPositions() || (move->action == Quackle::Move::Place && move->tiles().empty())) return; - Quackle::Move prettiedMove(move); + Quackle::Move prettiedMove(*move); m_game->currentPosition().ensureMoveTilesDoNotIncludePlayThru(prettiedMove); m_game->currentPosition().ensureMovePrettiness(prettiedMove); @@ -447,13 +447,13 @@ bool TopLevel::validifyMove(Quackle::Move &move) return true; } -void TopLevel::removeCandidateMoves(const Quackle::MoveList &moves) +void TopLevel::removeCandidateMoves(const Quackle::MoveList *moves) { if (!m_game->hasPositions()) return; - const Quackle::MoveList::const_iterator end(moves.end()); - for (Quackle::MoveList::const_iterator it = moves.begin(); it != end; ++it) + const Quackle::MoveList::const_iterator end(moves->end()); + for (Quackle::MoveList::const_iterator it = moves->begin(); it != end; ++it) m_game->currentPosition().removeMove(*it); ensureUpToDateSimulatorMoveList(); @@ -492,7 +492,7 @@ void TopLevel::setNote(const UVString ¬e) setModified(true); } -void TopLevel::goToHistoryLocation(const Quackle::HistoryLocation &location) +void TopLevel::goToHistoryLocation(const Quackle::HistoryLocation *location) { if (!m_game->hasPositions()) return; @@ -507,7 +507,7 @@ void TopLevel::goToHistoryLocation(const Quackle::HistoryLocation &location) stopEverything(); stopOutcraftyingCurrentPlayer(); - m_game->setCurrentPosition(location); + m_game->setCurrentPosition(*location); showToHuman(); } @@ -571,7 +571,7 @@ void TopLevel::updateAllViews() void TopLevel::updatePositionViews() { - emit positionChanged(m_game->currentPosition()); + emit positionChanged(&m_game->currentPosition()); m_simulateAction->setEnabled(!m_game->currentPosition().moves().empty()); m_simulateDetailsAction->setEnabled(!m_game->currentPosition().moves().empty()); @@ -621,9 +621,15 @@ void TopLevel::updatePositionViews() void TopLevel::updateMoveViews() { if (m_simulator->hasSimulationResults()) - emit movesChanged(m_simulator->moves(/* prune */ true, /* sort by win */ true)); + { + const Quackle::MoveList& moveList = m_simulator->moves(/* prune */ true, /* sort by win */ true); + emit movesChanged(&moveList); + } else - emit movesChanged(m_game->currentPosition().moves()); + { + const Quackle::MoveList moveList = m_game->currentPosition().moves(); + emit movesChanged(&moveList); + } m_simulateAction->setEnabled(!m_game->currentPosition().moves().empty()); m_simulateDetailsAction->setEnabled(!m_game->currentPosition().moves().empty()); @@ -635,7 +641,7 @@ void TopLevel::updateHistoryViews() emit historyChanged(m_game->history()); } -void TopLevel::initializeGame(const Quackle::PlayerList &players) +void TopLevel::initializeGame(const Quackle::PlayerList *players) { stopEverything(); @@ -644,10 +650,10 @@ void TopLevel::initializeGame(const Quackle::PlayerList &players) m_logania = 0; setModified(false); - if (players.empty()) + if (players->empty()) return; - Quackle::PlayerList newPlayers(players); + Quackle::PlayerList newPlayers(*players); // shuffle so same person doesn't go first twice in a row, // if there are multiple players in the game @@ -768,8 +774,11 @@ void TopLevel::newGame() switch (newGameDialog.exec()) { case QDialog::Accepted: - initializeGame(newGameDialog.players()); + { + const Quackle::PlayerList &players = newGameDialog.players(); + initializeGame(&players); break; + } case QDialog::Rejected: break; @@ -823,8 +832,8 @@ void TopLevel::plugIntoMatrix(View *view) { plugIntoBaseMatrix(view); - connect(view, SIGNAL(setCandidateMove(const Quackle::Move &, bool *)), this, SLOT(setCandidateMove(const Quackle::Move &, bool *))); - connect(view, SIGNAL(removeCandidateMoves(const Quackle::MoveList &)), this, SLOT(removeCandidateMoves(const Quackle::MoveList &))); + connect(view, SIGNAL(setCandidateMove(const Quackle::Move *, bool *)), this, SLOT(setCandidateMove(const Quackle::Move *, bool *))); + connect(view, SIGNAL(removeCandidateMoves(const Quackle::MoveList *)), this, SLOT(removeCandidateMoves(const Quackle::MoveList *))); connect(view, SIGNAL(commit()), this, SLOT(commit())); connect(view, SIGNAL(setRack(const Quackle::Rack &)), this, SLOT(setRack(const Quackle::Rack &))); connect(view, SIGNAL(setNote(const UVString &)), this, SLOT(setNote(const UVString &))); @@ -832,19 +841,19 @@ void TopLevel::plugIntoMatrix(View *view) void TopLevel::plugIntoPositionMatrix(View *view) { - connect(this, SIGNAL(positionChanged(const Quackle::GamePosition &)), view, SLOT(positionChanged(const Quackle::GamePosition &))); + connect(this, SIGNAL(positionChanged(const Quackle::GamePosition *)), view, SLOT(positionChanged(const Quackle::GamePosition *))); } void TopLevel::plugIntoMoveMatrix(View *view) { - connect(this, SIGNAL(movesChanged(const Quackle::MoveList &)), view, SLOT(movesChanged(const Quackle::MoveList &))); + connect(this, SIGNAL(movesChanged(const Quackle::MoveList *)), view, SLOT(movesChanged(const Quackle::MoveList *))); } void TopLevel::plugIntoHistoryMatrix(HistoryView *view) { plugIntoBaseMatrix(view); - connect(view, SIGNAL(goToHistoryLocation(const Quackle::HistoryLocation &)), this, SLOT(goToHistoryLocation(const Quackle::HistoryLocation &))); + connect(view, SIGNAL(goToHistoryLocation(const Quackle::HistoryLocation *)), this, SLOT(goToHistoryLocation(const Quackle::HistoryLocation *))); connect(this, SIGNAL(historyChanged(const Quackle::History &)), view, SLOT(historyChanged(const Quackle::History &))); } @@ -991,7 +1000,8 @@ void TopLevel::firstPosition() const Quackle::GamePosition &firstPozzy = m_game->history().firstPosition(&exists); if (exists) { - goToHistoryLocation(firstPozzy.location()); + const Quackle::HistoryLocation &location = firstPozzy.location(); + goToHistoryLocation(&location); } } @@ -1001,7 +1011,8 @@ void TopLevel::nextPosition() const Quackle::GamePosition &nextPozzy = m_game->history().nextPosition(&exists); if (exists) { - goToHistoryLocation(nextPozzy.location()); + const Quackle::HistoryLocation &location = nextPozzy.location(); + goToHistoryLocation(&location); } } @@ -1011,7 +1022,8 @@ void TopLevel::previousPosition() const Quackle::GamePosition &previousPozzy = m_game->history().previousPosition(&exists); if (exists) { - goToHistoryLocation(previousPozzy.location()); + const Quackle::HistoryLocation &location = previousPozzy.location(); + goToHistoryLocation(&location); } } diff --git a/quacker/quacker.h b/quacker/quacker.h index 8a81cf4..3bfeb38 100644 --- a/quacker/quacker.h +++ b/quacker/quacker.h @@ -129,7 +129,7 @@ public slots: void showConfigDialog(); // set up our game object based on a shuffled playerList - void initializeGame(const Quackle::PlayerList &players); + void initializeGame(const Quackle::PlayerList *players); // call timerControl, and tell user about it void pause(bool paused); @@ -177,8 +177,8 @@ protected slots: void statusMessage(const QString &message); // set game's candidate to move and update views - void setCandidateMove(const Quackle::Move &move, bool *carryOnPtr = nullptr); - void removeCandidateMoves(const Quackle::MoveList &moves); + void setCandidateMove(const Quackle::Move *move, bool *carryOnPtr = nullptr); + void removeCandidateMoves(const Quackle::MoveList *moves); // set current player's rack and update views void setRack(const Quackle::Rack &rack); @@ -187,7 +187,7 @@ protected slots: void setNote(const UVString ¬e); // set history location to view - void goToHistoryLocation(const Quackle::HistoryLocation &location); + void goToHistoryLocation(const Quackle::HistoryLocation *location); // stop simulation, opponenent thread, etc void stopEverything(); @@ -235,9 +235,9 @@ signals: // emitted when views (eg board) should update based on the // current position (includes board information, current candidate play // that should be shown) - void positionChanged(const Quackle::GamePosition &position); + void positionChanged(const Quackle::GamePosition *position); - void movesChanged(const Quackle::MoveList &moves); + void movesChanged(const Quackle::MoveList *moves); // emitted when views of history must update void historyChanged(const Quackle::History &history); diff --git a/quacker/rackdisplay.cpp b/quacker/rackdisplay.cpp index b0f10f5..b04c4fc 100644 --- a/quacker/rackdisplay.cpp +++ b/quacker/rackdisplay.cpp @@ -63,12 +63,12 @@ QuickEntryRack::~QuickEntryRack() { } -void QuickEntryRack::positionChanged(const Quackle::GamePosition &position) +void QuickEntryRack::positionChanged(const Quackle::GamePosition *position) { - if (m_rackTiles == position.currentPlayer().rack().tiles()) + if (m_rackTiles == position->currentPlayer().rack().tiles()) return; - m_rackTiles = position.currentPlayer().rack().tiles(); + m_rackTiles = position->currentPlayer().rack().tiles(); QString tiles = QuackleIO::Util::letterStringToQString(m_rackTiles); m_lineEdit->setText(tiles); m_tiles->setText(m_rackTiles); diff --git a/quacker/rackdisplay.h b/quacker/rackdisplay.h index 72155e9..3b47904 100644 --- a/quacker/rackdisplay.h +++ b/quacker/rackdisplay.h @@ -38,7 +38,7 @@ public: virtual ~QuickEntryRack(); public slots: - virtual void positionChanged(const Quackle::GamePosition &position); + virtual void positionChanged(const Quackle::GamePosition *position); virtual void grabFocus(); private slots: diff --git a/quacker/view.cpp b/quacker/view.cpp index 75f3797..2d5bbe2 100644 --- a/quacker/view.cpp +++ b/quacker/view.cpp @@ -42,13 +42,13 @@ void View::grabFocus() { } -void View::positionChanged(const Quackle::GamePosition &position) +void View::positionChanged(const Quackle::GamePosition *position) { for (QList<View *>::iterator it = m_subviews.begin(); it != m_subviews.end(); ++it) (*it)->positionChanged(position); } -void View::movesChanged(const Quackle::MoveList &moves) +void View::movesChanged(const Quackle::MoveList *moves) { for (auto& it : m_subviews) it->movesChanged(moves); @@ -59,8 +59,8 @@ void View::connectSubviewSignals() for (auto& it : m_subviews) { connect(it, SIGNAL(statusMessage(const QString &)), this, SIGNAL(statusMessage(const QString &))); - connect(it, SIGNAL(setCandidateMove(const Quackle::Move &, bool *)), this, SIGNAL(setCandidateMove(const Quackle::Move &, bool *))); - connect(it, SIGNAL(removeCandidateMoves(const Quackle::MoveList &)), this, SIGNAL(removeCandidateMoves(const Quackle::MoveList &))); + connect(it, SIGNAL(setCandidateMove(const Quackle::Move *, bool *)), this, SIGNAL(setCandidateMove(const Quackle::Move *, bool *))); + connect(it, SIGNAL(removeCandidateMoves(const Quackle::MoveList *)), this, SIGNAL(removeCandidateMoves(const Quackle::MoveList *))); connect(it, SIGNAL(commit()), this, SIGNAL(commit())); connect(it, SIGNAL(setRack(const Quackle::Rack &)), this, SIGNAL(setRack(const Quackle::Rack &))); } diff --git a/quacker/view.h b/quacker/view.h index eb2d1b5..ce72f82 100644 --- a/quacker/view.h +++ b/quacker/view.h @@ -59,8 +59,8 @@ signals: // emit to alert the rest of the application to show this // as candidate move - may eventually trigger positionChanged // in response - void setCandidateMove(const Quackle::Move &move, bool *carryOnPtr = nullptr); - void removeCandidateMoves(const Quackle::MoveList &moves); + void setCandidateMove(const Quackle::Move *move, bool *carryOnPtr = nullptr); + void removeCandidateMoves(const Quackle::MoveList *moves); void commit(); // emit to alert the rest of the application to reset the current @@ -80,11 +80,11 @@ public slots: // // The default implementation calls positionChanged(position) for all subviews // in m_subviews. - virtual void positionChanged(const Quackle::GamePosition &position); + virtual void positionChanged(const Quackle::GamePosition *position); // called when user starts a simulation and this move list should // supercede that from the position - virtual void movesChanged(const Quackle::MoveList &moves); + virtual void movesChanged(const Quackle::MoveList *moves); virtual void grabFocus(); @@ -107,7 +107,7 @@ signals: // emit to alert the rest of the application to show this // as candidate move - may eventually trigger positionChanged // in response - void goToHistoryLocation(const Quackle::HistoryLocation &location); + void goToHistoryLocation(const Quackle::HistoryLocation *location); public slots: // called whenever history is added to |