#include "lhstylemanager.h" LHStyleManager* LHStyleManager::m_instance = NULL; LHStyleManager::LHStyleManager(QObject *parent) : QObject(parent) { m_nCurStyle = eBlackStyle; } LHStyleManager::~LHStyleManager() { if(m_instance) { delete m_instance; } } LHStyleManager *LHStyleManager::Instance() { if(m_instance != NULL) { return m_instance; } m_instance = new LHStyleManager(); return m_instance; } void LHStyleManager::AddWidget(QWidget *widget) { if(widget != NULL && !m_widgetList.contains(widget)) { m_widgetList.append(widget); UpdateWidgetStyle(widget); } } void LHStyleManager::UpdateWidgetStyle(QWidget *widget) { if(widget == NULL) { return; } QString strBasePath = QCoreApplication::applicationDirPath(); QString strStylePath; QString strName = widget->objectName().toLower(); if(m_nCurStyle == eWhiteStyle) { strStylePath = "white"; } else if(m_nCurStyle == eBlackStyle) { strStylePath = "black"; } QString strStyleFile = strBasePath + QString("/%1/%2.qss").arg(strStylePath).arg(strName); QFile file(strStyleFile); file.open(QFile::ReadOnly); QString styleSheet = QLatin1String(file.readAll()); widget->setStyleSheet(styleSheet); file.close(); } void LHStyleManager::SetSkinStyle(SkinStyle style) { if(m_nCurStyle == style) { return; } m_nCurStyle = style; for(int i = 0; i < m_widgetList.size(); i++) { QWidget* widget = m_widgetList.at(i); if(widget == NULL) continue; UpdateWidgetStyle(widget); } }