123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- #include "lhstylemanager.h"
- #include "LHQLogAPI.h"
- #include <QDebug>
- LHStyleManager* LHStyleManager::m_instance = NULL;
- LHStyleManager::LHStyleManager(QObject *parent) : QObject(parent)
- {
- m_nCurStyle = eWhiteStyle;
- }
- 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.append(widget);
- UpdateWidgetStyle(widget);
- // if(!m_widgetList.contains(widget))
- // {
- // m_widgetList.append(widget);
- // UpdateWidgetStyle(widget);
- // }else {
- // LH_WRITE_LOG_DEBUG("Widget already exist");
- // }
- }else {
- LH_WRITE_ERROR("Widget is NULL");
- }
- // qDebug() << "widget:" << widget;
- }
- void LHStyleManager::RemoveWidget(QWidget* widget)
- {
- if(widget == NULL)
- {
- return;
- }
- if(m_widgetList.contains(widget))
- {
- m_widgetList.removeOne(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);
- // LH_WRITE_LOG_DEBUG(QString("Set style file: %1").arg(strStyleFile));
- QFile file(strStyleFile);
- if(!file.open(QFile::ReadOnly))
- {
- LH_WRITE_ERROR(QString("Open qss file failed: %1").arg(strStyleFile));
- return;
- }
- // QString styleSheet = QLatin1String(file.readAll());
- QString styleSheet = 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);
- }
- emit signal_skinStyleChanged(m_nCurStyle);
- }
|