Fixed wrong offset in property invokation
This commit is contained in:
parent
ed7be34536
commit
a9c95abd57
|
@ -64,7 +64,7 @@ std::shared_ptr<const IDosQMetaObject> DosQObjectImpl::dosMetaObject() const
|
||||||
|
|
||||||
bool DosQObjectImpl::executeSlot(int index, void **args)
|
bool DosQObjectImpl::executeSlot(int index, void **args)
|
||||||
{
|
{
|
||||||
const QMetaMethod method = this->method(index);
|
const QMetaMethod method = this->method(methodOffset() + index);
|
||||||
if (!method.isValid()) {
|
if (!method.isValid()) {
|
||||||
qDebug() << "C++: executeSlot: invalid method";
|
qDebug() << "C++: executeSlot: invalid method";
|
||||||
return false;
|
return false;
|
||||||
|
@ -85,7 +85,7 @@ bool DosQObjectImpl::executeSlot(const QMetaMethod &method, void **args)
|
||||||
arguments.emplace_back(std::move(argument));
|
arguments.emplace_back(std::move(argument));
|
||||||
}
|
}
|
||||||
|
|
||||||
QVariant result = m_onSlotExecuted(method.name(), arguments); // Execute method
|
const QVariant result = m_onSlotExecuted(method.name(), arguments); // Execute method
|
||||||
|
|
||||||
if (hasReturnType && result.isValid()) {
|
if (hasReturnType && result.isValid()) {
|
||||||
QMetaType::construct(method.returnType(), args[0], result.constData());
|
QMetaType::construct(method.returnType(), args[0], result.constData());
|
||||||
|
@ -96,10 +96,10 @@ bool DosQObjectImpl::executeSlot(const QMetaMethod &method, void **args)
|
||||||
|
|
||||||
bool DosQObjectImpl::readProperty(int index, void **args)
|
bool DosQObjectImpl::readProperty(int index, void **args)
|
||||||
{
|
{
|
||||||
const QMetaProperty property = this->property(index);
|
const QMetaProperty property = this->property(propertyOffset() + index);
|
||||||
if (!property.isValid() || !property.isReadable())
|
if (!property.isValid() || !property.isReadable())
|
||||||
return false;
|
return false;
|
||||||
QMetaMethod method = dosMetaObject()->readSlot(property.name());
|
const QMetaMethod method = dosMetaObject()->readSlot(property.name());
|
||||||
if (!method.isValid()) {
|
if (!method.isValid()) {
|
||||||
qDebug() << "C++: readProperty: invalid read method for property " << property.name();
|
qDebug() << "C++: readProperty: invalid read method for property " << property.name();
|
||||||
return false;
|
return false;
|
||||||
|
@ -109,10 +109,10 @@ bool DosQObjectImpl::readProperty(int index, void **args)
|
||||||
|
|
||||||
bool DosQObjectImpl::writeProperty(int index, void **args)
|
bool DosQObjectImpl::writeProperty(int index, void **args)
|
||||||
{
|
{
|
||||||
const QMetaProperty property = this->property(index);
|
const QMetaProperty property = this->property(propertyOffset() + index);
|
||||||
if (!property.isValid() || !property.isWritable())
|
if (!property.isValid() || !property.isWritable())
|
||||||
return false;
|
return false;
|
||||||
QMetaMethod method = dosMetaObject()->writeSlot(property.name());
|
const QMetaMethod method = dosMetaObject()->writeSlot(property.name());
|
||||||
if (!method.isValid()) {
|
if (!method.isValid()) {
|
||||||
qDebug() << "C++: writeProperty: invalid write method for property " << property.name();
|
qDebug() << "C++: writeProperty: invalid write method for property " << property.name();
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Reference in New Issue