Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package kasts for openSUSE:Factory checked 
in at 2023-07-07 15:48:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kasts (Old)
 and      /work/SRC/openSUSE:Factory/.kasts.new.23466 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kasts"

Fri Jul  7 15:48:16 2023 rev:4 rq:1097216 version:23.04.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/kasts/kasts.changes      2023-06-09 
20:40:16.199541095 +0200
+++ /work/SRC/openSUSE:Factory/.kasts.new.23466/kasts.changes   2023-07-07 
15:50:12.965230970 +0200
@@ -1,0 +2,12 @@
+Tue Jul  4 10:19:28 UTC 2023 - Christophe Marin <[email protected]>
+
+- Update to 23.04.3
+  * New bugfix release
+  * For more details please see:
+  * https://kde.org/announcements/gear/23.04.3/
+- Changes since 23.04.2:
+  * Fix mMedia nullptr dereference in VLC backend metadata call
+  * More safeguards for getFeed and getEntry calls
+  * Fix segfault when trying to remove a non-subscribed podcast (kde#471107)
+
+-------------------------------------------------------------------

Old:
----
  kasts-23.04.2.tar.xz
  kasts-23.04.2.tar.xz.sig

New:
----
  kasts-23.04.3.tar.xz
  kasts-23.04.3.tar.xz.sig

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kasts.spec ++++++
--- /var/tmp/diff_new_pack.VkuCUB/_old  2023-07-07 15:50:13.525234306 +0200
+++ /var/tmp/diff_new_pack.VkuCUB/_new  2023-07-07 15:50:13.533234354 +0200
@@ -18,7 +18,7 @@
 
 %bcond_without  released
 Name:           kasts
-Version:        23.04.2
+Version:        23.04.3
 Release:        0
 Summary:        Kirigami-based podcast player
 License:        GPL-2.0-or-later


++++++ kasts-23.04.2.tar.xz -> kasts-23.04.3.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kasts-23.04.2/CMakeLists.txt 
new/kasts-23.04.3/CMakeLists.txt
--- old/kasts-23.04.2/CMakeLists.txt    2023-06-02 21:46:00.000000000 +0200
+++ new/kasts-23.04.3/CMakeLists.txt    2023-07-04 07:04:19.000000000 +0200
@@ -8,7 +8,7 @@
 # KDE Applications version, managed by release script.
 set(RELEASE_SERVICE_VERSION_MAJOR "23")
 set(RELEASE_SERVICE_VERSION_MINOR "04")
-set(RELEASE_SERVICE_VERSION_MICRO "2")
+set(RELEASE_SERVICE_VERSION_MICRO "3")
 set(RELEASE_SERVICE_VERSION 
"${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}")
 
 project(kasts VERSION ${RELEASE_SERVICE_VERSION})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kasts-23.04.2/org.kde.kasts.appdata.xml 
new/kasts-23.04.3/org.kde.kasts.appdata.xml
--- old/kasts-23.04.2/org.kde.kasts.appdata.xml 2023-06-02 21:46:00.000000000 
+0200
+++ new/kasts-23.04.3/org.kde.kasts.appdata.xml 2023-07-04 07:04:19.000000000 
+0200
@@ -231,7 +231,7 @@
       <li xml:lang="ru">Полная интеграция с системой: 
при воспроизведении подкастов работа 
системы не приостанавливается;</li>
       <li xml:lang="sl">Popolna sistemska integracija: npr. preprečevanje 
mirovanja sistema pri poslušanju</li>
       <li xml:lang="sv">Fullständig systemintegrering: t.ex. förhindra att 
systemet går till viloläge under uppspelning</li>
-      <li xml:lang="tr">Tam sistem tümleşimi; örn. dinlerken sistem 
uykusunu ertele</li>
+      <li xml:lang="tr">Tam sistem tümleşimi; örn. dinlerken sistem 
uykusunu engelle</li>
       <li xml:lang="uk">Повна інтеграція із системою, 
зокрема заборона присипляння пристрою під 
час прослуховування</li>
       <li xml:lang="x-test">xxFull system integration: e.g. inhibit system 
suspend while listeningxx</li>
     </ul>
@@ -336,6 +336,7 @@
   </screenshots>
   <launchable type="desktop-id">org.kde.kasts.desktop</launchable>
   <releases>
+    <release version="23.04.3" date="2023-07-06"/>
     <release version="23.04.2" date="2023-06-08"/>
     <release version="23.04.1" date="2023-05-11"/>
     <release version="23.04.0" date="2023-04-20"/>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kasts-23.04.2/org.kde.kasts.desktop 
new/kasts-23.04.3/org.kde.kasts.desktop
--- old/kasts-23.04.2/org.kde.kasts.desktop     2023-06-02 21:46:00.000000000 
+0200
+++ new/kasts-23.04.3/org.kde.kasts.desktop     2023-07-04 07:04:19.000000000 
+0200
@@ -10,6 +10,7 @@
 Name[es]=Kasts
 Name[fi]=Kasts
 Name[fr]=Kasts
+Name[gl]=Kasts
 Name[it]=Kasts
 Name[ka]=Kasts
 Name[ko]=Kasts
@@ -35,6 +36,7 @@
 Comment[es]=Aplicación de pódcast para móviles
 Comment[fi]=Podcast-mobiilisovellus
 Comment[fr]=Application mobile pour podcasts
+Comment[gl]=Aplicación de podcasts para móbiles.
 Comment[it]=Applicazione mobile per podcast
 Comment[ka]=მობილური პოდკასტის 
აპლიკაცია
 Comment[ko]=모바일 팟캐스트 프로그램
@@ -60,6 +62,7 @@
 GenericName[es]=Aplicación de pódcast
 GenericName[fi]=Podcast-sovellus
 GenericName[fr]=Application pour podcasts
+GenericName[gl]=Aplicación de podcasts
 GenericName[it]=Applicazione podcast
 GenericName[ka]=პოდკასტის აპლიკაცია
 GenericName[ko]=팟캐스트 프로그램
@@ -85,6 +88,7 @@
 Keywords[es]=pódcast
 Keywords[fi]=podcast
 Keywords[fr]=podcast
+Keywords[gl]=podcast
 Keywords[it]=podcast
 Keywords[ka]=პოდკასტი
 Keywords[ko]=팟캐스트
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kasts-23.04.2/po/cs/kasts.po 
new/kasts-23.04.3/po/cs/kasts.po
--- old/kasts-23.04.2/po/cs/kasts.po    2023-06-02 21:46:00.000000000 +0200
+++ new/kasts-23.04.3/po/cs/kasts.po    2023-07-04 07:04:19.000000000 +0200
@@ -7,7 +7,7 @@
 "Project-Id-Version: kasts\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
 "POT-Creation-Date: 2023-05-26 02:25+0000\n"
-"PO-Revision-Date: 2023-03-01 16:22+0100\n"
+"PO-Revision-Date: 2023-06-23 10:06+0200\n"
 "Last-Translator: Vit Pelcak <[email protected]>\n"
 "Language-Team: Czech <[email protected]>\n"
 "Language: cs\n"
@@ -15,7 +15,7 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Lokalize 22.12.3\n"
+"X-Generator: Lokalize 23.04.2\n"
 
 #, kde-format
 msgctxt "NAME OF TRANSLATORS"
@@ -337,7 +337,7 @@
 #, kde-format
 msgctxt "@action:button"
 msgid "Open Sleep Timer Settings"
-msgstr ""
+msgstr "Otevřít nastavení časování uspání"
 
 #: qml/Desktop/DesktopPlayerControls.qml:270
 #: qml/Mobile/MobilePlayerControls.qml:345
@@ -375,7 +375,7 @@
 #, kde-format
 msgctxt "@action:button"
 msgid "Sleep Timer"
-msgstr ""
+msgstr "Časovač uspání"
 
 #: qml/Desktop/DesktopPlayerControls.qml:413
 #, kde-format
@@ -386,14 +386,14 @@
 #: qml/Mobile/MobilePlayerControls.qml:179
 #, kde-format
 msgid "No Track Title"
-msgstr ""
+msgstr "Žádný název skladby"
 
 #: qml/Desktop/DesktopPlayerControls.qml:438 qml/Desktop/HeaderBar.qml:120
 #: qml/Mobile/MobilePlayerControls.qml:21
 #: qml/Mobile/MobilePlayerControls.qml:189
 #, kde-format
 msgid "No Track Loaded"
-msgstr ""
+msgstr "Nebyla nalezena žádná skladba"
 
 #: qml/DiscoverPage.qml:16 qml/FeedListPage.qml:40 qml/main.qml:193
 #, kde-format
@@ -551,12 +551,12 @@
 #: qml/EpisodeListPage.qml:93 qml/FeedDetailsPage.qml:366
 #, kde-format
 msgid "No Episodes Available"
-msgstr ""
+msgstr "Nejsou k dispozici žádné epizody"
 
 #: qml/ErrorList.qml:30
 #, kde-format
 msgid "No Errors Logged"
-msgstr ""
+msgstr "Nebyly zaznamenány žádné chyby"
 
 #: qml/ErrorList.qml:66
 #, kde-format
@@ -996,7 +996,7 @@
 #: qml/Settings/GeneralSettingsPage.qml:44
 #, kde-format
 msgid "Always show podcast titles in subscription view"
-msgstr ""
+msgstr "Vždy zobrazovat názvy podcastů v pohledu přihlášení"
 
 #: qml/Settings/GeneralSettingsPage.qml:58
 #, kde-format
@@ -1054,12 +1054,12 @@
 #: qml/Settings/GeneralSettingsPage.qml:144
 #, kde-format
 msgid "Show time left instead of total track time"
-msgstr ""
+msgstr "Zobrazit zbývající čas namísto celkové délky skladby"
 
 #: qml/Settings/GeneralSettingsPage.qml:154
 #, kde-format
 msgid "Adjust time left based on current playback speed"
-msgstr ""
+msgstr "Upravit zbývající čas podle rychlosti přehrávání"
 
 #: qml/Settings/GeneralSettingsPage.qml:163
 #, kde-format
@@ -1085,12 +1085,12 @@
 #: qml/Settings/GeneralSettingsPage.qml:196
 #, kde-format
 msgid "Automatically fetch podcast updates on startup"
-msgstr ""
+msgstr "Automaticky stahovat aktualizace podcastů při spuštění"
 
 #: qml/Settings/GeneralSettingsPage.qml:205
 #, kde-format
 msgid "Update existing episode data on refresh (slower)"
-msgstr ""
+msgstr "Aktualizovat data existující epizody při obnovení (pomalejší)"
 
 #: qml/Settings/GeneralSettingsPage.qml:215
 #, kde-format
@@ -1125,7 +1125,7 @@
 #: qml/Settings/GeneralSettingsPage.qml:261
 #, kde-format
 msgid "Reset play position after an episode is played"
-msgstr ""
+msgstr "Resetovat pozici přehrávání poté, co je epizoda přehrána"
 
 #: qml/Settings/GeneralSettingsPage.qml:278
 #, kde-format
@@ -1318,12 +1318,12 @@
 #: qml/Settings/SynchronizationSettingsPage.qml:69
 #, kde-format
 msgid "Last full sync with server"
-msgstr ""
+msgstr "Poslední plná synchronizace se serverem"
 
 #: qml/Settings/SynchronizationSettingsPage.qml:77
 #, kde-format
 msgid "Last quick upload to sync server"
-msgstr ""
+msgstr "Poslední rychlé odeslání na synchronizační server"
 
 #: qml/Settings/SynchronizationSettingsPage.qml:91
 #, kde-format
@@ -1333,17 +1333,17 @@
 #: qml/Settings/SynchronizationSettingsPage.qml:97
 #, kde-format
 msgid "Do full sync on startup"
-msgstr ""
+msgstr "Provést plnou synchronizaci při spuštění"
 
 #: qml/Settings/SynchronizationSettingsPage.qml:107
 #, kde-format
 msgid "Do full sync when fetching podcasts"
-msgstr ""
+msgstr "Provést plnou synchronizaci při stahování podcastů"
 
 #: qml/Settings/SynchronizationSettingsPage.qml:117
 #, kde-format
 msgid "Upload episode play positions on play/pause toggle"
-msgstr ""
+msgstr "Odeslat pozice přehrávání epizod při stisknutí 
přehrát/pozastavit"
 
 #: qml/Settings/SynchronizationSettingsPage.qml:134
 #, kde-format
@@ -1353,7 +1353,7 @@
 #: qml/Settings/SynchronizationSettingsPage.qml:139
 #, kde-format
 msgid "Fetch all episode states from server"
-msgstr ""
+msgstr "Stáhnout stavy všech epizod ze serveru"
 
 #: qml/Settings/SynchronizationSettingsPage.qml:142
 #, kde-format
@@ -1363,7 +1363,7 @@
 #: qml/Settings/SynchronizationSettingsPage.qml:154
 #, kde-format
 msgid "Push all local episode states to server"
-msgstr ""
+msgstr "Odeslat stavy místních epizod na server"
 
 #: qml/Settings/SynchronizationSettingsPage.qml:158
 #, kde-format
@@ -1373,7 +1373,7 @@
 #: qml/Settings/SynchronizationSettingsPage.qml:197
 #, kde-format
 msgid "Push all local episode states to server?"
-msgstr ""
+msgstr "Odeslat stavy místních epizod na server?"
 
 #: qml/Settings/SynchronizationSettingsPage.qml:217
 #, kde-format
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kasts-23.04.2/po/de/kasts.po 
new/kasts-23.04.3/po/de/kasts.po
--- old/kasts-23.04.2/po/de/kasts.po    2023-06-02 21:46:00.000000000 +0200
+++ new/kasts-23.04.3/po/de/kasts.po    2023-07-04 07:04:19.000000000 +0200
@@ -15,7 +15,7 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Lokalize 22.07.70\n"
+"X-Generator: Lokalize 23.07.70\n"
 
 #, kde-format
 msgctxt "NAME OF TRANSLATORS"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kasts-23.04.2/po/fi/kasts.po 
new/kasts-23.04.3/po/fi/kasts.po
--- old/kasts-23.04.2/po/fi/kasts.po    2023-06-02 21:46:00.000000000 +0200
+++ new/kasts-23.04.3/po/fi/kasts.po    2023-07-04 07:04:19.000000000 +0200
@@ -15,7 +15,7 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Lokalize 20.12.0\n"
+"X-Generator: Lokalize 23.04.1\n"
 
 #, kde-format
 msgctxt "NAME OF TRANSLATORS"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kasts-23.04.2/po/it/kasts.po 
new/kasts-23.04.3/po/it/kasts.po
--- old/kasts-23.04.2/po/it/kasts.po    2023-06-02 21:46:00.000000000 +0200
+++ new/kasts-23.04.3/po/it/kasts.po    2023-07-04 07:04:19.000000000 +0200
@@ -15,7 +15,7 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Lokalize 23.04.1\n"
+"X-Generator: Lokalize 23.04.2\n"
 
 #, kde-format
 msgctxt "NAME OF TRANSLATORS"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kasts-23.04.2/po/zh_CN/kasts.po 
new/kasts-23.04.3/po/zh_CN/kasts.po
--- old/kasts-23.04.2/po/zh_CN/kasts.po 2023-06-02 21:46:00.000000000 +0200
+++ new/kasts-23.04.3/po/zh_CN/kasts.po 2023-07-04 07:04:19.000000000 +0200
@@ -3,7 +3,7 @@
 "Project-Id-Version: kdeorg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
 "POT-Creation-Date: 2023-05-26 02:25+0000\n"
-"PO-Revision-Date: 2023-05-22 14:04\n"
+"PO-Revision-Date: 2023-07-03 11:41\n"
 "Last-Translator: \n"
 "Language-Team: Chinese Simplified\n"
 "Language: zh_CN\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kasts-23.04.2/src/datamanager.cpp 
new/kasts-23.04.3/src/datamanager.cpp
--- old/kasts-23.04.2/src/datamanager.cpp       2023-06-02 21:46:00.000000000 
+0200
+++ new/kasts-23.04.3/src/datamanager.cpp       2023-07-04 07:04:19.000000000 
+0200
@@ -127,31 +127,47 @@
 
 Feed *DataManager::getFeed(const int index) const
 {
-    return getFeed(m_feedmap[index]);
+    if (index < m_feedmap.size()) {
+        return getFeed(m_feedmap[index]);
+    }
+    return nullptr;
 }
 
 Feed *DataManager::getFeed(const QString &feedurl) const
 {
-    if (m_feeds[feedurl] == nullptr)
-        loadFeed(feedurl);
-    return m_feeds[feedurl];
+    if (m_feeds.contains(feedurl)) {
+        if (m_feeds[feedurl] == nullptr) {
+            loadFeed(feedurl);
+        }
+        return m_feeds[feedurl];
+    }
+    return nullptr;
 }
 
 Entry *DataManager::getEntry(const int feed_index, const int entry_index) const
 {
-    return getEntry(m_entrymap[m_feedmap[feed_index]][entry_index]);
+    if (feed_index < m_feedmap.size() && entry_index < 
m_entrymap[m_feedmap[feed_index]].size()) {
+        return getEntry(m_entrymap[m_feedmap[feed_index]][entry_index]);
+    }
+    return nullptr;
 }
 
 Entry *DataManager::getEntry(const Feed *feed, const int entry_index) const
 {
-    return getEntry(m_entrymap[feed->url()][entry_index]);
+    if (feed && entry_index < m_entrymap[feed->url()].size()) {
+        return getEntry(m_entrymap[feed->url()][entry_index]);
+    }
+    return nullptr;
 }
 
 Entry *DataManager::getEntry(const QString &id) const
 {
-    if (m_entries[id] == nullptr)
-        loadEntry(id);
-    return m_entries[id];
+    if (m_entries.contains(id)) {
+        if (m_entries[id] == nullptr)
+            loadEntry(id);
+        return m_entries[id];
+    }
+    return nullptr;
 }
 
 int DataManager::feedCount() const
@@ -196,14 +212,19 @@
 {
     // Get feed pointer
     Feed *feed = getFeed(m_feedmap[index]);
-    removeFeed(feed);
+    if (feed) {
+        removeFeed(feed);
+    }
 }
 
 void DataManager::removeFeeds(const QStringList &feedurls)
 {
     QList<Feed *> feeds;
     for (QString feedurl : feedurls) {
-        feeds << getFeed(feedurl);
+        Feed *feed = getFeed(feedurl);
+        if (feed) {
+            feeds << feed;
+        }
     }
     removeFeeds(feeds);
 }
@@ -213,7 +234,9 @@
     QList<Feed *> feeds;
     for (QVariant feedVariant : feedVariantList) {
         if (feedVariant.canConvert<Feed *>()) {
-            feeds << feedVariant.value<Feed *>();
+            if (feedVariant.value<Feed *>()) {
+                feeds << feedVariant.value<Feed *>();
+            }
         }
     }
     removeFeeds(feeds);
@@ -222,83 +245,85 @@
 void DataManager::removeFeeds(const QList<Feed *> &feeds)
 {
     for (Feed *feed : feeds) {
-        const QString feedurl = feed->url();
-        int index = m_feedmap.indexOf(feedurl);
-
-        qCDebug(kastsDataManager) << "deleting feed" << feedurl << "with 
index" << index;
-
-        // Delete the object instances and mappings
-        // First delete entries in Queue
-        qCDebug(kastsDataManager) << "delete queueentries of" << feedurl;
-        QStringList removeFromQueueList;
-        for (auto &id : m_queuemap) {
-            if (getEntry(id)->feed()->url() == feedurl) {
-                if (AudioManager::instance().entry() == getEntry(id)) {
-                    AudioManager::instance().next();
+        if (feed) {
+            const QString feedurl = feed->url();
+            int index = m_feedmap.indexOf(feedurl);
+
+            qCDebug(kastsDataManager) << "deleting feed" << feedurl << "with 
index" << index;
+
+            // Delete the object instances and mappings
+            // First delete entries in Queue
+            qCDebug(kastsDataManager) << "delete queueentries of" << feedurl;
+            QStringList removeFromQueueList;
+            for (auto &id : m_queuemap) {
+                if (getEntry(id)->feed()->url() == feedurl) {
+                    if (AudioManager::instance().entry() == getEntry(id)) {
+                        AudioManager::instance().next();
+                    }
+                    removeFromQueueList += id;
                 }
-                removeFromQueueList += id;
             }
-        }
-        bulkQueueStatus(false, removeFromQueueList);
+            bulkQueueStatus(false, removeFromQueueList);
 
-        // Delete entries themselves
-        qCDebug(kastsDataManager) << "delete entries of" << feedurl;
-        for (auto &id : m_entrymap[feedurl]) {
-            if (getEntry(id)->hasEnclosure())
-                getEntry(id)->enclosure()->deleteFile(); // delete enclosure 
(if it exists)
-            if (!getEntry(id)->image().isEmpty())
-                StorageManager::instance().removeImage(getEntry(id)->image()); 
// delete entry images
-            delete m_entries[id]; // delete pointer
-            m_entries.remove(id); // delete the hash key
-        }
-        m_entrymap.remove(feedurl); // remove all the entry mappings belonging 
to the feed
+            // Delete entries themselves
+            qCDebug(kastsDataManager) << "delete entries of" << feedurl;
+            for (auto &id : m_entrymap[feedurl]) {
+                if (getEntry(id)->hasEnclosure())
+                    getEntry(id)->enclosure()->deleteFile(); // delete 
enclosure (if it exists)
+                if (!getEntry(id)->image().isEmpty())
+                    
StorageManager::instance().removeImage(getEntry(id)->image()); // delete entry 
images
+                delete m_entries[id]; // delete pointer
+                m_entries.remove(id); // delete the hash key
+            }
+            m_entrymap.remove(feedurl); // remove all the entry mappings 
belonging to the feed
 
-        qCDebug(kastsDataManager) << "Remove feed image" << feed->image() << 
"for feed" << feedurl;
-        if (!feed->image().isEmpty())
-            StorageManager::instance().removeImage(feed->image());
-        m_feeds.remove(m_feedmap[index]); // remove from m_feeds
-        m_feedmap.removeAt(index); // remove from m_feedmap
-        delete feed; // remove the pointer
-
-        // Then delete everything from the database
-        qCDebug(kastsDataManager) << "delete database part of" << feedurl;
-
-        // Delete related Errors
-        QSqlQuery query;
-        query.prepare(QStringLiteral("DELETE FROM Errors WHERE url=:url;"));
-        query.bindValue(QStringLiteral(":url"), feedurl);
-        Database::instance().execute(query);
-
-        // Delete Authors
-        query.prepare(QStringLiteral("DELETE FROM Authors WHERE feed=:feed;"));
-        query.bindValue(QStringLiteral(":feed"), feedurl);
-        Database::instance().execute(query);
-
-        // Delete Chapters
-        query.prepare(QStringLiteral("DELETE FROM Chapters WHERE 
feed=:feed;"));
-        query.bindValue(QStringLiteral(":feed"), feedurl);
-        Database::instance().execute(query);
-
-        // Delete Entries
-        query.prepare(QStringLiteral("DELETE FROM Entries WHERE feed=:feed;"));
-        query.bindValue(QStringLiteral(":feed"), feedurl);
-        Database::instance().execute(query);
-
-        // Delete Enclosures
-        query.prepare(QStringLiteral("DELETE FROM Enclosures WHERE 
feed=:feed;"));
-        query.bindValue(QStringLiteral(":feed"), feedurl);
-        Database::instance().execute(query);
-
-        // Delete Feed
-        query.prepare(QStringLiteral("DELETE FROM Feeds WHERE url=:url;"));
-        query.bindValue(QStringLiteral(":url"), feedurl);
-        Database::instance().execute(query);
-
-        // Save this action to the database (including timestamp) in order to 
be
-        // able to sync with remote services
-        Sync::instance().storeRemoveFeedAction(feedurl);
+            qCDebug(kastsDataManager) << "Remove feed image" << feed->image() 
<< "for feed" << feedurl;
+            if (!feed->image().isEmpty())
+                StorageManager::instance().removeImage(feed->image());
+            m_feeds.remove(m_feedmap[index]); // remove from m_feeds
+            m_feedmap.removeAt(index); // remove from m_feedmap
+            delete feed; // remove the pointer
+
+            // Then delete everything from the database
+            qCDebug(kastsDataManager) << "delete database part of" << feedurl;
+
+            // Delete related Errors
+            QSqlQuery query;
+            query.prepare(QStringLiteral("DELETE FROM Errors WHERE 
url=:url;"));
+            query.bindValue(QStringLiteral(":url"), feedurl);
+            Database::instance().execute(query);
+
+            // Delete Authors
+            query.prepare(QStringLiteral("DELETE FROM Authors WHERE 
feed=:feed;"));
+            query.bindValue(QStringLiteral(":feed"), feedurl);
+            Database::instance().execute(query);
+
+            // Delete Chapters
+            query.prepare(QStringLiteral("DELETE FROM Chapters WHERE 
feed=:feed;"));
+            query.bindValue(QStringLiteral(":feed"), feedurl);
+            Database::instance().execute(query);
+
+            // Delete Entries
+            query.prepare(QStringLiteral("DELETE FROM Entries WHERE 
feed=:feed;"));
+            query.bindValue(QStringLiteral(":feed"), feedurl);
+            Database::instance().execute(query);
+
+            // Delete Enclosures
+            query.prepare(QStringLiteral("DELETE FROM Enclosures WHERE 
feed=:feed;"));
+            query.bindValue(QStringLiteral(":feed"), feedurl);
+            Database::instance().execute(query);
+
+            // Delete Feed
+            query.prepare(QStringLiteral("DELETE FROM Feeds WHERE url=:url;"));
+            query.bindValue(QStringLiteral(":url"), feedurl);
+            Database::instance().execute(query);
+
+            // Save this action to the database (including timestamp) in order 
to be
+            // able to sync with remote services
+            Sync::instance().storeRemoveFeedAction(feedurl);
 
-        Q_EMIT feedRemoved(index);
+            Q_EMIT feedRemoved(index);
+        }
     }
 
     // if settings allow, then upload these changes immediately to sync server
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kasts-23.04.2/src/kmediasession/mediabackends/vlcmediabackend.cpp 
new/kasts-23.04.3/src/kmediasession/mediabackends/vlcmediabackend.cpp
--- old/kasts-23.04.2/src/kmediasession/mediabackends/vlcmediabackend.cpp       
2023-06-02 21:46:00.000000000 +0200
+++ new/kasts-23.04.3/src/kmediasession/mediabackends/vlcmediabackend.cpp       
2023-07-04 07:04:19.000000000 +0200
@@ -679,16 +679,16 @@
 void VlcMediaBackendPrivate::parseMetaData()
 {
     qCDebug(VlcSignalsLog) << "VlcMediaBackendPrivate::parseMetaData()";
-    if (mKMediaSession->metaData()->title().isEmpty()) {
+    if (mMedia && mKMediaSession->metaData()->title().isEmpty()) {
         
mKMediaSession->metaData()->setTitle(QString::fromUtf8(libvlc_media_get_meta(mMedia,
 libvlc_meta_Title)));
     }
-    if (mKMediaSession->metaData()->artist().isEmpty()) {
+    if (mMedia && mKMediaSession->metaData()->artist().isEmpty()) {
         
mKMediaSession->metaData()->setArtist(QString::fromUtf8(libvlc_media_get_meta(mMedia,
 libvlc_meta_Artist)));
     }
-    if (mKMediaSession->metaData()->album().isEmpty()) {
+    if (mMedia && mKMediaSession->metaData()->album().isEmpty()) {
         
mKMediaSession->metaData()->setAlbum(QString::fromUtf8(libvlc_media_get_meta(mMedia,
 libvlc_meta_Album)));
     }
-    if (mKMediaSession->metaData()->artworkUrl().isEmpty()) {
+    if (mMedia && mKMediaSession->metaData()->artworkUrl().isEmpty()) {
         
mKMediaSession->metaData()->setArtworkUrl(QUrl(QString::fromUtf8(libvlc_media_get_meta(mMedia,
 libvlc_meta_ArtworkURL))));
     }
 }

Reply via email to