version 2.0.0_alpha

Important! All QtWraps macros renamed!
Qt 6 support
Graphic export feature
qad_types cross-Qt small changes
This commit is contained in:
2021-03-05 13:05:23 +03:00
parent add26cf9ad
commit 7b011ed242
46 changed files with 815 additions and 219 deletions

View File

@@ -1,8 +1,5 @@
#include "piqt.h"
#include "qvariantedit.h"
#if QT_VERSION >= 0x050200
# include <QGeoCoordinate>
#endif
const QAD::Enum PI2QADEnum(const PIVariantTypes::Enum & el) {
@@ -60,24 +57,105 @@ const QVariant PI2QVariant(const PIVariant & v) {
const PIVariant Q2PIVariant(const QVariant & v) {
#if QT_VERSION_MAJOR <= 5
switch (v.type()) {
case QVariant::Bool: return PIVariant(v.toBool());
case QVariant::Int: return PIVariant(v.toInt());
case QVariant::UInt: return PIVariant(v.toUInt());
case QVariant::LongLong: return PIVariant(v.toLongLong());
case QVariant::ULongLong: return PIVariant(v.toULongLong());
case QVariant::Double: return PIVariant(v.toDouble());
case QVariant::ByteArray: return PIVariant(Q2PIByteArray(v.toByteArray()));
case QVariant::String: return PIVariant(Q2PIString(v.toString()));
case QVariant::StringList: return PIVariant(Q2PIStringList(v.toStringList()));
case QVariant::Time: return PIVariant(Q2PITime(v.toTime()));
case QVariant::Date: return PIVariant(Q2PIDate(v.toDate()));
case QVariant::DateTime: return PIVariant(Q2PIDateTime(v.toDateTime()));
case QVariant::Color: return PIVariant(Q2PIColor(v.value<QColor>()));
#else
switch (v.metaType().id()) {
#endif
#if QT_VERSION_MAJOR <= 5
case QVariant::Bool:
#else
case QMetaType::Bool:
#endif
return PIVariant(v.toBool());
#if QT_VERSION_MAJOR <= 5
case QVariant::Int:
#else
case QMetaType::Int:
#endif
return PIVariant(v.toInt());
#if QT_VERSION_MAJOR <= 5
case QVariant::UInt:
#else
case QMetaType::UInt:
#endif
return PIVariant(v.toUInt());
#if QT_VERSION_MAJOR <= 5
case QVariant::LongLong:
#else
case QMetaType::LongLong:
#endif
return PIVariant(v.toLongLong());
#if QT_VERSION_MAJOR <= 5
case QVariant::ULongLong:
#else
case QMetaType::ULongLong:
#endif
return PIVariant(v.toULongLong());
#if QT_VERSION_MAJOR <= 5
case QVariant::Double:
#else
case QMetaType::Double:
#endif
return PIVariant(v.toDouble());
#if QT_VERSION_MAJOR <= 5
case QVariant::ByteArray:
#else
case QMetaType::QByteArray:
#endif
return PIVariant(Q2PIByteArray(v.toByteArray()));
#if QT_VERSION_MAJOR <= 5
case QVariant::String:
#else
case QMetaType::QString:
#endif
return PIVariant(Q2PIString(v.toString()));
#if QT_VERSION_MAJOR <= 5
case QVariant::StringList:
#else
case QMetaType::QStringList:
#endif
return PIVariant(Q2PIStringList(v.toStringList()));
#if QT_VERSION_MAJOR <= 5
case QVariant::Time:
#else
case QMetaType::QTime:
#endif
return PIVariant(Q2PITime(v.toTime()));
#if QT_VERSION_MAJOR <= 5
case QVariant::Date:
#else
case QMetaType::QDate:
#endif
return PIVariant(Q2PIDate(v.toDate()));
#if QT_VERSION_MAJOR <= 5
case QVariant::DateTime:
#else
case QMetaType::QDateTime:
#endif
return PIVariant(Q2PIDateTime(v.toDateTime()));
#if QT_VERSION_MAJOR <= 5
case QVariant::Color:
#else
case QMetaType::QColor:
#endif
return PIVariant(Q2PIColor(v.value<QColor>()));
#if QT_VERSION_MAJOR <= 5
case QVariant::Point:
case QVariant::PointF: return PIVariant(Q2PIPoint(v.toPointF()));
case QVariant::PointF:
#else
case QMetaType::QPoint:
case QMetaType::QPointF:
#endif
return PIVariant(Q2PIPoint(v.toPointF()));
#if QT_VERSION_MAJOR <= 5
case QVariant::Rect:
case QVariant::RectF: return PIVariant(Q2PIRect(v.toRectF()));
case QVariant::RectF:
#else
case QMetaType::QRect:
case QMetaType::QRectF:
#endif
return PIVariant(Q2PIRect(v.toRectF()));
default: break;
}
if (v.canConvert<float>()) return PIVariant(v.value<float>());
@@ -126,7 +204,7 @@ const PIVariantTypes::Dir QAD2PIDir(const QAD::Dir & v) {
}
#if QT_VERSION >= 0x050200
#ifdef PIQT_HAS_GEOPOSITION
const QGeoCoordinate PI2QGeoPosition(const PIGeoPosition & v) {
PIGeoPosition p(v);
p.transformTo(PIGeoPosition::Cartesian);

View File

@@ -20,16 +20,28 @@
#ifndef PIQT_H
#define PIQT_H
#include "pimathmatrix.h"
#include "pipropertystorage.h"
#include "qad_types.h"
#include <QVector3D>
#include <QDateTime>
#include <QColor>
#if QT_VERSION >= 0x050200
#include "pimathmatrix.h"
#include "pipropertystorage.h"
#include "qad_types.h"
#include "piqt_macros.h"
#if QT_VERSION_MAJOR == 5
# if QT_VERSION >= QT_VERSION_CHECK(5, 2, 0)
# define PIQT_HAS_GEOPOSITION
# endif
#endif
#if QT_VERSION_MAJOR == 6
# if QT_VERSION >= QT_VERSION_CHECK(6, 1, 0)
# define PIQT_HAS_GEOPOSITION
# endif
#endif
#ifdef PIQT_HAS_GEOPOSITION
# include <QGeoCoordinate>
# include "pigeoposition.h"
#endif
#include "piqt_macros.h"
#include "qad_piqt_export.h"
@@ -137,7 +149,7 @@ QAD_PIQT_EXPORT const PIVariantTypes::IODevice QAD2PIIODevice(const QAD::IODevic
//inline const PIVariant QString2PIVariant(const QString & v) {return PIVariant::readFromString(QString2PIString(v));}
#if QT_VERSION >= 0x050200
#ifdef PIQT_HAS_GEOPOSITION
QAD_PIQT_EXPORT const QGeoCoordinate PI2QGeoPosition(const PIGeoPosition & v);
QAD_PIQT_EXPORT const PIGeoPosition Q2PIGeoPosition(const QGeoCoordinate & v);
#endif

View File

@@ -47,7 +47,14 @@
namespace PIQt {
template<typename T> T removePtr(T*) {}
template<typename T> QArgument<T> qargument(const T & v) {return QArgument<T>(QMetaType::typeName(qMetaTypeId<T>()), v);}
template<typename T> QArgument<T> qargument(const T & v) {
return QArgument<T>(
#if QT_VERSION_MAJOR <= 5
QMetaType::typeName(qMetaTypeId<T>())
#else
QMetaType::fromType<T>().name()
#endif
, v);}
template <typename SR, typename O, typename... ARGS>
void piqConnect(PIObject * source, const char * event, void(*func)(void*,ARGS...), O * target, SR(O::*slot)(ARGS...)) {