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/rackdisplay.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'quacker/rackdisplay.cpp') 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); -- cgit v1.2.3