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:
@@ -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_
|
||||
|
||||
Reference in New Issue
Block a user