| 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);}
 |