ZDL 3.3

From ZDL Wiki
Revision as of 14:18, 1 August 2019 by QBasicer (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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 :)

What Changed

  • 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)

Bug Fixes

  • 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).