From 53f394839396edd537785fc40db3090839dd7c04 Mon Sep 17 00:00:00 2001 From: John Fultz Date: Tue, 18 Jul 2023 00:44:06 -0500 Subject: 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. --- quacker/quacker.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'quacker/quacker.h') 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); -- cgit v1.2.3