本文整理汇总了C++中DomItem::element方法的典型用法代码示例。如果您正苦于以下问题:C++ DomItem::element方法的具体用法?C++ DomItem::element怎么用?C++ DomItem::element使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DomItem
的用法示例。
在下文中一共展示了DomItem::element方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: dropMimeData
bool DomModel::dropMimeData(const QMimeData *data,
Qt::DropAction action, int row, int column, const QModelIndex &parent)
{
if (action == Qt::IgnoreAction)
return true;
if (!data->hasFormat("text/plain"))
return false;
// Find out after which row to insert
int beginRow;
if (row != -1) // given
beginRow = row;
else if (parent.isValid()) // 1st of parent item
beginRow = 0;
else // last of the root item
beginRow = rowCount(QModelIndex());
DomItem *parentItem;
if (!parent.isValid())
parentItem = rootItem;
else
parentItem = static_cast<DomItem*>(parent.internalPointer());
// Extract dropped items
QByteArray encodedData = data->data("text/plain");
QDataStream stream(&encodedData, QIODevice::ReadOnly);
QList<DomItem*> newItems;
while (!stream.atEnd()) {
quintptr p;
stream >> p;
newItems << static_cast<DomItem*>((void *)p);
}
int count = newItems.count();
switch(action) {
case Qt::MoveAction:
if (parentItem == rootItem)
return false;
for (int i=0; i<count; i++) {
DomItem *item = newItems.at(i);
QDomElement node = item->element().cloneNode().toElement();
DomItem *newItem = new DomItem(node);
insertRow(beginRow, parent, newItem);
}
break;
default:
return false;
}
return true;
}
示例2: rowCount
int DomModel::rowCount(const QModelIndex &parent) const
{
if (parent.column() > 0)
return 0;
DomItem *parentItem;
int sitesCount = 0; // This is the number of site elements of root item
if (!parent.isValid()) {
parentItem = rootItem;
sitesCount = domDocument.elementsByTagName("site").count();
}
else
parentItem = static_cast<DomItem*>(parent.internalPointer());
return parentItem->element().childNodes().count() - sitesCount;
}