本文整理汇总了C++中KstVectorPtr::getUsage方法的典型用法代码示例。如果您正苦于以下问题:C++ KstVectorPtr::getUsage方法的具体用法?C++ KstVectorPtr::getUsage怎么用?C++ KstVectorPtr::getUsage使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类KstVectorPtr
的用法示例。
在下文中一共展示了KstVectorPtr::getUsage方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: update
void KstObjectItem::update(bool recursive, int localUseCount) {
switch (_rtti) {
case RTTI_OBJ_DATA_VECTOR:
{
KST::vectorList.lock().readLock();
KstRVectorPtr x = kst_cast<KstRVector>(*KST::vectorList.findTag(_tag));
KST::vectorList.lock().unlock();
if (x) {
x->readLock();
// getUsage: subtract 1 for KstRVectorPtr x
bool inUse = (x->getUsage() - 1 - localUseCount) > 0;
if (inUse != _inUse) {
_inUse = inUse;
setPixmap(2, inUse ? _dm->yesPixmap() : QPixmap());
}
QString field;
if (inUse) {
field = QString::number(x->length());
} else {
field = "-";
}
if (text(3) != field) {
setText(3, field);
}
field = i18n("%3: %4 [%1..%2]").arg(x->reqStartFrame())
.arg(x->reqStartFrame() + x->reqNumFrames())
.arg(x->filename())
.arg(x->field());
if (text(4) != field) {
setText(4, field);
}
_removable = x->getUsage() == 2;
x->unlock();
}
// Hmmm what happens if this if() fails?? We become inconsistent?
break;
}
case RTTI_OBJ_STATIC_VECTOR:
{
KST::vectorList.lock().readLock();
KstSVectorPtr x = kst_cast<KstSVector>(*KST::vectorList.findTag(_tag));
KST::vectorList.lock().unlock();
if (x) {
x->readLock();
// getUsage: subtract 1 for KstRVectorPtr x
bool inUse = (x->getUsage() - 1 - localUseCount) > 0;
if (inUse != _inUse) {
_inUse = inUse;
setPixmap(2, inUse ? _dm->yesPixmap() : QPixmap());
}
QString field;
if (inUse) {
field = QString::number(x->length());
} else {
field = "-";
}
if (text(3) != field) {
setText(3, field);
}
field = i18n("%1 to %2").arg(x->min()).arg(x->max());
if (text(4) != field) {
setText(4, field);
}
_removable = x->getUsage() == 2;
x->unlock();
}
// Hmmm what happens if this if() fails?? We become inconsistent?
break;
}
case RTTI_OBJ_VECTOR:
{
KST::vectorList.lock().readLock();
KstVectorPtr x = *KST::vectorList.findTag(_tag);
KST::vectorList.lock().unlock();
if (x) {
x->readLock();
// getUsage:
// subtract 1 for KstVectorPtr x
bool inUse = (x->getUsage() - 1 - localUseCount) > 0;
if (inUse != _inUse) {
_inUse = inUse;
setPixmap(2, inUse ? _dm->yesPixmap() : QPixmap());
}
QString field = QString::number(x->length());
if (text(3) != field) {
setText(3, field);
}
field = i18n("[%1..%2]").arg(x->min()).arg(x->max());
if (text(4) != field) {
setText(4, field);
}
x->unlock();
_removable = false;
}
break;
}
case RTTI_OBJ_OBJECT:
{
KST::dataObjectList.lock().readLock();
KstDataObjectPtr x = *KST::dataObjectList.findTag(_tag.tag());
//.........这里部分代码省略.........