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

@@ -6,6 +6,7 @@
#include <QtCore/QString>
#include <QtCore/QStringList>
#include <cstdarg>
#include "qt_str.h"
namespace nethack_qt_ {
@@ -80,4 +81,20 @@ int cp437(int ch)
return cp437table[(unsigned char)ch];
}
QString
nh_qsprintf(const char *format, ...)
{
QString msg;
std::va_list args;
va_start(args, format);
#if QT_VERSION >= QT_VERSION_CHECK(5, 5, 0)
msg = QString::vasprintf(format, args);
#else
msg.vsprintf(format, args);
#endif
va_end(args);
return msg;
}
} // namespace nethack_qt_