git-svn-id: svn://db.shs.com.ru/libs@500 a8b55f48-bf90-11e4-a774-851b48703e85

This commit is contained in:
2019-02-27 11:29:26 +00:00
parent 3ebeac0579
commit 6c579b169b
4 changed files with 101 additions and 16 deletions

View File

@@ -39,6 +39,12 @@ __QADTypesRegistrator__::__QADTypesRegistrator__() {
qRegisterMetaType<QAD::IODevice>("QAD::IODevice");
qRegisterMetaTypeStreamOperators<QAD::IODevice>("QAD::IODevice");
qRegisterMetaType<QAD::MathVector>("QAD::MathVector");
qRegisterMetaTypeStreamOperators<QAD::MathVector>("QAD::MathVector");
qRegisterMetaType<QAD::MathMatrix>("QAD::MathMatrix");
qRegisterMetaTypeStreamOperators<QAD::MathMatrix>("QAD::MathMatrix");
#if QT_VERSION >= 0x050200
QMetaType::registerConverter<QAD::Enum, int>(&QAD::Enum::selectedValue);
QMetaType::registerConverter<QAD::Enum, QString>(&QAD::Enum::selectedName);
@@ -185,6 +191,8 @@ QVariant::Type typeFromLetter(const QString & l) {
if (ft == "F") return (QVariant::Type)qMetaTypeId<QAD::File>();
if (ft == "D") return (QVariant::Type)qMetaTypeId<QAD::Dir>();
if (ft == "d") return (QVariant::Type)qMetaTypeId<QAD::IODevice>();
if (ft == "V") return (QVariant::Type)qMetaTypeId<QAD::MathVector>();
if (ft == "M") return (QVariant::Type)qMetaTypeId<QAD::MathMatrix>();
return QVariant::String;
}

View File

@@ -59,6 +59,16 @@ namespace QAD {
PropertyStorage props;
};
struct MathVector {
MathVector(const QVector<double> & vec = QVector<double>()) {v = vec;}
QVector<double> v;
};
struct MathMatrix {
MathMatrix(const QVector<QVector<double> > & mat = QVector<QVector<double> > ()) {m = mat;}
QVector<QVector<double> > m; // [Row][Column]
};
}
Q_DECLARE_METATYPE(QAD::Enumerator)
@@ -86,6 +96,16 @@ inline QDataStream & operator <<(QDataStream & s, const QAD::IODevice & v) {s <<
inline QDataStream & operator >>(QDataStream & s, QAD::IODevice & v) {s >> v.prefix >> v.mode >> v.options >> v.props; return s;}
inline QDebug operator <<(QDebug s, const QAD::IODevice & v) {s.nospace() << v.toString(); return s.space();}
Q_DECLARE_METATYPE(QAD::MathVector)
inline QDataStream & operator <<(QDataStream & s, const QAD::MathVector & v) {s << v.v; return s;}
inline QDataStream & operator >>(QDataStream & s, QAD::MathVector & v) {s >> v.v; return s;}
inline QDebug operator <<(QDebug s, const QAD::MathVector & v) {s.nospace() << "Vector " << v.v; return s.space();}
Q_DECLARE_METATYPE(QAD::MathMatrix)
inline QDataStream & operator <<(QDataStream & s, const QAD::MathMatrix & v) {s << v.m; return s;}
inline QDataStream & operator >>(QDataStream & s, QAD::MathMatrix & v) {s >> v.m; return s;}
inline QDebug operator <<(QDebug s, const QAD::MathMatrix & v) {s.nospace() << "Matrix " << v.m; return s.space();}
class __QADTypesRegistrator__ {
public: