[vlc-commits] [Git][videolan/vlc][master] 3 commits: qt: add a flag to represent the active main view modes to MainCtx
Felix Paul Kühne (@fkuehne)
gitlab at videolan.org
Sat May 16 15:39:51 UTC 2026
Felix Paul Kühne pushed to branch master at VideoLAN / VLC
Commits:
a72d4113 by Pierre Lamot at 2026-05-16T17:20:22+02:00
qt: add a flag to represent the active main view modes to MainCtx
- - - - -
166734a6 by Pierre Lamot at 2026-05-16T17:20:22+02:00
qml: make MinimalMode and Player view modes rather than pages handled by history
This avoids cases where navigating in history would go back to minimal mode or
player view.
Notorious changes are:
* Player and minimal are no longer history page, hence checking for their status
is made by checking state flag in the MainCtx
* MainInterface uses a bare Loader as no extra functionalities are required here
* History is handled in MainDisplay rather than MainInterface as only
MainDisplay cares about the history now
* "mc" prefix has been removed from medialibrary paths
fix: #29083, #29078
- - - - -
90eb77e1 by Pierre Lamot at 2026-05-16T17:20:22+02:00
qt: make player mode a toggle in the View menu
- - - - -
23 changed files:
- modules/gui/qt/maininterface/interface_window_handler.cpp
- modules/gui/qt/maininterface/mainctx.cpp
- modules/gui/qt/maininterface/mainctx.hpp
- modules/gui/qt/maininterface/qml/BannerSources.qml
- modules/gui/qt/maininterface/qml/MainDisplay.qml
- modules/gui/qt/maininterface/qml/MainInterface.qml
- modules/gui/qt/medialibrary/qml/MLTableColumns.qml
- modules/gui/qt/medialibrary/qml/VideoAll.qml
- modules/gui/qt/medialibrary/qml/VideoAllSubDisplay.qml
- modules/gui/qt/medialibrary/qml/VideoGridItem.qml
- modules/gui/qt/menus/menus.cpp
- modules/gui/qt/menus/menus.hpp
- modules/gui/qt/menus/qml/Menubar.qml
- modules/gui/qt/menus/qml_menu_wrapper.cpp
- modules/gui/qt/menus/qml_menu_wrapper.hpp
- modules/gui/qt/player/qml/PIPPlayer.qml
- modules/gui/qt/player/qml/Player.qml
- modules/gui/qt/player/qml/TopBar.qml
- modules/gui/qt/player/qml/controlbarcontrols/ArtworkInfoWidget.qml
- modules/gui/qt/player/qml/controlbarcontrols/MenuButton.qml
- modules/gui/qt/player/qml/controlbarcontrols/PlayerSwitchButton.qml
- modules/gui/qt/util/ui_notifier.cpp
- modules/gui/qt/widgets/qml/EmptyLabelButton.qml
Changes:
=====================================
modules/gui/qt/maininterface/interface_window_handler.cpp
=====================================
@@ -111,7 +111,7 @@ InterfaceWindowHandler::InterfaceWindowHandler(qt_intf_t *_p_intf, MainCtx* main
};
connect( m_mainCtx, &MainCtx::intfScaleFactorChanged, this, updateMinimumSize );
connect( m_mainCtx, &MainCtx::windowExtendedMarginChanged, this, updateMinimumSize );
- connect( m_mainCtx, &MainCtx::minimalViewChanged, this, updateMinimumSize );
+ connect( m_mainCtx, &MainCtx::mainInterfaceModesChanged, this, updateMinimumSize );
m_mainCtx->updateIntfScaleFactor();
updateMinimumSize();
=====================================
modules/gui/qt/maininterface/mainctx.cpp
=====================================
@@ -414,8 +414,10 @@ void MainCtx::loadPrefs(const bool callSignals)
signal(this);
};
+ bool minimalMode = false;
/* Are we in the enhanced always-video mode or not ? */
- loadFromVLCOption(m_minimalView, "qt-minimal-view", &MainCtx::minimalViewChanged);
+ loadFromVLCOption(minimalMode, "qt-minimal-view", nullptr);
+ setMinimalView(minimalMode);
loadFromVLCOption(m_bgCone, "qt-bgcone", &MainCtx::bgConeToggled);
@@ -696,13 +698,22 @@ void MainCtx::setbgCone(bool bgCone)
emit bgConeToggled();
}
-void MainCtx::setMinimalView(bool minimalView)
+void MainCtx::setMinimalView(bool enable)
{
- if (m_minimalView == minimalView)
+ if (m_mainInterfaceModes.testFlag(MAININTERFACE_MODE_MINIMAL) == enable)
return;
- m_minimalView = minimalView;
- emit minimalViewChanged();
+ m_mainInterfaceModes.setFlag(MAININTERFACE_MODE_MINIMAL, enable);
+ emit mainInterfaceModesChanged(m_mainInterfaceModes);
+}
+
+void MainCtx::setPlayerView(bool enable)
+{
+ if (m_mainInterfaceModes.testFlag(MAININTERFACE_MODE_PLAYER) == enable)
+ return;
+
+ m_mainInterfaceModes.setFlag(MAININTERFACE_MODE_PLAYER, enable);
+ emit mainInterfaceModesChanged(m_mainInterfaceModes);
}
void MainCtx::setShowRemainingTime( bool show )
@@ -1079,6 +1090,18 @@ void MainCtx::setAttachedToolTip(QObject *toolTip)
#endif
}
+MainCtx::MainInterfaceMode MainCtx::getEffectiveMainInterfaceMode() const {
+ //priority applies across modes
+ if (m_mainInterfaceModes & MainCtx::MAININTERFACE_MODE_MINIMAL)
+ return MAININTERFACE_MODE_MINIMAL;
+ else if (m_mainInterfaceModes & MAININTERFACE_MODE_PLAYER)
+ return MAININTERFACE_MODE_PLAYER;
+ else if (m_mainInterfaceModes & MAININTERFACE_MODE_MAINDISPLAY)
+ return MAININTERFACE_MODE_MAINDISPLAY;
+ else
+ return MAININTERFACE_MODE_INVALID;
+}
+
double MainCtx::dp(const double px, const double scale)
{
return std::round(px * scale);
=====================================
modules/gui/qt/maininterface/mainctx.hpp
=====================================
@@ -131,15 +131,17 @@ class MainCtx : public QObject
Q_PROPERTY(VideoSurfaceProvider* videoSurfaceProvider READ getVideoSurfaceProvider WRITE setVideoSurfaceProvider NOTIFY hasEmbededVideoChanged FINAL)
Q_PROPERTY(int mouseHideTimeout READ mouseHideTimeout NOTIFY mouseHideTimeoutChanged FINAL)
Q_PROPERTY(bool albumSections READ albumSections WRITE setAlbumSections NOTIFY albumSectionsChanged FINAL)
-
Q_PROPERTY(CSDButtonModel *csdButtonModel READ csdButtonModel CONSTANT FINAL)
+ Q_PROPERTY(MainInterfaceModes mainInterfaceModes READ getMainInterfaceModes NOTIFY mainInterfaceModesChanged FINAL)
+ Q_PROPERTY(MainInterfaceMode effectiveMainInterfaceMode READ getEffectiveMainInterfaceMode NOTIFY mainInterfaceModesChanged FINAL)
//Property to get Operating System info
Q_PROPERTY(OsType osName READ getOSName CONSTANT)
Q_PROPERTY(int osVersion READ getOSVersion CONSTANT)
// Expose Property Minimal View for Player View
- Q_PROPERTY(bool minimalView READ isMinimalView WRITE setMinimalView NOTIFY minimalViewChanged FINAL)
+ Q_PROPERTY(bool minimalView READ isMinimalView WRITE setMinimalView NOTIFY mainInterfaceModesChanged FINAL)
+ Q_PROPERTY(bool playerView READ isPlayerView WRITE setPlayerView NOTIFY mainInterfaceModesChanged FINAL)
// This Property only works if hasAcrylicSurface is set
Q_PROPERTY(bool acrylicActive READ acrylicActive WRITE setAcrylicActive NOTIFY acrylicActiveChanged FINAL)
@@ -204,6 +206,18 @@ public:
};
Q_ENUM(OsType)
+ //what should the main view display
+ //multiple modes may be enabled, priority applies across modes
+ //minimal > player > medialib
+ enum MainInterfaceMode {
+ MAININTERFACE_MODE_INVALID = 0,
+ MAININTERFACE_MODE_MAINDISPLAY = 1,
+ MAININTERFACE_MODE_PLAYER = 2,
+ MAININTERFACE_MODE_MINIMAL = 4
+ };
+ Q_FLAG(MainInterfaceMode);
+ Q_DECLARE_FLAGS(MainInterfaceModes, MainInterfaceMode)
+
inline QWindow::Visibility interfaceVisibility() const { return m_windowVisibility; }
bool isPlaylistDocked() { return b_playlistDocked; }
bool isPlaylistVisible() { return m_playlistVisible; }
@@ -248,7 +262,9 @@ public:
inline int getOSVersion() const {return m_osVersion;}
inline bool isbgCone() const {return m_bgCone; }
- inline bool isMinimalView() const {return m_minimalView; }
+ inline bool isMinimalView() const {return m_mainInterfaceModes & MAININTERFACE_MODE_MINIMAL; }
+ inline bool isPlayerView() const {return m_mainInterfaceModes & MAININTERFACE_MODE_PLAYER; }
+
inline bool windowSuportExtendedFrame() const { return m_windowSuportExtendedFrame; }
inline unsigned windowExtendedMargin() const { return m_windowExtendedMargin; }
@@ -260,7 +276,7 @@ public:
void setVideoSurfaceProvider(VideoSurfaceProvider* videoSurfaceProvider);
int mouseHideTimeout() const { return m_mouseHideTimeout; }
-
+
Q_INVOKABLE bool backdropBlurRequested() const { return var_InheritBool(p_intf, "qt-backdrop-blur"); }
Q_INVOKABLE static inline void setCursor(Qt::CursorShape cursor) { QApplication::setOverrideCursor(QCursor(cursor)); }
@@ -366,6 +382,9 @@ public:
CSDButtonModel *csdButtonModel() { return m_csdButtonModel.get(); }
+ inline MainInterfaceModes getMainInterfaceModes() const { return m_mainInterfaceModes; };
+ MainInterfaceMode getEffectiveMainInterfaceMode() const;
+
Q_INVOKABLE static double dp(const double px, const double scale);
Q_INVOKABLE double dp(const double px) const;
@@ -432,7 +451,7 @@ protected:
bool m_playlistVisible = false; ///< Is the playlist visible ?
double m_playlistWidthFactor = 4.; ///< playlist size: root.width / playlistScaleFactor
double m_playerPlaylistWidthFactor = 4.;
- bool m_minimalView = false;
+ MainInterfaceModes m_mainInterfaceModes = { MAININTERFACE_MODE_MAINDISPLAY };
double m_artistAlbumsWidthFactor = 4.;
@@ -499,6 +518,7 @@ public slots:
void setHasAcrylicSurface(bool);
void setMinimalView(bool);
+ void setPlayerView(bool);
void sendHotkey(Qt::Key key, Qt::KeyboardModifiers modifiers );
void sendVLCHotkey(int vlcHotkey);
@@ -556,8 +576,6 @@ signals:
void hasAcrylicSurfaceChanged(bool);
- void minimalViewChanged();
-
void acrylicActiveChanged();
void smoothScrollChanged();
@@ -578,14 +596,15 @@ signals:
void windowSuportExtendedFrameChanged();
void windowExtendedMarginChanged(unsigned margin);
- void requestShowMainView();
- void requestShowPlayerView();
-
void artistAlbumsWidthFactorChanged( double );
+ void mainInterfaceModesChanged(MainInterfaceModes);
+
private:
void loadPrefs(bool callSignals);
void loadFromSettingsImpl(bool callSignals);
};
+Q_DECLARE_OPERATORS_FOR_FLAGS(MainCtx::MainInterfaceModes)
+
#endif
=====================================
modules/gui/qt/maininterface/qml/BannerSources.qml
=====================================
@@ -190,7 +190,7 @@ T.ToolBar {
iconTxt: model.icon
showText: globalToolbar.colapseTabButtons
- selected: History.match(History.viewPath, ["mc", model.name])
+ selected: History.match(History.viewPath, [model.name])
onClicked: root.itemClicked(model.index)
height: globalMenuGroup.height
}
@@ -481,7 +481,6 @@ T.ToolBar {
Menus.QmlGlobalMenu {
id: contextMenu
ctx: MainCtx
- playerViewVisible: History.match(History.viewPath, ["player"])
}
}
=====================================
modules/gui/qt/maininterface/qml/MainDisplay.qml
=====================================
@@ -81,9 +81,23 @@ FocusScope {
_showMiniPlayer = true
}
+ function loadCurrentHistoryView(focusReason) {
+ loadView(History.viewPath, History.viewProp, focusReason)
+ contextSaver.restore(History.viewPath)
+ }
+
Component.onCompleted: {
- if (MainCtx.canShowVideoPIP)
+ if (MainCtx.canShowVideoPIP) {
pipPlayerComponent.createObject(this)
+ } else {
+ if (MainCtx.hasEmbededVideo)
+ MainPlaylistController.stop()
+ }
+
+ if (History.previousEmpty) {
+ History.update(["home"])
+ }
+ loadCurrentHistoryView(Qt.OtherFocusReason)
}
Navigation.cancelAction: function() {
@@ -156,6 +170,29 @@ FocusScope {
}
}
+ ModelSortSettingHandler {
+ id: contextSaver
+ }
+
+ Connections {
+ target: MainCtx.sort
+
+ function onCriteriaChanged(criteria) {
+ contextSaver.save(History.viewPath)
+ }
+
+ function onOrderChanged(order) {
+ contextSaver.save(History.viewPath)
+ }
+ }
+
+ Connections {
+ target: History
+ function onNavigate(focusReason) {
+ loadCurrentHistoryView(focusReason)
+ }
+ }
+
ColorContext {
id: theme
palette: VLCStyle.palette
@@ -207,13 +244,12 @@ FocusScope {
onItemClicked: (index) => {
const name = g_mainDisplay.tabModel.get(index).name
- //don't add the ["mc"] prefix as we are only testing subviers from MainDisplay
if (stackView.isDefaulLoadedForPath([name])) {
return
}
selectedIndex = index
- History.push(["mc", name])
+ History.push([name])
}
Navigation.parentItem: mainColumn
@@ -675,10 +711,18 @@ FocusScope {
target: Player
function onHasVideoOutputChanged() {
if (Player.hasVideoOutput && MainCtx.hasEmbededVideo) {
- MainCtx.requestShowPlayerView()
+ MainCtx.playerView = true
} else {
_showMiniPlayer = false;
}
}
}
+
+ MouseArea {
+ /// handles mouse navigation buttons
+ anchors.fill: parent
+ acceptedButtons: Qt.BackButton
+ cursorShape: undefined
+ onClicked: History.previous()
+ }
}
=====================================
modules/gui/qt/maininterface/qml/MainInterface.qml
=====================================
@@ -48,43 +48,37 @@ Item {
&& MainCtx.clientSideDecoration
&& (MainCtx.intfMainWindow.visibility === Window.Windowed)
- //when exiting minimal mode, what is the page to restore
- property bool _minimalRestorePlayer: false
-
- readonly property var _pageModel: [
- { name: "mc", url: "qrc:///qt/qml/VLC/MainInterface/MainDisplay.qml" },
- { name: "player", url:"qrc:///qt/qml/VLC/Player/Player.qml" },
- { name: "minimal", url:"qrc:///qt/qml/VLC/Player/MinimalView.qml" },
- ]
+ property int _currentMode: MainCtx.MAININTERFACE_MODE_INVALID
function setInitialView() {
- //set the initial view
- if (!MainPlaylistController.empty)
- MainCtx.requestShowPlayerView()
+ if (!MainCtx.minimalView && !MainPlaylistController.empty)
+ MainCtx.playerView = true
else
- MainCtx.requestShowMainView()
- }
-
- function loadCurrentHistoryView(focusReason) {
- stackView.loadView(History.viewPath, History.viewProp, focusReason)
-
- contextSaver.restore(History.viewPath)
- }
-
- ModelSortSettingHandler {
- id: contextSaver
+ _loadView()
}
- Connections {
- target: MainCtx.sort
-
- function onCriteriaChanged(criteria) {
- contextSaver.save(History.viewPath)
- }
-
- function onOrderChanged(order) {
- contextSaver.save(History.viewPath)
+ function _loadView() {
+ if (_currentMode === MainCtx.effectiveMainInterfaceMode)
+ return
+ // priority applies accross modes
+ // minimal > player > medialib
+ // MEDIALIB_MODE flag should always be set
+ switch (MainCtx.effectiveMainInterfaceMode) {
+ case MainCtx.MAININTERFACE_MODE_MINIMAL:
+ viewLoader.source = "qrc:///qt/qml/VLC/Player/MinimalView.qml"
+ break
+ case MainCtx.MAININTERFACE_MODE_PLAYER:
+ viewLoader.source = "qrc:///qt/qml/VLC/Player/Player.qml"
+ break
+ case MainCtx.MAININTERFACE_MODE_MAINDISPLAY:
+ viewLoader.source = "qrc:///qt/qml/VLC/MainInterface/MainDisplay.qml"
+ break
+ default:
+ console.error("unexpected interface mode", MainCtx.effectiveMainInterfaceMode)
+ viewLoader.source = "qrc:///qt/qml/VLC/MainInterface/MainDisplay.qml"
+ break
}
+ _currentMode = MainCtx.effectiveMainInterfaceMode
}
Item {
@@ -158,62 +152,19 @@ Item {
}
}
- Connections {
- target: History
- function onNavigate(focusReason) {
- loadCurrentHistoryView(focusReason)
- MainCtx.mediaLibraryVisible = !History.match(History.viewPath, ["player"])
- }
- }
-
Connections {
target: MainCtx
- function onRequestShowMainView() {
- root._minimalRestorePlayer = false
- if (MainCtx.minimalView)
- return
-
- if (History.match(History.viewPath, ["mc"]))
- return
-
- if (MainCtx.hasEmbededVideo && MainCtx.canShowVideoPIP === false)
- MainPlaylistController.stop()
-
- if (History.previousEmpty) {
- History.update(["mc", "home"])
- loadCurrentHistoryView(Qt.OtherFocusReason)
- } else
- History.previous()
- }
-
- function onRequestShowPlayerView() {
- root._minimalRestorePlayer = true
- if (MainCtx.minimalView)
- return
-
- if (!History.match(History.viewPath, ["player"]))
- History.push(["player"])
+ function onEffectiveMainInterfaceModeChanged() {
+ root._loadView()
}
+ }
- function onMinimalViewChanged() {
- const isCurrentlyMinimal = History.match(History.viewPath, ["minimal"])
-
- if (MainCtx.minimalView && !isCurrentlyMinimal) {
- const isCurrentlyPlayer = History.match(History.viewPath, ["player"])
- if (isCurrentlyPlayer) {
- History.update(["minimal"])
- loadCurrentHistoryView(Qt.OtherFocusReason)
- } else {
- History.push(["minimal"])
- }
- } else if (!MainCtx.minimalView && isCurrentlyMinimal) {
- if (root._minimalRestorePlayer) {
- History.update(["player"])
- loadCurrentHistoryView(Qt.OtherFocusReason)
- } else {
- History.previous()
- }
+ Connections {
+ target: Player
+ function onPlayingStateChanged() {
+ if (Player.playingState === Player.PLAYING_STATE_STOPPED) {
+ MainCtx.playerView = false
}
}
}
@@ -278,23 +229,14 @@ Item {
}
}
- Widgets.PageLoader {
- id: stackView
+ Loader {
+ id: viewLoader
+
anchors.fill: parent
+
focus: true
// If there is depth buffer, clipping is not necessary:
clip: _extendedFrameVisible && !effect.hasDepthBuffer
-
- pageModel: _pageModel
-
- Connections {
- target: Player
- function onPlayingStateChanged() {
- if (Player.playingState === Player.PLAYING_STATE_STOPPED) {
- MainCtx.requestShowMainView()
- }
- }
- }
}
Loader {
@@ -302,14 +244,6 @@ Item {
source: "qrc:///qt/qml/VLC/Menus/GlobalShortcuts.qml"
}
- MouseArea {
- /// handles mouse navigation buttons
- anchors.fill: parent
- acceptedButtons: Qt.BackButton
- cursorShape: undefined
- onClicked: History.previous()
- }
-
Loader {
active: {
const windowVisibility = MainCtx.intfMainWindow.visibility
=====================================
modules/gui/qt/medialibrary/qml/MLTableColumns.qml
=====================================
@@ -25,6 +25,6 @@ Widgets.TableColumns {
onPlayClicked: function (model) {
MediaLib.addAndPlay(model.id)
- MainCtx.requestShowPlayerView()
+ MainCtx.playerView = true
}
}
=====================================
modules/gui/qt/medialibrary/qml/VideoAll.qml
=====================================
@@ -119,12 +119,12 @@ MainViewLoader {
function onAction(indexes) {
model.addAndPlay( indexes )
- MainCtx.requestShowPlayerView()
+ MainCtx.playerView = true
}
function onDoubleClick(object) {
MediaLib.addAndPlay(object.id)
- MainCtx.requestShowPlayerView()
+ MainCtx.playerView = true
}
=====================================
modules/gui/qt/medialibrary/qml/VideoAllSubDisplay.qml
=====================================
@@ -149,12 +149,12 @@ VideoAll {
function onAction(indexes) {
model.addAndPlay( indexes )
- MainCtx.requestShowPlayerView()
+ MainCtx.playerView = true
}
function onDoubleClick(object) {
MediaLib.addAndPlay(object.id)
- MainCtx.requestShowPlayerView()
+ MainCtx.playerView = true
}
function isInfoExpandPanelAvailable(modelIndexData) { return true }
@@ -200,7 +200,7 @@ VideoAll {
if (object.isVideo) {
model.addAndPlay( indexes )
- MainCtx.requestShowPlayerView()
+ MainCtx.playerView = true
return
}
@@ -211,7 +211,7 @@ VideoAll {
function onDoubleClick(object) {
if (object.isVideo) {
MediaLib.addAndPlay(object.id)
- MainCtx.requestShowPlayerView()
+ MainCtx.playerView = true
return
}
=====================================
modules/gui/qt/medialibrary/qml/VideoGridItem.qml
=====================================
@@ -34,7 +34,7 @@ Widgets.GridItem {
function play() {
if ( model.id !== undefined ) {
MediaLib.addAndPlay( model.id )
- MainCtx.requestShowPlayerView()
+ MainCtx.playerView = true
}
}
=====================================
modules/gui/qt/menus/menus.cpp
=====================================
@@ -278,7 +278,7 @@ void VLCMenuBar::ToolsMenu( qt_intf_t *p_intf, QMenu *menu )
* Interface modification, load other interfaces, activate Extensions
* \param current, set to NULL for menu creation, else for menu update
**/
-void VLCMenuBar::ViewMenu(qt_intf_t *p_intf, QMenu *menu, std::optional<bool> playerViewVisible)
+void VLCMenuBar::ViewMenu(qt_intf_t *p_intf, QMenu *menu)
{
QAction *action;
@@ -297,21 +297,6 @@ void VLCMenuBar::ViewMenu(qt_intf_t *p_intf, QMenu *menu, std::optional<bool> pl
if( m && m->parent() == menu ) delete m;
}
- if (playerViewVisible.has_value())
- {
- QString title;
-
- if (*playerViewVisible)
- title = qtr("Show &main view");
- else
- title = qtr("Show &player view");
-
- action = menu->addAction(title);
-
- connect( action, &QAction::triggered, mi, *playerViewVisible ? &MainCtx::requestShowMainView
- : &MainCtx::requestShowPlayerView );
- }
-
action = menu->addAction(
#ifndef __APPLE__
ColorizedSvgIcon::colorizedIconForWidget( ":/menu/ic_playlist.svg", menu ),
@@ -337,6 +322,14 @@ void VLCMenuBar::ViewMenu(qt_intf_t *p_intf, QMenu *menu, std::optional<bool> pl
menu->addSeparator();
+ {
+ bool isPlayerVisible = mi->getMainInterfaceModes() & MainCtx::MAININTERFACE_MODE_PLAYER;
+ action = menu->addAction(qtr("&Big Player View"));
+ action->setCheckable( true );
+ action->setChecked( isPlayerVisible );
+ connect( action, &QAction::triggered, mi, &MainCtx::setPlayerView);
+ }
+
/* FullScreen View */
action = menu->addAction( qtr( "&Fullscreen Interface" ), mi,
&MainCtx::toggleInterfaceFullScreen );
=====================================
modules/gui/qt/menus/menus.hpp
=====================================
@@ -79,7 +79,7 @@ public:
static void ToolsMenu( qt_intf_t *, QMenu * );
- static void ViewMenu( qt_intf_t *, QMenu *, std::optional<bool> playerViewVisible = std::nullopt );
+ static void ViewMenu(qt_intf_t *, QMenu *);
static void InterfacesMenu( qt_intf_t *p_intf, QMenu * );
static void ExtensionsMenu( qt_intf_t *p_intf, QMenu * );
=====================================
modules/gui/qt/menus/qml/Menubar.qml
=====================================
@@ -116,7 +116,6 @@ Item {
id: menubar
ctx: MainCtx
menubar: menubarLayout
- playerViewVisible: History.match(History.viewPath, ["player"])
onMenuClosed: _menuIndex = -1
onNavigateMenu: (direction) => {
=====================================
modules/gui/qt/menus/qml_menu_wrapper.cpp
=====================================
@@ -283,7 +283,7 @@ void QmlGlobalMenu::popup(QPoint pos)
/* View menu, a bit different */
submenu = m_menu->addMenu(qtr( "V&iew" ));
- ViewMenu( p_intf, submenu, m_playerViewVisible );
+ ViewMenu( p_intf, submenu );
submenu = m_menu->addMenu(qtr( "&Help" ));
HelpMenu(submenu);
@@ -407,7 +407,7 @@ void QmlMenuBar::setupMenuEntry(QMenu* menu, MenuEntry entry)
ToolsMenu(p_intf, menu);
break;
case VIEW:
- ViewMenu( p_intf, menu, m_playerViewVisible );
+ ViewMenu( p_intf, menu );
break;
case HELP:
HelpMenu( menu );
@@ -472,7 +472,7 @@ void QmlMenuBar::popupViewMenu(QQuickItem* button )
{
popupMenuCommon(button, [this](QMenu* menu) {
qt_intf_t* p_intf = m_ctx->getIntf();
- ViewMenu( p_intf, menu, m_playerViewVisible );
+ ViewMenu( p_intf, menu );
});
}
=====================================
modules/gui/qt/menus/qml_menu_wrapper.hpp
=====================================
@@ -150,7 +150,6 @@ class QmlGlobalMenu : public VLCMenuBar
{
Q_OBJECT
SIMPLE_MENU_PROPERTY(MainCtx*, ctx, nullptr)
- SIMPLE_MENU_PROPERTY(bool, playerViewVisible, false)
Q_PROPERTY(bool shown READ isShown NOTIFY shownChanged FINAL)
@@ -180,7 +179,6 @@ class QmlMenuBar : public VLCMenuBar
SIMPLE_MENU_PROPERTY(MainCtx*, ctx, nullptr)
SIMPLE_MENU_PROPERTY(QQuickItem*, menubar, nullptr)
SIMPLE_MENU_PROPERTY(bool, openMenuOnHover, false)
- SIMPLE_MENU_PROPERTY(bool, playerViewVisible, false)
public:
enum MenuEntry {
=====================================
modules/gui/qt/player/qml/PIPPlayer.qml
=====================================
@@ -60,7 +60,7 @@ T.Control {
TapHandler {
gesturePolicy: TapHandler.WithinBounds
- onDoubleTapped: MainCtx.requestShowPlayerView()
+ onDoubleTapped: MainCtx.playerView = true
onTapped: MainPlaylistController.togglePlayPause()
}
@@ -176,7 +176,7 @@ T.Control {
textStyle: root.textStyle
- onClicked: MainCtx.requestShowPlayerView()
+ onClicked: MainCtx.playerView = true
}
}
}
=====================================
modules/gui/qt/player/qml/Player.qml
=====================================
@@ -672,7 +672,7 @@ FocusScope {
if (MainCtx.hasEmbededVideo && !MainCtx.canShowVideoPIP) {
MainPlaylistController.stop()
}
- MainCtx.requestShowMainView()
+ MainCtx.playerView = false
}
FadeControllerStateGroup {
@@ -1001,6 +1001,11 @@ FocusScope {
}
}
+ TapHandler {
+ acceptedButtons: Qt.BackButton
+ onTapped: MainCtx.playerView = false
+ }
+
//filter key events to keep toolbar
//visible when user navigates within the control bar
KeyEventFilter {
=====================================
modules/gui/qt/player/qml/TopBar.qml
=====================================
@@ -455,7 +455,6 @@ FocusScope{
id: contextMenu
ctx: MainCtx
- playerViewVisible: History.match(History.viewPath, ["player"])
onAboutToShow: root.requestLockUnlockAutoHide(true)
onAboutToHide: root.requestLockUnlockAutoHide(false)
=====================================
modules/gui/qt/player/qml/controlbarcontrols/ArtworkInfoWidget.qml
=====================================
@@ -86,11 +86,7 @@ AbstractButton {
// Events
onClicked: {
- if (History.match(History.viewPath, ["player"])) {
- MainCtx.requestShowMainView()
- } else {
- MainCtx.requestShowPlayerView()
- }
+ MainCtx.playerView = !MainCtx.playerView
}
// Children
=====================================
modules/gui/qt/player/qml/controlbarcontrols/MenuButton.qml
=====================================
@@ -38,7 +38,6 @@ Widgets.IconToolButton {
id: contextMenu
ctx: MainCtx
- playerViewVisible: History.match(History.viewPath, ["player"])
onAboutToShow: menuBtn.requestLockUnlockAutoHide(true)
onAboutToHide: menuBtn.requestLockUnlockAutoHide(false)
=====================================
modules/gui/qt/player/qml/controlbarcontrols/PlayerSwitchButton.qml
=====================================
@@ -26,10 +26,7 @@ Widgets.IconToolButton {
text: VLCIcons.fullscreen
onClicked: {
- if (History.match(History.viewPath, ["player"]))
- MainCtx.requestShowMainView()
- else
- MainCtx.requestShowPlayerView()
+ MainCtx.playerView = !MainCtx.playerView
}
description: qsTr("Switch Player")
=====================================
modules/gui/qt/util/ui_notifier.cpp
=====================================
@@ -36,7 +36,7 @@ void UINotifier::setupNotifications()
, qtr("Scale: %1%").arg(scale));
});
- connect(m_ctx, &MainCtx::minimalViewChanged, this, [this]()
+ connect(m_ctx, &MainCtx::mainInterfaceModesChanged, this, [this]()
{
if (m_ctx->isMinimalView())
emit showNotification(MinimalView
=====================================
modules/gui/qt/widgets/qml/EmptyLabelButton.qml
=====================================
@@ -39,7 +39,7 @@ EmptyLabel {
// Functions
function onNavigate(reason) {
- History.push(["mc", "network"], reason)
+ History.push(["network"], reason)
}
// Keys
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/3cf406c1fca33028fafc8e7ccbb916165c0e7342...90eb77e1fc1f3efe444ea332d90fb9731ca1955e
--
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/3cf406c1fca33028fafc8e7ccbb916165c0e7342...90eb77e1fc1f3efe444ea332d90fb9731ca1955e
You're receiving this email because of your account on code.videolan.org. Manage all notifications: https://code.videolan.org/-/profile/notifications | Help: https://code.videolan.org/help
More information about the vlc-commits
mailing list