Mercurial > projects > qtd
view cpp/qt_qtd/qtd_core.cpp @ 248:7664de4a55e5
Fixed #23.
QtD_QObjectEntity is not created dynamically for shell classes any more.
Class initialization is now performed by static constructors.
When wrapping QObjects returned from functions, their run-time types are now taken into account.
QObjects are allocated on GC heap, a doubly-linked list is used to prevent them from been collected (arguably a better solution than allocating on C heap and adding GC ranges)
Minor changes (including unnecessary).
author | maxter |
---|---|
date | Thu, 20 Aug 2009 14:47:17 +0000 |
parents | 27497bbe62a1 |
children | 37eed70de029 |
line wrap: on
line source
/** * * Copyright: Copyright QtD Team, 2008-2009 * License: <a href="http://www.boost.org/LICENSE_1_0.txt>Boost License 1.0</a> * * Copyright QtD Team, 2008-2009 * Distributed under the Boost Software License, Version 1.0. * (See accompanying file boost-license-1.0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) * */ #include "qtd_core.h" #include <iostream> extern "C" DLL_PUBLIC QModelIndex qtd_to_QModelIndex(QModelIndexAccessor mia) { return * (QModelIndex *) (&mia) ; } extern "C" DLL_PUBLIC QModelIndexAccessor qtd_from_QModelIndex(const QModelIndex &index) { QModelIndexAccessor mia = { index.row(), index.column(), index.internalPointer(), (QAbstractItemModel *) index.model() }; return mia; } extern "C" DLL_PUBLIC const char* qtd_qVersion() { return qVersion(); } extern "C" DLL_PUBLIC bool qtd_qSharedBuild() { return qSharedBuild(); } #ifdef CPP_SHARED QTD_EXPORT_VAR(qtd_toUtf8); QTD_EXPORT_VAR(qtd_dummy); extern "C" DLL_PUBLIC void qtd_core_initCallBacks(pfunc_abstr d_func, pfunc_abstr dummy) { QTD_EXPORT_VAR_SET(qtd_toUtf8, d_func); QTD_EXPORT_VAR_SET(qtd_dummy, dummy); //std::cout << "qtd_core initialized" << std::endl; } #endif extern bool qRegisterResourceData (int, const unsigned char *, const unsigned char *, const unsigned char *); extern bool qUnregisterResourceData (int, const unsigned char *, const unsigned char *, const unsigned char *); extern "C" DLL_PUBLIC bool qtd_register_resource_data(int version, const unsigned char *tree, const unsigned char *name, const unsigned char *data) { return qRegisterResourceData(version, tree, name, data); } extern "C" DLL_PUBLIC bool qtd_unregister_resource_data(int version, const unsigned char *tree, const unsigned char *name, const unsigned char *data) { return qUnregisterResourceData(version, tree, name, data); }