[vlc-commits] qml: split the utils namespace in util and widgets

Pierre Lamot git at videolan.org
Tue Dec 17 15:37:55 CET 2019


vlc | branch: master | Pierre Lamot <pierre at videolabs.io> | Mon Dec  9 14:28:57 2019 +0100| [d1c493da2fe3f49314b54c0145ea50bc4ab42383] | committer: Jean-Baptiste Kempf

qml: split the utils namespace in util and widgets

  this follows the current file organisation

Signed-off-by: Jean-Baptiste Kempf <jb at videolan.org>

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=d1c493da2fe3f49314b54c0145ea50bc4ab42383
---

 modules/gui/qt/dialogs/dialogs/qml/Dialogs.qml     | 16 +++----
 modules/gui/qt/dialogs/dialogs/qml/ModalDialog.qml |  2 +-
 modules/gui/qt/dialogs/help/qml/About.qml          | 14 +++---
 .../qt/dialogs/toolbar/qml/EditorDNDDelegate.qml   |  2 +-
 modules/gui/qt/maininterface/qml/BannerSources.qml | 34 +++++++-------
 modules/gui/qt/maininterface/qml/MainInterface.qml |  4 +-
 .../gui/qt/medialibrary/qml/ArtistTopBanner.qml    |  2 +-
 modules/gui/qt/medialibrary/qml/AudioGridItem.qml  |  4 +-
 modules/gui/qt/medialibrary/qml/MainDisplay.qml    | 14 +++---
 .../gui/qt/medialibrary/qml/MusicAlbumsDisplay.qml | 15 +++---
 .../qml/MusicAlbumsGridExpandDelegate.qml          |  8 ++--
 .../qt/medialibrary/qml/MusicArtistsDisplay.qml    | 11 +++--
 modules/gui/qt/medialibrary/qml/MusicDisplay.qml   |  6 +--
 .../gui/qt/medialibrary/qml/MusicGenresDisplay.qml | 15 +++---
 .../qt/medialibrary/qml/MusicTrackListDisplay.qml  |  4 +-
 .../gui/qt/medialibrary/qml/MusicTracksDisplay.qml |  2 +-
 modules/gui/qt/medialibrary/qml/VideoDisplay.qml   | 31 +++++++------
 modules/gui/qt/medialibrary/qml/VideoGridItem.qml  |  4 +-
 .../qt/medialibrary/qml/VideoInfoExpandPanel.qml   | 16 +++----
 .../gui/qt/medialibrary/qml/VideoListDisplay.qml   | 14 +++---
 modules/gui/qt/menus/qml/AudioMenu.qml             |  4 +-
 modules/gui/qt/menus/qml/CheckableModelSubMenu.qml |  6 +--
 modules/gui/qt/menus/qml/HelpMenu.qml              |  4 +-
 modules/gui/qt/menus/qml/MainDropdownMenu.qml      |  4 +-
 modules/gui/qt/menus/qml/MainMenubar.qml           |  2 +-
 modules/gui/qt/menus/qml/MediaMenu.qml             | 10 ++--
 modules/gui/qt/menus/qml/PlaybackMenu.qml          |  8 ++--
 modules/gui/qt/menus/qml/PopupMenu.qml             |  4 +-
 modules/gui/qt/menus/qml/SubtitleMenu.qml          |  4 +-
 modules/gui/qt/menus/qml/ToolsMenu.qml             |  4 +-
 modules/gui/qt/menus/qml/VideoMenu.qml             |  4 +-
 modules/gui/qt/menus/qml/ViewMenu.qml              | 10 ++--
 .../gui/qt/network/qml/NetworkBrowseDisplay.qml    | 24 +++++-----
 modules/gui/qt/network/qml/NetworkDisplay.qml      |  6 +--
 modules/gui/qt/network/qml/NetworkGridItem.qml     |  4 +-
 modules/gui/qt/network/qml/NetworkHomeDisplay.qml  | 12 ++---
 modules/gui/qt/network/qml/NetworkListItem.qml     |  4 +-
 .../qt/network/qml/NetworksSectionSelectableDM.qml |  5 +-
 modules/gui/qt/player/qml/ControlBar.qml           |  4 +-
 modules/gui/qt/player/qml/ControlButtons.qml       | 54 +++++++++++-----------
 modules/gui/qt/player/qml/MiniPlayer.qml           |  6 +--
 modules/gui/qt/player/qml/Player.qml               | 18 ++++----
 modules/gui/qt/player/qml/PlayerButtonsLayout.qml  |  6 +--
 modules/gui/qt/player/qml/PlayerMenu.qml           |  2 +-
 modules/gui/qt/player/qml/PlayerMenuItem.qml       |  4 +-
 modules/gui/qt/player/qml/TeletextWidget.qml       | 18 ++++----
 modules/gui/qt/player/qml/TopBar.qml               |  8 ++--
 modules/gui/qt/player/qml/TrackInfo.qml            |  2 +-
 modules/gui/qt/player/qml/VolumeWidget.qml         |  6 +--
 modules/gui/qt/playlist/qml/PLItem.qml             |  2 +-
 modules/gui/qt/playlist/qml/PlaylistListView.qml   | 10 ++--
 modules/gui/qt/playlist/qml/PlaylistMainView.qml   |  4 +-
 modules/gui/qt/playlist/qml/PlaylistMenu.qml       |  8 ++--
 modules/gui/qt/playlist/qml/PlaylistToolbar.qml    | 14 +++---
 modules/gui/qt/vlc.qrc                             |  4 +-
 modules/gui/qt/widgets/qml/ContextButton.qml       |  2 +-
 modules/gui/qt/widgets/qml/ExpandGridView.qml      |  2 +-
 modules/gui/qt/widgets/qml/GridItem.qml            |  2 +-
 .../gui/qt/widgets/qml/KeyNavigableGridView.qml    |  2 +-
 .../gui/qt/widgets/qml/KeyNavigableListView.qml    |  3 +-
 .../gui/qt/widgets/qml/KeyNavigableTableView.qml   |  5 +-
 modules/gui/qt/widgets/qml/ListItem.qml            |  2 +-
 modules/gui/qt/widgets/qml/NavigableFocusScope.qml |  2 +-
 modules/gui/qt/widgets/qml/SearchBox.qml           |  6 +--
 modules/gui/qt/widgets/qml/SortControl.qml         |  6 +--
 65 files changed, 273 insertions(+), 266 deletions(-)

diff --git a/modules/gui/qt/dialogs/dialogs/qml/Dialogs.qml b/modules/gui/qt/dialogs/dialogs/qml/Dialogs.qml
index 275bed370d..c8275a7c9a 100644
--- a/modules/gui/qt/dialogs/dialogs/qml/Dialogs.qml
+++ b/modules/gui/qt/dialogs/dialogs/qml/Dialogs.qml
@@ -22,7 +22,7 @@ import QtGraphicalEffects 1.0
 import org.videolan.vlc 0.1
 
 
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 import "qrc:///style/"
 
 Item {
@@ -30,13 +30,13 @@ Item {
     signal restoreFocus();
     property var bgContent: undefined
 
-    Utils.DrawerExt {
+    Widgets.DrawerExt {
         id: errorPopup
         anchors {
             bottom: parent.bottom
             horizontalCenter: parent.horizontalCenter
         }
-        edge: Utils.DrawerExt.Edges.Bottom
+        edge: Widgets.DrawerExt.Edges.Bottom
         width: parent.width * 0.8
         z: 10
 
@@ -156,7 +156,7 @@ Item {
                 RowLayout {
                     anchors.fill: parent
 
-                    Utils.TextToolButton {
+                    Widgets.TextToolButton {
                         id: loginCancel
                         Layout.fillWidth: true
                         text: qsTr("cancel")
@@ -169,7 +169,7 @@ Item {
                         }
                     }
 
-                    Utils.TextToolButton {
+                    Widgets.TextToolButton {
                         id: loginOk
                         Layout.fillWidth: true
                         text: qsTr("Ok")
@@ -226,7 +226,7 @@ Item {
                 RowLayout {
                     anchors.fill: parent
 
-                    Utils.TextToolButton {
+                    Widgets.TextToolButton {
                         Layout.fillWidth: true
                         id: cancel
                         focus: true
@@ -239,7 +239,7 @@ Item {
                         }
                     }
 
-                    Utils.TextToolButton {
+                    Widgets.TextToolButton {
                         id: action1
                         Layout.fillWidth: true
                         visible: action1.text !== ""
@@ -251,7 +251,7 @@ Item {
                         }
                     }
 
-                    Utils.TextToolButton {
+                    Widgets.TextToolButton {
                         id: action2
                         Layout.fillWidth: true
                         visible: action2.text !== ""
diff --git a/modules/gui/qt/dialogs/dialogs/qml/ModalDialog.qml b/modules/gui/qt/dialogs/dialogs/qml/ModalDialog.qml
index 5e6ddcf317..33294cb091 100644
--- a/modules/gui/qt/dialogs/dialogs/qml/ModalDialog.qml
+++ b/modules/gui/qt/dialogs/dialogs/qml/ModalDialog.qml
@@ -20,7 +20,7 @@ import QtQuick.Controls 2.4
 import QtQuick.Layouts 1.3
 import QtGraphicalEffects 1.0
 
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 import "qrc:///style/"
 
 Dialog {
diff --git a/modules/gui/qt/dialogs/help/qml/About.qml b/modules/gui/qt/dialogs/help/qml/About.qml
index 8103cfdb51..191800ee16 100644
--- a/modules/gui/qt/dialogs/help/qml/About.qml
+++ b/modules/gui/qt/dialogs/help/qml/About.qml
@@ -21,10 +21,10 @@ import QtQuick.Layouts 1.3
 import org.videolan.vlc 0.1
 
 import "qrc:///style/"
-import "qrc:///utils/" as Utils
-import "qrc:///utils/KeyHelper.js" as KeyHelper
+import "qrc:///widgets/" as Widgets
+import "qrc:///util/KeyHelper.js" as KeyHelper
 
-Utils.NavigableFocusScope {
+Widgets.NavigableFocusScope {
     id: root
     property alias columnLayout: columnLayout
 
@@ -51,7 +51,7 @@ Utils.NavigableFocusScope {
                 id: columnLayout
                 anchors.fill: parent
 
-                Utils.TextToolButton {
+                Widgets.TextToolButton {
                     id: authorsBtn
                     text: qsTr("Authors")
                     Layout.alignment: Qt.AlignLeft | Qt.AlignTop
@@ -64,7 +64,7 @@ Utils.NavigableFocusScope {
                     focus: true
                 }
 
-                Utils.TextToolButton {
+                Widgets.TextToolButton {
                     id: licenseBtn
                     text: qsTr("License")
                     Layout.alignment: Qt.AlignLeft | Qt.AlignTop
@@ -73,7 +73,7 @@ Utils.NavigableFocusScope {
                     KeyNavigation.right: textScroll
                 }
 
-                Utils.TextToolButton {
+                Widgets.TextToolButton {
                     id: creditBtn
                     text: qsTr("Credit")
                     Layout.alignment: Qt.AlignLeft | Qt.AlignTop
@@ -90,7 +90,7 @@ Utils.NavigableFocusScope {
                     Layout.fillHeight: true
                 }
 
-                Utils.IconToolButton {
+                Widgets.IconToolButton {
                     id: backBtn
                     size: VLCStyle.icon_large
                     iconText: VLCIcons.exit
diff --git a/modules/gui/qt/dialogs/toolbar/qml/EditorDNDDelegate.qml b/modules/gui/qt/dialogs/toolbar/qml/EditorDNDDelegate.qml
index f35707f1a4..c3ac8f657b 100644
--- a/modules/gui/qt/dialogs/toolbar/qml/EditorDNDDelegate.qml
+++ b/modules/gui/qt/dialogs/toolbar/qml/EditorDNDDelegate.qml
@@ -21,7 +21,7 @@ import QtQml.Models 2.11
 
 import org.videolan.vlc 0.1
 
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 import "qrc:///style/"
 
 MouseArea {
diff --git a/modules/gui/qt/maininterface/qml/BannerSources.qml b/modules/gui/qt/maininterface/qml/BannerSources.qml
index e94c9bcd6e..6f5f504161 100644
--- a/modules/gui/qt/maininterface/qml/BannerSources.qml
+++ b/modules/gui/qt/maininterface/qml/BannerSources.qml
@@ -23,11 +23,11 @@ import org.videolan.vlc 0.1
 import QtQml.Models 2.11
 
 import "qrc:///style/"
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 import "qrc:///menus/" as Menus
 
 
-Utils.NavigableFocusScope {
+Widgets.NavigableFocusScope {
     id: root
 
     height: (VLCStyle.icon_normal + VLCStyle.margin_xxsmall) * 2 + VLCStyle.applicationVerticalMargin
@@ -77,7 +77,7 @@ Utils.NavigableFocusScope {
                 width: parent.width
                 height: VLCStyle.icon_normal
 
-                Utils.NavigableRow {
+                Widgets.NavigableRow {
                     id: historyGroup
 
                     anchors {
@@ -94,7 +94,7 @@ Utils.NavigableFocusScope {
                             enabled: false
                         }
 
-                        Utils.IconToolButton {
+                        Widgets.IconToolButton {
                             id: history_back
                             size: VLCStyle.icon_normal
                             iconText: VLCIcons.topbar_previous
@@ -103,7 +103,7 @@ Utils.NavigableFocusScope {
                             enabled: !history.previousEmpty
                         }
 
-                        Utils.IconToolButton {
+                        Widgets.IconToolButton {
                             id: history_next
                             size: VLCStyle.icon_normal
                             iconText: VLCIcons.topbar_next
@@ -119,7 +119,7 @@ Utils.NavigableFocusScope {
                 }
 
                 /* Button for the sources */
-                Utils.NavigableRow {
+                Widgets.NavigableRow {
                     id: globalMenuGroup
 
                     anchors {
@@ -135,14 +135,14 @@ Utils.NavigableFocusScope {
                     navigationRightItem: globalCtxGroup
                     navigationDownItem: localMenuGroup.visible ?  localMenuGroup : playlistGroup
 
-                    delegate: Utils.TabButtonExt {
+                    delegate: Widgets.TabButtonExt {
                         iconTxt: model.icon
                         selected: model.index === selectedIndex
                         onClicked: root.itemClicked(model.index)
                     }
                 }
 
-                Utils.NavigableRow {
+                Widgets.NavigableRow {
                     id: globalCtxGroup
 
                     anchors {
@@ -152,14 +152,14 @@ Utils.NavigableFocusScope {
                     }
 
                     model: ObjectModel {
-                        Utils.SearchBox {
+                        Widgets.SearchBox {
                             id: searchBox
                             contentModel: root.contentModel
                             visible: root.contentModel !== undefined
                             enabled: visible
                         }
 
-                        Utils.IconToolButton {
+                        Widgets.IconToolButton {
                             id: menu_selector
 
                             size: VLCStyle.icon_normal
@@ -189,7 +189,7 @@ Utils.NavigableFocusScope {
                 width: parent.width
                 height: VLCStyle.icon_normal
 
-                Utils.NavigableRow {
+                Widgets.NavigableRow {
                     id: localContextGroup
                     anchors {
                         top: parent.top
@@ -202,7 +202,7 @@ Utils.NavigableFocusScope {
 
                         property int countExtra: 0
 
-                        Utils.IconToolButton {
+                        Widgets.IconToolButton {
                             id: list_grid_btn
                             size: VLCStyle.icon_normal
                             iconText: medialib.gridView ? VLCIcons.list : VLCIcons.grid
@@ -210,7 +210,7 @@ Utils.NavigableFocusScope {
                             onClicked: medialib.gridView = !medialib.gridView
                         }
 
-                        Utils.SortControl {
+                        Widgets.SortControl {
                             id: sortControl
 
                             textRole: "text"
@@ -251,7 +251,7 @@ Utils.NavigableFocusScope {
                     navigationUpItem: historyGroup.navigable ? historyGroup : globalMenuGroup
                 }
 
-                Utils.NavigableRow {
+                Widgets.NavigableRow {
                     id: localMenuGroup
                     anchors {
                         top: parent.top
@@ -262,7 +262,7 @@ Utils.NavigableFocusScope {
                     visible: !!model
                     enabled: !!model
 
-                    delegate: Utils.TabButtonExt {
+                    delegate: Widgets.TabButtonExt {
                         text: model.displayText
                         selected: model.index === subSelectedIndex
                         onClicked:  root.subItemClicked(model.index)
@@ -274,7 +274,7 @@ Utils.NavigableFocusScope {
                     navigationUpItem:  globalMenuGroup
                 }
 
-                Utils.NavigableRow {
+                Widgets.NavigableRow {
                     id: playlistGroup
                     anchors {
                         top: parent.top
@@ -283,7 +283,7 @@ Utils.NavigableFocusScope {
                     }
 
                     model: ObjectModel {
-                        Utils.IconToolButton {
+                        Widgets.IconToolButton {
                             id: playlist_btn
 
                             size: VLCStyle.icon_normal
diff --git a/modules/gui/qt/maininterface/qml/MainInterface.qml b/modules/gui/qt/maininterface/qml/MainInterface.qml
index a45053566d..db1e3014c5 100644
--- a/modules/gui/qt/maininterface/qml/MainInterface.qml
+++ b/modules/gui/qt/maininterface/qml/MainInterface.qml
@@ -21,7 +21,7 @@ import QtQuick.Layouts 1.3
 import QtQuick.Controls 2.4
 import org.videolan.vlc 0.1
 
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 import "qrc:///style/"
 
 import "qrc:///player/" as Player
@@ -118,7 +118,7 @@ Rectangle {
             }
         }
 
-        Utils.StackViewExt {
+        Widgets.StackViewExt {
             id: stackView
             anchors.fill: parent
             focus: true
diff --git a/modules/gui/qt/medialibrary/qml/ArtistTopBanner.qml b/modules/gui/qt/medialibrary/qml/ArtistTopBanner.qml
index 03ac8842a7..6e48df3622 100644
--- a/modules/gui/qt/medialibrary/qml/ArtistTopBanner.qml
+++ b/modules/gui/qt/medialibrary/qml/ArtistTopBanner.qml
@@ -22,7 +22,7 @@ import QtGraphicalEffects 1.0
 
 import org.videolan.medialib 0.1
 
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 import "qrc:///style/"
 
 Rectangle {
diff --git a/modules/gui/qt/medialibrary/qml/AudioGridItem.qml b/modules/gui/qt/medialibrary/qml/AudioGridItem.qml
index 76973fc87d..7478d12411 100644
--- a/modules/gui/qt/medialibrary/qml/AudioGridItem.qml
+++ b/modules/gui/qt/medialibrary/qml/AudioGridItem.qml
@@ -19,10 +19,10 @@ import QtQuick 2.11
 
 import org.videolan.medialib 0.1
 
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 import "qrc:///style/"
 
-Utils.GridItem {
+Widgets.GridItem {
     property var model: ({})
     image: model.cover || VLCStyle.noArtAlbum
     title: model.title || qsTr("Unknown title")
diff --git a/modules/gui/qt/medialibrary/qml/MainDisplay.qml b/modules/gui/qt/medialibrary/qml/MainDisplay.qml
index b58e25540f..a12f915b7c 100644
--- a/modules/gui/qt/medialibrary/qml/MainDisplay.qml
+++ b/modules/gui/qt/medialibrary/qml/MainDisplay.qml
@@ -23,13 +23,13 @@ import org.videolan.vlc 0.1
 
 import "qrc:///style/"
 import "qrc:///main/" as Main
-import "qrc:///utils/" as Utils
-import "qrc:///utils/KeyHelper.js" as KeyHelper
+import "qrc:///widgets/" as Widgets
+import "qrc:///util/KeyHelper.js" as KeyHelper
 import "qrc:///playlist/" as PL
 import "qrc:///player/" as Player
 import "qrc:///network/" as Network
 
-Utils.NavigableFocusScope {
+Widgets.NavigableFocusScope {
     id: root
 
     //name and properties of the tab to be initially loaded
@@ -127,7 +127,7 @@ Utils.NavigableFocusScope {
         color: VLCStyle.colors.bg
         anchors.fill: parent
 
-        Utils.NavigableFocusScope {
+        Widgets.NavigableFocusScope {
             focus: true
             id: medialibId
             anchors.fill: parent
@@ -174,7 +174,7 @@ Utils.NavigableFocusScope {
                     Layout.fillWidth: true
                     Layout.fillHeight: true
 
-                    Utils.NavigableFocusScope {
+                    Widgets.NavigableFocusScope {
                         id: stackViewZone
                         anchors.fill: parent
 
@@ -205,7 +205,7 @@ Utils.NavigableFocusScope {
                         border.color: VLCStyle.colors.accent
                     }
 
-                    Utils.StackViewExt {
+                    Widgets.StackViewExt {
                         id: stackView
                         anchors {
                             top: parent.top
@@ -218,7 +218,7 @@ Utils.NavigableFocusScope {
                             leftMargin: VLCStyle.applicationHorizontalMargin
                         }
 
-                        Utils.ScanProgressBar {
+                        Widgets.ScanProgressBar {
                             z: 1
                             anchors {
                                 left: parent.left
diff --git a/modules/gui/qt/medialibrary/qml/MusicAlbumsDisplay.qml b/modules/gui/qt/medialibrary/qml/MusicAlbumsDisplay.qml
index 5e1e35f6de..12edfd5534 100644
--- a/modules/gui/qt/medialibrary/qml/MusicAlbumsDisplay.qml
+++ b/modules/gui/qt/medialibrary/qml/MusicAlbumsDisplay.qml
@@ -22,10 +22,11 @@ import QtQml.Models 2.2
 import org.videolan.medialib 0.1
 
 
-import "qrc:///utils/" as Utils
+import "qrc:///util/" as Util
+import "qrc:///widgets/" as Widgets
 import "qrc:///style/"
 
-Utils.NavigableFocusScope {
+Widgets.NavigableFocusScope {
     id: root
 
     property var sortModel: ListModel {
@@ -42,7 +43,7 @@ Utils.NavigableFocusScope {
 
     property Component header: Item{}
 
-    Utils.SelectableDelegateModel {
+    Util.SelectableDelegateModel {
         id: delegateModel
         property alias parentId: albumModelId.parentId
 
@@ -55,7 +56,7 @@ Utils.NavigableFocusScope {
         delegate: Package {
             id: element
 
-            Utils.ListItem {
+            Widgets.ListItem {
                 Package.name: "list"
                 width: root.width
                 height: VLCStyle.icon_normal + VLCStyle.margin_small
@@ -109,7 +110,7 @@ Utils.NavigableFocusScope {
     Component {
         id: gridComponent
 
-        Utils.ExpandGridView {
+        Widgets.ExpandGridView {
             id: gridView_id
 
             activeFocusOnTab:true
@@ -160,7 +161,7 @@ Utils.NavigableFocusScope {
     Component {
         id: listComponent
         /* ListView */
-        Utils.KeyNavigableListView {
+        Widgets.KeyNavigableListView {
             id: listView_id
 
             header: root.header
@@ -178,7 +179,7 @@ Utils.NavigableFocusScope {
         }
     }
 
-    Utils.StackViewExt {
+    Widgets.StackViewExt {
         id: view
 
         anchors.fill: parent
diff --git a/modules/gui/qt/medialibrary/qml/MusicAlbumsGridExpandDelegate.qml b/modules/gui/qt/medialibrary/qml/MusicAlbumsGridExpandDelegate.qml
index 78dd90a352..54b3ace2e5 100644
--- a/modules/gui/qt/medialibrary/qml/MusicAlbumsGridExpandDelegate.qml
+++ b/modules/gui/qt/medialibrary/qml/MusicAlbumsGridExpandDelegate.qml
@@ -21,10 +21,10 @@ import QtQuick.Layouts 1.3
 
 import org.videolan.medialib 0.1
 
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 import "qrc:///style/"
 
-Utils.NavigableFocusScope {
+Widgets.NavigableFocusScope {
     id: root
     property variant model: MLAlbumModel{}
     //color: VLCStyle.colors.bg
@@ -75,7 +75,7 @@ Utils.NavigableFocusScope {
                         right: parent.right
                     }
 
-                    Utils.IconToolButton {
+                    Widgets.IconToolButton {
                         id: addButton
                         focus: true
 
@@ -91,7 +91,7 @@ Utils.NavigableFocusScope {
 
                         KeyNavigation.right: playButton
                     }
-                    Utils.IconToolButton {
+                    Widgets.IconToolButton {
                         id: playButton
 
                         Layout.preferredWidth: VLCStyle.icon_normal
diff --git a/modules/gui/qt/medialibrary/qml/MusicArtistsDisplay.qml b/modules/gui/qt/medialibrary/qml/MusicArtistsDisplay.qml
index 061590f4af..bb37460f98 100644
--- a/modules/gui/qt/medialibrary/qml/MusicArtistsDisplay.qml
+++ b/modules/gui/qt/medialibrary/qml/MusicArtistsDisplay.qml
@@ -22,10 +22,11 @@ import QtQuick.Layouts 1.3
 
 import org.videolan.medialib 0.1
 
-import "qrc:///utils/" as Utils
+import "qrc:///util/" as Util
+import "qrc:///widgets/" as Widgets
 import "qrc:///style/"
 
-Utils.NavigableFocusScope {
+Widgets.NavigableFocusScope {
     id: root
     property alias model: delegateModel.model
     property var sortModel: ListModel {
@@ -34,7 +35,7 @@ Utils.NavigableFocusScope {
 
     property var artistId
 
-    Utils.SelectableDelegateModel {
+    Util.SelectableDelegateModel {
         id: delegateModel
         model: MLArtistModel {
             ml: medialib
@@ -44,7 +45,7 @@ Utils.NavigableFocusScope {
             artistId = items.get(0).model.id
         }
 
-        delegate: Utils.ListItem {
+        delegate: Widgets.ListItem {
             height: VLCStyle.icon_normal + VLCStyle.margin_small
             width: artistList.width
 
@@ -114,7 +115,7 @@ Utils.NavigableFocusScope {
         anchors.fill: parent
         visible: delegateModel.items.count > 0
 
-        Utils.KeyNavigableListView {
+        Widgets.KeyNavigableListView {
             width: parent.width * 0.25
             height: parent.height
 
diff --git a/modules/gui/qt/medialibrary/qml/MusicDisplay.qml b/modules/gui/qt/medialibrary/qml/MusicDisplay.qml
index ee09817a25..c40d609bb6 100644
--- a/modules/gui/qt/medialibrary/qml/MusicDisplay.qml
+++ b/modules/gui/qt/medialibrary/qml/MusicDisplay.qml
@@ -22,12 +22,12 @@ import QtQuick.Layouts 1.3
 import org.videolan.vlc 0.1
 import org.videolan.medialib 0.1
 
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 import "qrc:///style/"
 
 import org.videolan.medialib 0.1
 
-Utils.NavigableFocusScope {
+Widgets.NavigableFocusScope {
     id: root
 
     //name and properties of the tab to be initially loaded
@@ -99,7 +99,7 @@ Utils.NavigableFocusScope {
         spacing: 0
 
         /* The data elements */
-        Utils.StackViewExt  {
+        Widgets.StackViewExt  {
             id: stackView
             Layout.fillWidth: true
             Layout.fillHeight: true
diff --git a/modules/gui/qt/medialibrary/qml/MusicGenresDisplay.qml b/modules/gui/qt/medialibrary/qml/MusicGenresDisplay.qml
index 8bc53e1919..fc2987b3d6 100644
--- a/modules/gui/qt/medialibrary/qml/MusicGenresDisplay.qml
+++ b/modules/gui/qt/medialibrary/qml/MusicGenresDisplay.qml
@@ -21,10 +21,11 @@ import QtQml.Models 2.2
 import org.videolan.vlc 0.1
 import org.videolan.medialib 0.1
 
-import "qrc:///utils/" as Utils
+import "qrc:///util/" as Util
+import "qrc:///widgets/" as Widgets
 import "qrc:///style/"
 
-Utils.NavigableFocusScope {
+Widgets.NavigableFocusScope {
     id: root
     property alias model: delegateModel.model
     property var sortModel: ListModel {
@@ -35,14 +36,14 @@ Utils.NavigableFocusScope {
         history.push([ "mc", "music", "albums", { parentId: parent } ], History.Go)
     }
 
-    Utils.SelectableDelegateModel {
+    Util.SelectableDelegateModel {
         id: delegateModel
         model: MLGenreModel {
             ml: medialib
         }
 
         delegate: Package {
-            Utils.ListItem {
+            Widgets.ListItem {
                 Package.name: "list"
 
                 width: root.width
@@ -107,7 +108,7 @@ Utils.NavigableFocusScope {
     /* Grid View */
     Component {
         id: gridComponent
-        Utils.ExpandGridView {
+        Widgets.ExpandGridView {
             id: gridView_id
 
             model: delegateModel
@@ -147,7 +148,7 @@ Utils.NavigableFocusScope {
     Component {
         id: listComponent
         /* List View */
-        Utils.KeyNavigableListView {
+        Widgets.KeyNavigableListView {
             id: listView_id
 
             model: delegateModel.parts.list
@@ -165,7 +166,7 @@ Utils.NavigableFocusScope {
     }
 
 
-    Utils.StackViewExt {
+    Widgets.StackViewExt {
         id: view
 
         anchors.fill: parent
diff --git a/modules/gui/qt/medialibrary/qml/MusicTrackListDisplay.qml b/modules/gui/qt/medialibrary/qml/MusicTrackListDisplay.qml
index 75ae1b2fb9..9bbd5f2af3 100644
--- a/modules/gui/qt/medialibrary/qml/MusicTrackListDisplay.qml
+++ b/modules/gui/qt/medialibrary/qml/MusicTrackListDisplay.qml
@@ -22,10 +22,10 @@ import QtQuick.Layouts 1.3
 
 import org.videolan.medialib 0.1
 
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 import "qrc:///style/"
 
-Utils.KeyNavigableTableView {
+Widgets.KeyNavigableTableView {
     id: root
 
     sortModel: ListModel {
diff --git a/modules/gui/qt/medialibrary/qml/MusicTracksDisplay.qml b/modules/gui/qt/medialibrary/qml/MusicTracksDisplay.qml
index bee67e240a..594ec77856 100644
--- a/modules/gui/qt/medialibrary/qml/MusicTracksDisplay.qml
+++ b/modules/gui/qt/medialibrary/qml/MusicTracksDisplay.qml
@@ -19,7 +19,7 @@ import QtQuick 2.11
 import QtQuick.Controls 2.4
 import org.videolan.medialib 0.1
 
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 import "qrc:///style/"
 
 Loader {
diff --git a/modules/gui/qt/medialibrary/qml/VideoDisplay.qml b/modules/gui/qt/medialibrary/qml/VideoDisplay.qml
index 448af2e670..752d8b6ec3 100644
--- a/modules/gui/qt/medialibrary/qml/VideoDisplay.qml
+++ b/modules/gui/qt/medialibrary/qml/VideoDisplay.qml
@@ -22,11 +22,12 @@ import QtQml.Models 2.2
 
 import org.videolan.medialib 0.1
 
-import "qrc:///utils/" as Utils
+import "qrc:///util/" as Util
+import "qrc:///widgets/" as Widgets
 import "qrc:///dialogs/" as DG
 import "qrc:///style/"
 
-Utils.NavigableFocusScope {
+Widgets.NavigableFocusScope {
     id: root
     property var currentIndex: view.currentItem.currentIndex
 
@@ -40,44 +41,44 @@ Utils.NavigableFocusScope {
         onRejected: console.log("Cancel clicked")
     }
 
-    Utils.MenuExt {
+    Widgets.MenuExt {
         id: contextMenu
         property var model: ({})
         closePolicy: Popup.CloseOnReleaseOutside | Popup.CloseOnEscape
 
-        Utils.MenuItemExt {
+        Widgets.MenuItemExt {
             id: playMenuItem
             text: "Play from start"
             onTriggered: medialib.addAndPlay( contextMenu.model.id )
         }
-        Utils.MenuItemExt {
+        Widgets.MenuItemExt {
             text: "Play all"
             onTriggered: console.log("not implemented")
         }
-        Utils.MenuItemExt {
+        Widgets.MenuItemExt {
             text: "Play as audio"
             onTriggered: console.log("not implemented")
         }
-        Utils.MenuItemExt {
+        Widgets.MenuItemExt {
             text: "Enqueue"
             onTriggered: medialib.addToPlaylist( contextMenu.model.id )
         }
-        Utils.MenuItemExt {
+        Widgets.MenuItemExt {
             enabled: medialib.gridView
             text: "Information"
             onTriggered: {
                 view.currentItem.switchExpandItem(contextMenu.model.index)
             }
         }
-        Utils.MenuItemExt {
+        Widgets.MenuItemExt {
             text: "Download subtitles"
             onTriggered: console.log("not implemented")
         }
-        Utils.MenuItemExt {
+        Widgets.MenuItemExt {
             text: "Add to playlist"
             onTriggered: console.log("not implemented")
         }
-        Utils.MenuItemExt {
+        Widgets.MenuItemExt {
             text: "Delete"
             onTriggered: deleteDialog.open()
         }
@@ -85,7 +86,7 @@ Utils.NavigableFocusScope {
         onClosed: contextMenu.parent.forceActiveFocus()
 
     }
-    Utils.SelectableDelegateModel {
+    Util.SelectableDelegateModel {
         id: videosDelegate
 
         model: MLVideoModel {
@@ -106,7 +107,7 @@ Utils.NavigableFocusScope {
     Component {
         id: gridComponent
 
-        Utils.ExpandGridView {
+        Widgets.ExpandGridView {
             id: videosGV
             property Item currentItem: Item{}
 
@@ -114,7 +115,7 @@ Utils.NavigableFocusScope {
             model: videosDelegate
             modelCount: videosDelegate.items.count
 
-            headerDelegate: Utils.LabelSeparator {
+            headerDelegate: Widgets.LabelSeparator {
                 id: videosSeparator
                 width: videosGV.width
                 text: qsTr("Videos")
@@ -195,7 +196,7 @@ Utils.NavigableFocusScope {
         }
     }
 
-    Utils.StackViewExt {
+    Widgets.StackViewExt {
         id: view
         anchors.fill:parent
         clip: true
diff --git a/modules/gui/qt/medialibrary/qml/VideoGridItem.qml b/modules/gui/qt/medialibrary/qml/VideoGridItem.qml
index 90f4299b5e..03f8b105d4 100644
--- a/modules/gui/qt/medialibrary/qml/VideoGridItem.qml
+++ b/modules/gui/qt/medialibrary/qml/VideoGridItem.qml
@@ -19,10 +19,10 @@ import QtQuick 2.11
 
 import org.videolan.medialib 0.1
 
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 import "qrc:///style/"
 
-Utils.GridItem {
+Widgets.GridItem {
     property var model: ({})
     image: model.thumbnail || VLCStyle.noArtCover
     title: model.title || qsTr("Unknown title")
diff --git a/modules/gui/qt/medialibrary/qml/VideoInfoExpandPanel.qml b/modules/gui/qt/medialibrary/qml/VideoInfoExpandPanel.qml
index 3972cd52d3..b0452fad41 100644
--- a/modules/gui/qt/medialibrary/qml/VideoInfoExpandPanel.qml
+++ b/modules/gui/qt/medialibrary/qml/VideoInfoExpandPanel.qml
@@ -22,10 +22,10 @@ import QtQuick.Layouts 1.3
 
 import org.videolan.medialib 0.1
 
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 import "qrc:///style/"
 
-Utils.NavigableFocusScope {
+Widgets.NavigableFocusScope {
     id: expandRect
 
     property int currentId: -1
@@ -126,7 +126,7 @@ Utils.NavigableFocusScope {
             }
 
 
-            Utils.NavigableFocusScope {
+            Widgets.NavigableFocusScope {
                 id: infoPanel
 
                 Layout.fillHeight: true
@@ -218,7 +218,7 @@ Utils.NavigableFocusScope {
 
             }
 
-            Utils.NavigableCol {
+            Widgets.NavigableCol {
                 id: actionButtons
 
                 focus: true
@@ -227,14 +227,14 @@ Utils.NavigableFocusScope {
                 Layout.preferredWidth: childrenRect.width
 
                 model: ObjectModel {
-                    Utils.TabButtonExt {
+                    Widgets.TabButtonExt {
                         id: playActionBtn
                         iconTxt: VLCIcons.play
                         text: qsTr("Play")
                         onClicked: medialib.addAndPlay( expandRect.model.id )
                     }
 
-                    Utils.TabButtonExt {
+                    Widgets.TabButtonExt {
                         id: enqueueActionBtn
                         iconTxt: VLCIcons.add
                         text: qsTr("Enqueue")
@@ -248,14 +248,14 @@ Utils.NavigableFocusScope {
             }
 
 
-            Utils.NavigableFocusScope {
+            Widgets.NavigableFocusScope {
                 id: closeButton
 
                 Layout.alignment: Qt.AlignTop | Qt.AlignVCenter
                 Layout.preferredWidth: closeButtonId.size
                 Layout.preferredHeight: closeButtonId.size
 
-                Utils.IconToolButton {
+                Widgets.IconToolButton {
                     id: closeButtonId
 
                     size: VLCStyle.icon_normal
diff --git a/modules/gui/qt/medialibrary/qml/VideoListDisplay.qml b/modules/gui/qt/medialibrary/qml/VideoListDisplay.qml
index cc16a944cd..08c4727f15 100644
--- a/modules/gui/qt/medialibrary/qml/VideoListDisplay.qml
+++ b/modules/gui/qt/medialibrary/qml/VideoListDisplay.qml
@@ -21,10 +21,10 @@ import QtQml.Models 2.2
 
 import org.videolan.medialib 0.1
 
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 import "qrc:///style/"
 
-Utils.KeyNavigableTableView {
+Widgets.KeyNavigableTableView {
     id: listView_id
     model: MLVideoModel {
         ml: medialib
@@ -58,13 +58,13 @@ Utils.KeyNavigableTableView {
                 anchors.bottom: parent.bottom
                 anchors.left: parent.left
                 active: model.type === "image"
-                sourceComponent: Utils.RoundImage{
+                sourceComponent: Widgets.RoundImage{
                     id: cover
                     height: VLCStyle.video_small_height
                     width: VLCStyle.video_small_width
                     source: !rowModel ? "" : rowModel[model.criteria]
 
-                    Utils.VideoQualityLabel {
+                    Widgets.VideoQualityLabel {
                         id: resolutionLabel
                         anchors {
                             top: cover.top
@@ -74,7 +74,7 @@ Utils.KeyNavigableTableView {
                         }
                         text: !rowModel ? "" : rowModel.resolution_name
                     }
-                    Utils.VideoQualityLabel {
+                    Widgets.VideoQualityLabel {
                         anchors {
                             top: cover.top
                             left: resolutionLabel.right
@@ -85,7 +85,7 @@ Utils.KeyNavigableTableView {
                         text: !rowModel ? "" : rowModel.channel
                         color: "limegreen"
                     }
-                    Utils.VideoProgressBar {
+                    Widgets.VideoProgressBar {
                         value: !rowModel ? 0 : rowModel.saved_position
                         visible: value > 0
                         anchors {
@@ -103,7 +103,7 @@ Utils.KeyNavigableTableView {
                 anchors.right: parent.right
                 anchors.rightMargin: VLCStyle.margin_xxsmall
                 active: model.type === "contextButton"
-                sourceComponent: Utils.ContextButton{
+                sourceComponent: Widgets.ContextButton{
                     backgroundColor: hovered || activeFocus ?
                                          VLCStyle.colors.getBgColor( root.isSelected, hovered,
                                                                     root.activeFocus) : "transparent"
diff --git a/modules/gui/qt/menus/qml/AudioMenu.qml b/modules/gui/qt/menus/qml/AudioMenu.qml
index b0eb823bbb..aa8277d374 100644
--- a/modules/gui/qt/menus/qml/AudioMenu.qml
+++ b/modules/gui/qt/menus/qml/AudioMenu.qml
@@ -18,9 +18,9 @@
 import QtQuick 2.11
 import QtQuick.Controls 2.4
 
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 
-Utils.MenuExt {
+Widgets.MenuExt {
     CheckableModelSubMenu {
         title: qsTr("Audio &Track");
         enabled: player.isPlaying
diff --git a/modules/gui/qt/menus/qml/CheckableModelSubMenu.qml b/modules/gui/qt/menus/qml/CheckableModelSubMenu.qml
index bb31431c83..16dd92f6f0 100644
--- a/modules/gui/qt/menus/qml/CheckableModelSubMenu.qml
+++ b/modules/gui/qt/menus/qml/CheckableModelSubMenu.qml
@@ -18,13 +18,13 @@
 import QtQuick 2.11
 import QtQuick.Controls 2.4
 
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 
-Utils.MenuExt {
+Widgets.MenuExt {
     property alias model: values.model
     Repeater {
         id: values
-        Utils.MenuItemExt {
+        Widgets.MenuItemExt {
             text: model.display
             checkable: true
             checked: model.checked
diff --git a/modules/gui/qt/menus/qml/HelpMenu.qml b/modules/gui/qt/menus/qml/HelpMenu.qml
index 642aec9393..213235d73e 100644
--- a/modules/gui/qt/menus/qml/HelpMenu.qml
+++ b/modules/gui/qt/menus/qml/HelpMenu.qml
@@ -19,9 +19,9 @@ import QtQuick 2.11
 import QtQuick.Controls 2.4
 import org.videolan.vlc 0.1
 
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 
-Utils.MenuExt {
+Widgets.MenuExt {
     Action { text: qsTr("&Help");                 onTriggered: dialogProvider.helpDialog();   icon.source: "qrc:/menu/help.svg"; shortcut: "F1"              }
     Action { text: qsTr("Check for &Updates..."); onTriggered: dialogProvider.updateDialog();                                                                }
     Action { text: qsTr("&About");                onTriggered: history.push(["about"], History.Go);  icon.source: "qrc:/menu/info.svg"; shortcut: "Shift+F1" }
diff --git a/modules/gui/qt/menus/qml/MainDropdownMenu.qml b/modules/gui/qt/menus/qml/MainDropdownMenu.qml
index 8df4e56c20..639e2e8fe6 100644
--- a/modules/gui/qt/menus/qml/MainDropdownMenu.qml
+++ b/modules/gui/qt/menus/qml/MainDropdownMenu.qml
@@ -18,10 +18,10 @@
 import QtQuick 2.11
 import QtQuick.Controls 2.4
 
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 
 //main menus, to be used as a dropdown menu
-Utils.MenuExt {    
+Widgets.MenuExt {    
     id: mainDropdownMenu
     //make the menu modal, as we are not attached to a QQuickWindow
     modal: true
diff --git a/modules/gui/qt/menus/qml/MainMenubar.qml b/modules/gui/qt/menus/qml/MainMenubar.qml
index 03b743df66..abd1cfc3bf 100644
--- a/modules/gui/qt/menus/qml/MainMenubar.qml
+++ b/modules/gui/qt/menus/qml/MainMenubar.qml
@@ -18,7 +18,7 @@
 import QtQuick 2.11
 import QtQuick.Controls 2.4
 
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 
 //main menus as a MenuBar
 MenuBar {
diff --git a/modules/gui/qt/menus/qml/MediaMenu.qml b/modules/gui/qt/menus/qml/MediaMenu.qml
index 3f7214f418..26c25a3124 100644
--- a/modules/gui/qt/menus/qml/MediaMenu.qml
+++ b/modules/gui/qt/menus/qml/MediaMenu.qml
@@ -18,9 +18,9 @@
 import QtQuick 2.11
 import QtQuick.Controls 2.4
 
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 
-Utils.MenuExt {
+Widgets.MenuExt {
     id: mediaMenu
 
     Action { text: qsTr("Open &File..." ) ;               onTriggered: dialogProvider.simpleOpenDialog();          icon.source:"qrc:/type/file-asym.svg"                        }
@@ -33,7 +33,7 @@ Utils.MenuExt {
     Action { text: qsTr("Open &Location from clipboard"); onTriggered: dialogProvider.openUrlDialog();                                                       shortcut: "Ctrl+V" }
 
 
-    Utils.MenuExt {
+    Widgets.MenuExt {
         id: recentsMenu
         title: qsTr("Open &Recent Media")
         property bool hasData: true
@@ -53,7 +53,7 @@ Utils.MenuExt {
         Repeater {
             model: recentsMedias
 
-            Utils.MenuItemExt {
+            Widgets.MenuItemExt {
                 text: mrl
                 onTriggered:{
                     mediaMenu.close() //needed since menuItem isn't a direct child of a menu
@@ -84,7 +84,7 @@ Utils.MenuExt {
             id: clearSepId
         }
 
-        Utils.MenuItemExt {
+        Widgets.MenuItemExt {
             id: clearAction
             text: qsTr("Clear")
             enabled: recentsMenu.hasData
diff --git a/modules/gui/qt/menus/qml/PlaybackMenu.qml b/modules/gui/qt/menus/qml/PlaybackMenu.qml
index 43d16ab1b8..a28a524f33 100644
--- a/modules/gui/qt/menus/qml/PlaybackMenu.qml
+++ b/modules/gui/qt/menus/qml/PlaybackMenu.qml
@@ -20,9 +20,9 @@ import QtQuick.Controls 2.4
 
 import org.videolan.vlc 0.1
 
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 
-Utils.MenuExt {
+Widgets.MenuExt {
     property bool isPlaying: player.playingState != PlayerController.PLAYING_STATE_STOPPED
 
 
@@ -55,13 +55,13 @@ Utils.MenuExt {
 
     MenuSeparator { }
 
-    Utils.MenuExt {
+    Widgets.MenuExt {
         title: qsTr("Renderer");
     }
 
     MenuSeparator { }
 
-    Utils.MenuExt {
+    Widgets.MenuExt {
         title: qsTr("Speed");
         enabled: isPlaying
         Action { text: qsTr("&Faster");         onTriggered: player.faster();       icon.source: "qrc:/toolbar/faster2.svg";    }
diff --git a/modules/gui/qt/menus/qml/PopupMenu.qml b/modules/gui/qt/menus/qml/PopupMenu.qml
index c96713602a..481cd70a93 100644
--- a/modules/gui/qt/menus/qml/PopupMenu.qml
+++ b/modules/gui/qt/menus/qml/PopupMenu.qml
@@ -20,10 +20,10 @@ import QtQuick.Controls 2.4
 
 import org.videolan.vlc 0.1
 
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 
 //main menus, to be used as a dropdown menu
-Utils.MenuExt {
+Widgets.MenuExt {
     //make the menu modal, as we are not attached to a QQuickWindow
     modal: true
     closePolicy: Popup.CloseOnPressOutside | Popup.CloseOnEscape
diff --git a/modules/gui/qt/menus/qml/SubtitleMenu.qml b/modules/gui/qt/menus/qml/SubtitleMenu.qml
index 7ac1a9da29..f19b1bc969 100644
--- a/modules/gui/qt/menus/qml/SubtitleMenu.qml
+++ b/modules/gui/qt/menus/qml/SubtitleMenu.qml
@@ -18,9 +18,9 @@
 import QtQuick 2.11
 import QtQuick.Controls 2.4
 
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 
-Utils.MenuExt {
+Widgets.MenuExt {
     Action {
         text: qsTr("Add Subtitle File...")
         enabled: player.isPlaying
diff --git a/modules/gui/qt/menus/qml/ToolsMenu.qml b/modules/gui/qt/menus/qml/ToolsMenu.qml
index 5a5435ebd7..ab11236c4d 100644
--- a/modules/gui/qt/menus/qml/ToolsMenu.qml
+++ b/modules/gui/qt/menus/qml/ToolsMenu.qml
@@ -18,9 +18,9 @@
 import QtQuick 2.11
 import QtQuick.Controls 2.4
 
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 
-Utils.MenuExt {
+Widgets.MenuExt {
     Action { text: qsTr("&Effects and Filters");    onTriggered: dialogProvider.extendedDialog();   icon.source: "qrc:/menu/settings.svg";    shortcut: "Ctrl+E" }
     Action { text: qsTr("&Track Synchronization");  onTriggered: dialogProvider.synchroDialog();    icon.source: "qrc:/menu/settings.svg";                       }
     Action { text: qsTr("Media &Information") ;     onTriggered: dialogProvider.mediaInfoDialog();  icon.source: "qrc:/menu/info.svg";        shortcut: "Ctrl+I" }
diff --git a/modules/gui/qt/menus/qml/VideoMenu.qml b/modules/gui/qt/menus/qml/VideoMenu.qml
index 58d7396ded..a4bcb7b6b6 100644
--- a/modules/gui/qt/menus/qml/VideoMenu.qml
+++ b/modules/gui/qt/menus/qml/VideoMenu.qml
@@ -18,9 +18,9 @@
 import QtQuick 2.11
 import QtQuick.Controls 2.4
 
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 
-Utils.MenuExt {
+Widgets.MenuExt {
     CheckableModelSubMenu {
         title: qsTr("Video Track");
         enabled: player.isPlaying
diff --git a/modules/gui/qt/menus/qml/ViewMenu.qml b/modules/gui/qt/menus/qml/ViewMenu.qml
index d7bfd54e32..b66fbba92d 100644
--- a/modules/gui/qt/menus/qml/ViewMenu.qml
+++ b/modules/gui/qt/menus/qml/ViewMenu.qml
@@ -19,9 +19,9 @@ import QtQuick 2.11
 import QtQuick.Controls 2.4
 
 import "qrc:///style/"
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 
-Utils.MenuExt {
+Widgets.MenuExt {
     id: viewMenu
     Action {
         text: qsTr("Play&list")
@@ -49,7 +49,7 @@ Utils.MenuExt {
 
     Loader {
         active: medialib !== null
-        sourceComponent:  Utils.MenuItemExt {
+        sourceComponent:  Widgets.MenuItemExt {
             text: qsTr("&View Items as Grid")
             checkable: true
             checked: medialib.gridView
@@ -57,11 +57,11 @@ Utils.MenuExt {
         }
     }
 
-    Utils.MenuExt {
+    Widgets.MenuExt {
         title: qsTr("Color Scheme")
         Repeater {
             model: VLCStyle.colors.colorSchemes
-            Utils.MenuItemExt {
+            Widgets.MenuItemExt {
                 text: modelData
                 checkable: true
                 checked: modelData === VLCStyle.colors.state
diff --git a/modules/gui/qt/network/qml/NetworkBrowseDisplay.qml b/modules/gui/qt/network/qml/NetworkBrowseDisplay.qml
index 38160b8365..b84ea131f9 100644
--- a/modules/gui/qt/network/qml/NetworkBrowseDisplay.qml
+++ b/modules/gui/qt/network/qml/NetworkBrowseDisplay.qml
@@ -23,16 +23,16 @@ import QtQml 2.11
 import org.videolan.vlc 0.1
 import org.videolan.medialib 0.1
 
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 import "qrc:///style/"
 
-Utils.NavigableFocusScope {
+Widgets.NavigableFocusScope {
     id: root
 
     property alias tree: providerModel.tree
 
     property var extraLocalActions: ObjectModel {
-        Utils.TabButtonExt {
+        Widgets.TabButtonExt {
             text:  providerModel.indexed ?  qsTr("Remove from medialibrary") : qsTr("Add to medialibrary")
             visible: !providerModel.is_on_provider_list && providerModel.canBeIndexed
             onClicked: providerModel.indexed = !providerModel.indexed
@@ -65,7 +65,7 @@ Utils.NavigableFocusScope {
         }
     }
 
-    Utils.MenuExt {
+    Widgets.MenuExt {
         id: contextMenu
         property var delegateModel: undefined
         property var model: ({})
@@ -109,7 +109,7 @@ Utils.NavigableFocusScope {
 
             onObjectAdded: model[index].active && contextMenu.insertItem( index, object )
             onObjectRemoved: model[index].active && contextMenu.removeItem( object )
-            delegate: Utils.MenuItemExt {
+            delegate: Widgets.MenuItemExt {
                 focus: true
                 text: modelData.text
                 onTriggered: {
@@ -127,11 +127,11 @@ Utils.NavigableFocusScope {
     Component{
         id: gridComponent
 
-        Utils.ExpandGridView {
+        Widgets.ExpandGridView {
             model: delegateModel
             modelCount: delegateModel.items.count
 
-            headerDelegate: Utils.LabelSeparator {
+            headerDelegate: Widgets.LabelSeparator {
                 text: providerModel.name
                 width: view.width
             }
@@ -139,7 +139,7 @@ Utils.NavigableFocusScope {
             cellWidth: VLCStyle.network_normal + VLCStyle.margin_large
             cellHeight: VLCStyle.network_normal + VLCStyle.margin_xlarge
 
-            delegate: Utils.GridItem {
+            delegate: Widgets.GridItem {
                 id: delegateGrid
                 property var model: ({})
 
@@ -199,7 +199,7 @@ Utils.NavigableFocusScope {
 
     Component{
         id: listComponent
-        Utils.KeyNavigableListView {
+        Widgets.KeyNavigableListView {
             height: view.height
             width: view.width
             model: delegateModel.parts.list
@@ -218,14 +218,14 @@ Utils.NavigableFocusScope {
                 history.previous(History.Go)
             }
 
-            header:  Utils.LabelSeparator {
+            header:  Widgets.LabelSeparator {
                 text: providerModel.name
                 width: view.width
             }
         }
     }
 
-    Utils.StackViewExt {
+    Widgets.StackViewExt {
         id: view
         anchors.fill:parent
         clip: true
@@ -242,7 +242,7 @@ Utils.NavigableFocusScope {
             }
         }
 
-        Utils.BusyIndicatorExt {
+        Widgets.BusyIndicatorExt {
             runningDelayed: providerModel.parsingPending
             anchors.centerIn: parent
             z: 1
diff --git a/modules/gui/qt/network/qml/NetworkDisplay.qml b/modules/gui/qt/network/qml/NetworkDisplay.qml
index 9d4f974521..5e4877dc86 100644
--- a/modules/gui/qt/network/qml/NetworkDisplay.qml
+++ b/modules/gui/qt/network/qml/NetworkDisplay.qml
@@ -23,10 +23,10 @@ import QtQml 2.11
 import org.videolan.vlc 0.1
 import org.videolan.medialib 0.1
 
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 import "qrc:///style/"
 
-Utils.NavigableFocusScope {
+Widgets.NavigableFocusScope {
     id: root
 
     property var extraLocalActions: undefined
@@ -52,7 +52,7 @@ Utils.NavigableFocusScope {
         }
     }
 
-    Utils.StackViewExt {
+    Widgets.StackViewExt {
         id: view
         anchors.fill:parent
         clip: true
diff --git a/modules/gui/qt/network/qml/NetworkGridItem.qml b/modules/gui/qt/network/qml/NetworkGridItem.qml
index 50aa6b1488..21248eec5c 100644
--- a/modules/gui/qt/network/qml/NetworkGridItem.qml
+++ b/modules/gui/qt/network/qml/NetworkGridItem.qml
@@ -22,10 +22,10 @@ import QtQml.Models 2.2
 import org.videolan.vlc 0.1
 import org.videolan.medialib 0.1
 
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 import "qrc:///style/"
 
-Utils.GridItem {
+Widgets.GridItem {
     id: item
 
     pictureWidth: VLCStyle.network_normal
diff --git a/modules/gui/qt/network/qml/NetworkHomeDisplay.qml b/modules/gui/qt/network/qml/NetworkHomeDisplay.qml
index 19126cc6ea..9681ea9b88 100644
--- a/modules/gui/qt/network/qml/NetworkHomeDisplay.qml
+++ b/modules/gui/qt/network/qml/NetworkHomeDisplay.qml
@@ -22,10 +22,10 @@ import QtQml 2.11
 
 import org.videolan.medialib 0.1
 
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 import "qrc:///style/"
 
-Utils.NavigableFocusScope {
+Widgets.NavigableFocusScope {
     id: topFocusScope
     focus: true
 
@@ -67,13 +67,13 @@ Utils.NavigableFocusScope {
 
             spacing: VLCStyle.margin_normal
 
-            Utils.LabelSeparator {
+            Widgets.LabelSeparator {
                 text: qsTr("Devices")
                 width: flickable.width
                 visible: machineDM.items.count !== 0
             }
 
-            Utils.KeyNavigableListView {
+            Widgets.KeyNavigableListView {
                 id: deviceSection
 
                 focus: false
@@ -95,13 +95,13 @@ Utils.NavigableFocusScope {
                 navigationDownItem: lanSection.visible ?  lanSection : undefined
             }
 
-            Utils.LabelSeparator {
+            Widgets.LabelSeparator {
                 text: qsTr("LAN")
                 width: flickable.width
                 visible: lanDM.items.count !== 0
             }
 
-            Utils.KeyNavigableListView {
+            Widgets.KeyNavigableListView {
                 id: lanSection
 
                 visible: lanDM.items.count !== 0
diff --git a/modules/gui/qt/network/qml/NetworkListItem.qml b/modules/gui/qt/network/qml/NetworkListItem.qml
index 18d43a3b77..b28a65c361 100644
--- a/modules/gui/qt/network/qml/NetworkListItem.qml
+++ b/modules/gui/qt/network/qml/NetworkListItem.qml
@@ -22,10 +22,10 @@ import QtQml.Models 2.2
 import org.videolan.vlc 0.1
 import org.videolan.medialib 0.1
 
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 import "qrc:///style/"
 
-Utils.ListItem {
+Widgets.ListItem {
     id: item
 
     width: root.width
diff --git a/modules/gui/qt/network/qml/NetworksSectionSelectableDM.qml b/modules/gui/qt/network/qml/NetworksSectionSelectableDM.qml
index ead75f9f1e..f509716884 100644
--- a/modules/gui/qt/network/qml/NetworksSectionSelectableDM.qml
+++ b/modules/gui/qt/network/qml/NetworksSectionSelectableDM.qml
@@ -23,10 +23,11 @@ import QtQml 2.11
 import org.videolan.vlc 0.1
 import org.videolan.medialib 0.1
 
-import "qrc:///utils/" as Utils
+import "qrc:///util/" as Util
+import "qrc:///widgets/" as Widgets
 import "qrc:///style/"
 
-Utils.SelectableDelegateModel {
+Util.SelectableDelegateModel {
     id: delegateModel
     property int currentIndex: -1
 
diff --git a/modules/gui/qt/player/qml/ControlBar.qml b/modules/gui/qt/player/qml/ControlBar.qml
index bba07a351f..1748f6b426 100644
--- a/modules/gui/qt/player/qml/ControlBar.qml
+++ b/modules/gui/qt/player/qml/ControlBar.qml
@@ -24,12 +24,12 @@ import QtQml.Models 2.11
 import org.videolan.vlc 0.1
 
 import "qrc:///style/"
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 import "qrc:///menus/" as Menus
 import "qrc:///playlist/" as PL
 
 
-Utils.NavigableFocusScope {
+Widgets.NavigableFocusScope {
     id: root
 
     signal showTrackBar()
diff --git a/modules/gui/qt/player/qml/ControlButtons.qml b/modules/gui/qt/player/qml/ControlButtons.qml
index d0acf5e5db..c77eb5ba4e 100644
--- a/modules/gui/qt/player/qml/ControlButtons.qml
+++ b/modules/gui/qt/player/qml/ControlButtons.qml
@@ -22,7 +22,7 @@ import QtQuick.Controls 2.4
 
 import org.videolan.vlc 0.1
 
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 import "qrc:///menus/" as Menus
 import "qrc:///style/"
 
@@ -99,7 +99,7 @@ Item{
 
     Component{
         id: backBtnDelegate
-        Utils.IconToolButton {
+        Widgets.IconToolButton {
             id: backBtn
             size: VLCStyle.icon_medium
             iconText: VLCIcons.exit
@@ -111,7 +111,7 @@ Item{
 
     Component{
         id: randomBtnDelegate
-        Utils.IconToolButton {
+        Widgets.IconToolButton {
             id: randomBtn
             size: VLCStyle.icon_medium
             checked: mainPlaylistController.random
@@ -124,7 +124,7 @@ Item{
 
     Component{
         id: prevBtnDelegate
-        Utils.IconToolButton {
+        Widgets.IconToolButton {
             id: prevBtn
             size: VLCStyle.icon_medium
             iconText: VLCIcons.previous
@@ -136,7 +136,7 @@ Item{
 
     Component{
         id:playBtnDelegate
-        Utils.IconToolButton {
+        Widgets.IconToolButton {
             id: playBtn
             size: VLCStyle.icon_medium
             iconText: (player.playingState !== PlayerController.PLAYING_STATE_PAUSED
@@ -154,7 +154,7 @@ Item{
 
     Component{
         id: nextBtnDelegate
-        Utils.IconToolButton {
+        Widgets.IconToolButton {
             id: nextBtn
             size: VLCStyle.icon_medium
             iconText: VLCIcons.next
@@ -166,7 +166,7 @@ Item{
 
     Component{
         id: chapterPreviousBtnDelegate
-        Utils.IconToolButton {
+        Widgets.IconToolButton {
             id: chapterPreviousBtnDelegate
             size: VLCStyle.icon_medium
             width: visible? VLCStyle.icon_medium : 0
@@ -182,7 +182,7 @@ Item{
 
     Component{
         id: chapterNextBtnDelegate
-        Utils.IconToolButton {
+        Widgets.IconToolButton {
             id: chapterPreviousBtnDelegate
             size: VLCStyle.icon_medium
             width: visible? VLCStyle.icon_medium : 0
@@ -198,7 +198,7 @@ Item{
 
     Component{
         id: repeatBtnDelegate
-        Utils.IconToolButton {
+        Widgets.IconToolButton {
             id: repeatBtn
             size: VLCStyle.icon_medium
             checked: mainPlaylistController.repeatMode !== PlaylistControllerModel.PLAYBACK_REPEAT_NONE
@@ -213,7 +213,7 @@ Item{
 
     Component{
         id: langBtnDelegate
-        Utils.IconToolButton {
+        Widgets.IconToolButton {
             id: langBtn
             size: VLCStyle.icon_medium
             iconText: VLCIcons.audiosub
@@ -316,7 +316,7 @@ Item{
 
     Component{
         id:playlistBtnDelegate
-        Utils.IconToolButton {
+        Widgets.IconToolButton {
             id: playlistBtn
             size: VLCStyle.icon_medium
             iconText: VLCIcons.playlist
@@ -334,7 +334,7 @@ Item{
 
     Component{
         id: menuBtnDelegate
-        Utils.IconToolButton {
+        Widgets.IconToolButton {
             id: menuBtn
             size: VLCStyle.icon_medium
             iconText: VLCIcons.menu
@@ -414,7 +414,7 @@ Item{
 
     Component{
         id: fullScreenBtnDelegate
-        Utils.IconToolButton{
+        Widgets.IconToolButton{
             id: fullScreenBtn
             size: VLCStyle.icon_medium
             iconText: rootWindow.interfaceFullScreen ?VLCIcons.defullscreen :VLCIcons.fullscreen
@@ -426,7 +426,7 @@ Item{
 
     Component{
         id: recordBtnDelegate
-        Utils.IconToolButton{
+        Widgets.IconToolButton{
             id: recordBtn
             size: VLCStyle.icon_medium
             iconText: VLCIcons.record
@@ -440,7 +440,7 @@ Item{
 
     Component{
         id: toggleABloopstateDelegate
-        Utils.IconToolButton {
+        Widgets.IconToolButton {
             id: abBtn
             size: VLCStyle.icon_medium
             checked: player.ABloopState !== PlayerController.ABLOOP_STATE_NONE
@@ -464,7 +464,7 @@ Item{
 
     Component{
         id: snapshotBtnDelegate
-        Utils.IconToolButton{
+        Widgets.IconToolButton{
             id: snapshotBtn
             size: VLCStyle.icon_medium
             enabled: !paintOnly && player.isPlaying
@@ -478,7 +478,7 @@ Item{
 
     Component{
         id: stopBtndelgate
-        Utils.IconToolButton{
+        Widgets.IconToolButton{
             id: stopBtn
             size: VLCStyle.icon_medium
             enabled: !paintOnly && player.isPlaying
@@ -491,7 +491,7 @@ Item{
 
     Component{
         id: mediainfoBtnDelegate
-        Utils.IconToolButton{
+        Widgets.IconToolButton{
             id: infoBtn
             size: VLCStyle.icon_medium
             enabled: !paintOnly && player.isPlaying
@@ -505,7 +505,7 @@ Item{
     Component{
         id: framebyframeDelegate
 
-        Utils.IconToolButton{
+        Widgets.IconToolButton{
             id: frameBtn
             size: VLCStyle.icon_medium
             enabled: !paintOnly && player.isPlaying
@@ -519,7 +519,7 @@ Item{
     Component{
         id: fasterBtnDelegate
 
-        Utils.IconToolButton{
+        Widgets.IconToolButton{
             id: fasterBtn
             size: VLCStyle.icon_medium
             iconText: VLCIcons.faster
@@ -532,7 +532,7 @@ Item{
     Component{
         id: slowerBtnDelegate
 
-        Utils.IconToolButton{
+        Widgets.IconToolButton{
             id: slowerBtn
             size: VLCStyle.icon_medium
             iconText: VLCIcons.slower
@@ -544,7 +544,7 @@ Item{
 
     Component{
         id: openmediaBtnDelegate
-        Utils.IconToolButton{
+        Widgets.IconToolButton{
             id: openMediaBtn
             size: VLCStyle.icon_medium
             iconText: VLCIcons.eject
@@ -556,7 +556,7 @@ Item{
 
     Component{
         id: extdSettingsBtnDelegate
-        Utils.IconToolButton{
+        Widgets.IconToolButton{
             id: extdSettingsBtn
             size: VLCStyle.icon_medium
             text: VLCIcons.extended
@@ -568,7 +568,7 @@ Item{
 
     Component{
         id: stepFwdBtnDelegate
-        Utils.IconToolButton{
+        Widgets.IconToolButton{
             id: stepfwdBtn
             size: VLCStyle.icon_medium
             iconText: VLCIcons.skip_for
@@ -580,7 +580,7 @@ Item{
 
     Component{
         id: stepBackBtnDelegate
-        Utils.IconToolButton{
+        Widgets.IconToolButton{
             id: stepBackBtn
             size: VLCStyle.icon_medium
             iconText: VLCIcons.skip_back
@@ -592,7 +592,7 @@ Item{
 
     Component{
         id: quitBtnDelegate
-        Utils.IconToolButton{
+        Widgets.IconToolButton{
             id: quitBtn
             size: VLCStyle.icon_medium
             iconText: VLCIcons.clear
@@ -604,7 +604,7 @@ Item{
 
     Component{
         id: aspectRatioDelegate
-        Utils.ComboBoxExt {
+        Widgets.ComboBoxExt {
             property bool paintOnly: false
             enabled: !paintOnly
             Layout.alignment: Qt.AlignVCenter
diff --git a/modules/gui/qt/player/qml/MiniPlayer.qml b/modules/gui/qt/player/qml/MiniPlayer.qml
index 009466914a..a57461c7a8 100644
--- a/modules/gui/qt/player/qml/MiniPlayer.qml
+++ b/modules/gui/qt/player/qml/MiniPlayer.qml
@@ -4,11 +4,11 @@ import QtQuick.Layouts 1.3
 
 import org.videolan.vlc 0.1
 
-import "qrc:///utils/" as Utils
-import "qrc:///utils/KeyHelper.js" as KeyHelper
+import "qrc:///widgets/" as Widgets
+import "qrc:///util/KeyHelper.js" as KeyHelper
 import "qrc:///style/"
 
-Utils.NavigableFocusScope {
+Widgets.NavigableFocusScope {
 
     id: root
 
diff --git a/modules/gui/qt/player/qml/Player.qml b/modules/gui/qt/player/qml/Player.qml
index fa4bde5d64..eee49b03a0 100644
--- a/modules/gui/qt/player/qml/Player.qml
+++ b/modules/gui/qt/player/qml/Player.qml
@@ -23,12 +23,12 @@ import QtGraphicalEffects 1.0
 import org.videolan.vlc 0.1
 
 import "qrc:///style/"
-import "qrc:///utils/" as Utils
-import "qrc:///utils/KeyHelper.js" as KeyHelper
+import "qrc:///widgets/" as Widgets
+import "qrc:///util/KeyHelper.js" as KeyHelper
 import "qrc:///playlist/" as PL
 import "qrc:///menus/" as Menus
 
-Utils.NavigableFocusScope {
+Widgets.NavigableFocusScope {
     id: rootPlayer
 
     //menu/overlay to dismiss
@@ -166,14 +166,14 @@ Utils.NavigableFocusScope {
         }
     }
 
-    Utils.DrawerExt{
+    Widgets.DrawerExt{
         id: topcontrolView
         anchors{
             left: parent.left
             right: parent.right
             top: parent.top
         }
-        edge: Utils.DrawerExt.Edges.Top
+        edge: Widgets.DrawerExt.Edges.Top
         property var noAutoHide: topcontrolView.contentItem.noAutoHide
 
         state: "visible"
@@ -199,7 +199,7 @@ Utils.NavigableFocusScope {
         }
     }
 
-    Utils.DrawerExt {
+    Widgets.DrawerExt {
         id: playlistpopup
         anchors {
             top: topcontrolView.bottom
@@ -209,7 +209,7 @@ Utils.NavigableFocusScope {
         property bool showPlaylist: false
         property var previousFocus: undefined
         focus: false
-        edge: Utils.DrawerExt.Edges.Right
+        edge: Widgets.DrawerExt.Edges.Right
         state: showPlaylist && rootWindow.playlistDocked ? "visible" : "hidden"
         component: Rectangle {
             color: VLCStyle.colors.setColorAlpha(VLCStyle.colors.banner, 0.8)
@@ -240,7 +240,7 @@ Utils.NavigableFocusScope {
         }
     }
 
-    Utils.DrawerExt {
+    Widgets.DrawerExt {
         id: controlBarView
         focus: true
         anchors {
@@ -251,7 +251,7 @@ Utils.NavigableFocusScope {
         property var  noAutoHide: controlBarView.contentItem.noAutoHide
 
         state: "visible"
-        edge: Utils.DrawerExt.Edges.Bottom
+        edge: Widgets.DrawerExt.Edges.Bottom
 
         component: Rectangle {
             id: controllerBarId
diff --git a/modules/gui/qt/player/qml/PlayerButtonsLayout.qml b/modules/gui/qt/player/qml/PlayerButtonsLayout.qml
index e9f60cd74a..5188252e1a 100644
--- a/modules/gui/qt/player/qml/PlayerButtonsLayout.qml
+++ b/modules/gui/qt/player/qml/PlayerButtonsLayout.qml
@@ -24,9 +24,9 @@ import QtQml.Models 2.11
 import org.videolan.vlc 0.1
 
 import "qrc:///style/"
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 
-Utils.NavigableFocusScope {
+Widgets.NavigableFocusScope {
     id: playerButtonsLayout
     property alias model: buttonsRepeater.model
     property var defaultSize: VLCStyle.icon_medium
@@ -67,7 +67,7 @@ RowLayout{
                 }
                 buttonloader.item.focus = true
 
-                if(buttonloader.item instanceof Utils.IconToolButton)
+                if(buttonloader.item instanceof Widgets.IconToolButton)
                     buttonloader.item.size = model.size === PlayerControlBarModel.WIDGET_BIG ?
                                 VLCStyle.icon_large : playerButtonsLayout.defaultSize
 
diff --git a/modules/gui/qt/player/qml/PlayerMenu.qml b/modules/gui/qt/player/qml/PlayerMenu.qml
index 73eb1f2bcc..872559a3e5 100644
--- a/modules/gui/qt/player/qml/PlayerMenu.qml
+++ b/modules/gui/qt/player/qml/PlayerMenu.qml
@@ -25,7 +25,7 @@ import QtQml.Models 2.11
 import org.videolan.vlc 0.1
 
 import "qrc:///style/"
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 
 T.Menu {
     id: control
diff --git a/modules/gui/qt/player/qml/PlayerMenuItem.qml b/modules/gui/qt/player/qml/PlayerMenuItem.qml
index a4da4bc2f5..cb157cabec 100644
--- a/modules/gui/qt/player/qml/PlayerMenuItem.qml
+++ b/modules/gui/qt/player/qml/PlayerMenuItem.qml
@@ -26,8 +26,8 @@ import QtQml.Models 2.11
 import org.videolan.vlc 0.1
 
 import "qrc:///style/"
-import "qrc:///utils/" as Utils
-import "qrc:///utils/KeyHelper.js" as KeyHelper
+import "qrc:///widgets/" as Widgets
+import "qrc:///util/KeyHelper.js" as KeyHelper
 
 T.MenuItem {
     id: control
diff --git a/modules/gui/qt/player/qml/TeletextWidget.qml b/modules/gui/qt/player/qml/TeletextWidget.qml
index f69a0bb055..3bf47e3798 100644
--- a/modules/gui/qt/player/qml/TeletextWidget.qml
+++ b/modules/gui/qt/player/qml/TeletextWidget.qml
@@ -22,7 +22,7 @@ import QtQuick.Controls 2.4
 
 import org.videolan.vlc 0.1
 
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 import "qrc:///style/"
 
 FocusScope{
@@ -46,7 +46,7 @@ FocusScope{
 
         spacing: 0
 
-        Utils.IconToolButton{
+        Widgets.IconToolButton{
             id: teleActivateBtn
             paintOnly: widgetfscope.paintOnly
             iconText: VLCIcons.tv
@@ -60,7 +60,7 @@ FocusScope{
                                      teleTransparencyBtn : blueKeyBtn.KeyNavigation.right
         }
 
-        Utils.IconToolButton{
+        Widgets.IconToolButton{
             id: teleTransparencyBtn
             paintOnly: widgetfscope.paintOnly
             iconText: VLCIcons.tvtelx
@@ -73,7 +73,7 @@ FocusScope{
             KeyNavigation.right: telePageNumber
         }
 
-        Utils.SpinBoxExt{
+        Widgets.SpinBoxExt{
             id: telePageNumber
             enabled: player.teletextEnabled
             from: 100
@@ -85,7 +85,7 @@ FocusScope{
             KeyNavigation.right: indexKeyBtn
         }
 
-        Utils.IconToolButton{
+        Widgets.IconToolButton{
             id: indexKeyBtn
             paintOnly: widgetfscope.paintOnly
             enabled: player.teletextEnabled
@@ -97,7 +97,7 @@ FocusScope{
             colorDisabled: "grey"
             KeyNavigation.right: redKeyBtn
         }
-        Utils.IconToolButton{
+        Widgets.IconToolButton{
             id: redKeyBtn
             paintOnly: widgetfscope.paintOnly
             enabled: player.teletextEnabled
@@ -109,7 +109,7 @@ FocusScope{
             colorDisabled: "grey"
             KeyNavigation.right: greenKeyBtn
         }
-        Utils.IconToolButton{
+        Widgets.IconToolButton{
             id: greenKeyBtn
             paintOnly: widgetfscope.paintOnly
             enabled: player.teletextEnabled
@@ -121,7 +121,7 @@ FocusScope{
             colorDisabled: "grey"
             KeyNavigation.right: yellowKeyBtn
         }
-        Utils.IconToolButton{
+        Widgets.IconToolButton{
             id: yellowKeyBtn
             paintOnly: widgetfscope.paintOnly
             enabled: player.teletextEnabled
@@ -133,7 +133,7 @@ FocusScope{
             colorDisabled: "grey"
             KeyNavigation.right: blueKeyBtn
         }
-        Utils.IconToolButton{
+        Widgets.IconToolButton{
             id: blueKeyBtn
             paintOnly: widgetfscope.paintOnly
             enabled: player.teletextEnabled
diff --git a/modules/gui/qt/player/qml/TopBar.qml b/modules/gui/qt/player/qml/TopBar.qml
index 57357348de..f5aa6f36d2 100644
--- a/modules/gui/qt/player/qml/TopBar.qml
+++ b/modules/gui/qt/player/qml/TopBar.qml
@@ -22,9 +22,9 @@ import QtQuick.Layouts 1.3
 import org.videolan.vlc 0.1
 
 import "qrc:///style/"
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 
-Utils.NavigableFocusScope{
+Widgets.NavigableFocusScope{
     id: topFocusScope
     height: topcontrolContent.implicitHeight
     property bool noAutoHide: false
@@ -64,7 +64,7 @@ Utils.NavigableFocusScope{
                 anchors.leftMargin:  VLCStyle.margin_xsmall
                 anchors.rightMargin: VLCStyle.margin_xsmall
 
-                Utils.IconToolButton {
+                Widgets.IconToolButton {
                     id: backBtn
                     objectName: "IconToolButton"
                     size: VLCStyle.icon_normal
@@ -85,7 +85,7 @@ Utils.NavigableFocusScope{
                     Layout.fillWidth: true
                 }
 
-                Utils.IconToolButton {
+                Widgets.IconToolButton {
                     id: playlistBtn
                     objectName: PlayerControlBarModel.PLAYLIST_BUTTON
                     size: VLCStyle.icon_normal
diff --git a/modules/gui/qt/player/qml/TrackInfo.qml b/modules/gui/qt/player/qml/TrackInfo.qml
index ea088454bb..4024c87242 100644
--- a/modules/gui/qt/player/qml/TrackInfo.qml
+++ b/modules/gui/qt/player/qml/TrackInfo.qml
@@ -21,7 +21,7 @@ import QtQuick.Layouts 1.3
 import org.videolan.vlc 0.1
 
 import "qrc:///style/"
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 
 Item {
     id: root
diff --git a/modules/gui/qt/player/qml/VolumeWidget.qml b/modules/gui/qt/player/qml/VolumeWidget.qml
index e88bbc1310..45ae581f7f 100644
--- a/modules/gui/qt/player/qml/VolumeWidget.qml
+++ b/modules/gui/qt/player/qml/VolumeWidget.qml
@@ -20,9 +20,9 @@ import QtQuick.Layouts 1.3
 import QtQuick.Controls 2.4
 import QtGraphicalEffects 1.0
 
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 import "qrc:///style/"
-import "qrc:///utils/KeyHelper.js" as KeyHelper
+import "qrc:///util/KeyHelper.js" as KeyHelper
 
 FocusScope{
     id: widgetfscope
@@ -40,7 +40,7 @@ FocusScope{
 
     RowLayout{
         id: volumeWidget
-        Utils.IconToolButton{
+        Widgets.IconToolButton{
             id: volumeBtn
             paintOnly: widgetfscope.paintOnly
             size: VLCStyle.icon_normal
diff --git a/modules/gui/qt/playlist/qml/PLItem.qml b/modules/gui/qt/playlist/qml/PLItem.qml
index f4a48f447c..e858994782 100644
--- a/modules/gui/qt/playlist/qml/PLItem.qml
+++ b/modules/gui/qt/playlist/qml/PLItem.qml
@@ -21,7 +21,7 @@ import QtQuick.Controls 2.4
 import QtQuick.Layouts 1.3
 
 
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 import "qrc:///style/"
 
 
diff --git a/modules/gui/qt/playlist/qml/PlaylistListView.qml b/modules/gui/qt/playlist/qml/PlaylistListView.qml
index 56545473dd..6daf6849f8 100644
--- a/modules/gui/qt/playlist/qml/PlaylistListView.qml
+++ b/modules/gui/qt/playlist/qml/PlaylistListView.qml
@@ -22,11 +22,11 @@ import QtQml.Models 2.2
 
 import org.videolan.vlc 0.1
 
-import "qrc:///utils/" as Utils
-import "qrc:///utils/KeyHelper.js" as KeyHelper
+import "qrc:///widgets/" as Widgets
+import "qrc:///util/KeyHelper.js" as KeyHelper
 import "qrc:///style/"
 
-Utils.NavigableFocusScope {
+Widgets.NavigableFocusScope {
     id: root
 
     property var plmodel: PlaylistListModel {
@@ -37,7 +37,7 @@ Utils.NavigableFocusScope {
     property int rightPadding: 0
 
     //label for DnD
-    Utils.DNDLabel {
+    Widgets.DNDLabel {
         id: dragItem
     }
 
@@ -117,7 +117,7 @@ Utils.NavigableFocusScope {
         anchors.fill: parent
 
 
-    Utils.KeyNavigableListView {
+    Widgets.KeyNavigableListView {
         id: view
 
         Layout.fillWidth: true
diff --git a/modules/gui/qt/playlist/qml/PlaylistMainView.qml b/modules/gui/qt/playlist/qml/PlaylistMainView.qml
index c8e33a0bab..f31a4709df 100644
--- a/modules/gui/qt/playlist/qml/PlaylistMainView.qml
+++ b/modules/gui/qt/playlist/qml/PlaylistMainView.qml
@@ -20,7 +20,7 @@ import QtQuick 2.11
 import QtQuick.Controls 2.4
 import QtQuick.Layouts 1.3
 
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 import "qrc:///player/" as Player
 import "qrc:///style/"
 import "qrc:///menus/" as Menus
@@ -28,7 +28,7 @@ import "qrc:///menus/" as Menus
 /**
  * lightweight standalone playlist view, used when medialibrary is not loaded
  */
-Utils.NavigableFocusScope {
+Widgets.NavigableFocusScope {
     id: root
     Rectangle {
         anchors.fill: parent
diff --git a/modules/gui/qt/playlist/qml/PlaylistMenu.qml b/modules/gui/qt/playlist/qml/PlaylistMenu.qml
index 8d771fba1e..f60edb2a4b 100644
--- a/modules/gui/qt/playlist/qml/PlaylistMenu.qml
+++ b/modules/gui/qt/playlist/qml/PlaylistMenu.qml
@@ -20,11 +20,11 @@ import QtQuick.Controls 2.4
 import QtQuick.Controls.impl 2.4
 import QtQuick.Layouts 1.3
 
-import "qrc:///utils/" as Utils
-import "qrc:///utils/KeyHelper.js" as KeyHelper
+import "qrc:///widgets/" as Widgets
+import "qrc:///util/KeyHelper.js" as KeyHelper
 import "qrc:///style/"
 
-Utils.NavigableFocusScope {
+Widgets.NavigableFocusScope {
     id: overlayMenu
     visible: false
 
@@ -97,7 +97,7 @@ Utils.NavigableFocusScope {
         }
 
 
-        Utils.KeyNavigableListView {
+        Widgets.KeyNavigableListView {
             id: playlistMenu
             anchors.fill: parent
             focus: true
diff --git a/modules/gui/qt/playlist/qml/PlaylistToolbar.qml b/modules/gui/qt/playlist/qml/PlaylistToolbar.qml
index dfc7de9662..4a95c745d3 100644
--- a/modules/gui/qt/playlist/qml/PlaylistToolbar.qml
+++ b/modules/gui/qt/playlist/qml/PlaylistToolbar.qml
@@ -21,11 +21,11 @@ import QtQuick.Layouts 1.3
 
 import org.videolan.vlc 0.1
 
-import "qrc:///utils/" as Utils
-import "qrc:///utils/KeyHelper.js" as KeyHelper
+import "qrc:///widgets/" as Widgets
+import "qrc:///util/KeyHelper.js" as KeyHelper
 import "qrc:///style/"
 
-Utils.NavigableFocusScope {
+Widgets.NavigableFocusScope {
     id: playlistToolbar
 
     property int leftPadding: 0
@@ -45,7 +45,7 @@ Utils.NavigableFocusScope {
 
             spacing: VLCStyle.margin_normal
 
-            Utils.IconToolButton {
+            Widgets.IconToolButton {
                 id: loop
                 Layout.alignment: Qt.AlignHCenter
                 //Layout.minimumWidth: VLCStyle.icon_normal * 2
@@ -58,7 +58,7 @@ Utils.NavigableFocusScope {
                 focusPolicy: Qt.NoFocus
             }
 
-            Utils.IconToolButton {
+            Widgets.IconToolButton {
                 id: shuffle
                 Layout.alignment: Qt.AlignHCenter
                 //Layout.minimumWidth: VLCStyle.icon_normal * 2
@@ -82,7 +82,7 @@ Utils.NavigableFocusScope {
                 elide: Text.ElideRight
             }
 
-            Utils.SortControl {
+            Widgets.SortControl {
                 id: sort
                 Layout.alignment: Qt.AlignHCenter
                 //Layout.minimumWidth: VLCStyle.icon_normal * 2
@@ -111,7 +111,7 @@ Utils.NavigableFocusScope {
                 navigationParent: playlistToolbar
             }
 
-            Utils.IconToolButton {
+            Widgets.IconToolButton {
                 id: clear
                 Layout.alignment: Qt.AlignHCenter
                 //Layout.minimumWidth: VLCStyle.icon_normal * 2
diff --git a/modules/gui/qt/vlc.qrc b/modules/gui/qt/vlc.qrc
index 5ac5dea23f..63ca6e19ac 100644
--- a/modules/gui/qt/vlc.qrc
+++ b/modules/gui/qt/vlc.qrc
@@ -175,7 +175,7 @@
         <file alias="BannerSources.qml">maininterface/qml/BannerSources.qml</file>
         <file alias="MainInterface.qml">maininterface/qml/MainInterface.qml</file>
     </qresource>
-    <qresource prefix="/utils">
+    <qresource prefix="/widgets">
         <file alias="BusyIndicatorExt.qml">widgets/qml/BusyIndicatorExt.qml</file>
         <file alias="GridItem.qml">widgets/qml/GridItem.qml</file>
         <file alias="ListItem.qml">widgets/qml/ListItem.qml</file>
@@ -207,6 +207,8 @@
         <file alias="NavigableCol.qml">widgets/qml/NavigableCol.qml</file>
         <file alias="NavigableRow.qml">widgets/qml/NavigableRow.qml</file>
         <file alias="TabButtonExt.qml">widgets/qml/TabButtonExt.qml</file>
+    </qresource>
+    <qresource prefix="/util">
         <file alias="SelectableDelegateModel.qml">util/qml/SelectableDelegateModel.qml</file>
         <file alias="KeyHelper.js">util/qml/KeyHelper.js</file>
     </qresource>
diff --git a/modules/gui/qt/widgets/qml/ContextButton.qml b/modules/gui/qt/widgets/qml/ContextButton.qml
index 9da324c07c..72eeba5712 100644
--- a/modules/gui/qt/widgets/qml/ContextButton.qml
+++ b/modules/gui/qt/widgets/qml/ContextButton.qml
@@ -18,7 +18,7 @@
 import QtQuick 2.11
 import QtQuick.Controls 2.4
 
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 import "qrc:///style/"
 
 
diff --git a/modules/gui/qt/widgets/qml/ExpandGridView.qml b/modules/gui/qt/widgets/qml/ExpandGridView.qml
index 6e2242bc48..6d4c24dcda 100644
--- a/modules/gui/qt/widgets/qml/ExpandGridView.qml
+++ b/modules/gui/qt/widgets/qml/ExpandGridView.qml
@@ -17,7 +17,7 @@
  *****************************************************************************/
 import QtQuick 2.11
 import QtQuick.Controls 2.4
-import "KeyHelper.js" as KeyHelper
+import "qrc:///util/KeyHelper.js" as KeyHelper
 
 NavigableFocusScope {
     id: root
diff --git a/modules/gui/qt/widgets/qml/GridItem.qml b/modules/gui/qt/widgets/qml/GridItem.qml
index 1975bc4924..818997f1b7 100644
--- a/modules/gui/qt/widgets/qml/GridItem.qml
+++ b/modules/gui/qt/widgets/qml/GridItem.qml
@@ -22,7 +22,7 @@ import QtQml.Models 2.2
 import QtGraphicalEffects 1.0
 import org.videolan.medialib 0.1
 
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 import "qrc:///style/"
 
 Rectangle {
diff --git a/modules/gui/qt/widgets/qml/KeyNavigableGridView.qml b/modules/gui/qt/widgets/qml/KeyNavigableGridView.qml
index d6ed7561eb..69c65747bf 100644
--- a/modules/gui/qt/widgets/qml/KeyNavigableGridView.qml
+++ b/modules/gui/qt/widgets/qml/KeyNavigableGridView.qml
@@ -17,7 +17,7 @@
  *****************************************************************************/
 import QtQuick 2.11
 import QtQuick.Controls 2.4
-import "KeyHelper.js" as KeyHelper
+import "qrc:///util/KeyHelper.js" as KeyHelper
 
 
 NavigableFocusScope {
diff --git a/modules/gui/qt/widgets/qml/KeyNavigableListView.qml b/modules/gui/qt/widgets/qml/KeyNavigableListView.qml
index 995260747d..bc28d98959 100644
--- a/modules/gui/qt/widgets/qml/KeyNavigableListView.qml
+++ b/modules/gui/qt/widgets/qml/KeyNavigableListView.qml
@@ -19,7 +19,7 @@ import QtQuick 2.11
 import QtQuick.Controls 2.4
 
 import "qrc:///style/"
-import "KeyHelper.js" as KeyHelper
+import "qrc:///util/KeyHelper.js" as KeyHelper
 
 NavigableFocusScope {
     id: listview_id
@@ -207,4 +207,3 @@ NavigableFocusScope {
         visible: view.orientation === ListView.Horizontal && (view.contentWidth - view.width - view.contentX) > 0
     }
 }
-
diff --git a/modules/gui/qt/widgets/qml/KeyNavigableTableView.qml b/modules/gui/qt/widgets/qml/KeyNavigableTableView.qml
index a52ae49961..2fc2899731 100644
--- a/modules/gui/qt/widgets/qml/KeyNavigableTableView.qml
+++ b/modules/gui/qt/widgets/qml/KeyNavigableTableView.qml
@@ -21,7 +21,8 @@ import QtQml.Models 2.2
 import QtQuick.Layouts 1.3
 import QtGraphicalEffects 1.0
 
-import "qrc:///utils/" as Utils
+import "qrc:///util/" as Util
+import "qrc:///widgets/" as Widgets
 import "qrc:///style/"
 
 NavigableFocusScope {
@@ -54,7 +55,7 @@ NavigableFocusScope {
 
     Accessible.role: Accessible.Table
 
-    Utils.SelectableDelegateModel {
+    Util.SelectableDelegateModel {
         id: delegateModel
 
         model: root.model
diff --git a/modules/gui/qt/widgets/qml/ListItem.qml b/modules/gui/qt/widgets/qml/ListItem.qml
index 0caf351db4..5522f62af7 100644
--- a/modules/gui/qt/widgets/qml/ListItem.qml
+++ b/modules/gui/qt/widgets/qml/ListItem.qml
@@ -22,7 +22,7 @@ import QtQuick.Layouts 1.3
 import QtGraphicalEffects 1.0
 
 import "qrc:///style/"
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 
 NavigableFocusScope {
     id: root
diff --git a/modules/gui/qt/widgets/qml/NavigableFocusScope.qml b/modules/gui/qt/widgets/qml/NavigableFocusScope.qml
index 6929eebf93..3bf58fe1f8 100644
--- a/modules/gui/qt/widgets/qml/NavigableFocusScope.qml
+++ b/modules/gui/qt/widgets/qml/NavigableFocusScope.qml
@@ -17,7 +17,7 @@
  *****************************************************************************/
 import QtQuick 2.11
 import QtQuick.Controls 2.4
-import "KeyHelper.js" as KeyHelper
+import "qrc:///util/KeyHelper.js" as KeyHelper
 
 /*
  * This class is designed to be inherited, It provide basic key handling to navigate between view
diff --git a/modules/gui/qt/widgets/qml/SearchBox.qml b/modules/gui/qt/widgets/qml/SearchBox.qml
index 4c15297526..ebf02957ab 100644
--- a/modules/gui/qt/widgets/qml/SearchBox.qml
+++ b/modules/gui/qt/widgets/qml/SearchBox.qml
@@ -19,9 +19,9 @@ import QtQuick 2.11
 import QtQuick.Controls 2.4
 
 import "qrc:///style/"
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 
-Utils.NavigableFocusScope {
+Widgets.NavigableFocusScope {
 
     id: root
 
@@ -93,7 +93,7 @@ Utils.NavigableFocusScope {
         Row {
             id: content
 
-            Utils.IconToolButton {
+            Widgets.IconToolButton {
                 id: icon
 
                 size: VLCStyle.icon_normal
diff --git a/modules/gui/qt/widgets/qml/SortControl.qml b/modules/gui/qt/widgets/qml/SortControl.qml
index fee13bfd15..2ad91afa49 100644
--- a/modules/gui/qt/widgets/qml/SortControl.qml
+++ b/modules/gui/qt/widgets/qml/SortControl.qml
@@ -19,9 +19,9 @@ import QtQuick 2.11
 import QtQuick.Controls 2.4
 
 import "qrc:///style/"
-import "qrc:///utils/" as Utils
+import "qrc:///widgets/" as Widgets
 
-Utils.NavigableFocusScope {
+Widgets.NavigableFocusScope {
     id: root
 
     width: childrenRect.width
@@ -48,7 +48,7 @@ Utils.NavigableFocusScope {
             popup.close()
     }
 
-    Utils.IconToolButton {
+    Widgets.IconToolButton {
         id: button
 
         size: VLCStyle.icon_normal



More information about the vlc-commits mailing list