[vlc-commits] [Git][videolan/vlc][master] 3 commits: qt: expose directly inteface visiblity property

Steve Lhomme (@robUx4) gitlab at videolan.org
Fri Aug 9 08:34:53 UTC 2024



Steve Lhomme pushed to branch master at VideoLAN / VLC


Commits:
9b79c666 by Pierre Lamot at 2024-08-09T08:15:36+00:00
qt: expose directly inteface visiblity property

- - - - -
3290347e by Pierre Lamot at 2024-08-09T08:15:36+00:00
qt: move the systray to its own class

- - - - -
68809214 by Pierre Lamot at 2024-08-09T08:15:36+00:00
qt: move systray menu content from VLCMenubar to VLCSystray

- - - - -


9 changed files:

- modules/gui/qt/Makefile.am
- + modules/gui/qt/dialogs/systray/systray.cpp
- + modules/gui/qt/dialogs/systray/systray.hpp
- modules/gui/qt/maininterface/interface_window_handler.cpp
- modules/gui/qt/maininterface/mainctx.cpp
- modules/gui/qt/maininterface/mainctx.hpp
- modules/gui/qt/menus/menus.cpp
- modules/gui/qt/menus/menus.hpp
- modules/gui/qt/meson.build


Changes:

=====================================
modules/gui/qt/Makefile.am
=====================================
@@ -142,6 +142,8 @@ libqt_plugin_la_SOURCES = \
 	dialogs/sout/sout.cpp dialogs/sout/sout.hpp \
 	dialogs/sout/sout_widgets.cpp \
 	dialogs/sout/sout_widgets.hpp \
+	dialogs/systray/systray.cpp \
+	dialogs/systray/systray.hpp \
 	dialogs/toolbar/controlbar_profile.hpp \
 	dialogs/toolbar/controlbar_profile.cpp \
 	dialogs/toolbar/controlbar_profile_model.cpp \
@@ -399,6 +401,7 @@ nodist_libqt_plugin_la_SOURCES = \
 	dialogs/sout/profile_selector.moc.cpp \
 	dialogs/sout/sout.moc.cpp \
 	dialogs/sout/sout_widgets.moc.cpp \
+	dialogs/systray/systray.moc.cpp \
 	dialogs/toolbar/controlbar_profile.moc.cpp \
 	dialogs/toolbar/controlbar_profile_model.moc.cpp \
 	dialogs/playlists/playlists.moc.cpp \


=====================================
modules/gui/qt/dialogs/systray/systray.cpp
=====================================
@@ -0,0 +1,179 @@
+/*****************************************************************************
+ * Copyright (C) 2024 VLC authors and VideoLAN
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * ( at your option ) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ *****************************************************************************/
+
+#include "systray.hpp"
+#include "maininterface/mainctx.hpp"
+#include "menus/menus.hpp"
+#include <QSystemTrayIcon>
+#include "playlist/playlist_controller.hpp"
+#include "dialogs/dialogs_provider.hpp"
+
+using namespace vlc::playlist;
+
+VLCSystray::VLCSystray(MainCtx* ctx, QObject* parent)
+    : QSystemTrayIcon(parent)
+    , m_ctx(ctx)
+    , m_intf(ctx->getIntf())
+{
+    assert(ctx);
+    assert(m_intf);
+
+    m_notificationSetting = var_InheritInteger(m_intf, "qt-notification");
+
+    QIcon iconVLC;
+    if( m_ctx->useXmasCone() )
+        iconVLC = QIcon::fromTheme( "vlc-xmas", QIcon( ":/logo/vlc128-xmas.png" ) );
+    else
+        iconVLC = QIcon::fromTheme( "vlc", QIcon( ":/logo/vlc256.png" ) );
+
+    setIcon(iconVLC);
+    setToolTip( qtr( "VLC media player" ));
+
+    m_menu = std::make_unique<VLCMenu>( qtr( "VLC media player"), m_intf );
+    m_menu->setIcon( iconVLC );
+    setContextMenu(m_menu.get());
+    update();
+    show();
+
+    connect( this, &QSystemTrayIcon::activated,
+            this, &VLCSystray::handleClick );
+
+    /* Connects on nameChanged() */
+    connect( m_intf->p_mainPlayerController, &PlayerController::nameChanged,
+            this, &VLCSystray::updateTooltipName );
+    /* Connect PLAY_STATUS on the systray */
+    connect( m_intf->p_mainPlayerController, &PlayerController::playingStateChanged,
+            this, &VLCSystray::update );
+}
+
+VLCSystray::~VLCSystray()
+{}
+
+/**
+ * Updates the VLCSystray Icon's menu and toggle the main interface
+ */
+void VLCSystray::toggleUpdateMenu()
+{
+    m_ctx->toggleWindowVisibility();
+    update();
+}
+
+/* First Item of the systray menu */
+void VLCSystray::showUpdateMenu()
+{
+    m_ctx->setInterfaceVisibible(true);
+    update();
+}
+
+/* First Item of the systray menu */
+void VLCSystray::hideUpdateMenu()
+{
+    m_ctx->setInterfaceVisibible(false);
+    update();
+}
+
+/* Click on systray Icon */
+void VLCSystray::handleClick(
+    QSystemTrayIcon::ActivationReason reason )
+{
+    switch( reason )
+    {
+    case QSystemTrayIcon::Trigger:
+    case QSystemTrayIcon::DoubleClick:
+#ifdef Q_OS_MAC
+        VLCMenuBar::updateSystrayMenu( this, p_intf );
+#else
+        toggleUpdateMenu();
+#endif
+        break;
+    case QSystemTrayIcon::MiddleClick:
+        if (PlaylistController* const playlistController = m_intf->p_mainPlaylistController)
+            playlistController->togglePlayPause();
+        break;
+    default:
+        break;
+    }
+}
+
+/**
+ * Updates the name of the systray Icon tooltip.
+ * Doesn't check if the systray exists, check before you call it.
+ **/
+void VLCSystray::updateTooltipName( const QString& name )
+{
+    if( name.isEmpty() )
+    {
+        setToolTip( qtr( "VLC media player" ) );
+    }
+    else
+    {
+        setToolTip( name );
+        const auto windowVisiblity = m_ctx->interfaceVisibility();
+        if( ( m_notificationSetting == NOTIFICATION_ALWAYS ) ||
+            ( m_notificationSetting == NOTIFICATION_MINIMIZED && (windowVisiblity == QWindow::Hidden || windowVisiblity == QWindow::Minimized)))
+        {
+            showMessage( qtr( "VLC media player" ), name,
+                                 QSystemTrayIcon::NoIcon, 3000 );
+        }
+    }
+    update();
+}
+
+void VLCSystray::update()
+{
+    // explictly delete submenus, see QTBUG-11070
+    for (QAction *action : m_menu->actions()) {
+        if (action->menu()) {
+            delete action->menu();
+        }
+    }
+    m_menu->clear();
+
+#ifndef Q_OS_MAC
+    /* Hide / Show VLC and cone */
+    if( m_ctx->interfaceVisibility() != QWindow::Hidden )
+    {
+        m_menu->addAction(
+            QIcon( ":/logo/vlc16.png" ), qtr( "&Hide VLC media player in taskbar" ),
+            this, &VLCSystray::hideUpdateMenu);
+    }
+    else
+    {
+        m_menu->addAction(
+            QIcon( ":/logo/vlc16.png" ), qtr( "Sho&w VLC media player" ),
+            this, &VLCSystray::showUpdateMenu);
+    }
+    m_menu->addSeparator();
+#endif
+
+    VLCMenuBar::PopupMenuPlaylistEntries( m_menu.get(), m_intf );
+    VLCMenuBar::PopupMenuControlEntries( m_menu.get(), m_intf, false );
+
+    VLCMenuBar::VolumeEntries( m_intf, m_menu.get() );
+    m_menu->addSeparator();
+    m_menu->addAction(
+        QIcon(":/menu/file.svg"), qtr( "&Open Media" ),
+        THEDP, &DialogsProvider::openFileDialog);
+
+    m_menu->addAction(
+        QIcon(":/menu/exit.svg"), qtr( "&Quit" ),
+        THEDP, &DialogsProvider::quit);
+
+    /* Set the menu */
+    setContextMenu( m_menu.get() );
+}


=====================================
modules/gui/qt/dialogs/systray/systray.hpp
=====================================
@@ -0,0 +1,57 @@
+/*****************************************************************************
+ * Copyright (C) 2024 VLC authors and VideoLAN
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * ( at your option ) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ *****************************************************************************/
+
+#ifndef SYSTRAY_HPP
+#define SYSTRAY_HPP
+
+#include <QWidget>
+#include <QSystemTrayIcon>
+
+class MainCtx;
+struct qt_intf_t;
+
+class VLCSystray : public QSystemTrayIcon
+{
+    Q_OBJECT
+public:
+    VLCSystray(MainCtx* ctx, QObject* parent = nullptr);
+    virtual ~VLCSystray();
+
+    bool isAvailableAndVisible() const;
+
+    void update();
+
+public slots:
+    void hideUpdateMenu();
+    void toggleUpdateMenu();
+    void showUpdateMenu();
+
+private slots:
+    void updateTooltipName( const QString& );
+    void handleClick( QSystemTrayIcon::ActivationReason );
+
+private:
+    MainCtx* m_ctx = nullptr;
+    qt_intf_t* m_intf = nullptr;
+
+    int m_notificationSetting = 0;
+
+    std::unique_ptr<QMenu> m_menu;
+};
+
+#endif // SYSTRAY_HPP


=====================================
modules/gui/qt/maininterface/interface_window_handler.cpp
=====================================
@@ -21,6 +21,7 @@
 #include <player/player_controller.hpp>
 #include <playlist/playlist_controller.hpp>
 #include "util/keyhelper.hpp"
+#include "dialogs/systray/systray.hpp"
 #include <QScreen>
 #include <QQmlProperty>
 #include <cmath>


=====================================
modules/gui/qt/maininterface/mainctx.cpp
=====================================
@@ -45,6 +45,7 @@
 #include "playlist/playlist_controller.hpp"
 
 #include "dialogs/dialogs_provider.hpp"
+#include "dialogs/systray/systray.hpp"
 
 #include "videosurface.hpp"
 
@@ -329,9 +330,6 @@ void MainCtx::loadPrefs(const bool callSignals)
     /* Are we in the enhanced always-video mode or not ? */
     loadFromVLCOption(b_minimalView, "qt-minimal-view", nullptr);
 
-    /* Do we want annoying popups or not */
-    loadFromVLCOption(i_notificationSetting, "qt-notification", nullptr);
-
     /* Should the UI stays on top of other windows */
     loadFromVLCOption(b_interfaceOnTop, "video-on-top", [this](MainCtx *)
     {
@@ -520,7 +518,7 @@ inline void MainCtx::initSystray()
     }
 
     if( b_systrayAvailable && b_systrayWanted )
-        createSystray();
+        m_systray = std::make_unique<VLCSystray>(this);
 }
 
 WorkerThreadSet* MainCtx::workersThreads() const
@@ -643,120 +641,6 @@ VideoSurfaceProvider* MainCtx::getVideoSurfaceProvider() const
     return m_videoSurfaceProvider;
 }
 
-/*****************************************************************************
- * Systray Icon and Systray Menu
- *****************************************************************************/
-/**
- * Create a SystemTray icon and a menu that would go with it.
- * Connects to a click handler on the icon.
- **/
-void MainCtx::createSystray()
-{
-    QIcon iconVLC;
-    if( useXmasCone() )
-        iconVLC = QIcon::fromTheme( "vlc-xmas", QIcon( ":/logo/vlc128-xmas.png" ) );
-    else
-        iconVLC = QIcon::fromTheme( "vlc", QIcon( ":/logo/vlc256.png" ) );
-    sysTray = new QSystemTrayIcon( iconVLC, this );
-    sysTray->setToolTip( qtr( "VLC media player" ));
-
-    systrayMenu = std::make_unique<VLCMenu>( qtr( "VLC media player"), p_intf );
-    systrayMenu->setIcon( iconVLC );
-
-    VLCMenuBar::updateSystrayMenu( this, p_intf, true );
-    sysTray->show();
-
-    connect( sysTray, &QSystemTrayIcon::activated,
-             this, &MainCtx::handleSystrayClick );
-
-    /* Connects on nameChanged() */
-    connect( THEMIM, &PlayerController::nameChanged,
-             this, &MainCtx::updateSystrayTooltipName );
-    /* Connect PLAY_STATUS on the systray */
-    connect( THEMIM, &PlayerController::playingStateChanged,
-             this, &MainCtx::updateSystrayTooltipStatus );
-}
-
-/**
- * Updates the Systray Icon's menu and toggle the main interface
- */
-void MainCtx::toggleUpdateSystrayMenu()
-{
-    emit toggleWindowVisibility();
-    if( sysTray )
-        VLCMenuBar::updateSystrayMenu( this, p_intf );
-}
-
-/* First Item of the systray menu */
-void MainCtx::showUpdateSystrayMenu()
-{
-    emit setInterfaceVisibible(true);
-    VLCMenuBar::updateSystrayMenu( this, p_intf );
-}
-
-/* First Item of the systray menu */
-void MainCtx::hideUpdateSystrayMenu()
-{
-    emit setInterfaceVisibible(false);
-    VLCMenuBar::updateSystrayMenu( this, p_intf );
-}
-
-/* Click on systray Icon */
-void MainCtx::handleSystrayClick(
-                                    QSystemTrayIcon::ActivationReason reason )
-{
-    switch( reason )
-    {
-        case QSystemTrayIcon::Trigger:
-        case QSystemTrayIcon::DoubleClick:
-#ifdef Q_OS_MAC
-            VLCMenuBar::updateSystrayMenu( this, p_intf );
-#else
-            toggleUpdateSystrayMenu();
-#endif
-            break;
-        case QSystemTrayIcon::MiddleClick:
-            if (PlaylistController* const playlistController = p_intf->p_mainPlaylistController)
-                playlistController->togglePlayPause();
-            break;
-        default:
-            break;
-    }
-}
-
-/**
- * Updates the name of the systray Icon tooltip.
- * Doesn't check if the systray exists, check before you call it.
- **/
-void MainCtx::updateSystrayTooltipName( const QString& name )
-{
-    if( name.isEmpty() )
-    {
-        sysTray->setToolTip( qtr( "VLC media player" ) );
-    }
-    else
-    {
-        sysTray->setToolTip( name );
-        if( ( i_notificationSetting == NOTIFICATION_ALWAYS ) ||
-            ( i_notificationSetting == NOTIFICATION_MINIMIZED && (m_windowVisibility == QWindow::Hidden || m_windowVisibility == QWindow::Minimized)))
-        {
-            sysTray->showMessage( qtr( "VLC media player" ), name,
-                    QSystemTrayIcon::NoIcon, 3000 );
-        }
-    }
-
-    VLCMenuBar::updateSystrayMenu( this, p_intf );
-}
-
-/**
- * Updates the status of the systray Icon tooltip.
- * Doesn't check if the systray exists, check before you call it.
- **/
-void MainCtx::updateSystrayTooltipStatus( PlayerController::PlayingState )
-{
-    VLCMenuBar::updateSystrayMenu( this, p_intf );
-}
-
 /************************************************************************
  * Events stuff
  ************************************************************************/


=====================================
modules/gui/qt/maininterface/mainctx.hpp
=====================================
@@ -32,7 +32,6 @@
 #include "medialibrary/medialib.hpp"
 #include <playlist/playlist_common.hpp>
 
-#include <QSystemTrayIcon>
 #include <QtQuick/QQuickView>
 #include <QApplication>
 
@@ -61,6 +60,7 @@ class QMenu;
 class QSize;
 class QScreen;
 class QTimer;
+class QSystemTrayIcon;
 class StandardPLPanel;
 struct vlc_window;
 class VideoSurfaceProvider;
@@ -68,6 +68,7 @@ class ControlbarProfileModel;
 class SearchCtx;
 class SortCtx;
 class WorkerThreadSet;
+class VLCSystray;
 
 namespace vlc {
 namespace playlist {
@@ -158,8 +159,8 @@ public:
     inline qt_intf_t* getIntf() const { return p_intf; }
     bool smoothScroll() const { return m_smoothScroll; }
 
-    QSystemTrayIcon *getSysTray() { return sysTray; }
-    QMenu *getSysTrayMenu() { return systrayMenu.get(); }
+    VLCSystray* getSysTray() { return m_systray.get(); }
+
     enum
     {
         CONTROLS_VISIBLE  = 0x1,
@@ -189,8 +190,7 @@ public:
     };
     Q_ENUM(OsType)
 
-    inline bool isInterfaceFullScreen() const { return m_windowVisibility == QWindow::FullScreen; }
-    inline bool isInterfaceVisible() const { return m_windowVisibility != QWindow::Hidden; }
+    inline QWindow::Visibility interfaceVisibility() const { return m_windowVisibility; }
     bool isMediaLibraryVisible() { return m_mediaLibraryVisible; }
     bool isPlaylistDocked() { return b_playlistDocked; }
     bool isPlaylistVisible() { return m_playlistVisible; }
@@ -297,9 +297,7 @@ public:
 
 protected:
     /* Systray */
-    void createSystray();
     void initSystray();
-    void handleSystray();
 
     qt_intf_t* p_intf = nullptr;
 
@@ -309,8 +307,8 @@ protected:
 
     /* */
     QSettings           *settings = nullptr;
-    QSystemTrayIcon     *sysTray = nullptr;
-    std::unique_ptr<QMenu> systrayMenu;
+
+    std::unique_ptr<VLCSystray> m_systray;
 
     /* Flags */
     double               m_intfUserScaleFactor = 1.;
@@ -375,9 +373,6 @@ protected:
     mutable std::unique_ptr<WorkerThreadSet> m_workersThreads;
 
 public slots:
-    void toggleUpdateSystrayMenu();
-    void showUpdateSystrayMenu();
-    void hideUpdateSystrayMenu();
     void toggleToolbarMenu();
     void toggleInterfaceFullScreen();
     void setMediaLibraryVisible( bool );
@@ -410,10 +405,6 @@ public slots:
     VLCVarChoiceModel* getExtraInterfaces();
 
 protected slots:
-    void handleSystrayClick( QSystemTrayIcon::ActivationReason );
-    void updateSystrayTooltipName( const QString& );
-    void updateSystrayTooltipStatus( PlayerController::PlayingState );
-
     void onInputChanged( bool );
 
 signals:


=====================================
modules/gui/qt/menus/menus.cpp
=====================================
@@ -43,6 +43,7 @@
 #include "playlist/playlist_controller.hpp"
 #include "dialogs/extensions/extensions_manager.hpp"                 /* Extensions menu */
 #include "dialogs/extended/extended_panels.hpp"
+#include "dialogs/systray/systray.hpp"
 #include "util/varchoicemodel.hpp"
 #include "medialibrary/medialib.hpp"
 #include "medialibrary/mlrecentsmodel.hpp"
@@ -224,10 +225,11 @@ void VLCMenuBar::FileMenu(qt_intf_t *p_intf, QMenu *menu)
     action->setCheckable( true );
     action->setChecked( THEMPL->getMediaStopAction() ==  PlaylistController::MEDIA_STOPPED_EXIT);
 
-    if( mi && mi->getSysTray() )
+    VLCSystray* systray = mi ? mi->getSysTray() : nullptr;
+    if( systray )
     {
-        action = menu->addAction( qtr( "Close to systray"), mi,
-                                 &MainCtx::toggleUpdateSystrayMenu );
+        action = menu->addAction( qtr( "Close to systray"), systray,
+                                 &VLCSystray::toggleUpdateMenu );
     }
 
     addDPStaticEntry( menu, qtr( "&Quit" ) ,
@@ -343,7 +345,7 @@ void VLCMenuBar::ViewMenu( qt_intf_t *p_intf, QMenu *menu )
     action = menu->addAction( qtr( "&Fullscreen Interface" ), mi,
             &MainCtx::toggleInterfaceFullScreen, QString( "F11" ) );
     action->setCheckable( true );
-    action->setChecked( mi->isInterfaceFullScreen() );
+    action->setChecked( mi->interfaceVisibility() == QWindow::FullScreen );
 
     action = menu->addAction( qtr( "&View Items as Grid" ), mi,
             &MainCtx::setGridView );
@@ -396,7 +398,7 @@ void VLCMenuBar::ExtensionsMenu( qt_intf_t *p_intf, QMenu *extMenu )
     extMgr->menu( extMenu );
 }
 
-static inline void VolumeEntries( qt_intf_t *p_intf, QMenu *current )
+void VLCMenuBar::VolumeEntries( qt_intf_t *p_intf, QMenu *current )
 {
     current->addSeparator();
 
@@ -871,56 +873,6 @@ QMenu* VLCMenuBar::PopupMenu( qt_intf_t *p_intf, bool show )
     return menu;
 }
 
-/************************************************************************
- * Systray Menu                                                         *
- ************************************************************************/
-
-void VLCMenuBar::updateSystrayMenu( MainCtx *mi,
-                                  qt_intf_t *p_intf,
-                                  bool b_force_visible )
-{
-    /* Get the systray menu and clean it */
-    QMenu *sysMenu = mi->getSysTrayMenu();
-    // explictly delete submenus, see QTBUG-11070
-    for (QAction *action : sysMenu->actions()) {
-        if (action->menu()) {
-            delete action->menu();
-        }
-    }
-    sysMenu->clear();
-
-#ifndef Q_OS_MAC
-    /* Hide / Show VLC and cone */
-    if( mi->isInterfaceVisible() || b_force_visible )
-    {
-        sysMenu->addAction( QIcon( ":/logo/vlc16.png" ),
-                            qtr( "&Hide VLC media player in taskbar" ), mi,
-                            &MainCtx::hideUpdateSystrayMenu);
-    }
-    else
-    {
-        sysMenu->addAction( QIcon( ":/logo/vlc16.png" ),
-                            qtr( "Sho&w VLC media player" ), mi,
-                            &MainCtx::showUpdateSystrayMenu);
-    }
-    sysMenu->addSeparator();
-#endif
-
-    PopupMenuPlaylistEntries( sysMenu, p_intf );
-    PopupMenuControlEntries( sysMenu, p_intf, false );
-
-    VolumeEntries( p_intf, sysMenu );
-    sysMenu->addSeparator();
-    addDPStaticEntry( sysMenu, qtr( "&Open Media" ),
-            ":/menu/file.svg", &DialogsProvider::openFileDialog);
-    addDPStaticEntry( sysMenu, qtr( "&Quit" ) ,
-            ":/menu/exit.svg", &DialogsProvider::quit);
-
-    /* Set the menu */
-    mi->getSysTray()->setContextMenu( sysMenu );
-}
-
-
 
 /*****************************************************************************
  * Private methods.


=====================================
modules/gui/qt/menus/menus.hpp
=====================================
@@ -71,14 +71,10 @@ public:
     static QMenu* VideoPopupMenu( qt_intf_t *, bool );
     static QMenu* MiscPopupMenu( qt_intf_t *, bool );
 
-    /* Systray */
-    static void updateSystrayMenu( MainCtx *, qt_intf_t  *,
-                                   bool b_force_visible = false);
 
     /* destructor for parentless Menus (kept in static variables) */
     static void freeRendererMenu(){ delete rendererMenu; rendererMenu = NULL; }
 
-protected:
     /* All main Menus */
     static void FileMenu( qt_intf_t *, QMenu * );
 
@@ -107,6 +103,8 @@ protected:
     static void PopupMenuPlaylistControlEntries( QMenu *menu, qt_intf_t *p_intf );
     static void PopupMenuControlEntries( QMenu *menu, qt_intf_t *p_intf, bool b = true );
 
+    static void VolumeEntries( qt_intf_t *p_intf, QMenu *current );
+
     /* recentMRL menu */
     static RendererMenu *rendererMenu;
 


=====================================
modules/gui/qt/meson.build
=====================================
@@ -63,6 +63,7 @@ moc_headers = files(
     'dialogs/sout/profile_selector.hpp',
     'dialogs/sout/sout.hpp',
     'dialogs/sout/sout_widgets.hpp',
+    'dialogs/systray/systray.hpp',
     'dialogs/toolbar/controlbar_profile.hpp',
     'dialogs/toolbar/controlbar_profile_model.hpp',
     'dialogs/playlists/playlists.hpp',
@@ -267,6 +268,8 @@ some_sources = files(
     'dialogs/sout/sout.hpp',
     'dialogs/sout/sout_widgets.cpp',
     'dialogs/sout/sout_widgets.hpp',
+    'dialogs/systray/systray.cpp',
+    'dialogs/systray/systray.hpp',
     'dialogs/toolbar/controlbar_profile.hpp',
     'dialogs/toolbar/controlbar_profile.cpp',
     'dialogs/toolbar/controlbar_profile_model.cpp',



View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/220432d63aa8ee69ebf1958cf8b703372ea5c251...6880921445bc38e6294ed6ebb52d08e731320c73

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/220432d63aa8ee69ebf1958cf8b703372ea5c251...6880921445bc38e6294ed6ebb52d08e731320c73
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