commit cantata for openSUSE:Factory
Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package cantata for openSUSE:Factory checked in at 2024-11-30 13:27:39 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/cantata (Old) and /work/SRC/openSUSE:Factory/.cantata.new.28523 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "cantata" Sat Nov 30 13:27:39 2024 rev:26 rq:1227190 version:3.3.0 Changes: -------- --- /work/SRC/openSUSE:Factory/cantata/cantata.changes 2024-10-22 14:54:07.634926272 +0200 +++ /work/SRC/openSUSE:Factory/.cantata.new.28523/cantata.changes 2024-11-30 13:27:57.978006459 +0100 @@ -1,0 +2,11 @@ +Thu Nov 28 19:54:29 UTC 2024 - RN <R_Nik_C@proton.me> + +- Update to version 3.3.0: + * Migrate data from older Cantata versions + * Fix libVLC build + * Fix MPRIS desktopEntry property + * Fix deprecated FFMPEG function call + * Fix podcast saving and date retrieval + * Use embedded cover art from MPD server when needed + +------------------------------------------------------------------- Old: ---- cantata-3.2.1.tar.gz New: ---- cantata-3.3.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ cantata.spec ++++++ --- /var/tmp/diff_new_pack.tlrMu4/_old 2024-11-30 13:27:58.438025620 +0100 +++ /var/tmp/diff_new_pack.tlrMu4/_new 2024-11-30 13:27:58.438025620 +0100 @@ -17,7 +17,7 @@ Name: cantata -Version: 3.2.1 +Version: 3.3.0 Release: 0 Summary: Client for the Music Player Daemon (MPD) License: GPL-3.0-only ++++++ cantata-3.2.1.tar.gz -> cantata-3.3.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cantata-3.2.1/CMakeLists.txt new/cantata-3.3.0/CMakeLists.txt --- old/cantata-3.2.1/CMakeLists.txt 2024-08-06 00:17:52.000000000 +0200 +++ new/cantata-3.3.0/CMakeLists.txt 2024-11-14 07:02:07.000000000 +0100 @@ -2,7 +2,7 @@ project( Cantata - VERSION "3.2.1" + VERSION "3.3.0" DESCRIPTION "Graphical MPD Client with Qt." HOMEPAGE_URL "https://github.com/nullobsi/cantata" LANGUAGES CXX C diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cantata-3.2.1/cantata.metainfo.xml.cmake new/cantata-3.3.0/cantata.metainfo.xml.cmake --- old/cantata-3.2.1/cantata.metainfo.xml.cmake 2024-08-06 00:17:52.000000000 +0200 +++ new/cantata-3.3.0/cantata.metainfo.xml.cmake 2024-11-14 07:02:07.000000000 +0100 @@ -3,16 +3,21 @@ <id>@PROJECT_REV_ID@</id> <name>Cantata</name> - <summary>Listen to and manage your Music Player Daemon (MPD) library</summary> + <summary>Control your music server</summary> <metadata_license>CC-BY-SA-4.0</metadata_license> <project_license>GPL-3.0-or-later</project_license> <description> <p> - A graphical MPD client with support for tagging, ReplayGain tag creation, - queue management, and online features. + A graphical MPD (Music Player Daemon) client with support for + tagging, ReplayGain tag creation, + queue management, and online features. </p> + <p> + This software connects to a running MPD server on a local or + remote machine. Check out their project page for more information. + </p> <ul> <li>Manage your playlists with an advanced interface.</li> <li>Flip through your music library with ease.</li> @@ -27,8 +32,8 @@ <launchable type="desktop-id">@PROJECT_REV_ID@.desktop</launchable> <branding> - <color type="primary" scheme_preference="light">#1c71d8</color> - <color type="primary" scheme_preference="dark">#99c1f1</color> + <color type="primary" scheme_preference="light">#96b6ee</color> + <color type="primary" scheme_preference="dark">#335371</color> </branding> <content_rating type="oars-1.1" /> @@ -51,6 +56,19 @@ </screenshots> <releases> + <release version="3.3.0" date="2024-11-13"> + <description> + <p>Minor release.</p> + <ul> + <li>Migrate data from older Cantata versions.</li> + <li>Fix libVLC build.</li> + <li>Fix MPRIS desktopEntry property.</li> + <li>Fix deprecated FFMPEG function call.</li> + <li>Fix podcast saving and date retrieval.</li> + <li>Use embedded cover art from MPD server when needed.</li> + </ul> + </description> + </release> <release version="3.2.1" date="2024-08-06"> <description> <p>Patch release.</p> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cantata-3.2.1/dbus/mpris.h new/cantata-3.3.0/dbus/mpris.h --- old/cantata-3.2.1/dbus/mpris.h 2024-08-06 00:17:52.000000000 +0200 +++ new/cantata-3.3.0/dbus/mpris.h 2024-11-14 07:02:07.000000000 +0100 @@ -105,7 +105,7 @@ bool CanRaise() const { return true; } bool HasTrackList() const { return false; } QString Identity() const { return QLatin1String(PACKAGE_NAME); } - QString DesktopEntry() const { return QLatin1String(PROJECT_REV_ID ".desktop"); } + QString DesktopEntry() const { return QLatin1String(PROJECT_REV_ID); } QStringList SupportedUriSchemes() const { return QStringList(); } QStringList SupportedMimeTypes() const { return QStringList(); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cantata-3.2.1/gui/initialsettingswizard.cpp new/cantata-3.3.0/gui/initialsettingswizard.cpp --- old/cantata-3.2.1/gui/initialsettingswizard.cpp 2024-08-06 00:17:52.000000000 +0200 +++ new/cantata-3.3.0/gui/initialsettingswizard.cpp 2024-11-14 07:02:07.000000000 +0100 @@ -35,9 +35,11 @@ #include "findmpddialog.h" #endif #include <QDir> +#include <QProcess> #include <QScreen> #include <QStandardPaths> #include <QTimer> +#include <filesystem> enum Pages { PAGE_INTRO, @@ -113,6 +115,29 @@ hostLayout->insertWidget(hostLayout->count(), discoveryButton); connect(discoveryButton, &QPushButton::clicked, this, &InitialSettingsWizard::detectMPDs); #endif + + // Note that this type of migration is only relevant on Linux/other + // Unix systems. +#if !defined(Q_OS_WIN) && !defined(Q_OS_MACOS) + auto oldConfig = QDir(QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + "/cantata"); + // We shouldn't be here if newConfig exists, but since there could + // be data-loss... + auto newConfig = QDir(QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + "/Cantata"); + + if (oldConfig.exists() && !newConfig.exists()) { + migrateDataBox->setChecked(true); + } + else { + migrateDataBox->setChecked(false); + migrateDataBox->setDisabled(true); + migrateDataBoxLabel->setDisabled(true); + migrateDataBoxLabel->setText(tr("Data from an older version of Cantata is missing or cannot be located.")); + } +#else + migrateDataBox->hide(); + migrateDataBoxLabel->hide(); + migrateDataBox->setChecked(false); +#endif } InitialSettingsWizard::~InitialSettingsWizard() @@ -200,6 +225,55 @@ fetchCovers->setChecked(Settings::self()->fetchCovers()); } } + if (PAGE_END == p) { + // Perform data migration. + if (migrateDataBox->isChecked()) { + auto oldConfig = QDir(QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + "/cantata"); + auto oldCache = QDir(QStandardPaths::writableLocation(QStandardPaths::GenericCacheLocation) + "/cantata"); + auto oldData = QDir(QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + "/cantata"); + + auto newConfig = QDir(QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + "/Cantata"); + auto newCache = QDir(QStandardPaths::writableLocation(QStandardPaths::GenericCacheLocation) + "/Cantata"); + auto newData = QDir(QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + "/Cantata"); + + newConfig.removeRecursively(); + newCache.removeRecursively(); + newData.removeRecursively(); + + auto copyOpts = std::filesystem::copy_options::overwrite_existing | std::filesystem::copy_options::recursive; + + try { + std::filesystem::copy(oldConfig.absolutePath().toStdString(), newConfig.absolutePath().toStdString(), copyOpts); + std::filesystem::rename(newConfig.absolutePath().toStdString() + "/cantata.conf", newConfig.absolutePath().toStdString() + "/Cantata.conf"); + } + catch (std::filesystem::filesystem_error& e) { + qWarning() << "Failed to migrate config."; + qWarning() << e.what(); + } + + try { + std::filesystem::copy(oldCache.absolutePath().toStdString(), newCache.absolutePath().toStdString(), copyOpts); + } + catch (std::filesystem::filesystem_error& e) { + qWarning() << "Failed to migrate cache."; + qWarning() << e.what(); + } + + try { + std::filesystem::copy(oldData.absolutePath().toStdString(), newData.absolutePath().toStdString(), copyOpts); + } + catch (std::filesystem::filesystem_error& e) { + qWarning() << "Failed to migrate data."; + qWarning() << e.what(); + } + + auto app = QCoreApplication::applicationFilePath(); + auto args = QCoreApplication::arguments(); + auto pwd = QDir::currentPath(); + QProcess::startDetached(app, args, pwd); + QCoreApplication::exit(); + } + } button(NextButton)->setEnabled(PAGE_END != p); } @@ -255,4 +329,21 @@ QDialog::reject(); } +int InitialSettingsWizard::nextId() const +{ + switch (currentId()) { + case PAGE_INTRO: + if (migrateDataBox->isChecked()) { + return PAGE_END; + } + return PAGE_CONNECTION; + case PAGE_CONNECTION: + return PAGE_COVERS; + case PAGE_COVERS: + return PAGE_END; + default: + return -1; + } +} + #include "moc_initialsettingswizard.cpp" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cantata-3.2.1/gui/initialsettingswizard.h new/cantata-3.3.0/gui/initialsettingswizard.h --- old/cantata-3.2.1/gui/initialsettingswizard.h 2024-08-06 00:17:52.000000000 +0200 +++ new/cantata-3.3.0/gui/initialsettingswizard.h 2024-11-14 07:02:07.000000000 +0100 @@ -56,6 +56,7 @@ #endif private: + int nextId() const override; #ifdef Avahi_FOUND QPushButton* discoveryButton; #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cantata-3.2.1/gui/initialsettingswizard.ui new/cantata-3.3.0/gui/initialsettingswizard.ui --- old/cantata-3.2.1/gui/initialsettingswizard.ui 2024-08-06 00:17:52.000000000 +0200 +++ new/cantata-3.3.0/gui/initialsettingswizard.ui 2024-11-14 07:02:07.000000000 +0100 @@ -6,8 +6,8 @@ <rect> <x>0</x> <y>0</y> - <width>668</width> - <height>607</height> + <width>1007</width> + <height>855</height> </rect> </property> <property name="windowTitle"> @@ -38,7 +38,6 @@ <widget class="QLabel" name="label"> <property name="font"> <font> - <weight>75</weight> <bold>true</bold> </font> </property> @@ -50,10 +49,10 @@ <item> <spacer name="verticalSpacer_2"> <property name="orientation"> - <enum>Qt::Vertical</enum> + <enum>Qt::Orientation::Vertical</enum> </property> <property name="sizeType"> - <enum>QSizePolicy::Fixed</enum> + <enum>QSizePolicy::Policy::Fixed</enum> </property> <property name="sizeHint" stdset="0"> <size> @@ -69,20 +68,20 @@ <string><p>Cantata is a feature-rich and user friendly client for Music Player Daemon (MPD). MPD is a flexible, powerful, server-side application for playing music.</p><p>For more information on MPD itself, please refer to the MPD website <a href="http://www.musicpd.org"><span style=" text-decoration: underline; color:#0000ff;">http://www.musicpd.org</span></a></p><p>This 'wizard' will guide you through the basic settings required for Cantata to function correctly.</p></string> </property> <property name="alignment"> - <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> + <set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop</set> </property> <property name="wordWrap"> <bool>true</bool> </property> <property name="textInteractionFlags"> - <set>Qt::NoTextInteraction</set> + <set>Qt::TextInteractionFlag::NoTextInteraction</set> </property> </widget> </item> <item> <spacer name="verticalSpacer"> <property name="orientation"> - <enum>Qt::Vertical</enum> + <enum>Qt::Orientation::Vertical</enum> </property> <property name="sizeHint" stdset="0"> <size> @@ -100,7 +99,6 @@ <widget class="QLabel" name="label_7"> <property name="font"> <font> - <weight>75</weight> <bold>true</bold> </font> </property> @@ -108,17 +106,17 @@ <string><p>Welcome to Cantata</p></string> </property> <property name="textInteractionFlags"> - <set>Qt::NoTextInteraction</set> + <set>Qt::TextInteractionFlag::NoTextInteraction</set> </property> </widget> </item> <item> <spacer name="verticalSpacer_11"> <property name="orientation"> - <enum>Qt::Vertical</enum> + <enum>Qt::Orientation::Vertical</enum> </property> <property name="sizeType"> - <enum>QSizePolicy::Fixed</enum> + <enum>QSizePolicy::Policy::Fixed</enum> </property> <property name="sizeHint" stdset="0"> <size> @@ -134,13 +132,13 @@ <string><p>Cantata is a feature-rich and user friendly client for Music Player Daemon (MPD). MPD is a flexible, powerful, server-side application for playing music. MPD may be started either system-wide, or on a per-user basis.<br/><br/>Please select how you would like to have Cantata initially connect to (or startup) MPD:</p></string> </property> <property name="alignment"> - <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> + <set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop</set> </property> <property name="wordWrap"> <bool>true</bool> </property> <property name="textInteractionFlags"> - <set>Qt::NoTextInteraction</set> + <set>Qt::TextInteractionFlag::NoTextInteraction</set> </property> </widget> </item> @@ -172,7 +170,7 @@ <string><i>Select this option if your music collection is shared between users, your MPD instance is running on another machine, you already have a personal MPD setup, or you wish to enable access from other clients (e.g. MPDroid). If you select this option then Cantata itself cannot control the starting and stopping of the MPD server. You will therefore need to ensure that MPD is already configured and running.</i></string> </property> <property name="alignment"> - <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> + <set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop</set> </property> <property name="wordWrap"> <bool>true</bool> @@ -185,10 +183,10 @@ <item row="2" column="2"> <spacer name="verticalSpacer_10"> <property name="orientation"> - <enum>Qt::Vertical</enum> + <enum>Qt::Orientation::Vertical</enum> </property> <property name="sizeType"> - <enum>QSizePolicy::Fixed</enum> + <enum>QSizePolicy::Policy::Fixed</enum> </property> <property name="sizeHint" stdset="0"> <size> @@ -217,7 +215,7 @@ <string><i>Select this option if your music collection is not shared with others, and you wish Cantata to configure and control the MPD instance. This setup will be exclusive to Cantata, and will <b>not</b> be accessible to other MPD clients (e.g. MPDroid)</i></string> </property> <property name="alignment"> - <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> + <set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop</set> </property> <property name="wordWrap"> <bool>true</bool> @@ -233,17 +231,17 @@ <item> <widget class="NoteLabel" name="musicFolderNoteLabel_2"> <property name="text"> - <string>If you wish to have an advanced MPD setup (e.g. multiple audio outputs, full DSD support, etc) then you <b>must</b> choose 'Standard'</string> + <string>If you wish to have an advanced MPD setup (e.g. multiple audio outputs, full DSD support, etc) then you <b>must</b> choose 'Standard'</string> </property> </widget> </item> <item> <spacer name="verticalSpacer_13"> <property name="orientation"> - <enum>Qt::Vertical</enum> + <enum>Qt::Orientation::Vertical</enum> </property> <property name="sizeType"> - <enum>QSizePolicy::Fixed</enum> + <enum>QSizePolicy::Policy::Fixed</enum> </property> <property name="sizeHint" stdset="0"> <size> @@ -259,20 +257,20 @@ <string>For more information on MPD itself, please refer to the MPD website <a href="http://www.musicpd.org"><span style=" text-decoration: underline; color:#0000ff;">http://www.musicpd.org</span></a><br/><br/>This 'wizard' will guide you through the basic settings required for Cantata to function correctly.</string> </property> <property name="alignment"> - <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> + <set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop</set> </property> <property name="wordWrap"> <bool>true</bool> </property> <property name="textInteractionFlags"> - <set>Qt::NoTextInteraction</set> + <set>Qt::TextInteractionFlag::NoTextInteraction</set> </property> </widget> </item> <item> <spacer name="verticalSpacer_12"> <property name="orientation"> - <enum>Qt::Vertical</enum> + <enum>Qt::Orientation::Vertical</enum> </property> <property name="sizeHint" stdset="0"> <size> @@ -286,6 +284,45 @@ </widget> </widget> </item> + <item> + <layout class="QVBoxLayout" name="verticalLayout_7"> + <item> + <widget class="QCheckBox" name="migrateDataBox"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Migrate data from older versions of Cantata</string> + </property> + </widget> + </item> + <item> + <widget class="BuddyLabel" name="migrateDataBoxLabel"> + <property name="sizePolicy"> + <sizepolicy hsizetype="MinimumExpanding" vsizetype="Minimum"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="mouseTracking"> + <bool>true</bool> + </property> + <property name="text"> + <string><i>Data from Cantata v2 has been detected on your computer. Leave this box checked to copy the old data and preserve your preferences.</i></string> + </property> + <property name="alignment"> + <set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop</set> + </property> + <property name="wordWrap"> + <bool>true</bool> + </property> + </widget> + </item> + </layout> + </item> </layout> </widget> <widget class="WizardPage" name="connectionPage"> @@ -313,7 +350,6 @@ <widget class="QLabel" name="label_3"> <property name="font"> <font> - <weight>75</weight> <bold>true</bold> </font> </property> @@ -325,10 +361,10 @@ <item> <spacer name="verticalSpacer_3"> <property name="orientation"> - <enum>Qt::Vertical</enum> + <enum>Qt::Orientation::Vertical</enum> </property> <property name="sizeType"> - <enum>QSizePolicy::Fixed</enum> + <enum>QSizePolicy::Policy::Fixed</enum> </property> <property name="sizeHint" stdset="0"> <size> @@ -344,7 +380,7 @@ <string>The settings below are the basic settings required by Cantata. Please enter the relevant details, and use the 'Connect' button to test the connection.</string> </property> <property name="alignment"> - <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> + <set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop</set> </property> <property name="wordWrap"> <bool>true</bool> @@ -354,10 +390,10 @@ <item> <spacer name="verticalSpacer_7"> <property name="orientation"> - <enum>Qt::Vertical</enum> + <enum>Qt::Orientation::Vertical</enum> </property> <property name="sizeType"> - <enum>QSizePolicy::Fixed</enum> + <enum>QSizePolicy::Policy::Fixed</enum> </property> <property name="sizeHint" stdset="0"> <size> @@ -370,7 +406,7 @@ <item> <layout class="QFormLayout" name="formLayout"> <property name="fieldGrowthPolicy"> - <enum>QFormLayout::ExpandingFieldsGrow</enum> + <enum>QFormLayout::FieldGrowthPolicy::ExpandingFieldsGrow</enum> </property> <item row="0" column="0"> <widget class="BuddyLabel" name="hostLabel"> @@ -384,9 +420,6 @@ </item> <item row="0" column="1"> <layout class="QHBoxLayout" name="hostLayout"> - <property name="margin"> - <number>0</number> - </property> <item> <widget class="LineEdit" name="host"/> </item> @@ -418,7 +451,7 @@ <item row="1" column="1"> <widget class="LineEdit" name="password"> <property name="echoMode"> - <enum>QLineEdit::Password</enum> + <enum>QLineEdit::EchoMode::Password</enum> </property> </widget> </item> @@ -441,7 +474,6 @@ <widget class="QLabel" name="statusLabel"> <property name="font"> <font> - <weight>75</weight> <italic>true</italic> <bold>true</bold> </font> @@ -450,7 +482,7 @@ <string/> </property> <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + <set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set> </property> </widget> </item> @@ -459,7 +491,7 @@ <item> <spacer name="horizontalSpacer"> <property name="orientation"> - <enum>Qt::Horizontal</enum> + <enum>Qt::Orientation::Horizontal</enum> </property> <property name="sizeHint" stdset="0"> <size> @@ -488,7 +520,7 @@ <item> <spacer name="verticalSpacer_4"> <property name="orientation"> - <enum>Qt::Vertical</enum> + <enum>Qt::Orientation::Vertical</enum> </property> <property name="sizeHint" stdset="0"> <size> @@ -506,7 +538,6 @@ <widget class="QLabel" name="label_13"> <property name="font"> <font> - <weight>75</weight> <bold>true</bold> </font> </property> @@ -518,10 +549,10 @@ <item row="1" column="1"> <spacer name="verticalSpacer_16"> <property name="orientation"> - <enum>Qt::Vertical</enum> + <enum>Qt::Orientation::Vertical</enum> </property> <property name="sizeType"> - <enum>QSizePolicy::Fixed</enum> + <enum>QSizePolicy::Policy::Fixed</enum> </property> <property name="sizeHint" stdset="0"> <size> @@ -537,7 +568,7 @@ <string>Please choose the folder containing your music collection.</string> </property> <property name="alignment"> - <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> + <set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop</set> </property> <property name="wordWrap"> <bool>true</bool> @@ -547,10 +578,10 @@ <item row="3" column="1"> <spacer name="verticalSpacer_18"> <property name="orientation"> - <enum>Qt::Vertical</enum> + <enum>Qt::Orientation::Vertical</enum> </property> <property name="sizeType"> - <enum>QSizePolicy::Fixed</enum> + <enum>QSizePolicy::Policy::Fixed</enum> </property> <property name="sizeHint" stdset="0"> <size> @@ -580,7 +611,6 @@ <widget class="QLabel" name="statusLabel_2"> <property name="font"> <font> - <weight>75</weight> <italic>true</italic> <bold>true</bold> </font> @@ -593,7 +623,7 @@ <item row="6" column="1"> <spacer name="verticalSpacer_14"> <property name="orientation"> - <enum>Qt::Vertical</enum> + <enum>Qt::Orientation::Vertical</enum> </property> <property name="sizeHint" stdset="0"> <size> @@ -615,7 +645,6 @@ <widget class="QLabel" name="label_6f"> <property name="font"> <font> - <weight>75</weight> <bold>true</bold> </font> </property> @@ -627,10 +656,10 @@ <item> <spacer name="verticalSpacer_9f"> <property name="orientation"> - <enum>Qt::Vertical</enum> + <enum>Qt::Orientation::Vertical</enum> </property> <property name="sizeType"> - <enum>QSizePolicy::Fixed</enum> + <enum>QSizePolicy::Policy::Fixed</enum> </property> <property name="sizeHint" stdset="0"> <size> @@ -646,23 +675,23 @@ <string><p>Cantata can download missing covers, and store these either in the music folder or within your personal cache folder.</p></string> </property> <property name="alignment"> - <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> + <set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop</set> </property> <property name="wordWrap"> <bool>true</bool> </property> <property name="textInteractionFlags"> - <set>Qt::NoTextInteraction</set> + <set>Qt::TextInteractionFlag::NoTextInteraction</set> </property> </widget> </item> <item> <spacer name="verticalSpacer_7x"> <property name="orientation"> - <enum>Qt::Vertical</enum> + <enum>Qt::Orientation::Vertical</enum> </property> <property name="sizeType"> - <enum>QSizePolicy::Fixed</enum> + <enum>QSizePolicy::Policy::Fixed</enum> </property> <property name="sizeHint" stdset="0"> <size> @@ -696,7 +725,7 @@ <item> <spacer name="verticalSpacer_8f"> <property name="orientation"> - <enum>Qt::Vertical</enum> + <enum>Qt::Orientation::Vertical</enum> </property> <property name="sizeHint" stdset="0"> <size> @@ -714,7 +743,6 @@ <widget class="QLabel" name="label_6"> <property name="font"> <font> - <weight>75</weight> <bold>true</bold> </font> </property> @@ -726,10 +754,10 @@ <item row="1" column="1"> <spacer name="verticalSpacer_9"> <property name="orientation"> - <enum>Qt::Vertical</enum> + <enum>Qt::Orientation::Vertical</enum> </property> <property name="sizeType"> - <enum>QSizePolicy::Fixed</enum> + <enum>QSizePolicy::Policy::Fixed</enum> </property> <property name="sizeHint" stdset="0"> <size> @@ -745,23 +773,23 @@ <string>Cantata is now configured!<br/><br/>Cantata's configuration dialog maybe used to customise Cantata's appearance, as well as to add extra MPD hosts, etc.</string> </property> <property name="alignment"> - <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> + <set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop</set> </property> <property name="wordWrap"> <bool>true</bool> </property> <property name="textInteractionFlags"> - <set>Qt::NoTextInteraction</set> + <set>Qt::TextInteractionFlag::NoTextInteraction</set> </property> </widget> </item> <item row="3" column="1"> <spacer name="verticalSpacer_6x"> <property name="orientation"> - <enum>Qt::Vertical</enum> + <enum>Qt::Orientation::Vertical</enum> </property> <property name="sizeType"> - <enum>QSizePolicy::Fixed</enum> + <enum>QSizePolicy::Policy::Fixed</enum> </property> <property name="sizeHint" stdset="0"> <size> @@ -781,10 +809,10 @@ <item row="5" column="1"> <spacer name="verticalSpacer_6y"> <property name="orientation"> - <enum>Qt::Vertical</enum> + <enum>Qt::Orientation::Vertical</enum> </property> <property name="sizeType"> - <enum>QSizePolicy::Fixed</enum> + <enum>QSizePolicy::Policy::Fixed</enum> </property> <property name="sizeHint" stdset="0"> <size> @@ -797,7 +825,7 @@ <item row="6" column="0" colspan="2"> <spacer name="verticalSpacer_8"> <property name="orientation"> - <enum>Qt::Vertical</enum> + <enum>Qt::Orientation::Vertical</enum> </property> <property name="sizeHint" stdset="0"> <size> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cantata-3.2.1/gui/main.cpp new/cantata-3.3.0/gui/main.cpp --- old/cantata-3.2.1/gui/main.cpp 2024-08-06 00:17:52.000000000 +0200 +++ new/cantata-3.3.0/gui/main.cpp 2024-11-14 07:02:07.000000000 +0100 @@ -437,6 +437,7 @@ if (QDialog::Rejected == wz.exec()) { return 0; } + Settings::self()->save(); } else if (cmdLineParser.isSet(collectionOption)) { QString col = cmdLineParser.value(collectionOption); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cantata-3.2.1/gui/settings.cpp new/cantata-3.3.0/gui/settings.cpp --- old/cantata-3.2.1/gui/settings.cpp 2024-08-06 00:17:52.000000000 +0200 +++ new/cantata-3.3.0/gui/settings.cpp 2024-11-14 07:02:07.000000000 +0100 @@ -634,7 +634,7 @@ QString Settings::podcastDownloadPath() { - return Utils::fixPath(cfg.get("podcastDownloadPath", Utils::fixPath(QDir::homePath()) + QLatin1String("Podcasts/"))); + return Utils::fixPath(cfg.get("podcastDownloadPath", Utils::fixPath(QDir::homePath()) + QLatin1String("Music/Podcasts/"))); } int Settings::podcastAutoDownloadLimit() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cantata-3.2.1/mpd-interface/httpstream.cpp new/cantata-3.3.0/mpd-interface/httpstream.cpp --- old/cantata-3.2.1/mpd-interface/httpstream.cpp 2024-08-06 00:17:52.000000000 +0200 +++ new/cantata-3.3.0/mpd-interface/httpstream.cpp 2024-11-14 07:02:07.000000000 +0100 @@ -218,7 +218,9 @@ #endif if (status->state() == state && !playerNeedsToStart) { +#ifndef LIBVLC_FOUND player->play(); +#endif return; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cantata-3.2.1/mpd-interface/mpdconnection.cpp new/cantata-3.3.0/mpd-interface/mpdconnection.cpp --- old/cantata-3.2.1/mpd-interface/mpdconnection.cpp 2024-08-06 00:17:52.000000000 +0200 +++ new/cantata-3.3.0/mpd-interface/mpdconnection.cpp 2024-11-14 07:02:07.000000000 +0100 @@ -1569,9 +1569,21 @@ QByteArray imageData; bool firstRun = true; QString path = Utils::getDir(song.file); + bool embedded = false; while (dataToRead != 0) { - Response response = sendCommand("albumart " + encodeName(path) + " " + QByteArray::number(firstRun ? 0 : (imageSize - dataToRead))); - if (!response.ok) { + Response response; + if (embedded) { + response = sendCommand("readpicture " + encodeName(song.file) + " " + QByteArray::number(firstRun ? 0 : (imageSize - dataToRead))); + } + else { + response = sendCommand("albumart " + encodeName(path) + " " + QByteArray::number(firstRun ? 0 : (imageSize - dataToRead))); + } + if (!response.ok && !embedded && supportsReadPicture()) { + DBUG << "albumart query failed; trying embedded"; + embedded = true; + continue; + } + else if (!response.ok) { DBUG << "albumart query failed"; break; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cantata-3.2.1/mpd-interface/mpdconnection.h new/cantata-3.3.0/mpd-interface/mpdconnection.h --- old/cantata-3.2.1/mpd-interface/mpdconnection.h 2024-08-06 00:17:52.000000000 +0200 +++ new/cantata-3.3.0/mpd-interface/mpdconnection.h 2024-11-14 07:02:07.000000000 +0100 @@ -292,6 +292,7 @@ bool modifiedFindSupported() const { return ver >= CANTATA_MAKE_VERSION(0, 19, 0); } bool replaygainSupported() const { return ver >= CANTATA_MAKE_VERSION(0, 16, 0); } bool supportsCoverDownload() const { return ver >= CANTATA_MAKE_VERSION(0, 21, 0) && isMpd(); } + bool supportsReadPicture() const { return ver >= CANTATA_MAKE_VERSION(0, 22, 0) && isMpd(); } bool localFilePlaybackSupported() const; bool stickersSupported() const { return canUseStickers; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cantata-3.2.1/online/rssparser.cpp new/cantata-3.3.0/online/rssparser.cpp --- old/cantata-3.2.1/online/rssparser.cpp 2024-08-06 00:17:52.000000000 +0200 +++ new/cantata-3.3.0/online/rssparser.cpp 2024-11-14 07:02:07.000000000 +0100 @@ -72,7 +72,7 @@ static const QRegularExpression re(R"(([a-zA-Z]{3}),? (\d{1,2}) ([a-zA-Z]{3}) (\d{4}) (\d{1,2}):(\d{1,2}):(\d{1,2}))"); auto match = re.match(text); - if (match.hasMatch()) { + if (!match.hasMatch()) { return QDateTime(); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cantata-3.2.1/replaygain/ffmpeginput.cpp new/cantata-3.3.0/replaygain/ffmpeginput.cpp --- old/cantata-3.2.1/replaygain/ffmpeginput.cpp 2024-08-06 00:17:52.000000000 +0200 +++ new/cantata-3.3.0/replaygain/ffmpeginput.cpp 2024-11-14 07:02:07.000000000 +0100 @@ -249,7 +249,7 @@ { if (handle) { mutex.lock(); - avcodec_close(handle->codecContext); + avcodec_free_context(&handle->codecContext); #if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(53, 21, 0) avformat_close_input(&handle->formatContext); #else
participants (1)
-
Source-Sync