[vlc-commits] [Git][videolan/vlc][master] qt: Add context menu to configure podcast RSS feeds

Steve Lhomme (@robUx4) gitlab at videolan.org
Thu Mar 12 11:54:38 UTC 2026



Steve Lhomme pushed to branch master at VideoLAN / VLC


Commits:
b14dde8f by Atul Singh at 2026-03-12T11:31:48+00:00
qt: Add context menu to configure podcast RSS feeds

Fixes vlc#29612

This commit fixes the missing 'Add' button functionality for podcast
RSS feeds in VLC4 Qt interface. The podcast configuration dialog
exists but was not accessible from the Services view, unlike VLC3
which had a 'Configure podcasts...' menu item.

Changes:
- Add context menu to podcast service in Network Sources view
- Menu appears on right-click only for 'podcast' services
- Provides 'Configure...' option that opens existing podcast dialog
- Uses StringListMenu for native menu appearance
- Imports VLC.Menus module for menu functionality

The podcast configuration dialog already contains the 'Add' button
for adding RSS feed URLs, making the podcast module fully functional
once users can access the configuration interface.

User workflow:
1. Navigate to View -> Playlist -> My Network Sources
2. Right-click on 'Podcast' service
3. Select 'Configure...' to open podcast configuration dialog
4. Add RSS feed URLs using the existing 'Add' button

This restores the essential podcast RSS feed management capability
that was missing in VLC4 while maintaining consistency with the
existing Qt interface patterns.

- - - - -


1 changed file:

- modules/gui/qt/network/qml/ServicesSources.qml


Changes:

=====================================
modules/gui/qt/network/qml/ServicesSources.qml
=====================================
@@ -25,6 +25,8 @@ import VLC.Util
 import VLC.MainInterface
 import VLC.Style
 import VLC.Network
+import VLC.Dialogs
+import VLC.Menus
 
 Widgets.ExpandGridItemView {
     id: root
@@ -60,6 +62,7 @@ Widgets.ExpandGridItemView {
         property var model: ({})
         property int index: -1
         readonly property bool is_dummy: model.type === NetworkSourcesModel.TYPE_DUMMY
+        readonly property bool is_podcast: !is_dummy && model.name && model.name.startsWith("podcast")
 
         width: root.cellWidth;
         height: root.cellHeight;
@@ -111,6 +114,12 @@ Widgets.ExpandGridItemView {
             root.currentIndex = index
             root.forceActiveFocus()
         }
+
+        onContextMenuButtonClicked: (menuParent, globalMousePos) => {
+            if (is_podcast) {
+                serviceContextMenu.popup(globalMousePos, [qsTr("Configure...")])
+            }
+        }
     }
 
     onActionAtIndex: (index) => {
@@ -135,4 +144,16 @@ Widgets.ExpandGridItemView {
         sortOrder: MainCtx.sort.order
         sortCriteria: MainCtx.sort.criteria
     }
+
+    StringListMenu {
+        id: serviceContextMenu
+
+        ctx: MainCtx
+
+        onSelected: (index, modelData) => {
+            if (index === 0) {
+                DialogsProvider.podcastConfigureDialog()
+            }
+        }
+    }
 }



View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/b14dde8f726adcd11bff2a5b63e1c376ac58adcb

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/b14dde8f726adcd11bff2a5b63e1c376ac58adcb
You're receiving this email because of your account on code.videolan.org.


VideoLAN code repository instance


More information about the vlc-commits mailing list