本文整理汇总了C++中QDeclarativeAbstractBinding::propertyIndex方法的典型用法代码示例。如果您正苦于以下问题:C++ QDeclarativeAbstractBinding::propertyIndex方法的具体用法?C++ QDeclarativeAbstractBinding::propertyIndex怎么用?C++ QDeclarativeAbstractBinding::propertyIndex使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QDeclarativeAbstractBinding
的用法示例。
在下文中一共展示了QDeclarativeAbstractBinding::propertyIndex方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: while
QDeclarativeAbstractBinding *
QDeclarativePropertyPrivate::setBinding(QObject *object, int coreIndex, int valueTypeIndex,
QDeclarativeAbstractBinding *newBinding, WriteFlags flags)
{
QDeclarativeDeclarativeData *data = QDeclarativeDeclarativeData::get(object, 0 != newBinding);
QDeclarativeAbstractBinding *binding = 0;
if (data && data->hasBindingBit(coreIndex)) {
binding = data->bindings;
while (binding && binding->propertyIndex() != coreIndex)
binding = binding->m_nextBinding;
}
if (binding && valueTypeIndex != -1 && binding->bindingType() == QDeclarativeAbstractBinding::ValueTypeProxy) {
int index = coreIndex | (valueTypeIndex << 24);
binding = static_cast<QDeclarativeValueTypeProxyBinding *>(binding)->binding(index);
}
if (binding)
binding->setEnabled(false);
if (newBinding)
newBinding->setEnabled(true, flags);
return binding;
}
示例2: addToObject
void QDeclarativeAbstractBinding::addToObject(QObject *object)
{
Q_ASSERT(object);
if (m_object == object)
return;
int index = propertyIndex();
removeFromObject();
Q_ASSERT(!m_prevBinding);
m_object = object;
QDeclarativeData *data = QDeclarativeData::get(object, true);
if (index & 0xFF000000) {
// Value type
int coreIndex = index & 0xFFFFFF;
// Find the value type proxy (if there is one)
QDeclarativeValueTypeProxyBinding *proxy = 0;
if (data->hasBindingBit(coreIndex)) {
QDeclarativeAbstractBinding *b = data->bindings;
while (b && b->propertyIndex() != coreIndex)
b = b->m_nextBinding;
Q_ASSERT(b && b->bindingType() == QDeclarativeAbstractBinding::ValueTypeProxy);
proxy = static_cast<QDeclarativeValueTypeProxyBinding *>(b);
}
if (!proxy)
proxy = new QDeclarativeValueTypeProxyBinding(object, coreIndex);
proxy->addToObject(object);
m_nextBinding = proxy->m_bindings;
if (m_nextBinding) m_nextBinding->m_prevBinding = &m_nextBinding;
m_prevBinding = &proxy->m_bindings;
proxy->m_bindings = this;
} else {
m_nextBinding = data->bindings;
if (m_nextBinding) m_nextBinding->m_prevBinding = &m_nextBinding;
m_prevBinding = &data->bindings;
data->bindings = this;
data->setBindingBit(m_object, index);
}
}