[vlc-devel] [PATCH 00/18] qml: native menus
Pierre Lamot
pierre at videolabs.io
Wed Sep 23 14:27:34 CEST 2020
this patchset brings back native menu in the UI.
The rational to ditch qml Menus is:
* QML menus are limited to the window frame of the UI (as they are drawn within
QML the OpenGL context).
* Non-native look'n feel (requires a lot of customisation).
* UX is a bit off, navigating between submenus is not really smooth (submenus
close themselves with no latency as soon as the mouse leaves the submenu area)
* Mixing static and dynamic menu entries or having optional entries often
requires a lot of hacks.
* Native menus brings back functionalities that haven't been ported yet (like lua
scripts and Renderer selection).
Qt.labs.plateform menus was a potential alternative, but it's a bit hit and
miss. Some functionalities are missing and it suffers from the same drawback
regarding dynamic entries.
At the moment QML menus are kept for the MenuBar version (for the --no-medialib
version)
Fatih Uzunoglu (1):
qt: clean MainUI
Pierre Lamot (17):
qt: move gridView mode property to MainInterface
qt: remove obsolete menu entries
qt: use Qt modern style connections when building menus
qt: allow to specify whether CheckableListMenu should use a
QActionGroup
qml: move color scheme to main interface
qt: remove obsolete settings class
qt: make Role enum of medialib models public
qt: allow passing media options when playing/enqueueing medialibrary
items
qt: playlistItem bool operator return true when it has an actual
content
qt: bring back native menu for intf dialog popup menu
qml: pass mouse position to contextMenuButtonClicked signal
qml: use a native implementation for the main dropdown menu
qml: use a native implementation for medialibrary contextual menu
qml: use a native implementation for network contextual menu
qml: use a native implementation for playlist contextual menu
qml: factorize mouse interaction in grid views
qml: right clicking selected items in table view should not reset
selection
modules/gui/qt/Makefile.am | 8 +-
modules/gui/qt/dialogs/dialogs_provider.cpp | 13 +-
.../gui/qt/dialogs/toolbar/toolbareditor.cpp | 2 -
.../gui/qt/maininterface/main_interface.cpp | 24 +-
.../gui/qt/maininterface/main_interface.hpp | 19 +-
modules/gui/qt/maininterface/mainui.cpp | 52 +--
modules/gui/qt/maininterface/mainui.hpp | 33 --
.../qt/maininterface/qml/BannerSources.qml | 18 +-
modules/gui/qt/medialibrary/medialib.cpp | 64 ++-
modules/gui/qt/medialibrary/medialib.hpp | 21 +-
.../gui/qt/medialibrary/mlalbumtrackmodel.cpp | 20 -
.../gui/qt/medialibrary/mlalbumtrackmodel.hpp | 17 +
modules/gui/qt/medialibrary/mlartistmodel.cpp | 12 -
modules/gui/qt/medialibrary/mlartistmodel.hpp | 10 +
modules/gui/qt/medialibrary/mlbasemodel.hpp | 2 +
modules/gui/qt/medialibrary/mlgenremodel.cpp | 12 -
modules/gui/qt/medialibrary/mlgenremodel.hpp | 12 +
modules/gui/qt/medialibrary/mlvideomodel.cpp | 22 -
modules/gui/qt/medialibrary/mlvideomodel.hpp | 20 +
.../gui/qt/medialibrary/qml/MusicAlbums.qml | 56 +--
.../gui/qt/medialibrary/qml/MusicArtist.qml | 62 ++-
.../medialibrary/qml/MusicArtistsDisplay.qml | 46 +--
.../gui/qt/medialibrary/qml/MusicGenres.qml | 48 +--
.../qml/MusicTrackListDisplay.qml | 9 +
.../medialibrary/qml/MusicTracksDisplay.qml | 28 --
.../gui/qt/medialibrary/qml/VideoDisplay.qml | 97 ++---
.../qt/medialibrary/qml/VideoListDisplay.qml | 7 -
modules/gui/qt/menus/custom_menus.cpp | 15 +-
modules/gui/qt/menus/custom_menus.hpp | 11 +-
modules/gui/qt/menus/menus.cpp | 168 ++++----
modules/gui/qt/menus/menus.hpp | 4 +-
modules/gui/qt/menus/qml/ViewMenu.qml | 16 +-
modules/gui/qt/menus/qml_menu_wrapper.cpp | 377 ++++++++++++++++++
modules/gui/qt/menus/qml_menu_wrapper.hpp | 163 ++++++++
modules/gui/qt/network/networkdevicemodel.cpp | 14 -
modules/gui/qt/network/networkdevicemodel.hpp | 11 +
modules/gui/qt/network/networkmediamodel.cpp | 16 -
modules/gui/qt/network/networkmediamodel.hpp | 12 +
.../qt/network/qml/NetworkBrowseDisplay.qml | 89 +----
modules/gui/qt/player/qml/ControlButtons.qml | 18 +-
modules/gui/qt/player/qml/Player.qml | 7 -
modules/gui/qt/playlist/media.hpp | 9 +-
modules/gui/qt/playlist/playlist_item.cpp | 2 +-
modules/gui/qt/playlist/qml/PLItem.qml | 8 +-
.../gui/qt/playlist/qml/PlaylistListView.qml | 155 +------
modules/gui/qt/style/VLCColors.qml | 8 +-
modules/gui/qt/util/color_scheme_model.cpp | 106 +++++
modules/gui/qt/util/color_scheme_model.hpp | 50 +++
modules/gui/qt/util/settings.cpp | 37 --
modules/gui/qt/util/settings.hpp | 52 ---
modules/gui/qt/widgets/qml/ExpandGridView.qml | 12 +
modules/gui/qt/widgets/qml/GridItem.qml | 8 +-
.../qt/widgets/qml/KeyNavigableTableView.qml | 12 +-
53 files changed, 1176 insertions(+), 938 deletions(-)
create mode 100644 modules/gui/qt/menus/qml_menu_wrapper.cpp
create mode 100644 modules/gui/qt/menus/qml_menu_wrapper.hpp
create mode 100644 modules/gui/qt/util/color_scheme_model.cpp
create mode 100644 modules/gui/qt/util/color_scheme_model.hpp
delete mode 100644 modules/gui/qt/util/settings.cpp
delete mode 100644 modules/gui/qt/util/settings.hpp
--
2.25.1
More information about the vlc-devel
mailing list