refs #304, Icons, using new CIcon class

This commit is contained in:
Klaus Basan
2014-08-02 22:03:18 +02:00
parent 5873ec9359
commit 42f89ebeca
20 changed files with 151 additions and 59 deletions

View File

@@ -8,6 +8,7 @@
*/
#include "namevariantpair.h"
#include "iconlist.h"
#include "blackmisc/blackmiscfreefunctions.h"
namespace BlackMisc
@@ -16,10 +17,26 @@ namespace BlackMisc
/*
* Constructor
*/
CNameVariantPair::CNameVariantPair(const QString &name, const CVariant &variant)
: m_name(name), m_variant(variant)
CNameVariantPair::CNameVariantPair(const QString &name, const CVariant &variant, const CIcon &icon)
: m_name(name), m_variant(variant), m_icon(icon)
{ }
/*
* Icon
*/
const CIcon &CNameVariantPair::getIcon() const
{
return this->m_icon;
}
/*
* Icon?
*/
bool CNameVariantPair::hasIcon() const
{
return this->getIcon().isSet();
}
/*
* Convert to string
*/
@@ -108,6 +125,10 @@ namespace BlackMisc
return QVariant(this->m_name);
case IndexVariant:
return this->m_variant.toQVariant();
case IndexIcon:
return this->m_icon.toQVariant();
case IndexPixmap:
return this->m_icon.toPixmap();
default:
break;
}
@@ -130,6 +151,17 @@ namespace BlackMisc
case IndexVariant:
this->m_variant = variant;
break;
case IndexIcon:
if (variant.canConvert<int>())
{
CIcons::IconIndexes index = static_cast<CIcons::IconIndexes>(variant.toInt());
this->m_icon = CIconList::iconForIndex(index);
}
else
{
this->m_icon = variant.value<BlackMisc::CIcon>();
}
break;
default:
Q_ASSERT_X(false, "CNameVariantPair", "index unknown");
break;