nodeparamtable: bare bones table view for node inputs
This commit is contained in:
+52
-33
@@ -185,6 +185,58 @@ NodeEdgePtr NodeParam::DisconnectForNewOutput(NodeInput *input)
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
QString NodeParam::GetPrettyDataTypeName(const NodeParam::DataType &type)
|
||||
{
|
||||
switch (type) {
|
||||
case kNone:
|
||||
return tr("None");
|
||||
case kInt:
|
||||
case kCombo:
|
||||
return tr("Integer");
|
||||
case kFloat:
|
||||
return tr("Float");
|
||||
case kRational:
|
||||
return tr("Rational");
|
||||
case kBoolean:
|
||||
return tr("Boolean");
|
||||
case kColor:
|
||||
return tr("Color");
|
||||
case kMatrix:
|
||||
return tr("Matrix");
|
||||
case kText:
|
||||
return tr("Text");
|
||||
case kFont:
|
||||
return tr("Font");
|
||||
case kFile:
|
||||
return tr("File");
|
||||
case kTexture:
|
||||
return tr("Texture");
|
||||
case kSamples:
|
||||
return tr("Samples");
|
||||
case kFootage:
|
||||
return tr("Footage");
|
||||
case kVec2:
|
||||
return tr("Vector 2D");
|
||||
case kVec3:
|
||||
return tr("Vector 3D");
|
||||
case kVec4:
|
||||
return tr("Vector 4D");
|
||||
|
||||
case kDecimal:
|
||||
case kNumber:
|
||||
case kString:
|
||||
case kBuffer:
|
||||
case kVector:
|
||||
case kShaderJob:
|
||||
case kSampleJob:
|
||||
case kGenerateJob:
|
||||
case kAny:
|
||||
break;
|
||||
}
|
||||
|
||||
return tr("Unknown");
|
||||
}
|
||||
|
||||
QByteArray NodeParam::ValueToBytes(const NodeParam::DataType &type, const QVariant &value)
|
||||
{
|
||||
switch (type) {
|
||||
@@ -222,39 +274,6 @@ QByteArray NodeParam::ValueToBytes(const NodeParam::DataType &type, const QVaria
|
||||
return QByteArray();
|
||||
}
|
||||
|
||||
NodeParam::DataType NodeParam::StringToDataType(const QString &s)
|
||||
{
|
||||
QString type_id = s.toLower();
|
||||
|
||||
if (type_id == QStringLiteral("float")) {
|
||||
return kFloat;
|
||||
} else if (type_id == QStringLiteral("int")) {
|
||||
return kInt;
|
||||
} else if (type_id == QStringLiteral("rational")) {
|
||||
return kRational;
|
||||
} else if (type_id == QStringLiteral("bool")) {
|
||||
return kBoolean;
|
||||
} else if (type_id == QStringLiteral("color")) {
|
||||
return kColor;
|
||||
} else if (type_id == QStringLiteral("matrix")) {
|
||||
return kMatrix;
|
||||
} else if (type_id == QStringLiteral("text")) {
|
||||
return kText;
|
||||
} else if (type_id == QStringLiteral("texture")) {
|
||||
return kTexture;
|
||||
} else if (type_id == QStringLiteral("vec2")) {
|
||||
return kVec2;
|
||||
} else if (type_id == QStringLiteral("vec3")) {
|
||||
return kVec3;
|
||||
} else if (type_id == QStringLiteral("vec4")) {
|
||||
return kVec4;
|
||||
} else if (type_id == QStringLiteral("combo")) {
|
||||
return kCombo;
|
||||
}
|
||||
|
||||
return kAny;
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
QByteArray NodeParam::ValueToBytesInternal(const QVariant &v)
|
||||
{
|
||||
|
||||
+1
-6
@@ -378,18 +378,13 @@ public:
|
||||
/**
|
||||
* @brief Get a human-readable translated name for a certain data type
|
||||
*/
|
||||
static QString GetDefaultDataTypeName(const DataType &type);
|
||||
static QString GetPrettyDataTypeName(const DataType &type);
|
||||
|
||||
/**
|
||||
* @brief Convert a value from a NodeParam into bytes
|
||||
*/
|
||||
static QByteArray ValueToBytes(const DataType &type, const QVariant& value);
|
||||
|
||||
/**
|
||||
* @brief Convert a string to a data type
|
||||
*/
|
||||
static DataType StringToDataType(const QString& s);
|
||||
|
||||
signals:
|
||||
/**
|
||||
* @brief Signal emitted when an edge is added to this parameter
|
||||
|
||||
@@ -61,26 +61,11 @@ NodeValue::NodeValue(const NodeParam::DataType &type, const QVariant &data, cons
|
||||
{
|
||||
}
|
||||
|
||||
const NodeParam::DataType &NodeValue::type() const
|
||||
{
|
||||
return type_;
|
||||
}
|
||||
|
||||
const QString &NodeValue::tag() const
|
||||
{
|
||||
return tag_;
|
||||
}
|
||||
|
||||
bool NodeValue::operator==(const NodeValue &rhs) const
|
||||
{
|
||||
return type_ == rhs.type_ && tag_ == rhs.tag_ && data_ == rhs.data_;
|
||||
}
|
||||
|
||||
const QVariant &NodeValue::data() const
|
||||
{
|
||||
return data_;
|
||||
}
|
||||
|
||||
QVariant NodeValueTable::Get(const NodeParam::DataType &type, const QString &tag) const
|
||||
{
|
||||
return GetWithMeta(type, tag).data();
|
||||
|
||||
+29
-3
@@ -33,9 +33,25 @@ public:
|
||||
NodeValue();
|
||||
NodeValue(const NodeParam::DataType& type, const QVariant& data, const Node* from, const QString& tag = QString());
|
||||
|
||||
const NodeParam::DataType& type() const;
|
||||
const QVariant& data() const;
|
||||
const QString& tag() const;
|
||||
const NodeParam::DataType& type() const
|
||||
{
|
||||
return type_;
|
||||
}
|
||||
|
||||
const QVariant& data() const
|
||||
{
|
||||
return data_;
|
||||
}
|
||||
|
||||
const QString& tag() const
|
||||
{
|
||||
return tag_;
|
||||
}
|
||||
|
||||
const Node* source() const
|
||||
{
|
||||
return from_;
|
||||
}
|
||||
|
||||
bool operator==(const NodeValue& rhs) const;
|
||||
|
||||
@@ -90,6 +106,16 @@ public:
|
||||
|
||||
NodeValueTable Merge() const;
|
||||
|
||||
using const_iterator = QHash<QString, NodeValueTable>::const_iterator;
|
||||
|
||||
inline QHash<QString, NodeValueTable>::const_iterator begin() const {
|
||||
return tables_.cbegin();
|
||||
}
|
||||
|
||||
inline QHash<QString, NodeValueTable>::const_iterator end() const {
|
||||
return tables_.cend();
|
||||
}
|
||||
|
||||
private:
|
||||
QHash<QString, NodeValueTable> tables_;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user