[vlc-devel] menu work - CSD?
Lyndon Brown
jnqnfe at gmail.com
Wed Sep 23 21:12:25 CEST 2020
Without meaning to derail discussion of the proposed change, on the
topic of menus, I though I'd just take the opportunity to ask whether
there are any plans in terms of adoption of CSD, now that Qt 5.15
finally has brought support for it?
I'm a fan of "modern" CSD designs, and if done well, it might be a very
welcome enhancement to the v4.0 redesign.
On Wed, 2020-09-23 at 14:27 +0200, Pierre Lamot wrote:
> 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
>
More information about the vlc-devel
mailing list