From 882bf92377e23eb7a1f5f8a71e5cf9195b312c57 Mon Sep 17 00:00:00 2001 From: jhoyt4 Date: Mon, 8 Nov 2021 09:02:04 -0500 Subject: [PATCH] MacOS Qt6 updates (#410) * OSX: Fix issue where QKeyCombination cannot be recast as int on QT6 only * OSX: Fix issue where 'QString *' and 'const QString' cannot be compared * OSX: In Qt6 OpenGL calls are now in their own Qt module QtOpenGL * OSX: modify MacDockSettings, MacMainSettings, MacFloatSettings, and MacDesktopSettings to use Non-Qt Class translation in Qt6 --- mythtv/libs/libmyth/audio/audiooutputca.cpp | 2 +- mythtv/libs/libmythtv/libmythtv.pro | 6 ++++++ .../libmythui/devices/AppleRemoteListener.cpp | 5 ++++- mythtv/programs/mythfrontend/globalsettings.h | 17 ++++++++++++++++- 4 files changed, 27 insertions(+), 3 deletions(-) diff --git a/mythtv/libs/libmyth/audio/audiooutputca.cpp b/mythtv/libs/libmyth/audio/audiooutputca.cpp index 0ada45645d2..6852335cb1d 100644 --- a/mythtv/libs/libmyth/audio/audiooutputca.cpp +++ b/mythtv/libs/libmyth/audio/audiooutputca.cpp @@ -575,7 +575,7 @@ AudioDeviceID CoreAudioData::GetDeviceWithName(const QString &deviceName) if (device.GetTotalOutputChannels() == 0) continue; QString *name = device.GetName(); - if (name && name == deviceName) + if (name && *name == deviceName) { Debug(QString("GetDeviceWithName: Found: %1").arg(*name)); deviceID = pDevices[dev]; diff --git a/mythtv/libs/libmythtv/libmythtv.pro b/mythtv/libs/libmythtv/libmythtv.pro index cf61762c864..f62737d62c0 100644 --- a/mythtv/libs/libmythtv/libmythtv.pro +++ b/mythtv/libs/libmythtv/libmythtv.pro @@ -80,6 +80,12 @@ macx { } LIBS += -liconv + + # Qt6 moved QtGui to use metal, link in QtOpenGL until migrated fully to + # Metal per https://doc.qt.io/qt-6/opengl-changes-qt6.html + equals(QT_MAJOR_VERSION, 6) { + QT += opengl + } } cygwin:QMAKE_LFLAGS_SHLIB += -Wl,--noinhibit-exec diff --git a/mythtv/libs/libmythui/devices/AppleRemoteListener.cpp b/mythtv/libs/libmythui/devices/AppleRemoteListener.cpp index 355b7d2960e..0e7b6636153 100644 --- a/mythtv/libs/libmythui/devices/AppleRemoteListener.cpp +++ b/mythtv/libs/libmythui/devices/AppleRemoteListener.cpp @@ -57,8 +57,11 @@ void AppleRemoteListener::appleRemoteButton(AppleRemote::Event button, QKeySequence a(code); for (int i = 0; i < a.count(); i++) { +#if QT_VERSION < QT_VERSION_CHECK(6,0,0) int keycode = a[i]; - +#else + int keycode = a[i].toCombined(); +#endif if (pressedDown) QCoreApplication::postEvent(mainWindow, new LircKeycodeEvent( QEvent::KeyPress, keycode, Qt::NoModifier, code, code)); diff --git a/mythtv/programs/mythfrontend/globalsettings.h b/mythtv/programs/mythfrontend/globalsettings.h index 634d366a8dc..6261cee27b2 100644 --- a/mythtv/programs/mythfrontend/globalsettings.h +++ b/mythtv/programs/mythfrontend/globalsettings.h @@ -74,15 +74,22 @@ class ChannelGroupSettings #if CONFIG_DARWIN class MacMainSettings : public GroupSetting { +#if QT_VERSION < QT_VERSION_CHECK(6,0,0) Q_OBJECT - +#else + Q_DECLARE_TR_FUNCTIONS(MacMainSettings); +#endif public: MacMainSettings(); }; class MacFloatSettings : public GroupSetting { +#if QT_VERSION < QT_VERSION_CHECK(6,0,0) Q_OBJECT +#else + Q_DECLARE_TR_FUNCTIONS(MacFloatSettings); +#endif public: MacFloatSettings(); @@ -91,7 +98,11 @@ class MacFloatSettings : public GroupSetting class MacDockSettings : public GroupSetting { +#if QT_VERSION < QT_VERSION_CHECK(6,0,0) Q_OBJECT +#else + Q_DECLARE_TR_FUNCTIONS(MacDockSettings); +#endif public: MacDockSettings(); @@ -100,7 +111,11 @@ class MacDockSettings : public GroupSetting class MacDesktopSettings : public GroupSetting { +#if QT_VERSION < QT_VERSION_CHECK(6,0,0) Q_OBJECT +#else + Q_DECLARE_TR_FUNCTIONS(MacDesktopSettings); +#endif public: MacDesktopSettings();