Add iconName and iconUrl role to devicesModel
This commit is contained in:
@@ -7,6 +7,8 @@
|
|||||||
#include <QQmlEngine>
|
#include <QQmlEngine>
|
||||||
#include <QMutexLocker>
|
#include <QMutexLocker>
|
||||||
|
|
||||||
|
#include "iconutils.h"
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
IdRole = Qt::UserRole,
|
IdRole = Qt::UserRole,
|
||||||
DeviceTypeIdRole,
|
DeviceTypeIdRole,
|
||||||
@@ -14,7 +16,9 @@ enum {
|
|||||||
PositionRole,
|
PositionRole,
|
||||||
PositionXRole,
|
PositionXRole,
|
||||||
PositionYRole,
|
PositionYRole,
|
||||||
PositionZRole
|
PositionZRole,
|
||||||
|
IconNameRole,
|
||||||
|
IconUrlRole,
|
||||||
};
|
};
|
||||||
|
|
||||||
void DevicesModel::setController(DmxController *controller)
|
void DevicesModel::setController(DmxController *controller)
|
||||||
@@ -117,6 +121,22 @@ QVariant DevicesModel::data(const QModelIndex &index, int role) const
|
|||||||
case PositionXRole: return device.position.x();
|
case PositionXRole: return device.position.x();
|
||||||
case PositionYRole: return device.position.y();
|
case PositionYRole: return device.position.y();
|
||||||
case PositionZRole: return device.position.z();
|
case PositionZRole: return device.position.z();
|
||||||
|
case IconNameRole:
|
||||||
|
if (const auto deviceTypePtr = m_controller->lightProject().deviceTypes.findById(device.deviceTypeId))
|
||||||
|
return deviceTypePtr->iconName;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
qWarning() << "hilfe" << __LINE__;
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
case IconUrlRole:
|
||||||
|
if (const auto deviceTypePtr = m_controller->lightProject().deviceTypes.findById(device.deviceTypeId))
|
||||||
|
return getIconUrl(deviceTypePtr->iconName);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
qWarning() << "hilfe" << __LINE__;
|
||||||
|
return {};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return {};
|
return {};
|
||||||
@@ -150,6 +170,8 @@ QMap<int, QVariant> DevicesModel::itemData(const QModelIndex &index) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
const auto &device = devices.at(index.row());
|
const auto &device = devices.at(index.row());
|
||||||
|
const auto deviceTypePtr = m_controller->lightProject().deviceTypes.findById(device.deviceTypeId);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
{ Qt::DisplayRole, device.name },
|
{ Qt::DisplayRole, device.name },
|
||||||
{ IdRole, device.id },
|
{ IdRole, device.id },
|
||||||
@@ -158,7 +180,9 @@ QMap<int, QVariant> DevicesModel::itemData(const QModelIndex &index) const
|
|||||||
{ PositionRole, device.position },
|
{ PositionRole, device.position },
|
||||||
{ PositionXRole, device.position.x() },
|
{ PositionXRole, device.position.x() },
|
||||||
{ PositionYRole, device.position.y() },
|
{ PositionYRole, device.position.y() },
|
||||||
{ PositionZRole, device.position.z() }
|
{ PositionZRole, device.position.z() },
|
||||||
|
{ IconNameRole, !deviceTypePtr ? QVariant{} : deviceTypePtr->iconName },
|
||||||
|
{ IconUrlRole, !deviceTypePtr ? QVariant{} : getIconUrl(deviceTypePtr->iconName) }
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -172,7 +196,9 @@ QHash<int, QByteArray> DevicesModel::roleNames() const
|
|||||||
{ PositionRole, "position" },
|
{ PositionRole, "position" },
|
||||||
{ PositionXRole, "positionX" },
|
{ PositionXRole, "positionX" },
|
||||||
{ PositionYRole, "positionY" },
|
{ PositionYRole, "positionY" },
|
||||||
{ PositionZRole, "positionZ" }
|
{ PositionZRole, "positionZ" },
|
||||||
|
{ IconNameRole, "iconName" },
|
||||||
|
{ IconUrlRole, "iconUrl" }
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user