[vlc-devel] [PATCH 00/29] qt/qml: player control handling refactor and toolbar editor changes

Fatih Uzunoglu fuzun54 at outlook.com
Thu Apr 1 22:22:12 UTC 2021


This set of patches mainly brings two changes:

* Removal of the native toolbar editor dialog and
introduction of QtQuick Window based toolbar editor
dialog.

The hybrid (native dialog + qml context) toolbar 
editor dialog has a lot of drawbacks and causes
many problems. The new qml based dialog is
integrated much better to the qml user
interface.

* Refactored player control handling.

Previously, each alignment of qml player instance
managed their own models. ControlbarProfileModel
class is introduced to unify the concepts of the
player control model (old PlayerControlbarModel)
and the profile model (did not exist before).
Now, qml player instances access their models
through the ControlbarProfileModel.

This approach made it possible to synchronize
the toolbar editor dialog with the qml player
instances. Previously, toolbar editor and player
instances had to track each other with various
signal/slot connections. The other advantage
is that everything is handled in the C++ backend
and string manipulations in the qml-side are
removed.


Fatih Uzunoglu (29):
  qt: disable "Customize Interface..." menu entry
  qt: remove toolbarDialog() from DialogsProvider
  qt: remove native ToolbarEditor dialog
  qt: remove toolBarConfUpdated signal
  qt: qml: refactor player control handling
  qt: make default controlbar profile names translatable
  qt: add getTextDialog function to DialogsProvider
  qml: fix ToolbarEditor TabBar background
  qml: don't set style sheet on obsolete object
  qml: increase minimum width of views in toolbar editor
  qml: add WindowDialog
  qml: set attached ToolTip defaults for IconToolButton
  qml: adapt model changes in ToolbarEditor
  qml: add ToolbarEditorDialog
  qt: add showToolbarEditorDialog signal to DialogsProvider
  qml: add ToolbarEditorDialog loader to Dialogs
  qt: enable "Customize Interface..." menu entry
  qml: use custom widgets instead of Text in toolbar editor
  qml: fix scaling in toolbar editor
  qt: qml: use enum for player controlbar identifier
  qt: add function to access PlayerIdentifier enum from qml
  qt: make player identifiers translatable
  qt: register qml singleton type PlayerListModel
  qml: dynamically populate the toolbar editor
  qml: dynamically create inner views in toolbar editor
  qml: show dirty mark in toolbar editor tab button
  qml: make toolbar editor view's scroll bar always visible
  qml: fix drag auto scroll in toolbar editor
  qml: disable highlight auto scroll in toolbar editor

 modules/gui/qt/Makefile.am                    |  16 +-
 .../gui/qt/dialogs/dialogs/qml/Dialogs.qml    |  23 +
 .../qt/dialogs/dialogs/qml/WindowDialog.qml   | 101 +++
 modules/gui/qt/dialogs/dialogs_provider.cpp   |  40 +-
 modules/gui/qt/dialogs/dialogs_provider.hpp   |   8 +-
 .../qt/dialogs/toolbar/controlbar_profile.cpp | 225 ++++++
 .../qt/dialogs/toolbar/controlbar_profile.hpp |  91 +++
 .../toolbar/controlbar_profile_model.cpp      | 677 ++++++++++++++++++
 .../toolbar/controlbar_profile_model.hpp      | 110 +++
 .../dialogs/toolbar/qml/EditorDNDDelegate.qml |   3 +-
 .../qt/dialogs/toolbar/qml/EditorDNDView.qml  |   2 +
 .../dialogs/toolbar/qml/EditorTabButton.qml   |  17 +-
 .../qt/dialogs/toolbar/qml/ToolbarEditor.qml  | 549 +++++---------
 .../toolbar/qml/ToolbarEditorButtonList.qml   |  32 +-
 .../toolbar/qml/ToolbarEditorDialog.qml       | 171 +++++
 .../gui/qt/dialogs/toolbar/toolbareditor.cpp  | 208 ------
 .../gui/qt/dialogs/toolbar/toolbareditor.hpp  |  55 --
 .../gui/qt/maininterface/main_interface.cpp   |   7 +-
 .../gui/qt/maininterface/main_interface.hpp   |   7 +-
 modules/gui/qt/maininterface/mainui.cpp       |  13 +-
 modules/gui/qt/menus/menus.cpp                |   2 +-
 modules/gui/qt/player/control_list_model.cpp  | 155 ++++
 ...rolbarmodel.hpp => control_list_model.hpp} |  63 +-
 .../gui/qt/player/player_controlbar_model.cpp | 137 ++++
 .../gui/qt/player/player_controlbar_model.hpp |  96 +++
 .../gui/qt/player/playercontrolbarmodel.cpp   | 326 ---------
 modules/gui/qt/player/qml/ControlBar.qml      |  23 +-
 modules/gui/qt/player/qml/ControlButtons.qml  | 128 ++--
 modules/gui/qt/player/qml/MiniPlayer.qml      |   2 +-
 modules/gui/qt/player/qml/Player.qml          |   2 +
 .../gui/qt/player/qml/PlayerButtonsLayout.qml |  86 ++-
 modules/gui/qt/player/qml/TopBar.qml          |   2 +-
 modules/gui/qt/vlc.qrc                        |   2 +
 modules/gui/qt/widgets/qml/IconToolButton.qml |   3 +
 po/POTFILES.in                                |   8 +-
 35 files changed, 2212 insertions(+), 1178 deletions(-)
 create mode 100644 modules/gui/qt/dialogs/dialogs/qml/WindowDialog.qml
 create mode 100644 modules/gui/qt/dialogs/toolbar/controlbar_profile.cpp
 create mode 100644 modules/gui/qt/dialogs/toolbar/controlbar_profile.hpp
 create mode 100644 modules/gui/qt/dialogs/toolbar/controlbar_profile_model.cpp
 create mode 100644 modules/gui/qt/dialogs/toolbar/controlbar_profile_model.hpp
 create mode 100644 modules/gui/qt/dialogs/toolbar/qml/ToolbarEditorDialog.qml
 delete mode 100644 modules/gui/qt/dialogs/toolbar/toolbareditor.cpp
 delete mode 100644 modules/gui/qt/dialogs/toolbar/toolbareditor.hpp
 create mode 100644 modules/gui/qt/player/control_list_model.cpp
 rename modules/gui/qt/player/{playercontrolbarmodel.hpp => control_list_model.hpp} (63%)
 create mode 100644 modules/gui/qt/player/player_controlbar_model.cpp
 create mode 100644 modules/gui/qt/player/player_controlbar_model.hpp
 delete mode 100644 modules/gui/qt/player/playercontrolbarmodel.cpp

-- 
2.27.0



More information about the vlc-devel mailing list