Age | Commit message (Collapse) | Author |
|
Qt6 complains about the versions of the static function signatures
we’re using for generating various QMessageBoxes.
Except for the “Show plaintext board” dialog, which seems to
be having some “special” issues in Qt6.
|
|
|
|
|
|
|
|
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.
|
|
And it wasn't needed anyway, so remove it from both Qt5 and Qt6 builds.
|
|
* Remove all uses of `using namespace std` from header files (although a
few specific cases of things like `using std::vector` remain)
* Move all existing uses of `using namespace std` in cpp files to after the
header includes
* Make coordinating changes so it builds again.
Qt6 builds on Windows were breaking because of namespace collision between
std::byte and some version of `byte` in one of Qt's namespaces. That breakage
is now fixed.
It would be good to systematically clean up all `using` declarations in header
files to ensure nothing is leaking out, but that's for another time.
|
|
The cmake file now takes a QT_VERSION string setting. The first
character of the string is “6”, then cmake calls find_package
on Qt6…otherwise, it calls find_package on Qt5.
Qt 6.5.2 builds added to the GitHub Actions build matrix.
|
|
QTextStream::setCodec() is no longer a thing in Qt6. Most of
our call are to set the codec to UTF-8, which happens to be the
default encoding in Qt6. So make a macro so this can compile
in both Qt5 and Qt6.
|
|
I think these changes would still be fine in Qt5, but
are required for Qt6.
Also DataLocation was deprecated in v6, AppLocalDataLocation
is the same for both Qt5 and Qt6.
|
|
|
|
Some of the signals we’re using aren’t supported or working
in Qt 6. Refactor for things that are working and
documented.
|
|
|
|
|
|
* Replace std::random_shuffle() with std::shuffle().
* Populate switch statements which were checking the
Move enums, but not Move::PlaceError.
* endl -> Qt::endl for QTextStream usage.
* QString::SkipEmptyParts -> Qt::SkipEmptyParts
* QLabel::pixmap() now takes Qt::ReturnByValue
* Use QElapsedTimer where appropriate.
|
|
Apparently, when you serialize a pixmap through a QDataStream(), it loses
track of its devicePixelRatio setting. End rule was that if, on a HiDpi
screen, you dragged and dropped a tile within the rack, you'd get a tile that
was larger than it should have been by a factor of the default pixel ratio.
Solution is to simply reapply the pixel ratio to the newly created Pixmap
after deserializing it in the drag-drop code.
|
|
If a play was made from tiles not on the rack, it brings up the
"Verify Play" dialog, to which one of the options is to cancel the
play. But canceling the play didn't work. Now it does.
|
|
|
|
Rereleasing with just a couple of bug fixes, and may need to be able
to tell the difference between releases in the wild.
|
|
QPixmap is still in actual pixels, so it needs to be created
at devicePixelRatio() times its present size, in addition to
having its own devicePixelRatio() set.
|
|
|
|
Also, fix cmake macOS build to configure the icon.
|
|
Qt 5.6.
|
|
I may add it back later as an option.
|
|
Seems that, unless you tell it to specifically, Qt insists on dealing
with physical pixels instead of screen-scaled coordinates. So, i.e.,
on my 200%-scaled HiDpi display, everything was looking pretty small.
|
|
Mostly signed/unsigned/size_t mismatches, except for one
case treating a bool as an integer.
|
|
Also, rename cswapr07 to csw07 (I think enough years have
passed that the need to distinguish the "April update" has passed...
but I nonetheless mention it in the copyrights file).
|
|
Building on macOS right now. cmake will soon replace qmake
as the supported build system. Some notes about the
implementation:
* libquackle and libquackleio can be separately built as before.
* quacker still links to the static libraries for libquackle and libquackleio,
but quacker's cmake file includes those projects, which means
everything builds at once. No more need to run separate builds
of everything to get a GUI. And debugging is easier now that
the libraries are incorporated into the quacker project.
* I tried to get cmake to build the macOS app bundle, but cmake
is unable, by conventional means, to build a non-flat Resources
directory (which many people have complained about). Right
now, the default build just builds the binary, and you have to run
it from the command-line. But -DBUNDLE=ON will build a shell
of a bundle. It won't work, but I intend to create an Xcode project
from it for building the bundle, to make it easier for me to deliver
a code-signed and notarized app bundle.
* I've got CMakeLists.txt files for the resources, but they're not
really doing anything right now. Maybe later.
* Minimum macOS version for the cmake build is 10.10.
|
|
|
|
Most are Qt4-isms, except where noted.
* Replaced QFontMetrics::width with QFontMetrics::horizontalAdvance,
conditionally as the latter wasn't even introduced until Qt 5.11.
* QColor::light and dark instead of QColor::light and dark.
* QString() instead of QString::null.
* std::sort instead of qSort
* QTreeWidgetItem::setSelected instead of QTreeWidget::setItemSelected.
* QFileDialog::setOption(QFileDialog::DontConfirmOverwrite) instead
of QFileDialog::setConfirmOverwrite(false).
* QDrag::exec instead of QDrag::start.
|
|
Re-sort copyrights so newer ones show up first.
Exclude copyright.txt lines from about box if they don't have
an actual copyright.
|
|
Add NASPA logo for its dictionaries.
Add a separator between settings and copyright for clarity.
Tighten up vertical spacing in the settings panel.
|
|
|
|
|
|
Also, extend copyright to 2019.
|
|
|
|
Xcode now wants an asset catalog thing
with proper .png files rather than a .icns
thing. Bits shuffled accordingly.
Also, higher res icon. Slightly different
design. Only on Mac for now.
Also, move minimum macOS to 10.9.
Also fix 1.0.4 update versioning oversight.
|
|
When going back to edit history, typing a
phoney correctly brought up a dialog, but
indicating you wanted to cancel the phoney
play didn't stop the play from going down,
or a subsequent computer player from making
its play.
|
|
|
|
The player name in the label in the rack text
was being updated after every play. Not
unreasonable, but this was the principle
cause for layout elements bouncing horizontally
across the window when plays alternated.
So, now, it just has the fixed text "Rack:".
|
|
|
|
|
|
Start Championship Player, then exit while
the player is still thinking could crash.
|
|
Also, add a bit of parallelization, do a few other cleanups
on the yml and .pro files. And push C++14 flags everywhere
into the build system.
|
|
|
|
|
|
Now builds on Qt 5.9.1, and works on Mac, Windows, Linux.
|
|
Port quackle to Qt 5.5
|
|
|
|
Not perfect, but it now does a decent job of not corrupting GCGs when
it loads one where players have messed up tile counts/drawing in the
end-game. It also tries to annotate these for the player and in any
GCG file that's round-tripped.
Also, a lot of C++11-izing of ranged iterators.
|