ZDL 3.3 is the continuation/fork of the ZDL project by User:Dugan-c with major refactoring and modernization for Qt5. It's a direct successor to ZDL 3.2, and formally removes the updater functionality. The pull request can be viewed on github.
What Remained the Same
- The overall architecture, where the UI is QWidgets, and the data store is an INI file accessed via a static instance. I thought about a port to QML, but had second thoughts when PPSSPP, Dolphin and RetroArch all went with QWidgets.
- The ListWidgets (refactoring these into item/view classes can wait until the next version)
- As much as of the original formatting as possible
- The non-working, stub PK7 support :)
- The build system (now CMake)
- The project structure (flattened, as that works better with CMake)
- The entire configuration and data store system (more on that later)
- The command-line parser (now uses a QCommandLine)
- The code to actually launch the source port is now cross-platform (tested on Windows, Mac and Linux)
- Qt version (now 5)
What was Removed
- The code to associate file extensions with ZDL (it was Windows-specific, and you can just use your file manager for that)
- "Save .ini" and "load .ini" (I don't see how this would be useful, but I can add it back if it's needed)
- The "importer" dialog
- The inactive logging that amounted to about a third of the codebase ;)
- Any code that isn't cross-platform (no special-casing for line endings or directory separators was needed)
- The locking around the ini file access operations. The locks didn't do anything, and if we need something like that, we can make it a single-instance application with a QLockFile check.
- All command-line arguments other than an optional .zdl file to load
- The "flag manager" code (inactive by default, I think)
- ipk3 files (for Simon's Destiny) are now browsable. This was specifically requested on the forums.
- "Close on launch" no longer crashes the application
- Selecting "Show Command Line" or "Launch" without selecting a source port no longer crashes the application
- Paths with spaces now work properly (esp for PWADs)
- HiDPI is now supported
- Errors the happen when launching the source port are now handled properly (I actually wrote a program to test this, as I couldn't figure out how to get a source port to launch with an exit status other than zero).