本文整理汇总了C++中ModItem类的典型用法代码示例。如果您正苦于以下问题:C++ ModItem类的具体用法?C++ ModItem怎么用?C++ ModItem使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ModItem类的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: readFromOMCWThread
/**
* Finding function : returns all ModItem whom classname equals argument className.
*/
QList<ModItem*> ModItemsTree::findInDescendantsByClass(QString className,ModItem* parent)
{
if(parent==NULL)
parent = _rootElement;
ModItem* curClass;
QList<ModItem*> curClasses;
int iChild;
int curDepth = parent->depth();
// then check children are readen
if(!parent->childrenReaden())
{
// if not, check in its direction
readFromOMCWThread(parent,curDepth+1,QString(),curDepth);
}
// looking if one child corresponds
for(iChild=0; iChild<parent->childCount(); iChild++)
{
curClass = parent->child(iChild);
if(curClass->getModClassName()==className)
curClasses.push_back(curClass);
//look deeper in children
curClasses << findInDescendantsByClass(className,curClass);
}
return curClasses;
}
示例2: QModelIndex
QModelIndex ModItemsTree::index(int row, int column, const QModelIndex &parent)
const
{
if(!_enabled)
return QModelIndex();
if(!hasIndex(row,column,parent))
return QModelIndex();
ModItem *parentComponent;
if (!parent.isValid())
parentComponent = _rootElement;
else
parentComponent = static_cast<ModItem*>(parent.internalPointer());
// looking in children
if(row>parentComponent->childCount())
return QModelIndex();
ModItem *childElement = parentComponent->child(row);
if (!childElement)
return QModelIndex();
if(!_showComponents&&(childElement->getClassRestr()==Modelica::COMPONENT))
return QModelIndex();
else
return createIndex(row, column, childElement);
}
示例3: readFromOMCWThread
/**
* Finding function : returns all ModItem whom class equals or inherits className.
*/
QList<ModItem*> ModItemsTree::findInDescendantsByInheritedClass(QString className,ModItem* parent)
{
if(parent==NULL)
parent = _rootElement;
ModItem* curChild;
QString curChildClass;
QList<ModItem*> result;
int iChild;
int curDepth = parent->depth();
// then check children are readen
if(!parent->childrenReaden())
{
// if not, check in its direction
readFromOMCWThread(parent,curDepth+1,QString(),curDepth);
}
// looking if one child corresponds
for(iChild=0;iChild<parent->childCount();iChild++)
{
curChild = parent->child(iChild);
curChildClass = curChild->getModClassName();
if((curChildClass==className)||_moomc->inherits(curChildClass,className))
result.push_back(curChild);
//look deeper in children
result << findInDescendantsByInheritedClass(className,curChild);
}
return result;
}
示例4: readFromOmc
/**
* Finding function : within parent, look for children whom fullname equals argument
*/
ModItem* ModItemsTree::findInDescendants(QString fullName,ModItem* parent)
{
if(parent==NULL)
parent = _rootElement;
ModItem* curChild;
QString curFullName = parent->name(ModItem::FULL);
int curDepth = parent->depth();
int lookingDepth = fullName.split(".").size()-1;
// check if it is this component
if(curFullName == fullName)
return parent;
//first check name compatibility
if(fullName.indexOf(curFullName)!=0)
return NULL;
// then check children are readen
if(!parent->childrenReaden())
{
// if not, check in its direction
readFromOmc(parent,lookingDepth,fullName,curDepth);
}
//get child name to visit
//QString childShortName = fullName.section(".",curDepth,curDepth);
QString childShortName = fullName;
// first remove parent name
// A ajouter la une condition if not executable else childShortName = curFullName !!!!!!
if(!fullName.endsWith(".exe"))
{
childShortName.remove(QRegExp("^"+curFullName+"\\."));
// then take first section
childShortName = childShortName.section(".",0,0);
// looking in children
for(int iChild=0;iChild<parent->childCount();iChild++)
{
curChild = parent->child(iChild);
if(curChild->name(ModItem::SHORT)==childShortName)
return findInDescendants(fullName,curChild);
}
}
else
{
for(int iChild=0;iChild<parent->childCount();iChild++)
{
curChild = parent->child(iChild);
if(curChild->name(ModItem::FULL)==childShortName)
return findInDescendants(fullName,curChild);
}
}
return NULL;
}
示例5: rootElement
bool ModItemsTree::hasChildren ( const QModelIndex & parent ) const
{
bool hasChildren;
bool triedToFind;
if(!_enabled)
return false;
ModItem *parentElement;
if (parent.column() > 0)
return false;
if (!parent.isValid())
parentElement = rootElement();
else
parentElement = static_cast<ModItem*>(parent.internalPointer());
if(parentElement->childrenReaden())
{
if(_showComponents)
return (parentElement->childCount()>0);
else
return (parentElement->childCount()-parentElement->compChildCount()>0);
}
else
{
triedToFind = true;
hasChildren = false;
QStringList children = _moomc->getClassNames(parentElement->name());
children.removeAll(QString());
if(!children.isEmpty())
hasChildren = true;
else if(parentElement->getClassRestr()==Modelica::MODEL)
{
if(!_showComponents)
{
hasChildren = false;
triedToFind = false;
}
else
{
// look if has component children
QStringList compNames;
QStringList compClasses;
_moomc->getContainedComponents(parentElement->getModClassName(),compNames,compClasses,true);
hasChildren = (!compNames.isEmpty());
}
}
if(triedToFind && !hasChildren)
parentElement->setChildrenReaden(true); // avoid re-reading
return hasChildren;
}
}
示例6: fetchMore
void ModItemsTree::fetchMore ( const QModelIndex & parent )
{
if(!_enabled)
return;
if (!parent.isValid())
return;
ModItem *item = static_cast<ModItem*>(parent.internalPointer());
if(item)
{
if(!item->childrenReaden())
readFromOMCWThread(item,_modLoader->getDepthMax());
}
}
示例7: while
/**
* Finding function : returns all components whom classname equals argument className.
*/
QList<ModItem*> ModItemsTree::findCompOfClassInDescendants(QString className,ModItem* parent)
{
if(parent==NULL)
parent = _rootElement;
ModItem* curComponent;
QList<ModItem*> curComponents;
int iChild;
int nbCompChild = parent->compChildCount();
int nbModelChild = parent->modelChildCount();
int nbPackageChild = parent->packageChildCount();
// looking if one child corresponds
for(iChild=0; iChild<nbCompChild; iChild++)
{
curComponent = parent->compChild(iChild);
if(curComponent->getFieldValue(ModComponent::CLASSNAME)==className)
curComponents.push_back(curComponent);
}
//look deeper in components children
iChild=0;
while(iChild<nbCompChild)
{
curComponents << findCompOfClassInDescendants(className,parent->compChild(iChild));
iChild++;
}
//look deeper in models children
iChild=0;
while(iChild<nbModelChild)
{
curComponents << findCompOfClassInDescendants(className,parent->modelChild(iChild));
iChild++;
}
//look deeper in packages children
iChild=0;
while(iChild<nbPackageChild)
{
curComponents << findCompOfClassInDescendants(className,parent->packageChild(iChild));
iChild++;
}
return curComponents;
}
示例8: QVariant
QVariant ModItemsTree::data(const QModelIndex &index, int role) const
{
if(_enabled)
{
if (!index.isValid())
return QVariant();
if (role != Qt::DisplayRole && role !=Qt::ToolTipRole && role != Qt::DecorationRole)
return QVariant();
if(index.column()<0 || index.column()>=ModItem::nbFields)
return QVariant();
ModItem *item = static_cast<ModItem*>(index.internalPointer());
if(item)
{
if(role==Qt::DecorationRole)
return getModelicaNodeIcon(item);
// fullfiling is now done in ::fetchmore
// if(!item->childrenReaden())
// readFromOmcV2(item,1);
if (role == Qt::ToolTipRole)
{
QString tooltip = item->getStrToolTip();
return tooltip;
}
// if display, only display short name (since hierarchy is visible)
if((role == Qt::DisplayRole) && (index.column()==ModItem::NAME))
return item->name(ModItem::SHORT);
return item->getFieldValue(index.column(),role);
}
else
{
return QVariant();
}
}
else
return QVariant();
}
示例9: canFetchMore
bool ModItemsTree::canFetchMore ( const QModelIndex & parent ) const
{
ModItem *item = static_cast<ModItem*>(parent.internalPointer());
if(!_enabled)
return false;
if (!parent.isValid())
return false;
if(parent.column()<0 || parent.column()>=ModItem::nbFields)
return false;
// ModItem *item = static_cast<ModItem*>(parent.internalPointer());
if(item && !item->childrenReaden())
return true;
else
return false;
}
示例10: rowCount
int ModItemsTree::rowCount(const QModelIndex &parent) const
{
if(!_enabled)
return 0;
ModItem *parentElement;
if (parent.column() > 0)
return 0;
if (!parent.isValid())
parentElement = _rootElement;
else
parentElement = static_cast<ModItem*>(parent.internalPointer());
int count = parentElement->childCount();
if(!_showComponents)
count-=parentElement->compChildCount();
return count;
}
示例11: QMimeData
QMimeData* ModItemsTree::mimeData(const QModelIndexList &indexes) const
{
QMimeData *mimeData = new QMimeData();
QString csv;
// select only first column indexes (since selection is made by row)
QModelIndexList rowIndexes;
QList<ModItem*> items;
for(int i=0;i<indexes.size();i++)
{
if(indexes.at(i).column()==0)
{
rowIndexes.push_back(indexes.at(i));
items.push_back((ModItem*)indexes.at(i).internalPointer());
}
}
// Remove children of contained parents -> avoid twice copying
QList<ModItem*> uniqueItems;
for(int i=0;i<items.size();i++)
{
// if(!items.contains(items.at(i)->parent()) || (items.at(i)->parent()==_rootElement))
uniqueItems.push_back(items.at(i));
}
// create text data
for(int i=0;i<uniqueItems.size();i++)
{
ModItem* item = uniqueItems.at(i);
csv.push_back(item->name(ModItem::FULL)+"\n");
}
if(csv.size()>0)
csv.remove(csv.size()-QString("\n").size(),QString("\n").size());
mimeData->setText(csv);
mimeData->setData("application/ModItemName",csv.toAscii());
return mimeData;
}
示例12: findCompOfInheritingClassesInDescendants
/**
* Finding function : returns all components whom classname inherits argument className.
* In a multimap since there are different classNames here.
* @param classFilter : stop seeking in parent class does not go through this filter
*/
void ModItemsTree::findCompOfInheritingClassesInDescendants(QStringList classNames,ModItem* parent,QMultiMap<QString,ModItem*> &result,QRegExp classFilter)
{
if(parent==NULL)
return;
ModItem* curComponent;
int iChild;
QString curCompClass;
QString parentClass = parent->getModClassName();
if(classFilter.isValid() && !parentClass.contains(classFilter))
return ;// no need to carry on
int curDepth = parent->depth();
// then check children are readen
if(!parent->childrenReaden())
{
// if not, check in its direction
readFromOMCWThread(parent,curDepth+1,QString(),curDepth);
}
int nbCompChild = parent->compChildCount();
int nbModelChild = parent->modelChildCount();
int nbPackageChild = parent->packageChildCount();
// looking if one child corresponds
for(iChild=0;iChild<nbCompChild;iChild++)
{
curComponent = parent->compChild(iChild);
curCompClass = curComponent->getModClassName();
foreach(QString className, classNames)
{
if((curCompClass==className)||_moomc->inherits(curCompClass,className))
result.insert(className,curComponent);
}
}
//look deeper in components children
iChild=0;
while(iChild<nbCompChild)
{
findCompOfInheritingClassesInDescendants(classNames,parent->compChild(iChild),result);
iChild++;
}
//look deeper in models children
iChild=0;
while(iChild<nbModelChild)
{
findCompOfInheritingClassesInDescendants(classNames,parent->modelChild(iChild),result);
iChild++;
}
//look deeper in packages children
iChild=0;
while(iChild<nbPackageChild)
{
findCompOfInheritingClassesInDescendants(classNames,parent->packageChild(iChild),result);
iChild++;
}
}