19 return QString(
"#%1%2%3")
20 .arg(
std::max(0,
std::min(255, static_cast<int>(rgbTriplet[0] * 255))), 2, 16, QLatin1Char(
'0'))
21 .arg(
std::max(0,
std::min(255, static_cast<int>(rgbTriplet[1] * 255))), 2, 16, QLatin1Char(
'0'))
22 .arg(
std::max(0,
std::min(255, static_cast<int>(rgbTriplet[2] * 255))), 2, 16, QLatin1Char(
'0'));
25 struct QmitkColoredNodeDescriptor::Impl
27 void CreateCachedIcon(
const QString &hexColorCode);
29 QHash<QString, QIcon> IconCache;
33 void QmitkColoredNodeDescriptor::Impl::CreateCachedIcon(
const QString &hexColorCode)
35 auto icon = this->IconTemplate;
36 icon.replace(QStringLiteral(
"#00ff00"), hexColorCode, Qt::CaseInsensitive);
37 this->IconCache[hexColorCode] = QPixmap::fromImage(QImage::fromData(icon.toLatin1()));
44 QFile iconTemplateFile(pathToIcon);
46 if (iconTemplateFile.open(QIODevice::ReadOnly))
47 m_Impl->IconTemplate = iconTemplateFile.readAll();
60 float rgbTriplet[] = { 1.0f, 1.0f, 1.0f };
65 if (!m_Impl->IconCache.contains(hexColorCode))
66 m_Impl->CreateCachedIcon(hexColorCode);
68 return m_Impl->IconCache[hexColorCode];
QmitkColoredNodeDescriptor(const QString &className, const QString &pathToIcon, mitk::NodePredicateBase *predicate, QObject *parent=nullptr)
Decorator class for mitk::DataNode.
static QString ConvertRGBTripletToHexColorCode(float rgbTriplet[3])
bool GetColor(float rgb[3], const mitk::BaseRenderer *renderer=nullptr, const char *propertyKey="color") const
Convenience access method for color properties (instances of ColorProperty)
~QmitkColoredNodeDescriptor() override
Interface for evaluation conditions used in the DataStorage class GetSubset() method.
Class for nodes of the DataTree.
QIcon GetIcon(const mitk::DataNode *node) const override