Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package QMPlay2 for openSUSE:Factory checked in at 2023-09-06 18:58:22 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/QMPlay2 (Old) and /work/SRC/openSUSE:Factory/.QMPlay2.new.1766 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "QMPlay2" Wed Sep 6 18:58:22 2023 rev:78 rq:1109149 version:23.09.05 Changes: -------- --- /work/SRC/openSUSE:Factory/QMPlay2/QMPlay2.changes 2023-08-23 14:59:37.566205951 +0200 +++ /work/SRC/openSUSE:Factory/.QMPlay2.new.1766/QMPlay2.changes 2023-09-06 19:02:21.624471687 +0200 @@ -1,0 +2,9 @@ +Tue Sep 5 23:43:19 UTC 2023 - Simon Vogl <simon.v...@gmx.net> + +- Update to version 23.09.05 + * Wayland Vulkan crash fix for Qt <= 6.4, + * RadioBrowser improvements and fixes, + * ALSA crash fix on early pause, + * tray menu fixes. + +------------------------------------------------------------------- Old: ---- QMPlay2-src-23.08.22.tar.xz New: ---- QMPlay2-src-23.09.05.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ QMPlay2.spec ++++++ --- /var/tmp/diff_new_pack.2Pmfp3/_old 2023-09-06 19:02:22.888516748 +0200 +++ /var/tmp/diff_new_pack.2Pmfp3/_new 2023-09-06 19:02:22.892516890 +0200 @@ -20,7 +20,7 @@ %bcond_with qt6 Name: QMPlay2 -Version: 23.08.22 +Version: 23.09.05 Release: 0 Summary: A Qt based media player, streamer and downloader License: LGPL-3.0-or-later ++++++ QMPlay2-src-23.08.22.tar.xz -> QMPlay2-src-23.09.05.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/ChangeLog new/QMPlay2-src-23.09.05/ChangeLog --- old/QMPlay2-src-23.08.22/ChangeLog 2023-08-21 20:48:33.000000000 +0200 +++ new/QMPlay2-src-23.09.05/ChangeLog 2023-09-05 19:28:53.000000000 +0200 @@ -1,3 +1,10 @@ +Changes in QMPlay2 23.09.05: + - Wayland Vulkan crash fix for Qt <= 6.4, + - RadioBrowser improvements and fixes, + - ALSA crash fix on early pause, + - tray menu fixes, + - Qt6 for macOS, + Changes in QMPlay2 23.08.22: - don't display empty color space name in Information panel, - Yadif: Remove inline assembly and optimize C++ code, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/lang/de.ts new/QMPlay2-src-23.09.05/lang/de.ts --- old/QMPlay2-src-23.08.22/lang/de.ts 2023-08-22 19:55:19.000000000 +0200 +++ new/QMPlay2-src-23.09.05/lang/de.ts 2023-09-03 13:58:58.000000000 +0200 @@ -2795,6 +2795,14 @@ <source>State</source> <translation>Staat</translation> </message> + <message> + <source>Type the station name and press Enter</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Select a "%1" from the drop-down list</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>RadioBrowserModel</name> @@ -2815,8 +2823,8 @@ <translation>Tags</translation> </message> <message> - <source>Rating</source> - <translation>Bewertung</translation> + <source>Clicks</source> + <translation type="unfinished"></translation> </message> </context> <context> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/lang/es.ts new/QMPlay2-src-23.09.05/lang/es.ts --- old/QMPlay2-src-23.08.22/lang/es.ts 2023-08-22 19:55:19.000000000 +0200 +++ new/QMPlay2-src-23.09.05/lang/es.ts 2023-09-03 13:58:58.000000000 +0200 @@ -2796,6 +2796,14 @@ <source>State</source> <translation type="unfinished"></translation> </message> + <message> + <source>Type the station name and press Enter</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Select a "%1" from the drop-down list</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>RadioBrowserModel</name> @@ -2816,8 +2824,8 @@ <translation>Etiquetas</translation> </message> <message> - <source>Rating</source> - <translation>Valoración</translation> + <source>Clicks</source> + <translation type="unfinished"></translation> </message> </context> <context> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/lang/fr.ts new/QMPlay2-src-23.09.05/lang/fr.ts --- old/QMPlay2-src-23.08.22/lang/fr.ts 2023-08-22 19:55:19.000000000 +0200 +++ new/QMPlay2-src-23.09.05/lang/fr.ts 2023-09-03 13:58:58.000000000 +0200 @@ -2792,6 +2792,14 @@ <source>State</source> <translation type="unfinished"></translation> </message> + <message> + <source>Type the station name and press Enter</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Select a "%1" from the drop-down list</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>RadioBrowserModel</name> @@ -2812,7 +2820,7 @@ <translation type="unfinished"></translation> </message> <message> - <source>Rating</source> + <source>Clicks</source> <translation type="unfinished"></translation> </message> </context> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/lang/hu.ts new/QMPlay2-src-23.09.05/lang/hu.ts --- old/QMPlay2-src-23.08.22/lang/hu.ts 2023-08-22 19:55:19.000000000 +0200 +++ new/QMPlay2-src-23.09.05/lang/hu.ts 2023-09-03 13:58:58.000000000 +0200 @@ -2796,6 +2796,14 @@ <source>State</source> <translation type="unfinished"></translation> </message> + <message> + <source>Type the station name and press Enter</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Select a "%1" from the drop-down list</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>RadioBrowserModel</name> @@ -2816,8 +2824,8 @@ <translation>CÃmkék</translation> </message> <message> - <source>Rating</source> - <translation>Ãrtékelés</translation> + <source>Clicks</source> + <translation type="unfinished"></translation> </message> </context> <context> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/lang/ja.ts new/QMPlay2-src-23.09.05/lang/ja.ts --- old/QMPlay2-src-23.08.22/lang/ja.ts 2023-08-22 19:55:19.000000000 +0200 +++ new/QMPlay2-src-23.09.05/lang/ja.ts 2023-09-03 13:58:58.000000000 +0200 @@ -2798,6 +2798,14 @@ <source>State</source> <translation>å·</translation> </message> + <message> + <source>Type the station name and press Enter</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Select a "%1" from the drop-down list</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>RadioBrowserModel</name> @@ -2818,8 +2826,8 @@ <translation>ã¿ã°</translation> </message> <message> - <source>Rating</source> - <translation>è©ä¾¡</translation> + <source>Clicks</source> + <translation type="unfinished"></translation> </message> </context> <context> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/lang/nl.ts new/QMPlay2-src-23.09.05/lang/nl.ts --- old/QMPlay2-src-23.08.22/lang/nl.ts 2023-08-22 19:55:19.000000000 +0200 +++ new/QMPlay2-src-23.09.05/lang/nl.ts 2023-09-03 13:58:58.000000000 +0200 @@ -2796,6 +2796,14 @@ <source>Radio station with given name already exists!</source> <translation>Er is al een radiozender met deze naam!</translation> </message> + <message> + <source>Type the station name and press Enter</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Select a "%1" from the drop-down list</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>RadioBrowserModel</name> @@ -2816,8 +2824,8 @@ <translation>Labels</translation> </message> <message> - <source>Rating</source> - <translation>Beoordeling</translation> + <source>Clicks</source> + <translation type="unfinished"></translation> </message> </context> <context> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/lang/pl.ts new/QMPlay2-src-23.09.05/lang/pl.ts --- old/QMPlay2-src-23.08.22/lang/pl.ts 2023-08-22 19:55:19.000000000 +0200 +++ new/QMPlay2-src-23.09.05/lang/pl.ts 2023-09-03 14:00:30.000000000 +0200 @@ -2796,6 +2796,14 @@ <source>State</source> <translation>Stan</translation> </message> + <message> + <source>Type the station name and press Enter</source> + <translation>Wpisz nazwÄ stacji i naciÅnij Enter</translation> + </message> + <message> + <source>Select a "%1" from the drop-down list</source> + <translation>Wybierz "%1" z listy rozwijanej</translation> + </message> </context> <context> <name>RadioBrowserModel</name> @@ -2816,8 +2824,8 @@ <translation>Tagi</translation> </message> <message> - <source>Rating</source> - <translation>Ocena</translation> + <source>Clicks</source> + <translation>KlikniÄcia</translation> </message> </context> <context> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/lang/pt_BR.ts new/QMPlay2-src-23.09.05/lang/pt_BR.ts --- old/QMPlay2-src-23.08.22/lang/pt_BR.ts 2023-08-22 19:55:19.000000000 +0200 +++ new/QMPlay2-src-23.09.05/lang/pt_BR.ts 2023-09-03 13:58:58.000000000 +0200 @@ -2807,6 +2807,14 @@ <source>Radio station with given name already exists!</source> <translation>Já existe uma estação de rádio com esse nome!</translation> </message> + <message> + <source>Type the station name and press Enter</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Select a "%1" from the drop-down list</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>RadioBrowserModel</name> @@ -2827,8 +2835,8 @@ <translation>Tags</translation> </message> <message> - <source>Rating</source> - <translation>Avaliação</translation> + <source>Clicks</source> + <translation type="unfinished"></translation> </message> </context> <context> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/lang/ru.ts new/QMPlay2-src-23.09.05/lang/ru.ts --- old/QMPlay2-src-23.08.22/lang/ru.ts 2023-08-22 19:55:19.000000000 +0200 +++ new/QMPlay2-src-23.09.05/lang/ru.ts 2023-09-03 13:58:58.000000000 +0200 @@ -2796,6 +2796,14 @@ <source>State</source> <translation>ШÑаÑ/облаÑÑÑ</translation> </message> + <message> + <source>Type the station name and press Enter</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Select a "%1" from the drop-down list</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>RadioBrowserModel</name> @@ -2816,8 +2824,8 @@ <translation>Теги</translation> </message> <message> - <source>Rating</source> - <translation>ÐÑенка</translation> + <source>Clicks</source> + <translation type="unfinished"></translation> </message> </context> <context> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/lang/sk.ts new/QMPlay2-src-23.09.05/lang/sk.ts --- old/QMPlay2-src-23.08.22/lang/sk.ts 2023-08-22 19:55:19.000000000 +0200 +++ new/QMPlay2-src-23.09.05/lang/sk.ts 2023-09-03 13:58:58.000000000 +0200 @@ -2796,6 +2796,14 @@ <source>State</source> <translation>Stav</translation> </message> + <message> + <source>Type the station name and press Enter</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Select a "%1" from the drop-down list</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>RadioBrowserModel</name> @@ -2816,8 +2824,8 @@ <translation>ZnaÄky</translation> </message> <message> - <source>Rating</source> - <translation>Hodnotenie</translation> + <source>Clicks</source> + <translation type="unfinished"></translation> </message> </context> <context> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/lang/tr.ts new/QMPlay2-src-23.09.05/lang/tr.ts --- old/QMPlay2-src-23.08.22/lang/tr.ts 2023-08-22 19:55:19.000000000 +0200 +++ new/QMPlay2-src-23.09.05/lang/tr.ts 2023-09-03 13:58:58.000000000 +0200 @@ -2808,6 +2808,14 @@ <translatorcomment>Belki eyalet anlamındadır. Arayüzdeki duruma göre güncellemek gerekebilir.</translatorcomment> <translation>Durum</translation> </message> + <message> + <source>Type the station name and press Enter</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Select a "%1" from the drop-down list</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>RadioBrowserModel</name> @@ -2828,8 +2836,8 @@ <translation>Etiketler</translation> </message> <message> - <source>Rating</source> - <translation>BeÄeni</translation> + <source>Clicks</source> + <translation type="unfinished"></translation> </message> </context> <context> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/lang/uk.ts new/QMPlay2-src-23.09.05/lang/uk.ts --- old/QMPlay2-src-23.08.22/lang/uk.ts 2023-08-22 19:55:19.000000000 +0200 +++ new/QMPlay2-src-23.09.05/lang/uk.ts 2023-09-03 13:58:58.000000000 +0200 @@ -2796,6 +2796,14 @@ <source>State</source> <translation>ШÑаÑ</translation> </message> + <message> + <source>Type the station name and press Enter</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Select a "%1" from the drop-down list</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>RadioBrowserModel</name> @@ -2816,8 +2824,8 @@ <translation>Теги</translation> </message> <message> - <source>Rating</source> - <translation>РейÑинг</translation> + <source>Clicks</source> + <translation type="unfinished"></translation> </message> </context> <context> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/lang/zh_CN.ts new/QMPlay2-src-23.09.05/lang/zh_CN.ts --- old/QMPlay2-src-23.08.22/lang/zh_CN.ts 2023-08-22 19:55:19.000000000 +0200 +++ new/QMPlay2-src-23.09.05/lang/zh_CN.ts 2023-09-05 19:28:53.000000000 +0200 @@ -2796,6 +2796,14 @@ <source>State</source> <translation>å·</translation> </message> + <message> + <source>Type the station name and press Enter</source> + <translation>è¾å ¥çµå°å称并æ确认</translation> + </message> + <message> + <source>Select a "%1" from the drop-down list</source> + <translation>ä»ä¸æå表éæ©ä¸ä¸ª "%1"</translation> + </message> </context> <context> <name>RadioBrowserModel</name> @@ -2816,8 +2824,8 @@ <translation>æ ç¾</translation> </message> <message> - <source>Rating</source> - <translation>å级</translation> + <source>Clicks</source> + <translation>ç¹å»é</translation> </message> </context> <context> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/lang/zh_TW.ts new/QMPlay2-src-23.09.05/lang/zh_TW.ts --- old/QMPlay2-src-23.08.22/lang/zh_TW.ts 2023-08-22 19:55:19.000000000 +0200 +++ new/QMPlay2-src-23.09.05/lang/zh_TW.ts 2023-09-05 19:28:53.000000000 +0200 @@ -2796,6 +2796,14 @@ <source>State</source> <translation>å·</translation> </message> + <message> + <source>Type the station name and press Enter</source> + <translation>è¼¸å ¥é»å°å稱並æ確èª</translation> + </message> + <message> + <source>Select a "%1" from the drop-down list</source> + <translation>å¾ä¸æå¼æ¸ å®é¸æä¸å "%1"</translation> + </message> </context> <context> <name>RadioBrowserModel</name> @@ -2816,8 +2824,8 @@ <translation>æ¨ç±¤</translation> </message> <message> - <source>Rating</source> - <translation>è©å</translation> + <source>Clicks</source> + <translation>é»æé</translation> </message> </context> <context> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/gui/MainWidget.cpp new/QMPlay2-src-23.09.05/src/gui/MainWidget.cpp --- old/QMPlay2-src-23.08.22/src/gui/MainWidget.cpp 2023-08-04 00:29:43.000000000 +0200 +++ new/QMPlay2-src-23.09.05/src/gui/MainWidget.cpp 2023-09-04 20:52:36.000000000 +0200 @@ -96,18 +96,37 @@ }; #ifndef Q_OS_MACOS -static void copyMenu(QMenu *dest, QMenu *src, QMenu *dontCopy = nullptr) +static void copyMenu(QMenu *dest, QMenu *src, const QSet<QMenu *> &dontCopy = {}, const QSet<QMenu *> &dontAdd = {}) { QMenu *newMenu = new QMenu(src->title(), dest); for (QAction *act : src->actions()) { QMenu *menu = act->menu(); if (!menu) - newMenu->addAction(act); - else if (menu != dontCopy) - copyMenu(newMenu, menu, dontCopy); - else if (dontCopy) - newMenu->addMenu(dontCopy); + { + if (!act->isSeparator()) + { + newMenu->addAction(act); + } + else + { + const auto actions = newMenu->actions(); + if (!actions.isEmpty() && !actions.constLast()->isSeparator()) + newMenu->addAction(act); + } + } + else if (dontAdd.contains(menu)) + { + continue; + } + else if (!dontCopy.contains(menu)) + { + copyMenu(newMenu, menu, dontCopy, dontAdd); + } + else + { + newMenu->addMenu(menu); + } } dest->addMenu(newMenu); } @@ -994,9 +1013,22 @@ auto secondMenu = new QMenu(this); copyMenu(secondMenu, menuBar->window); secondMenu->addMenu(menuBar->widgets); - copyMenu(secondMenu, menuBar->playlist, menuBar->playlist->extensions); + copyMenu(secondMenu, menuBar->playlist, {menuBar->playlist->extensions}); copyMenu(secondMenu, menuBar->player); - copyMenu(secondMenu, menuBar->playback, menuBar->playback->videoFilters->videoAdjustmentMenu); + copyMenu(secondMenu, menuBar->playback, + { + menuBar->playback->audioStreams, + menuBar->playback->videoStreams, + menuBar->playback->subtitlesStreams, + menuBar->playback->chapters, + menuBar->playback->programs, + }, + { +#ifdef Q_OS_WIN + menuBar->playback->videoFilters->videoAdjustmentMenu, +#endif + } + ); copyMenu(secondMenu, menuBar->options); for (auto ext : QMPlay2Extensions::QMPlay2ExtensionsList()) { @@ -1039,7 +1071,7 @@ secondMenu->addSeparator(); secondMenu->addAction(newInstanceAct); - qt_mac_set_dock_menu(secondMenu); + secondMenu->setAsDockMenu(); #endif } void MainWidget::trayIconClicked(QSystemTrayIcon::ActivationReason reason) @@ -1191,8 +1223,10 @@ #ifndef Q_OS_MACOS showFullScreen(); #else + const auto geo = window()->windowHandle()->screen()->geometry(); + setMinimumSize(geo.size()); setWindowFlags(Qt::Window | Qt::FramelessWindowHint); - setGeometry(window()->windowHandle()->screen()->geometry()); + setGeometry(geo); QMPlay2MacExtensions::showSystemUi(windowHandle(), false); show(); #endif @@ -1213,6 +1247,7 @@ #ifndef Q_OS_ANDROID #ifdef Q_OS_MACOS + setMinimumSize(0, 0); QMPlay2MacExtensions::showSystemUi(windowHandle(), true); setWindowFlags(Qt::Window); #else diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/gui/MenuBar.cpp new/QMPlay2-src-23.09.05/src/gui/MenuBar.cpp --- old/QMPlay2-src-23.08.22/src/gui/MenuBar.cpp 2023-08-04 00:29:43.000000000 +0200 +++ new/QMPlay2-src-23.09.05/src/gui/MenuBar.cpp 2023-09-02 15:09:26.000000000 +0200 @@ -433,28 +433,18 @@ QMenu(VideoFilters::tr("Video &filters"), parent) { /** Korektor wideo */ +#ifndef Q_OS_MACOS videoAdjustmentMenu = new QMenu(VideoFilters::tr("Video &adjustment"), this); addMenu(videoAdjustmentMenu); QWidgetAction *widgetAction = new QWidgetAction(this); widgetAction->setDefaultWidget(QMPlay2GUI.videoAdjustment); QMPlay2GUI.videoAdjustment->setObjectName(videoAdjustmentMenu->title().remove('&')); videoAdjustmentMenu->addAction(widgetAction); -#ifdef Q_OS_MACOS - // Update visibility and update geometry of video adjustment widget - connect(videoAdjustmentMenu, &VideoFilters::aboutToShow, [] { - if (QWidget *parent = QMPlay2GUI.videoAdjustment->parentWidget()) - { - if (qstrcmp(parent->metaObject()->className(), "QMenu") == 0) - { - QTimer::singleShot(0, [parent] { - QMPlay2GUI.videoAdjustment->setGeometry(QRect(QPoint(), parent->sizeHint())); - }); - } - } - }); + addSeparator(); +#else + videoAdjustmentMenu = nullptr; #endif /**/ - addSeparator(); newAction(VideoFilters::tr("&Spherical view"), this, spherical, true, QIcon(), true); addSeparator(); newAction(VideoFilters::tr("&Horizontal flip"), this, hFlip, true, QIcon(), true); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/gui/SettingsWidget.cpp new/QMPlay2-src-23.09.05/src/gui/SettingsWidget.cpp --- old/QMPlay2-src-23.08.22/src/gui/SettingsWidget.cpp 2023-08-07 00:32:02.000000000 +0200 +++ new/QMPlay2-src-23.09.05/src/gui/SettingsWidget.cpp 2023-09-02 15:09:26.000000000 +0200 @@ -1113,8 +1113,11 @@ if (videoEq->parentWidget() != videoEqOriginalParent) { videoEq->setParent(videoEqOriginalParent); - videoEq->setGeometry(videoEqOriginalParent->rect()); - videoEqOriginalParent->setEnabled(true); + if (videoEqOriginalParent) + { + videoEq->setGeometry(videoEqOriginalParent->rect()); + videoEqOriginalParent->setEnabled(true); + } } if (QLayout *videoEqLayout = page6->videoEqContainer->layout()) videoEqLayout->deleteLater(); @@ -1420,7 +1423,8 @@ QGridLayout *videoEqLayout = new QGridLayout(page6->videoEqContainer); videoEqLayout->setContentsMargins(0, 0, 0, 0); videoEqLayout->addWidget(videoEq); - videoEqOriginalParent->setDisabled(true); + if (videoEqOriginalParent) + videoEqOriginalParent->setDisabled(true); videoEq->show(); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/gui/VideoDock.cpp new/QMPlay2-src-23.09.05/src/gui/VideoDock.cpp --- old/QMPlay2-src-23.08.22/src/gui/VideoDock.cpp 2023-06-03 17:27:29.000000000 +0200 +++ new/QMPlay2-src-23.09.05/src/gui/VideoDock.cpp 2023-09-02 15:09:26.000000000 +0200 @@ -355,13 +355,6 @@ { if (canPopup) { -#ifdef Q_OS_MACOS - // Move parent of video adjustment widget from native Mac widget to QMenu - QWidget *videoAdj = (QWidget *)QMPlay2GUI.videoAdjustment; - QWidget *parent = videoAdj->parentWidget(); - if (parent && qstrcmp(parent->metaObject()->className(), "QMacNativeWidget") == 0) - videoAdj->setParent(QMPlay2GUI.menuBar->playback->videoFilters->videoAdjustmentMenu); -#endif popupMenu->popup(mapToGlobal(p)); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/gui/macOS/QMPlay2MacExtensions.mm new/QMPlay2-src-23.09.05/src/gui/macOS/QMPlay2MacExtensions.mm --- old/QMPlay2-src-23.08.22/src/gui/macOS/QMPlay2MacExtensions.mm 2020-03-18 22:58:30.000000000 +0100 +++ new/QMPlay2-src-23.09.05/src/gui/macOS/QMPlay2MacExtensions.mm 2023-08-30 00:27:49.000000000 +0200 @@ -17,7 +17,11 @@ {} private: +#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) + bool nativeEventFilter(const QByteArray &eventType, void *message, qintptr *result) override final +#else bool nativeEventFilter(const QByteArray &eventType, void *message, long *result) override final +#endif { Q_UNUSED(result) if (eventType == "mac_generic_NSEvent") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/modules/ALSA/ALSAWriter.cpp new/QMPlay2-src-23.09.05/src/modules/ALSA/ALSAWriter.cpp --- old/QMPlay2-src-23.08.22/src/modules/ALSA/ALSAWriter.cpp 2023-05-24 23:39:35.000000000 +0200 +++ new/QMPlay2-src-23.09.05/src/modules/ALSA/ALSAWriter.cpp 2023-08-23 19:02:27.000000000 +0200 @@ -71,7 +71,7 @@ snd(nullptr), delay(0.0), sample_rate(0), channels(0), - autoFindMultichannelDevice(false), err(false) + autoFindMultichannelDevice(false), err(false), canPause(false) { addParam("delay"); addParam("rate"); @@ -226,7 +226,7 @@ modParam("rate", sample_rate); } - canPause = snd_pcm_hw_params_can_pause(params) && snd_pcm_hw_params_can_resume(params); + canPause = snd_pcm_hw_params_can_pause(params); mustSwapChn = channels == 6 || channels == 8; #ifdef HAVE_CHMAP diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/modules/ALSA/CMakeLists.txt new/QMPlay2-src-23.09.05/src/modules/ALSA/CMakeLists.txt --- old/QMPlay2-src-23.08.22/src/modules/ALSA/CMakeLists.txt 2022-06-15 23:05:21.000000000 +0200 +++ new/QMPlay2-src-23.09.05/src/modules/ALSA/CMakeLists.txt 2023-08-30 00:28:19.000000000 +0200 @@ -21,7 +21,7 @@ include_directories(${ALSA_INCLUDE_DIR}) -add_library(${PROJECT_NAME} ${QMPLAY2_MODULE} +add_library(${PROJECT_NAME} MODULE ${ALSA_HDR} ${ALSA_SRC} ${ALSA_RESOURCES} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/modules/AudioCD/CMakeLists.txt new/QMPlay2-src-23.09.05/src/modules/AudioCD/CMakeLists.txt --- old/QMPlay2-src-23.08.22/src/modules/AudioCD/CMakeLists.txt 2022-06-15 23:05:21.000000000 +0200 +++ new/QMPlay2-src-23.09.05/src/modules/AudioCD/CMakeLists.txt 2023-08-30 00:28:19.000000000 +0200 @@ -20,7 +20,7 @@ include_directories(${LIBCD_INCLUDE_DIRS}) -add_library(${PROJECT_NAME} ${QMPLAY2_MODULE} +add_library(${PROJECT_NAME} MODULE ${AudioCD_HDR} ${AudioCD_SRC} ${AudioCD_RESOURCES} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/modules/AudioFilters/CMakeLists.txt new/QMPlay2-src-23.09.05/src/modules/AudioFilters/CMakeLists.txt --- old/QMPlay2-src-23.08.22/src/modules/AudioFilters/CMakeLists.txt 2022-06-15 23:05:21.000000000 +0200 +++ new/QMPlay2-src-23.09.05/src/modules/AudioFilters/CMakeLists.txt 2023-08-30 00:28:19.000000000 +0200 @@ -32,7 +32,7 @@ icon.qrc ) -add_library(${PROJECT_NAME} ${QMPLAY2_MODULE} +add_library(${PROJECT_NAME} MODULE ${AudioFilters_HDR} ${AudioFilters_SRC} ${AudioFilters_RESOURCES} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/modules/CMakeLists.txt new/QMPlay2-src-23.09.05/src/modules/CMakeLists.txt --- old/QMPlay2-src-23.08.22/src/modules/CMakeLists.txt 2023-05-21 00:00:23.000000000 +0200 +++ new/QMPlay2-src-23.09.05/src/modules/CMakeLists.txt 2023-08-30 00:28:19.000000000 +0200 @@ -3,16 +3,12 @@ if(WIN32) set(MODULES_INSTALL_PATH "modules") set(CMAKE_SHARED_MODULE_PREFIX "") # remove lib prefix - set(QMPLAY2_MODULE MODULE) elseif(APPLE) set(MODULES_INSTALL_PATH "${CMAKE_INSTALL_LIBDIR}/modules") - set(QMPLAY2_MODULE SHARED) # otherwise CMake uses ".so" extension elseif(HAIKU) set(MODULES_INSTALL_PATH "modules") - set(QMPLAY2_MODULE MODULE) else() set(MODULES_INSTALL_PATH "${CMAKE_INSTALL_LIBDIR}/qmplay2/modules") - set(QMPLAY2_MODULE MODULE) endif() add_subdirectory(FFmpeg) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/modules/CUVID/CMakeLists.txt new/QMPlay2-src-23.09.05/src/modules/CUVID/CMakeLists.txt --- old/QMPlay2-src-23.08.22/src/modules/CUVID/CMakeLists.txt 2022-06-15 23:05:21.000000000 +0200 +++ new/QMPlay2-src-23.09.05/src/modules/CUVID/CMakeLists.txt 2023-08-30 00:28:19.000000000 +0200 @@ -27,7 +27,7 @@ list(APPEND CUVID_SRC CuvidVulkan.cpp) endif() -add_library(${PROJECT_NAME} ${QMPLAY2_MODULE} +add_library(${PROJECT_NAME} MODULE ${CUVID_HDR} ${CUVID_SRC} ${CUVID_RESOURCES} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/modules/Chiptune/CMakeLists.txt new/QMPlay2-src-23.09.05/src/modules/Chiptune/CMakeLists.txt --- old/QMPlay2-src-23.08.22/src/modules/Chiptune/CMakeLists.txt 2022-06-15 23:05:21.000000000 +0200 +++ new/QMPlay2-src-23.09.05/src/modules/Chiptune/CMakeLists.txt 2023-08-30 00:28:19.000000000 +0200 @@ -41,7 +41,7 @@ list(APPEND Chiptune_LIBS ${LIBSIDPLAYFP_LIBRARIES}) endif() -add_library(${PROJECT_NAME} ${QMPLAY2_MODULE} +add_library(${PROJECT_NAME} MODULE ${Chiptune_HDR} ${Chiptune_SRC} ${Chiptune_RESOURCES} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/modules/DirectX/CMakeLists.txt new/QMPlay2-src-23.09.05/src/modules/DirectX/CMakeLists.txt --- old/QMPlay2-src-23.08.22/src/modules/DirectX/CMakeLists.txt 2022-06-15 23:05:21.000000000 +0200 +++ new/QMPlay2-src-23.09.05/src/modules/DirectX/CMakeLists.txt 2023-08-30 00:28:19.000000000 +0200 @@ -15,7 +15,7 @@ icon.qrc ) -add_library(${PROJECT_NAME} ${QMPLAY2_MODULE} +add_library(${PROJECT_NAME} MODULE ${DirectX_HDR} ${DirectX_SRC} ${DirectX_RESOURCES} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/modules/Extensions/CMakeLists.txt new/QMPlay2-src-23.09.05/src/modules/Extensions/CMakeLists.txt --- old/QMPlay2-src-23.08.22/src/modules/Extensions/CMakeLists.txt 2023-06-03 19:28:40.000000000 +0200 +++ new/QMPlay2-src-23.09.05/src/modules/Extensions/CMakeLists.txt 2023-08-30 00:28:19.000000000 +0200 @@ -70,7 +70,7 @@ endif() set_property(SOURCE ${Extensions_FORM_HDR} PROPERTY SKIP_AUTOMOC ON) -add_library(${PROJECT_NAME} ${QMPLAY2_MODULE} +add_library(${PROJECT_NAME} MODULE ${Extensions_HDR} ${Extensions_SRC} ${Extensions_FORM_HDR} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/modules/Extensions/Radio/RadioBrowserModel.cpp new/QMPlay2-src-23.09.05/src/modules/Extensions/Radio/RadioBrowserModel.cpp --- old/QMPlay2-src-23.08.22/src/modules/Extensions/Radio/RadioBrowserModel.cpp 2023-06-01 22:02:09.000000000 +0200 +++ new/QMPlay2-src-23.09.05/src/modules/Extensions/Radio/RadioBrowserModel.cpp 2023-09-03 13:19:16.000000000 +0200 @@ -32,7 +32,7 @@ struct Column { - QString url, homePageUrl, id; + QString url, homePageUrl, uuid; QString iconUrl; QPointer<NetworkReply> iconReply; @@ -40,7 +40,7 @@ bool hasIcon = false; QString name, streamInfo, country, tags; - qint32 rating; + qint64 clickcount; }; /**/ @@ -59,10 +59,8 @@ delete m_net; } -void RadioBrowserModel::searchRadios(const QString &text, const QString &searchBy) +void RadioBrowserModel::clear() { - const QByteArray postData = searchBy.toLatin1().toLower() + "=" + text.toUtf8().toPercentEncoding(); - for (const std::shared_ptr<Column> &column : qAsConst(m_rows)) delete column->iconReply; delete m_replySearch; @@ -72,7 +70,12 @@ endResetModel(); m_rows.clear(); +} +void RadioBrowserModel::searchRadios(const QString &text, const QString &searchBy) +{ + const QByteArray postData = searchBy.toLatin1().toLower() + "=" + text.toUtf8().toPercentEncoding(); + clear(); m_replySearch = m_net->start(QString("%1/stations/search").arg(g_radioBrowserBaseApiUrl), postData, NetworkAccess::UrlEncoded); } @@ -116,6 +119,10 @@ { return QUrl(m_rowsToDisplay[index.row()]->homePageUrl); } +QString RadioBrowserModel::getUUID(const QModelIndex &index) const +{ + return m_rowsToDisplay[index.row()]->uuid; +} QModelIndex RadioBrowserModel::index(int row, int column, const QModelIndex &parent) const { @@ -159,7 +166,7 @@ case 3: return column->tags; case 4: - return column->rating; + return column->clickcount; } break; } @@ -200,7 +207,7 @@ case 3: return tr("Tags"); case 4: - return tr("Rating"); + return tr("Clicks"); } } return QVariant(); @@ -239,9 +246,9 @@ switch (order) { case Qt::AscendingOrder: - return a->rating > b->rating; + return a->clickcount > b->clickcount; case Qt::DescendingOrder: - return a->rating < b->rating; + return a->clickcount < b->clickcount; } break; } @@ -329,7 +336,7 @@ } else { - const int bitrate = item["bitrate"].toString().toInt(); + const int bitrate = item["bitrate"].toInt(); if (bitrate > 0) streamInfo += QString("\n%1 kbps").arg(bitrate); } @@ -357,12 +364,12 @@ } } - const qint32 rating = item["votes"].toString().toInt() - item["negativevotes"].toString().toInt(); + const qint32 clickcount = item["clickcount"].toDouble(); m_rows.append(std::shared_ptr<Column>(new Column { item["url"].toString(), item["homepage"].toString(), - item["id"].toString(), + item["stationuuid"].toString(), item["favicon"].toString(), nullptr, @@ -373,7 +380,7 @@ streamInfo, country, tags, - rating + clickcount })); } m_rowsToDisplay = m_rows; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/modules/Extensions/Radio/RadioBrowserModel.hpp new/QMPlay2-src-23.09.05/src/modules/Extensions/Radio/RadioBrowserModel.hpp --- old/QMPlay2-src-23.08.22/src/modules/Extensions/Radio/RadioBrowserModel.hpp 2023-05-24 23:39:35.000000000 +0200 +++ new/QMPlay2-src-23.09.05/src/modules/Extensions/Radio/RadioBrowserModel.hpp 2023-09-03 13:19:16.000000000 +0200 @@ -40,6 +40,8 @@ inline int elementHeight() const; + void clear(); + void searchRadios(const QString &text, const QString &searchBy); void loadIcons(const int first, const int last); @@ -48,6 +50,7 @@ QUrl getUrl(const QModelIndex &index) const; QPixmap getIcon(const QModelIndex &index) const; QUrl getHomePageUrl(const QModelIndex &index) const; + QString getUUID(const QModelIndex &index) const; QModelIndex index(int row, int column, const QModelIndex &parent) const override; QModelIndex parent(const QModelIndex &child) const override; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/modules/Extensions/Radio.cpp new/QMPlay2-src-23.09.05/src/modules/Extensions/Radio.cpp --- old/QMPlay2-src-23.08.22/src/modules/Extensions/Radio.cpp 2023-06-03 18:46:25.000000000 +0200 +++ new/QMPlay2-src-23.09.05/src/modules/Extensions/Radio.cpp 2023-09-03 13:57:56.000000000 +0200 @@ -38,6 +38,15 @@ #include <QMenu> #include <QUrl> +enum SearchByIndexes +{ + Name, + Tag, + Country, + Language, + State, +}; + Radio::Radio(Module &module) : m_newStationTxt(tr("Adding a new radio station")), m_radioIcon(":/radio.svgz"), @@ -74,13 +83,10 @@ ui->searchByComboBox->addItem(tr("Language"), QStringList{"Language", "languages"}); ui->searchByComboBox->addItem(tr("State"), QStringList{"State", "states"}); + ui->radioView->sortByColumn(4, Qt::AscendingOrder); // Click count ui->radioView->setModel(m_radioBrowserModel); ui->radioView->setIconSize({m_radioBrowserModel->elementHeight(), m_radioBrowserModel->elementHeight()}); - QHeaderView *header = ui->radioView->header(); - header->setSectionResizeMode(0, QHeaderView::Stretch); - header->setSectionResizeMode(4, QHeaderView::ResizeToContents); - connect(m_radioBrowserMenu->addAction(tr("Play")), SIGNAL(triggered(bool)), this, SLOT(radioBrowserPlay())); connect(m_radioBrowserMenu->addAction(tr("Enqueue")), SIGNAL(triggered(bool)), this, SLOT(radioBrowserEnqueue())); m_radioBrowserMenu->addSeparator(); @@ -194,6 +200,28 @@ } void Radio::searchFinished() { + QHeaderView *header = ui->radioView->header(); + int s = 0; + for (int i = 0; i < 5; ++i) + s += header->sectionSize(i); + if (s < header->width()) // It's inaccurate comparison + { + header->setSectionResizeMode(0, QHeaderView::Stretch); + if (!m_sectionResizedConn) + { + m_sectionResizedConn = connect(header, &QHeaderView::sectionResized, + header, [this, header](int logicalIndex, int oldSize, int newSize) { + Q_UNUSED(oldSize) + Q_UNUSED(newSize) + + if (logicalIndex != 0) + return; + + disconnect(m_sectionResizedConn); + header->setSectionResizeMode(0, QHeaderView::Interactive); + }, Qt::QueuedConnection); + } + } ui->radioView->setEnabled(true); } @@ -354,11 +382,19 @@ void Radio::on_searchByComboBox_activated(int idx) { const QString toDownload = ui->searchByComboBox->itemData(idx).toStringList().at(1); - if (!toDownload.isEmpty()) + + QString placeholderText; + if (idx == Name) + placeholderText = tr("Type the station name and press Enter"); + else + placeholderText = tr("Select a \"%1\" from the drop-down list").arg(ui->searchByComboBox->itemText(idx)); + ui->searchComboBox->lineEdit()->setPlaceholderText(placeholderText); + + if (idx != Name) { - if (m_nameItems.isEmpty()) + Q_ASSERT(!toDownload.isEmpty()); + if (m_searchByComboBoxIdx == Name && m_nameItems.isEmpty()) { - m_nameItems += ui->searchComboBox->lineEdit()->text(); for (int i = 0; i < ui->searchComboBox->count(); ++i) m_nameItems += ui->searchComboBox->itemText(i); ui->searchComboBox->clear(); @@ -381,13 +417,16 @@ ui->searchComboBox->clear(); if (!m_nameItems.isEmpty()) { - const QString text = m_nameItems.takeFirst(); ui->searchComboBox->addItems(m_nameItems); - ui->searchComboBox->lineEdit()->setText(text); + ui->searchComboBox->lineEdit()->clear(); m_nameItems.clear(); } ui->searchComboBox->setInsertPolicy(QComboBox::InsertAtBottom); } + + m_radioBrowserModel->clear(); + + m_searchByComboBoxIdx = idx; } void Radio::on_addRadioBrowserStationButton_clicked() { @@ -448,6 +487,12 @@ { const QString title = m_radioBrowserModel->getName(index); const QString url = m_radioBrowserModel->getUrl(index).toString(); + const QString uuid = m_radioBrowserModel->getUUID(index); + + // Increase clickcount + auto reply = m_net->start(QString("%1/url/%2").arg(g_radioBrowserBaseApiUrl, uuid)); + connect(reply, &NetworkReply::finished, reply, &NetworkReply::deleteLater); + QMPlay2Core.addNameForUrl(url, title); emit QMPlay2Core.processParam(param, url); } @@ -483,6 +528,23 @@ ui->searchComboBox->clear(); ui->searchComboBox->addItems(list); ui->searchComboBox->lineEdit()->clear(); + if (m_loadCurrentCountry) + { + m_loadCurrentCountry = false; + if (ui->searchByComboBox->currentIndex() == Country) + { + const auto country = QLocale::countryToString(QLocale::system().country()); + auto it = std::find_if(list.crbegin(), list.crend(), [&](const QString &str) { + return str.contains(country, Qt::CaseInsensitive); + }); + const int idx = list.size() - std::distance(list.crbegin(), it) - 1; + if (!country.isEmpty() && idx >= 0 && idx < list.size()) + { + ui->searchComboBox->setCurrentIndex(idx); + searchData(); + } + } + } } void Radio::restoreSettings() @@ -503,12 +565,13 @@ if (!ui->radioBrowserSplitter->restoreState(QByteArray::fromBase64(sets().getByteArray("Radio/RadioBrowserSplitter")))) ui->radioBrowserSplitter->setSizes({width() * 1 / 4, width() * 3 / 4}); - const int searchByIdx = qBound(0, sets().getInt("Radio/SearchByIndex"), ui->searchByComboBox->count() - 1); + const int searchByIdx = qBound(0, sets().getInt("Radio/SearchByIndex", Country), ui->searchByComboBox->count() - 1); if (searchByIdx > 0) { ui->searchByComboBox->setCurrentIndex(searchByIdx); - on_searchByComboBox_activated(searchByIdx); } + m_loadCurrentCountry = (searchByIdx == Country); + on_searchByComboBox_activated(searchByIdx); m_loaded = true; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/modules/Extensions/Radio.hpp new/QMPlay2-src-23.09.05/src/modules/Extensions/Radio.hpp --- old/QMPlay2-src-23.08.22/src/modules/Extensions/Radio.hpp 2023-05-24 23:39:35.000000000 +0200 +++ new/QMPlay2-src-23.09.05/src/modules/Extensions/Radio.hpp 2023-09-03 13:57:56.000000000 +0200 @@ -103,17 +103,21 @@ Ui::Radio *ui; bool m_loaded = false; + bool m_loadCurrentCountry = false; bool m_storeMyRadios = false; bool m_recreateTrayMenu = true; DockWidget *m_dw; QMenu *m_menu = nullptr; + QMetaObject::Connection m_sectionResizedConn; + QMap<int, QPair<QStringList, QPointer<NetworkReply>>> m_searchInfo; RadioBrowserModel *m_radioBrowserModel; QMenu *m_radioBrowserMenu; QTimer *m_loadIconsTimer; QStringList m_nameItems; NetworkAccess *m_net; + int m_searchByComboBoxIdx = -1; }; #define RadioName "Radio Browser" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/modules/FFmpeg/CMakeLists.txt new/QMPlay2-src-23.09.05/src/modules/FFmpeg/CMakeLists.txt --- old/QMPlay2-src-23.08.22/src/modules/FFmpeg/CMakeLists.txt 2023-08-21 01:06:30.000000000 +0200 +++ new/QMPlay2-src-23.09.05/src/modules/FFmpeg/CMakeLists.txt 2023-08-30 00:28:19.000000000 +0200 @@ -129,7 +129,7 @@ add_definitions(-DFFMPEG_MODULE) -add_library(${PROJECT_NAME} ${QMPLAY2_MODULE} +add_library(${PROJECT_NAME} MODULE ${FFmpeg_HDR} ${FFmpeg_SRC} ${FFmpeg_RESOURCES} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/modules/FFmpeg/FFDecSW.cpp new/QMPlay2-src-23.09.05/src/modules/FFmpeg/FFDecSW.cpp --- old/QMPlay2-src-23.08.22/src/modules/FFmpeg/FFDecSW.cpp 2023-08-21 00:41:01.000000000 +0200 +++ new/QMPlay2-src-23.09.05/src/modules/FFmpeg/FFDecSW.cpp 2023-08-26 22:43:36.000000000 +0200 @@ -120,6 +120,10 @@ restartPlaying = true; } +#ifdef USE_VULKAN + m_disableZeroCopy = sets().getBool("DisableZeroCopy"); +#endif + return !restartPlaying && sets().getBool("DecoderEnabled"); } @@ -443,7 +447,11 @@ #ifdef USE_VULKAN if ((codec->capabilities & AV_CODEC_CAP_DR1) && QMPlay2Core.isVulkanRenderer()) { - try + if (m_disableZeroCopy) + { + qDebug() << "Vulkan :: Zero-copy decoding is disabled"; + } + else try { static_pointer_cast<QmVk::Instance>(QMPlay2Core.gpuInstance())->physicalDevice()->findMemoryType( vk::MemoryPropertyFlagBits::eHostVisible | vk::MemoryPropertyFlagBits::eHostCoherent | vk::MemoryPropertyFlagBits::eHostCached diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/modules/FFmpeg/FFDecSW.hpp new/QMPlay2-src-23.09.05/src/modules/FFmpeg/FFDecSW.hpp --- old/QMPlay2-src-23.08.22/src/modules/FFmpeg/FFDecSW.hpp 2023-08-21 00:40:49.000000000 +0200 +++ new/QMPlay2-src-23.09.05/src/modules/FFmpeg/FFDecSW.hpp 2023-08-26 22:43:20.000000000 +0200 @@ -98,5 +98,6 @@ #ifdef USE_VULKAN std::shared_ptr<QmVk::BufferPool> m_vkBufferPool; + bool m_disableZeroCopy = false; #endif }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/modules/FileAssociation/CMakeLists.txt new/QMPlay2-src-23.09.05/src/modules/FileAssociation/CMakeLists.txt --- old/QMPlay2-src-23.08.22/src/modules/FileAssociation/CMakeLists.txt 2022-06-15 23:05:21.000000000 +0200 +++ new/QMPlay2-src-23.09.05/src/modules/FileAssociation/CMakeLists.txt 2023-08-30 00:28:19.000000000 +0200 @@ -13,7 +13,7 @@ icon.qrc ) -add_library(${PROJECT_NAME} ${QMPLAY2_MODULE} +add_library(${PROJECT_NAME} MODULE ${FileAssociation_HDR} ${FileAssociation_SRC} ${FileAssociation_RESOURCES} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/modules/Inputs/CMakeLists.txt new/QMPlay2-src-23.09.05/src/modules/Inputs/CMakeLists.txt --- old/QMPlay2-src-23.08.22/src/modules/Inputs/CMakeLists.txt 2022-06-15 23:05:21.000000000 +0200 +++ new/QMPlay2-src-23.09.05/src/modules/Inputs/CMakeLists.txt 2023-08-30 00:28:19.000000000 +0200 @@ -19,7 +19,7 @@ icons.qrc ) -add_library(${PROJECT_NAME} ${QMPLAY2_MODULE} +add_library(${PROJECT_NAME} MODULE ${Inputs_HDR} ${Inputs_SRC} ${Inputs_RESOURCES} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/modules/MediaKit/CMakeLists.txt new/QMPlay2-src-23.09.05/src/modules/MediaKit/CMakeLists.txt --- old/QMPlay2-src-23.08.22/src/modules/MediaKit/CMakeLists.txt 2023-05-21 00:00:23.000000000 +0200 +++ new/QMPlay2-src-23.09.05/src/modules/MediaKit/CMakeLists.txt 2023-08-30 00:28:19.000000000 +0200 @@ -21,7 +21,7 @@ include_directories(../../qmplay2/headers) -add_library(${PROJECT_NAME} ${QMPLAY2_MODULE} +add_library(${PROJECT_NAME} MODULE ${MediaKit_HDR} ${MediaKit_SRC} ${MediaKit_RESOURCES} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/modules/Modplug/CMakeLists.txt new/QMPlay2-src-23.09.05/src/modules/Modplug/CMakeLists.txt --- old/QMPlay2-src-23.08.22/src/modules/Modplug/CMakeLists.txt 2022-06-15 23:05:21.000000000 +0200 +++ new/QMPlay2-src-23.09.05/src/modules/Modplug/CMakeLists.txt 2023-08-30 00:28:19.000000000 +0200 @@ -49,7 +49,7 @@ include_directories(libmodplug) -add_library(${PROJECT_NAME} ${QMPLAY2_MODULE} +add_library(${PROJECT_NAME} MODULE ${Modplug_HDR} ${Modplug_SRC} ${Modplug_RESOURCES} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/modules/Notify/CMakeLists.txt new/QMPlay2-src-23.09.05/src/modules/Notify/CMakeLists.txt --- old/QMPlay2-src-23.08.22/src/modules/Notify/CMakeLists.txt 2022-06-15 23:05:21.000000000 +0200 +++ new/QMPlay2-src-23.09.05/src/modules/Notify/CMakeLists.txt 2023-08-30 00:28:19.000000000 +0200 @@ -15,7 +15,7 @@ icon.qrc ) -add_library(${PROJECT_NAME} ${QMPLAY2_MODULE} +add_library(${PROJECT_NAME} MODULE ${Notify_HDR} ${Notify_SRC} ${Notify_RESOURCES} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/modules/OpenSLES/CMakeLists.txt new/QMPlay2-src-23.09.05/src/modules/OpenSLES/CMakeLists.txt --- old/QMPlay2-src-23.08.22/src/modules/OpenSLES/CMakeLists.txt 2022-06-15 23:05:21.000000000 +0200 +++ new/QMPlay2-src-23.09.05/src/modules/OpenSLES/CMakeLists.txt 2023-08-30 00:28:19.000000000 +0200 @@ -15,7 +15,7 @@ icon.qrc ) -add_library(${PROJECT_NAME} ${QMPLAY2_MODULE} +add_library(${PROJECT_NAME} MODULE ${OpenSLES_HDR} ${OpenSLES_SRC} ${OpenSLES_RESOURCES} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/modules/PipeWire/CMakeLists.txt new/QMPlay2-src-23.09.05/src/modules/PipeWire/CMakeLists.txt --- old/QMPlay2-src-23.08.22/src/modules/PipeWire/CMakeLists.txt 2022-06-15 23:05:21.000000000 +0200 +++ new/QMPlay2-src-23.09.05/src/modules/PipeWire/CMakeLists.txt 2023-08-30 00:28:19.000000000 +0200 @@ -20,7 +20,7 @@ include_directories(${LIBPIPEWIRE_INCLUDE_DIRS}) -add_library(${PROJECT_NAME} ${QMPLAY2_MODULE} +add_library(${PROJECT_NAME} MODULE ${PipeWire_HDR} ${PipeWire_SRC} ${PipeWire_RESOURCES} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/modules/Playlists/CMakeLists.txt new/QMPlay2-src-23.09.05/src/modules/Playlists/CMakeLists.txt --- old/QMPlay2-src-23.08.22/src/modules/Playlists/CMakeLists.txt 2022-06-15 23:05:21.000000000 +0200 +++ new/QMPlay2-src-23.09.05/src/modules/Playlists/CMakeLists.txt 2023-08-30 00:28:19.000000000 +0200 @@ -19,7 +19,7 @@ icon.qrc ) -add_library(${PROJECT_NAME} ${QMPLAY2_MODULE} +add_library(${PROJECT_NAME} MODULE ${Playlists_HDR} ${Playlists_SRC} ${Playlists_RESOURCES} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/modules/PortAudio/CMakeLists.txt new/QMPlay2-src-23.09.05/src/modules/PortAudio/CMakeLists.txt --- old/QMPlay2-src-23.08.22/src/modules/PortAudio/CMakeLists.txt 2022-06-15 23:05:21.000000000 +0200 +++ new/QMPlay2-src-23.09.05/src/modules/PortAudio/CMakeLists.txt 2023-08-30 00:28:19.000000000 +0200 @@ -29,7 +29,7 @@ include_directories(${LIBPORTAUDIO_INCLUDE_DIRS}) -add_library(${PROJECT_NAME} ${QMPLAY2_MODULE} +add_library(${PROJECT_NAME} MODULE ${PortAudio_HDR} ${PortAudio_SRC} ${PortAudio_RESOURCES} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/modules/PulseAudio/CMakeLists.txt new/QMPlay2-src-23.09.05/src/modules/PulseAudio/CMakeLists.txt --- old/QMPlay2-src-23.08.22/src/modules/PulseAudio/CMakeLists.txt 2022-06-15 23:05:21.000000000 +0200 +++ new/QMPlay2-src-23.09.05/src/modules/PulseAudio/CMakeLists.txt 2023-08-30 00:28:19.000000000 +0200 @@ -22,7 +22,7 @@ include_directories(${LIBPULSE_INCLUDE_DIRS}) -add_library(${PROJECT_NAME} ${QMPLAY2_MODULE} +add_library(${PROJECT_NAME} MODULE ${PulseAudio_HDR} ${PulseAudio_SRC} ${PulseAudio_RESOURCES} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/modules/QPainter/CMakeLists.txt new/QMPlay2-src-23.09.05/src/modules/QPainter/CMakeLists.txt --- old/QMPlay2-src-23.08.22/src/modules/QPainter/CMakeLists.txt 2022-06-15 23:05:21.000000000 +0200 +++ new/QMPlay2-src-23.09.05/src/modules/QPainter/CMakeLists.txt 2023-08-30 00:28:19.000000000 +0200 @@ -15,7 +15,7 @@ icon.qrc ) -add_library(${PROJECT_NAME} ${QMPLAY2_MODULE} +add_library(${PROJECT_NAME} MODULE ${QPainter_HDR} ${QPainter_SRC} ${QPainter_RESOURCES} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/modules/Subtitles/CMakeLists.txt new/QMPlay2-src-23.09.05/src/modules/Subtitles/CMakeLists.txt --- old/QMPlay2-src-23.08.22/src/modules/Subtitles/CMakeLists.txt 2022-06-15 23:05:21.000000000 +0200 +++ new/QMPlay2-src-23.09.05/src/modules/Subtitles/CMakeLists.txt 2023-08-30 00:28:19.000000000 +0200 @@ -17,7 +17,7 @@ icon.qrc ) -add_library(${PROJECT_NAME} ${QMPLAY2_MODULE} +add_library(${PROJECT_NAME} MODULE ${Subtitles_HDR} ${Subtitles_SRC} ${Subtitles_RESOURCES} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/modules/VideoFilters/CMakeLists.txt new/QMPlay2-src-23.09.05/src/modules/VideoFilters/CMakeLists.txt --- old/QMPlay2-src-23.08.22/src/modules/VideoFilters/CMakeLists.txt 2023-08-19 23:50:41.000000000 +0200 +++ new/QMPlay2-src-23.09.05/src/modules/VideoFilters/CMakeLists.txt 2023-08-30 00:28:19.000000000 +0200 @@ -33,7 +33,7 @@ icon.qrc ) -add_library(${PROJECT_NAME} ${QMPLAY2_MODULE} +add_library(${PROJECT_NAME} MODULE ${VideoFilters_HDR} ${VideoFilters_SRC} ${VideoFilters_RESOURCES} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/modules/Visualizations/CMakeLists.txt new/QMPlay2-src-23.09.05/src/modules/Visualizations/CMakeLists.txt --- old/QMPlay2-src-23.08.22/src/modules/Visualizations/CMakeLists.txt 2022-06-15 23:05:21.000000000 +0200 +++ new/QMPlay2-src-23.09.05/src/modules/Visualizations/CMakeLists.txt 2023-08-30 00:28:19.000000000 +0200 @@ -19,7 +19,7 @@ icon.qrc ) -add_library(${PROJECT_NAME} ${QMPLAY2_MODULE} +add_library(${PROJECT_NAME} MODULE ${Visualizations_HDR} ${Visualizations_SRC} ${Visualizations_RESOURCES} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/modules/XVideo/CMakeLists.txt new/QMPlay2-src-23.09.05/src/modules/XVideo/CMakeLists.txt --- old/QMPlay2-src-23.08.22/src/modules/XVideo/CMakeLists.txt 2022-06-15 23:05:21.000000000 +0200 +++ new/QMPlay2-src-23.09.05/src/modules/XVideo/CMakeLists.txt 2023-08-30 00:28:19.000000000 +0200 @@ -22,7 +22,7 @@ include_directories(${LIB_X11_XV_INCLUDE_DIRS}) -add_library(${PROJECT_NAME} ${QMPLAY2_MODULE} +add_library(${PROJECT_NAME} MODULE ${XVideo_HDR} ${XVideo_SRC} ${XVideo_RESOURCES} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/qmplay2/CMakeLists.txt new/QMPlay2-src-23.09.05/src/qmplay2/CMakeLists.txt --- old/QMPlay2-src-23.08.22/src/qmplay2/CMakeLists.txt 2023-08-08 16:57:00.000000000 +0200 +++ new/QMPlay2-src-23.09.05/src/qmplay2/CMakeLists.txt 2023-08-30 00:27:49.000000000 +0200 @@ -237,7 +237,6 @@ elseif(APPLE) list(APPEND QMPLAY2_HDR NotifiesMacOS.hpp) list(APPEND QMPLAY2_SRC NotifiesMacOS.mm) - find_package(Qt5MacExtras REQUIRED) add_definitions(-DNOTIFIES_MACOS) endif() @@ -325,7 +324,6 @@ if(APPLE) target_link_libraries(${PROJECT_NAME} PRIVATE - Qt5::MacExtras ${APPKIT_LIBRARY} ) endif() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/qmplay2/NotifiesMacOS.mm new/QMPlay2-src-23.09.05/src/qmplay2/NotifiesMacOS.mm --- old/QMPlay2-src-23.08.22/src/qmplay2/NotifiesMacOS.mm 2020-03-18 22:58:30.000000000 +0100 +++ new/QMPlay2-src-23.09.05/src/qmplay2/NotifiesMacOS.mm 2023-08-30 00:27:49.000000000 +0200 @@ -4,7 +4,6 @@ #include <QPixmap> #include <QTimer> -#include <QtMac> @interface QMPlay2NotificationItem : NSObject<NSUserNotificationCenterDelegate> {} @@ -61,7 +60,15 @@ notification.title = title.toNSString(); notification.informativeText = message.toNSString(); if (!pixmap.isNull()) - notification.contentImage = QtMac::toNSImage(pixmap); + { + auto cgimage = pixmap.toImage().toCGImage(); + auto bitmapRep = [[NSBitmapImageRep alloc] initWithCGImage:cgimage]; + auto image = [[NSImage alloc] init]; + [image addRepresentation:bitmapRep]; + [bitmapRep release]; + CFRelease(cgimage); + notification.contentImage = image; + } [[NSUserNotificationCenter defaultUserNotificationCenter] deliverNotification:notification]; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/qmplay2/Version.cpp new/QMPlay2-src-23.09.05/src/qmplay2/Version.cpp --- old/QMPlay2-src-23.08.22/src/qmplay2/Version.cpp 2023-08-21 20:49:19.000000000 +0200 +++ new/QMPlay2-src-23.09.05/src/qmplay2/Version.cpp 2023-09-05 19:28:53.000000000 +0200 @@ -25,7 +25,7 @@ #ifndef QMPlay2GitHEAD #define QMPlay2GitHEAD #endif -#define QMPlay2Version "23.08.22" QMPlay2GitHEAD +#define QMPlay2Version "23.09.05" QMPlay2GitHEAD QByteArray Version::get() { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QMPlay2-src-23.08.22/src/qmplay2/vulkan/VulkanWindow.cpp new/QMPlay2-src-23.09.05/src/qmplay2/vulkan/VulkanWindow.cpp --- old/QMPlay2-src-23.08.22/src/qmplay2/vulkan/VulkanWindow.cpp 2023-08-21 20:06:38.000000000 +0200 +++ new/QMPlay2-src-23.09.05/src/qmplay2/vulkan/VulkanWindow.cpp 2023-08-23 18:21:25.000000000 +0200 @@ -198,7 +198,7 @@ void Window::deleteWidget() { -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) +#if QT_VERSION >= QT_VERSION_CHECK(6, 5, 0) if (m_isWayland) { // "SurfaceAboutToBeDestroyed" is delivered too late when deleting a widget container (Qt bug, tested on 6.5.1) @@ -1509,7 +1509,7 @@ case QEvent::Hide: if (m_isWayland) { -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) +#if QT_VERSION >= QT_VERSION_CHECK(6, 5, 0) // QWindow is reset when hiding a widget container without "SurfaceAboutToBeDestroyed" notification (Qt bug, tested on 6.5.1) resetSurface(); #else