diff --git a/modules/gui/qt/dialogs/firstrun/firstrunwizard.cpp b/modules/gui/qt/dialogs/firstrun/firstrunwizard.cpp
index c72ce5622d48729198a334f0e32bec872a96b902..34ed77e1799d7704c5976a30cdacd5ce1db28a74 100644
--- a/modules/gui/qt/dialogs/firstrun/firstrunwizard.cpp
+++ b/modules/gui/qt/dialogs/firstrun/firstrunwizard.cpp
@@ -20,6 +20,7 @@
 #include "util/color_scheme_model.hpp"
 #include "maininterface/mainctx.hpp"
 #include "dialogs/toolbar/controlbar_profile_model.hpp"
+#include "medialibrary/medialib.hpp"
 
 #include <QPushButton>
 #include <QButtonGroup>
@@ -28,6 +29,7 @@
 #include <vlc_common.h>
 #include <vlc_configuration.h>
 #include <vlc_url.h>
+#include <vlc_cxx_helpers.hpp>
 
 FirstRunWizard::FirstRunWizard( qt_intf_t *_p_intf, QWidget *parent)
                : QWizard( parent )
diff --git a/modules/gui/qt/dialogs/systray/systray.cpp b/modules/gui/qt/dialogs/systray/systray.cpp
index 1d60071c77d04362a89085ca4add7d08f05d08f8..6640eae03e57a0c05f20bad3102fa4e7d9695dc4 100644
--- a/modules/gui/qt/dialogs/systray/systray.cpp
+++ b/modules/gui/qt/dialogs/systray/systray.cpp
@@ -21,7 +21,9 @@
 #include "menus/menus.hpp"
 #include <QSystemTrayIcon>
 #include "playlist/playlist_controller.hpp"
+#include "player/player_controller.hpp"
 #include "dialogs/dialogs_provider.hpp"
+#include "widgets/native/qvlcframe.hpp"
 
 using namespace vlc::playlist;
 
diff --git a/modules/gui/qt/maininterface/compositor_dcomp_acrylicsurface.cpp b/modules/gui/qt/maininterface/compositor_dcomp_acrylicsurface.cpp
index 190048a3d495fd524259a2a5896a753fa2aa2f3c..a5f1236cf011b8d1f0d60058310b0afc13ca8ef8 100644
--- a/modules/gui/qt/maininterface/compositor_dcomp_acrylicsurface.cpp
+++ b/modules/gui/qt/maininterface/compositor_dcomp_acrylicsurface.cpp
@@ -33,6 +33,7 @@
 #include <QWindow>
 #include <QScreen>
 #include <QLibrary>
+#include <QSettings>
 #include <versionhelpers.h>
 
 #include "compositor_dcomp.hpp"
diff --git a/modules/gui/qt/maininterface/compositor_win7.hpp b/modules/gui/qt/maininterface/compositor_win7.hpp
index 0e1c87a020fffac9738c4489404d2e86c20b7c91..90ef351002c18a9ee8f603aa5d69ba844b2dfcd4 100644
--- a/modules/gui/qt/maininterface/compositor_win7.hpp
+++ b/modules/gui/qt/maininterface/compositor_win7.hpp
@@ -21,6 +21,7 @@
 #include "compositor_dummy.hpp"
 #include "videosurface.hpp"
 #include "video_window_handler.hpp"
+#include <QWidget>
 #include <QAbstractNativeEventFilter>
 #include <memory>
 
diff --git a/modules/gui/qt/maininterface/compositor_x11.cpp b/modules/gui/qt/maininterface/compositor_x11.cpp
index 27d88381c3d203754cfb7f39cb99d102c20027ff..7c4233fb28444de0bf8278d5ffb8e2d3d4384467 100644
--- a/modules/gui/qt/maininterface/compositor_x11.cpp
+++ b/modules/gui/qt/maininterface/compositor_x11.cpp
@@ -21,6 +21,7 @@
 # include "config.h"
 #endif
 #include <vlc_window.h>
+#include <vlc_cxx_helpers.hpp>
 
 #include "compositor_x11.hpp"
 #include "compositor_x11_renderwindow.hpp"
diff --git a/modules/gui/qt/maininterface/interface_window_handler.cpp b/modules/gui/qt/maininterface/interface_window_handler.cpp
index d52177c311043dc5cc167e2909fc3b409df44cfe..5e21a32e97c65ecf96ecb29f4870541770f35fe6 100644
--- a/modules/gui/qt/maininterface/interface_window_handler.cpp
+++ b/modules/gui/qt/maininterface/interface_window_handler.cpp
@@ -22,6 +22,7 @@
 #include <playlist/playlist_controller.hpp>
 #include "util/keyhelper.hpp"
 #include "dialogs/systray/systray.hpp"
+#include "widgets/native/qvlcframe.hpp"
 #include <QScreen>
 #include <QQmlProperty>
 #include <cmath>
diff --git a/modules/gui/qt/maininterface/mainctx.cpp b/modules/gui/qt/maininterface/mainctx.cpp
index 993548d31154ae0bf2822c2d2cb251bec84844a9..3731c15f12273f55610bd0e15a684c8a100d6845 100644
--- a/modules/gui/qt/maininterface/mainctx.cpp
+++ b/modules/gui/qt/maininterface/mainctx.cpp
@@ -40,9 +40,12 @@
 #include "widgets/native/customwidgets.hpp"               // qtEventToVLCKey, QVLCStackedWidget
 #include "util/qt_dirs.hpp"                     // toNativeSeparators
 
+#include "util/color_scheme_model.hpp"
+
 #include "widgets/native/interface_widgets.hpp"     // bgWidget, videoWidget
 
 #include "playlist/playlist_controller.hpp"
+#include "player/player_controller.hpp"
 
 #include "dialogs/dialogs_provider.hpp"
 #include "dialogs/systray/systray.hpp"
diff --git a/modules/gui/qt/maininterface/mainctx.hpp b/modules/gui/qt/maininterface/mainctx.hpp
index cacb7580ba0594d2091406ff5022cc725edaa8f9..a7dfc81dd6e78445d313d03d5207837c42893e93 100644
--- a/modules/gui/qt/maininterface/mainctx.hpp
+++ b/modules/gui/qt/maininterface/mainctx.hpp
@@ -26,26 +26,18 @@
 
 #include "qt.hpp"
 
-#include "widgets/native/qvlcframe.hpp"
-#include "player/player_controller.hpp"
-#include "util/color_scheme_model.hpp"
-#include "medialibrary/medialib.hpp"
-#include <playlist/playlist_common.hpp>
-
 #include <QtQuick/QQuickView>
 #include <QApplication>
-
-#ifdef _WIN32
-# include <shobjidl.h>
-#endif
-
-#include <atomic>
+#include <QQuickItem>
 
 Q_MOC_INCLUDE( "dialogs/toolbar/controlbar_profile_model.hpp" )
 Q_MOC_INCLUDE( "util/csdbuttonmodel.hpp" )
 Q_MOC_INCLUDE( "playlist/playlist_controller.hpp" )
 Q_MOC_INCLUDE( "maininterface/mainctx_submodels.hpp" )
 Q_MOC_INCLUDE( "maininterface/videosurface.hpp" )
+Q_MOC_INCLUDE( "medialibrary/medialib.hpp" )
+Q_MOC_INCLUDE( "player/player_controller.hpp" )
+Q_MOC_INCLUDE( "util/color_scheme_model.hpp" )
 #ifdef UPDATE_CHECK
 Q_MOC_INCLUDE( "dialogs/help/help.hpp" )
 #endif
@@ -72,6 +64,9 @@ class SearchCtx;
 class SortCtx;
 class WorkerThreadSet;
 class VLCSystray;
+class MediaLib;
+class ColorSchemeModel;
+class VLCVarChoiceModel;
 #ifdef UPDATE_CHECK
 class UpdateModel;
 #endif
@@ -146,7 +141,7 @@ class MainCtx : public QObject
     Q_PROPERTY(bool preferHotkeys READ preferHotkeys WRITE setPreferHotkeys NOTIFY preferHotkeysChanged FINAL)
 
     //Property for Activating bgCone in player view
-    Q_PROPERTY(bool bgCone READ isbgCone WRITE setbgCone NOTIFY bgConeToggled FINAL) 
+    Q_PROPERTY(bool bgCone READ isbgCone WRITE setbgCone NOTIFY bgConeToggled FINAL)
     Q_PROPERTY(bool windowSuportExtendedFrame READ windowSuportExtendedFrame NOTIFY windowSuportExtendedFrameChanged)
     Q_PROPERTY(unsigned windowExtendedMargin READ windowExtendedMargin WRITE setWindowExtendedMargin NOTIFY windowExtendedMarginChanged)
     Q_PROPERTY(SearchCtx* search MEMBER m_search CONSTANT FINAL)
@@ -242,7 +237,7 @@ public:
 
     inline OsType getOSName() const {return m_osName;}
     inline int getOSVersion() const {return m_osVersion;}
-    
+
     inline bool isbgCone() const {return m_bgCone; }
     inline bool windowSuportExtendedFrame() const { return m_windowSuportExtendedFrame; }
     inline unsigned windowExtendedMargin() const { return m_windowExtendedMargin; }
@@ -413,7 +408,7 @@ public slots:
 
     void setPinVideoControls( bool );
     void setPinOpacity( float );
-    
+
     void setbgCone(bool);
     void updateIntfScaleFactor();
     void onWindowVisibilityChanged(QWindow::Visibility);
diff --git a/modules/gui/qt/maininterface/mainctx_win32.cpp b/modules/gui/qt/maininterface/mainctx_win32.cpp
index a757be6dd9de2c65b99408e62a4689c6e0d5b05c..6d401091a99f544f7a6641427b6b3f4f513f59d7 100644
--- a/modules/gui/qt/maininterface/mainctx_win32.cpp
+++ b/modules/gui/qt/maininterface/mainctx_win32.cpp
@@ -28,7 +28,6 @@
 #include "mainctx_win32.hpp"
 
 #include "maininterface/compositor.hpp"
-#include "player/player_controller.hpp"
 #include "playlist/playlist_controller.hpp"
 #include "dialogs/dialogs_provider.hpp"
 #include "widgets/native/interface_widgets.hpp"
diff --git a/modules/gui/qt/maininterface/mainctx_win32.hpp b/modules/gui/qt/maininterface/mainctx_win32.hpp
index 4db4d0a4f8526169c29ba5a6b577d99f27f5095d..7bc750f02f512f6c009cdce4cdd98368f80ad705 100644
--- a/modules/gui/qt/maininterface/mainctx_win32.hpp
+++ b/modules/gui/qt/maininterface/mainctx_win32.hpp
@@ -25,11 +25,13 @@
 #define MAIN_INTERFACE_WIN32_HPP
 
 #include "maininterface/mainctx.hpp"
+#include "player/player_controller.hpp"
 #include "interface_window_handler.hpp"
 #include <QAbstractNativeEventFilter>
 #include <wrl/client.h>
 
 #include <objbase.h>
+#include <shobjidl.h>
 
 class WinTaskbarWidget : public QObject, public QAbstractNativeEventFilter
 {
diff --git a/modules/gui/qt/medialibrary/mlfolder.cpp b/modules/gui/qt/medialibrary/mlfolder.cpp
index 064ca5d1741d4bb2a274c9f12204639ff3ee29db..f35c11c189e579fbf2f85a40685ffb671033c49a 100644
--- a/modules/gui/qt/medialibrary/mlfolder.cpp
+++ b/modules/gui/qt/medialibrary/mlfolder.cpp
@@ -19,7 +19,7 @@
  *****************************************************************************/
 
 #include "mlfolder.hpp"
-
+#include "medialibrary/medialib.hpp"
 #include "util/vlctick.hpp"
 
 // Ctor / dtor
diff --git a/modules/gui/qt/medialibrary/mlfoldersmodel.cpp b/modules/gui/qt/medialibrary/mlfoldersmodel.cpp
index 04794e3d82538843f3f54230a6e1352bb17fa134..416da4fcbee2d887377d07208f8592288e4b3991 100644
--- a/modules/gui/qt/medialibrary/mlfoldersmodel.cpp
+++ b/modules/gui/qt/medialibrary/mlfoldersmodel.cpp
@@ -17,6 +17,7 @@
  *****************************************************************************/
 
 #include "mlfoldersmodel.hpp"
+#include "medialibrary/medialib.hpp"
 #include <cassert>
 
 static const char* const ML_FOLDER_ADD_QUEUE = "ML_FOLDER_ADD_QUEUE";
diff --git a/modules/gui/qt/menus/menus.cpp b/modules/gui/qt/menus/menus.cpp
index 34224f1f5796ed8901cf09d7b543458fd05e8a2f..3014b54563d86e09eebcf46852a49efb1bcc033d 100644
--- a/modules/gui/qt/menus/menus.cpp
+++ b/modules/gui/qt/menus/menus.cpp
@@ -45,6 +45,7 @@
 #include "dialogs/extended/extended_panels.hpp"
 #include "dialogs/systray/systray.hpp"
 #include "util/varchoicemodel.hpp"
+#include "util/color_scheme_model.hpp"
 #include "medialibrary/medialib.hpp"
 #include "medialibrary/mlrecentsmodel.hpp"
 #include "medialibrary/mlbookmarkmodel.hpp"
diff --git a/modules/gui/qt/menus/qml_menu_wrapper.cpp b/modules/gui/qt/menus/qml_menu_wrapper.cpp
index 102d2bd7d571a9b98988dffeb2d679e3407b3481..51d6e546d9ab5b012c1c0385c76c18bfbaac12ca 100644
--- a/modules/gui/qt/menus/qml_menu_wrapper.cpp
+++ b/modules/gui/qt/menus/qml_menu_wrapper.cpp
@@ -23,6 +23,7 @@
 #include "medialibrary/mlbookmarkmodel.hpp"
 #include "network/networkdevicemodel.hpp"
 #include "network/networkmediamodel.hpp"
+#include "player/player_controller.hpp"
 #include "playlist/playlist_controller.hpp"
 #include "playlist/playlist_model.hpp"
 #include "dialogs/dialogs_provider.hpp"
diff --git a/modules/gui/qt/menus/qml_menu_wrapper.hpp b/modules/gui/qt/menus/qml_menu_wrapper.hpp
index 4707e16ddd4a28bfcbf2deb8ff9a2fcd81b844a6..b538a28a2439b330cf7d9188d12bb944788ca771 100644
--- a/modules/gui/qt/menus/qml_menu_wrapper.hpp
+++ b/modules/gui/qt/menus/qml_menu_wrapper.hpp
@@ -29,6 +29,7 @@
 
 Q_MOC_INCLUDE("playlist/playlist_controller.hpp")
 Q_MOC_INCLUDE("playlist/playlist_model.hpp")
+Q_MOC_INCLUDE("player/player_controller.hpp")
 Q_MOC_INCLUDE("network/networkdevicemodel.hpp")
 Q_MOC_INCLUDE("network/networkmediamodel.hpp")
 Q_MOC_INCLUDE("medialibrary/mlplaylistlistmodel.hpp")
diff --git a/modules/gui/qt/network/networkmediamodel.cpp b/modules/gui/qt/network/networkmediamodel.cpp
index 038198dba045b5d0e58512deece30b4c5752639f..dc438b1b3bd379baae64a9b9bb8706fd2aea56b7 100644
--- a/modules/gui/qt/network/networkmediamodel.cpp
+++ b/modules/gui/qt/network/networkmediamodel.cpp
@@ -20,6 +20,7 @@
 #include "mediatreelistener.hpp"
 
 #include "maininterface/mainctx.hpp"
+#include "medialibrary/medialib.hpp"
 #include "medialibrary/mlmedia.hpp"
 #include "medialibrary/mlmediastore.hpp"
 
diff --git a/modules/gui/qt/style/systempalette.cpp b/modules/gui/qt/style/systempalette.cpp
index 6749068445c71dde8d999071edaa264ae0b9ffab..86fcf871111c03a627f47c6dadeb00d937d3c3eb 100644
--- a/modules/gui/qt/style/systempalette.cpp
+++ b/modules/gui/qt/style/systempalette.cpp
@@ -22,6 +22,7 @@
 #include <QFile>
 #include <maininterface/mainctx.hpp>
 #include <vlc_modules.h>
+#include <vlc_picture.h>
 
 namespace {