summaryrefslogtreecommitdiff
path: root/quackleio
AgeCommit message (Collapse)Author
2023-07-19Fix various Qt6 deprecations.John Fultz
2023-07-19Fix integer size compiler warnings.John Fultz
2023-07-17Fix up std:: namespace hygiene.John Fultz
* 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.
2023-07-16Add Qt6 to cmake, build action matrix.John Fultz
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.
2023-07-16Fix remaining QTextStream::setCodec() calls for Qt6.John Fultz
2023-07-16Make UTF8-encoding of QTextStream work in Qt5 and 6.John Fultz
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.
2023-07-16QRegEx -> QRegularExpressionJohn Fultz
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.
2020-06-17Xcode compiler warnings.John Fultz
* 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.
2019-07-22Make UTF-8 default encoding (and write pragma)alkamid
When reading, leave ISO-8859-1 as the default, and only change stream encoding if #character-encoding present. When writing, set encoding to UTF-8 and write #character-encoding pragma at the top of the .gcg file.
2019-07-21Remove address sanitizer from cmake.John Fultz
I may add it back later as an option.
2019-07-21Visual C++ compiler warning fixes.John Fultz
Mostly signed/unsigned/size_t mismatches, except for one case treating a bool as an integer.
2019-07-19First cut of a cmake build.John Fultz
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.
2019-07-19Fix deprecation errors for Qt 5.13.John Fultz
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.
2019-02-04Update a few bits of text still referring to GPL2.John Fultz
2019-02-04After discussion with Jason/John, add myself as a copyright holder.John Fultz
Also, extend copyright to 2019.
2019-01-14Fix icon for Xcode >=9 macOS build.John Fultz
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.
2017-08-10Add OS X builds to Travis-CI.John Fultz
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.
2017-08-02More Qt5 changes and cleanups.John Fultz
Now builds on Qt 5.9.1, and works on Mac, Windows, Linux.
2017-08-02Merge pull request #37 from gokceneraslan/qt55John Fultz
Port quackle to Qt 5.5
2016-08-02Fixes to allow bad endgames to be loaded from GCGs.John Fultz
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.
2016-07-30Oops...didn't mean to commit that hunk. Fix build.John Fultz
This reverts part of commit bb2decabe18056b1aaaab29eebbc0f80e1f5e7ab.
2016-07-30Fix memory leak when reading game files.John Fultz
2016-07-03Merge pull request #35 from gokceneraslan/masterJohn Fultz
Generate Python, Lua and Go bindings through SWIG
2016-07-03Fix problems with "ex n" where n is a number.John Fultz
Found a crash where you enter "ex 4" twice, and it would crash. This led me to look up how this was implemented, and it wasn't very robust. It also didn't save properly in the GCG. So I created a new move type which I called a BlindExchange and implemented it throughout the system.
2016-07-03Add a scoring option preference.John Fultz
A checkbox in the preferences dialog now allows you to configure Quackle so that plays with illegal words which are left unchallenged score zero. Obviously, off by default. But useful for entering games as part of the Marty Gabriel/Scott Garner world record scoring attempt. This is apparently what the Guinness folks are looking for.
2016-07-02More character encoding stuffJohn Fultz
A few character encoding things that had still been missed, and preliminary support for #character-encoding in GCG files.
2016-01-12Fix startup crash bug.Gökçen Eraslan
2016-01-12Port Quackle to Qt 5.5Gökçen Eraslan
2016-01-08bindings: Generate all bindings from static quackle libraries for convenience.Gökçen Eraslan
2016-01-06GCGIO: Add a simple method to read GCG files using only the file names.Gökçen Eraslan
2016-01-06Generate shared ibraries for libquackle and libquackleioGökçen Eraslan
2015-11-07Try to fix automated builds.John Fultz
2015-11-06Some Windows build updates.John Fultz
2015-11-02Add interface for generating gaddags.John Fultz
I wanted to throw this in a background thread, and I will, but for now, we need to get something out the door, and this seems sensible anyway. Couple of other bug fixes... * Add a copyright. * Popup menu says "Add new lexica..." but should say "Add new lexicon...". * Copyrights were refusing to wordwrap, thus forcing the settings pane to be wide.
2015-10-19Fix travis builds.John Fultz
* Start using g++ 4.8 and clang. * Fix missing -std=c++11 flags. * Builds which failed torched remaining builds, which meant more iteration. Now, they recover and continue correctly. * Remove some clang compiler warnings generated by Qt files out of my control.
2015-10-14Windows build fixes.John Fultz
2015-10-13Saving custom dictionaries now really works.John Fultz
* Fix a number of remaining bugs in the lexicon dialog. * Fix an error reading the v1 DAWG. * Improve the word counting mechanism. * Make sure the lexicn dialog properly selects and loads its dictionary after it's done. * Implement deleting of user dictionaries. * Clean up dictionary info text in lexicon dialog. * Disable gaddag generation...still have to fix that up to happen at sensible times and with user notification.
2015-10-11Fix up lexicon dialog box checks.John Fultz
Get enables and disables right, efficient computation of word counts, etc.
2015-10-10Progress on the lexicon dialog.John Fultz
Now prints better stats. Now loads the dictionary you're editing. Now disables the Delete button at appropriate times.
2015-09-28Now able to load text and dawg files.John Fultz
Words are loaded and hashed. Duplicates are discovered. Alphabets are dealt with. Merging of multiple word lists works. This is good stuff. Saving the resulting dictionaries has not been tried, yet, and the gui code for saving needs to be finished off, yet.
2015-09-26Work on DAWG generation.John Fultz
V1 DAWGs now include an alphabet. Begin creating DAWGs which extend other DAWGs. In general, laying the groundwork for plain text import to DAWG.
2015-09-07Auto-generate gaddagsJohn Fultz
Need to add a user interface, but gaddags are now auto-generated if they can't be found. Some specific improvements here: * FixedLengthString gained a pop_back member. * Add code to allow v1 gaddags and v0 dawgs to work together. * Change memory allocation of dawgs and gaddags to be dynamic (the old limit didn't accommodate the ridiculously large Polish dictionary in the gaddag) * The Settings class now knows a bit about generating gaddags. This will be important for giving UI feedback. * Fixed several places using filenames which should be using string, not UVString. * Dawg/GaddagFactory should have been using UVString, not QString. My misunderstanding.
2015-08-30Add hash query methods for dawgs, gaddags.John Fultz
2015-08-24Version the GADDAGs.John Fultz
Basically the same thing I just did to the DAWG files, now done to GADDAGs. Also, add hashing, and make sure GADDAGs only load if their hash matches that of the DAWG files.
2015-08-24Add a new DAWG format.John Fultz
Make reader and writer for the new format, while maintaing compatibility with the old. Things to note of the new format... * Now has a header, with version number, MD5, and word count. * No longer has terminator bit. Nodes are terminated by a non-zero playability. * Which means letters have one more bit. So we can now support more than 32 letters. Important for Slovak alphabet. Also, various cleanups and refactorings.
2015-08-20Move DAWG generation into quackleio.John Fultz
Same thing I just did for the gaddag code I'm now doing for the dawg code. While I was at it, I made some improvements to the dawg code... * Instead of adding multiple cross-checks for various kinds of node metadata, there's now only one cross- check...a hash applied to each node. * Some useless variables/members have been excised. * Add ability to do a word count (cryptohash coming soon). * Make it possible to call generate() and writeIndex() multiple times without corrupting the dictionary.
2015-08-20Bug fixes to GaddagFactoryJohn Fultz
A few things from my last commit needed to be fixed or improved.
2015-08-18Migrate gaddag maker into quackleio.John Fultz
Prepping to build the gaddag maker into the quacker ui. Built a new class called GaddagFactory to do this and cleaned up the code a bit. makegaddag still builds exactly as it did before.
2015-07-21Visual Studio build maintenance.John Fultz
* Fix compiler warnings * Add Visual Studio 2013 solution * Tweak .pro files * Most importantly, rename main 'quackle' project to 'libquackle' to avoid solution-level name conflict. This only affects the VS build.
2014-09-02Change GPL file headers to v3.John Fultz
Not a very interesting commit...only changes in comments.