1 #pragma once
2 
3 #include <QDir>
4 #include <QList>
5 #include <QSet>
6 #include <QWidget>
7 
8 #include "preferences/usersettings.h"
9 
10 class KeyboardEventFilter;
11 class PlayerManager;
12 class ControllerManager;
13 class ControlObject;
14 class Library;
15 class VinylControlManager;
16 class EffectsManager;
17 class RecordingManager;
18 class LaunchImage;
19 
20 class SkinLoader {
21   public:
22     SkinLoader(UserSettingsPointer pConfig);
23     virtual ~SkinLoader();
24 
25     QWidget* loadConfiguredSkin(QWidget* pParent,
26             QSet<ControlObject*>* skinCreatedControls,
27             KeyboardEventFilter* pKeyboard,
28             PlayerManager* pPlayerManager,
29             ControllerManager* pControllerManager,
30             Library* pLibrary,
31             VinylControlManager* pVCMan,
32             EffectsManager* pEffectsManager,
33             RecordingManager* pRecordingManager);
34 
35     LaunchImage* loadLaunchImage(QWidget* pParent);
36 
37     QString getSkinPath(const QString& skinName) const;
38     QPixmap getSkinPreview(const QString& skinName,
39             const QString& schemeName,
40             const double devicePixelRatio) const;
41     QString getConfiguredSkinPath() const;
42     QString getDefaultSkinName() const;
43     QList<QDir> getSkinSearchPaths() const;
44 
45   private:
46     QString pickResizableSkin(const QString& oldSkin) const;
47 
48     UserSettingsPointer m_pConfig;
49 };
50