diff --git a/piqt/CMakeLists.txt b/piqt/CMakeLists.txt index 041aaf7..6415a32 100644 --- a/piqt/CMakeLists.txt +++ b/piqt/CMakeLists.txt @@ -1,17 +1,37 @@ project(piqt) cmake_minimum_required(VERSION 2.6) option(LIB "System install" 0) -file(GLOB HDRS "./*.h") -if (LIB) - if (WIN32) - if (MINGW) - find_package(MinGW REQUIRED) - endif() +find_package(Qt4 REQUIRED) +if(LIBPROJECT) + include(PIPMacros) +else() + find_package(PIP REQUIRED) +endif() +include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${PIP_INCLUDES} ${QT_INCLUDES}) +file(GLOB HDRS "*.h") +file(GLOB CPPS "*.cpp") +if(DEFINED ENV{QNX_HOST}) + add_library(${PROJECT_NAME} STATIC ${CPPS}) +else() + add_library(${PROJECT_NAME} SHARED ${CPPS}) +endif() +set(LIBS ${QT_QTCORE_LIBRARY} ${PIP_LIBRARY}) +target_link_libraries(${PROJECT_NAME} ${LIBS}) +if(LIB) + if(WIN32) set(CMAKE_INSTALL_PREFIX ${MINGW_DIR}) install(FILES ${HDRS} DESTINATION ${MINGW_INCLUDE}) - else () + install(TARGETS ${PROJECT_NAME} DESTINATION ${MINGW_LIB}) + install(TARGETS ${PROJECT_NAME} DESTINATION ${MINGW_BIN}) + get_filename_component(QTDIR ${QT_QMAKE_EXECUTABLE} PATH) + install(TARGETS ${PROJECT_NAME} DESTINATION ${QTDIR}) + else() set(CMAKE_INSTALL_PREFIX /usr) install(FILES ${HDRS} DESTINATION ${CMAKE_INSTALL_PREFIX}/include) - endif () + install(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/lib) + endif() message(STATUS "Install to system \"${CMAKE_INSTALL_PREFIX}\"") -endif () +else() + install(TARGETS ${PROJECT_NAME} DESTINATION bin) + message(STATUS "Install to local \"bin\"") +endif() diff --git a/piqt/piqt.cpp b/piqt/piqt.cpp index 6a4cb29..f15c2e7 100644 --- a/piqt/piqt.cpp +++ b/piqt/piqt.cpp @@ -1,4 +1,49 @@ #include "piqt.h" +#include "qvariantedit.h" +const QVariant PI2QVariant(const PIVariant & v) { + switch (v.type()) { + case PIVariant::pivBool: return QVariant(v.toBool()); + case PIVariant::pivChar: + case PIVariant::pivUChar: + case PIVariant::pivShort: + case PIVariant::pivUShort: + case PIVariant::pivInt: return QVariant(v.toInt()); + case PIVariant::pivUInt: return QVariant(uint(v.toInt())); + case PIVariant::pivLLong: return QVariant(v.toLLong()); + case PIVariant::pivULLong: return QVariant(ullong(v.toLLong())); + case PIVariant::pivFloat: return QVariant(v.toFloat()); + case PIVariant::pivDouble: return QVariant(v.toDouble()); + case PIVariant::pivLDouble: return QVariant(v.toDouble()); + case PIVariant::pivByteArray: return QVariant(PI2QByteArray(v.toByteArray())); + case PIVariant::pivString: return QVariant(PI2QString(v.toString())); + case PIVariant::pivStringList: return QVariant(PI2QStringList(v.toStringList())); + case PIVariant::pivTime: return QVariant(PI2QTime(v.toTime())); + case PIVariant::pivDate: return QVariant(PI2QDate(v.toDate())); + case PIVariant::pivDateTime: return QVariant(PI2QDateTime(v.toDateTime())); + //case PIVariant::pivSystemTime: return QVariant(v.to()); + default: return QVariant(); + } + return QVariant(); +} + +const PIVariant Q2PIVariant(const QVariant & v) { + 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())); + default: return PIVariant(); + } + return PIVariant(); +} diff --git a/piqt/piqt.h b/piqt/piqt.h index 682e08f..0c2a250 100644 --- a/piqt/piqt.h +++ b/piqt/piqt.h @@ -4,6 +4,7 @@ #include "pistring.h" #include "pimathmatrix.h" #include "pitime.h" +#include "pivariant.h" #include #include #include @@ -11,6 +12,7 @@ #include #include #include +#include //inline const QString PI2QString(const PIString & v) {return QString::fromLocal8Bit(v.data());} @@ -45,6 +47,10 @@ inline const PIDate Q2PIDate(const QDate & v) {return PIDate(v.year(), v.month() inline const PITime Q2PITime(const QTime & v) {return PITime(v.hour(), v.minute(), v.second(), v.msec());} inline const PIDateTime Q2PIDateTime(const QDateTime & v) {return PIDateTime(Q2PIDate(v.date()), Q2PITime(v.time()));} +const QVariant PI2QVariant(const PIVariant & v); + +const PIVariant Q2PIVariant(const QVariant & v); + //inline const PIVariant QString2PIVariant(const QString & v) {return PIVariant::readFromString(QString2PIString(v));}