コード例 #1
0
ファイル: iconfactory.cpp プロジェクト: rygwdn/CopyQ
QIcon IconFactory::getIcon(const QString &themeName, ushort id, const QColor &color,
                           const QColor &activeColor)
{
    // Icon from theme
    if ( (!m_loaded || useSystemIcons()) && !themeName.isEmpty() ) {
        QIcon icon = QIcon::fromTheme(themeName);
        if ( !icon.isNull() )
            return icon;
    }

    // Icon with different color than for QMenu
    if ( color != m_iconColor || activeColor != m_iconColorActive ) {
        QIcon icon( createPixmap(id, color) );
        if ( activeColor.isValid() )
            icon.addPixmap( createPixmap(id, activeColor), QIcon::Selected );
        return icon;
    }

    IconCache::iterator it = m_iconCache.find(id);
    if ( it == m_iconCache.end() ) {
        QIcon icon( createPixmap(id, m_iconColor) );
        if ( m_iconColorActive.isValid() ) {
            icon.addPixmap( createPixmap(id, m_iconColorActive), QIcon::Active );
            icon.addPixmap( createPixmap(id, m_iconColorActive), QIcon::Selected );
        }
        it = m_iconCache.insert(id, icon);
    }

    return *it;
}
コード例 #2
0
ファイル: iconfactory.cpp プロジェクト: libbkmz/CopyQ
const QIcon IconFactory::getIcon(const QString &themeName, ushort id)
{
    IconCache::iterator it = m_iconCache.find(id);
    if ( it == m_iconCache.end() ) {
        if ( (!isLoaded() || useSystemIcons()) && !themeName.isEmpty() ) {
            QIcon icon = QIcon::fromTheme(themeName);
            if ( !icon.isNull() )
                return icon;
        }

        QIcon icon( getPixmap(id) );
        it = m_iconCache.insert(id, icon);
    }

    return *it;
}