本文整理汇总了C++中Guard::connect方法的典型用法代码示例。如果您正苦于以下问题:C++ Guard::connect方法的具体用法?C++ Guard::connect怎么用?C++ Guard::connect使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Guard
的用法示例。
在下文中一共展示了Guard::connect方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: range
/*! \internal
\a n is in the signal index range (see QObjectPrivate::signalIndex()).
*/
void QQmlJavaScriptExpression::GuardCapture::captureProperty(QObject *o, int c, int n)
{
if (watcher->wasDeleted())
return;
Q_ASSERT(expression);
if (n == -1) {
if (!errorString) {
errorString = new QStringList;
QString preamble = QLatin1String("QQmlExpression: Expression ") +
expression->m_vtable->expressionIdentifier(expression) +
QLatin1String(" depends on non-NOTIFYable properties:");
errorString->append(preamble);
}
const QMetaObject *metaObj = o->metaObject();
QMetaProperty metaProp = metaObj->property(c);
QString error = QLatin1String(" ") +
QString::fromUtf8(metaObj->className()) +
QLatin1String("::") +
QString::fromUtf8(metaProp.name());
errorString->append(error);
} else {
// Try and find a matching guard
while (!guards.isEmpty() && !guards.first()->isConnected(o, n))
guards.takeFirst()->Delete();
Guard *g = 0;
if (!guards.isEmpty()) {
g = guards.takeFirst();
g->cancelNotify();
Q_ASSERT(g->isConnected(o, n));
} else {
g = Guard::New(expression, engine);
g->connect(o, n, engine);
}
expression->activeGuards.prepend(g);
}
}
示例2: while
void QQmlJavaScriptExpression::GuardCapture::captureProperty(QQmlNotifier *n)
{
if (expression) {
// Try and find a matching guard
while (!guards.isEmpty() && !guards.first()->isConnected(n))
guards.takeFirst()->Delete();
Guard *g = 0;
if (!guards.isEmpty()) {
g = guards.takeFirst();
g->cancelNotify();
Q_ASSERT(g->isConnected(n));
} else {
g = Guard::New(expression, engine);
g->connect(n);
}
expression->activeGuards.prepend(g);
}
}