[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