void IconSelectButton::setCurrentIcon(const QString &iconString) { if ( m_currentIcon == iconString ) return; m_currentIcon = iconString; setText(QString()); setIcon(QIcon()); if ( iconString.size() == 1 ) { const QChar c = iconString[0]; const ushort id = fixIconId( c.unicode() ); m_currentIcon = QString(QChar(id)); setFont(iconFont()); setText(m_currentIcon); } else if ( !iconString.isEmpty() ) { const QIcon icon(iconString); if ( icon.isNull() ) m_currentIcon = QString(); else setIcon(icon); } if (m_currentIcon.isEmpty()) { setFont(QFont()); setText( tr("...", "Select/browse icon.") ); } emit currentIconChanged(m_currentIcon); }
void IconSelectButton::setCurrentIcon(const QString &iconString) { if ( m_currentIcon == iconString ) return; m_currentIcon = iconString; setText(QString()); setIcon(QIcon()); if ( iconString.size() == 1 ) { const QChar c = iconString[0]; if ( c.unicode() >= IconFirst && c.unicode() <= IconLast && QFontMetrics(iconFont()).inFont(c) ) { setFont(iconFont()); setText(iconString); } else { m_currentIcon = QString(); } } else if ( !iconString.isEmpty() ) { const QIcon icon(iconString); if ( icon.isNull() ) m_currentIcon = QString(); else setIcon(icon); } if (m_currentIcon.isEmpty()) { setFont(QFont()); setText( tr("...", "Select/browse icon.") ); } emit currentIconChanged(m_currentIcon); }