[vlc-devel] menu work - CSD?

Lyndon Brown jnqnfe at gmail.com
Thu Sep 24 16:52:08 CEST 2020


On Thu, 2020-09-24 at 09:40 +0200, Pierre Lamot wrote:
> On 2020-09-23 21:12, Lyndon Brown wrote:
> > 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.
> 
> Yes we do have plans to implement CSD.

Awesome :)

> CSD will be an optional feature (like it's done in firefox for 
> instance).
> We are still evaluating way to do it. either using 5.15
> functionalities 
> (but
> this mean that this will be unavailable when your Qt version is
> older) 
> or with a
> custom implementation which would be available everywhere but it 
> probably requires
> a lot more work to have something complete.

Sure.

> > 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
> > > 
> > 
> > _______________________________________________
> > vlc-devel mailing list
> > To unsubscribe or modify your subscription options:
> > https://mailman.videolan.org/listinfo/vlc-devel



More information about the vlc-devel mailing list