![]() |
Mixxx
|
00001 // skinloader.cpp 00002 // Created 6/21/2010 by RJ Ryan (rryan@mit.edu) 00003 00004 #include <QString> 00005 #include <QDir> 00006 #include <QtDebug> 00007 00008 #include "vinylcontrol/vinylcontrolmanager.h" 00009 #include "skin/skinloader.h" 00010 #include "skin/legacyskinparser.h" 00011 00012 #include "library/library.h" 00013 #include "playermanager.h" 00014 00015 SkinLoader::SkinLoader(ConfigObject<ConfigValue>* pConfig) : 00016 m_pConfig(pConfig) { 00017 00018 00019 } 00020 00021 SkinLoader::~SkinLoader() { 00022 LegacySkinParser::freeChannelStrings(); 00023 } 00024 00025 QString SkinLoader::getConfiguredSkinPath() { 00026 const QString defaultSkin = "Deere1280x800-WXGA";//XXX: App Store //"Outline1024x600-Netbook"; 00027 00028 QString qSkinPath = m_pConfig->getConfigPath(); 00029 qSkinPath.append("skins/"); 00030 00031 QDir skinPath(qSkinPath); 00032 00033 if (skinPath.exists()) { 00034 // Is the skin listed in the config database there? If not, use default skin. 00035 00036 QString configSkin = m_pConfig->getValueString(ConfigKey("[Config]","Skin")); 00037 QString qThisSkin = qSkinPath + configSkin; 00038 QDir thisSkin(qThisSkin); 00039 00040 if (configSkin.length() > 0 && thisSkin.exists()) { 00041 qSkinPath = qThisSkin; 00042 } else { 00043 m_pConfig->set(ConfigKey("[Config]","Skin"), ConfigValue(defaultSkin)); 00044 qSkinPath.append(defaultSkin); 00045 } 00046 } else { 00047 qCritical() << "Skin directory does not exist:" << qSkinPath; 00048 } 00049 00050 return qSkinPath; 00051 } 00052 00053 QWidget* SkinLoader::loadDefaultSkin(QWidget* pParent, 00054 MixxxKeyboard* pKeyboard, 00055 PlayerManager* pPlayerManager, 00056 Library* pLibrary, 00057 VinylControlManager* pVCMan) { 00058 QString skinPath = getConfiguredSkinPath(); 00059 00060 LegacySkinParser legacy(m_pConfig, pKeyboard, pPlayerManager, pLibrary, pVCMan); 00061 return legacy.parseSkin(skinPath, pParent); 00062 }