void ProjectModel::finishMetadataUpdate(ThreadWeaver::Job * _job) { UpdateStatsJob* job = static_cast<UpdateStatsJob *>(_job); if (job->m_status == -2) { delete job; return; } if ((m_dirsWaitingForMetadata.contains(m_activeNode)) && (job->m_status == 0)) { m_dirsWaitingForMetadata.remove(m_activeNode); //store the results setMetadataForDir(m_activeNode, m_activeJob->m_info); QModelIndex item = indexForNode(m_activeNode); //scan dubdirs - initiate data loading into the model. for (int row=0; row < m_activeNode->rows.count(); row++) { QModelIndex child = index(row, 0, item); if (canFetchMore(child)) fetchMore(child); //QCoreApplication::processEvents(); } } delete m_activeJob; startNewMetadataJob(); }
void ProjectModel::startNewMetadataJob() { if (!m_completeScan) //hack for debugging return; m_activeJob = NULL; m_activeNode = NULL; if (m_dirsWaitingForMetadata.isEmpty()) return; ProjectNode* node = *m_dirsWaitingForMetadata.begin(); //prepare new work m_activeNode = node; QList<KFileItem> files; QModelIndex item = indexForNode(node); for (int row=0; row < node->rows.count(); row ++) files.append(itemForIndex(index(row, 0, item))); m_activeJob = new UpdateStatsJob(files, this); connect( m_activeJob,SIGNAL(done(ThreadWeaver::Job*)), this,SLOT(finishMetadataUpdate(ThreadWeaver::Job*))); m_weaver->enqueue(m_activeJob); }
void ComponentView::updateDescription(const ModelNode &node) { int nodeIndex = indexForNode(node); if (nodeIndex > -1) m_standardItemModel->item(nodeIndex)->setText(descriptionForNode(node)); }
void InsertRemoveModel::insertNode(Node *parentNode, int pos, Node *node) { const QModelIndex parent = indexForNode(parentNode); int firstRow = pos; int lastRow = pos; beginInsertRows(parent, firstRow, lastRow); parentNode->children.insert(pos, node); endInsertRows(); }
QModelIndex FlatModel::parent(const QModelIndex &idx) const { QModelIndex parentIndex; if (Node *node = nodeForIndex(idx)) { FolderNode *parentNode = visibleFolderNode(node->parentFolderNode()); if (parentNode) return indexForNode(parentNode); } return parentIndex; }
void InsertRemoveModel::removeNode(Node *node) { Node *parentNode = node->parent; const QModelIndex parent = indexForNode(parentNode); int pos = rowForNode(node); int firstRow = pos; int lastRow = pos; beginRemoveRows(parent, firstRow, lastRow); parentNode->children.removeAt(pos); endRemoveRows(); }
void GSeqModel::removeNode( GEventNode* node ) { GEventNode* parentNode = node->ParentNode(); const QModelIndex parent = indexForNode(parentNode); int pos = rowForNode(node); int firstRow = pos; int lastRow = pos; beginRemoveRows(parent, firstRow, lastRow); node->SetParent(0); endRemoveRows(); }
QModelIndex AMActionHistoryModel3::indexForLogItem(AMActionLogItem3 *logItem) const{ if(!logItem) return QModelIndex(); const AMPointerTreeNode *relatedNode = itemTree_->nodeFromItem(logItem); if(!relatedNode){ AMErrorMon::alert(this, AMACTIONHISTORYMODEL_INDEXFORLOGITEM_ITEM_NOT_IN_TREE, "The action history attempted to find the index for an item not in the tree. Please report this problem to the Acquaman developers "); return QModelIndex(); } return indexForNode(relatedNode); }
void GSeqModel::insertNode( GEventNode* parentNode, int pos, GEventNode* node ) { QModelIndex parent = indexForNode(parentNode); const QList<GEventNode*> listEv = parentNode->ChildNodes(); const int numEv = listEv.count(); // if the pos is negative, we will just append the node at the end if(pos < 0 || pos > numEv) { pos = numEv; } int firstRow = pos; int lastRow = pos; beginInsertRows(parent, firstRow, lastRow); parentNode->InsertChildEvent(node, pos); endInsertRows(); }
void ProjectModel::setMetadataForDir(ProjectNode* node, const QList<KFileMetaInfo>& data) { int dataCount = data.count(); int rowsCount = node->rows.count(); Q_ASSERT(dataCount == rowsCount); for (int row = 0; row < rowsCount; row ++) node->rows[row]->setFileStats(data.at(row)); if (!dataCount) return; updateDirStats(node); QModelIndex item = indexForNode(node); QModelIndex topLeft = index(0, Graph, item); QModelIndex bottomRight = index(rowsCount - 1, ProjectModelColumnCount - 1, item); emit dataChanged(topLeft, bottomRight); }
void AMActionHistoryModel3::appendItem(AMActionLogItem3 *item) { int parentId = item->parentId(); AMPointerTreeNode *parentNode; QModelIndex parentIndex; if(parentId == -1){ parentNode = itemTree_->rootNode(); parentIndex = QModelIndex(); } else{ parentNode= idsToTreeNodes_.value(parentId); parentIndex = indexForNode(parentNode); } beginInsertRows(parentIndex, parentNode->childCount(), parentNode->childCount()); AMPointerTreeNode *pointerTreeNode = new AMPointerTreeNode(item, parentNode); idsToTreeNodes_.insert(item->id(), pointerTreeNode); parentNode->appendChildNode(pointerTreeNode); endInsertRows(); }
void ProjectModel::updateDirStats(ProjectNode* node) { node->calculateDirStats(); if (node == &m_rootNode) { updateTotalsChanged(); return; } updateDirStats(node->parent); if (node->parent->rows.count()==0 || node->parent->rows.count()>=node->rowNumber) return; QModelIndex index = indexForNode(node); kWarning()<<index.row()<<node->parent->rows.count(); if (index.row()>=node->parent->rows.count()) return; QModelIndex topLeft = index.sibling(index.row(), Graph); QModelIndex bottomRight = index.sibling(index.row(), ProjectModelColumnCount - 1); emit dataChanged(topLeft, bottomRight); }
void ComponentView::setComponentNode(const ModelNode &node) { m_componentAction->setCurrentIndex(indexForNode(node)); }
bool ComponentView::hasEntryForNode(const ModelNode &node) const { return indexForNode(node) >= 0; }