Restore compatibility with Qt 4

The test system is Slackware 14.2, which uses Qt 4.8.7.

* WANT_WIN_QT4 is defined, and has the expected meaning. Qt 5 is still
  the default.

* The QT_NO_SOUND macro now excludes all headers and declarations
  relating to sound; the multimedia package is not needed to build
  (on any Qt 4, 5 or 6).

* A new function, nh_qsprintf, replaces QString::asprintf, for Qt
  older than 5.5. These versions do not have QString::asprintf.

* DYNAMIC_STATUSLINES is disabled for Qt older than 5.9. These versions
  do not have QSplitter::replaceWidget.
This commit is contained in:
Ray Chason
2022-11-19 09:14:54 -05:00
committed by PatR
parent 47ace5d10a
commit 890853a03d
13 changed files with 81 additions and 38 deletions

View File

@@ -13,7 +13,7 @@ extern "C" {
#include <QtGui/QtGui>
#if QT_VERSION >= 0x060000
#include <QtGui/QShortcut>
#else
#elif QT_VERSION >= 0x050000
#include <QtWidgets/QShortcut>
#endif
@@ -463,7 +463,7 @@ aboutMsg()
*p = '\0';
/* it's also long; break it into two pieces */
(void) strsubst(vbuf, " - ", "\n- ");
QString msg = QString::asprintf(
QString msg = nh_qsprintf(
// format
"NetHack-Qt is a version of NetHack built using" // no newline
#ifdef KDE
@@ -1034,7 +1034,7 @@ void NetHackQtMainWindow::doQuit(bool)
// nethack's #quit command itself) but this routine is unconditional
// in case someone wants to change that
#ifdef MACOS
QString info = QString::asprintf("This will end your NetHack session.%s",
QString info = nh_qsprintf("This will end your NetHack session.%s",
!g.program_state.something_worth_saving ? ""
: "\n(Cancel quitting and use the Save command"
"\nto save your current game.)");