int QTreeWidgetItemProto::childIndicatorPolicy() const { QTreeWidgetItem *item = qscriptvalue_cast<QTreeWidgetItem*>(thisObject()); if (item) return item->childIndicatorPolicy(); return 0; }
void BsonTreeWidget::contextMenuEvent(QContextMenuEvent *event) { QTreeWidgetItem *item = itemAt(event->pos()); BsonTreeItem *documentItem = dynamic_cast<BsonTreeItem *>(item); bool isEditable = _queryInfo.isNull ? false : true; bool onItem = documentItem ? true : false; bool isSimple = documentItem ? (documentItem->isSimpleType() || documentItem->isUuidType()) : false; QMenu menu(this); if (item && item->childIndicatorPolicy() == QTreeWidgetItem::ShowIndicator) { menu.addAction(_expandRecursive); menu.addSeparator(); } if (onItem && isEditable) menu.addAction(_editDocumentAction); if (onItem) menu.addAction(_viewDocumentAction); if (isEditable) menu.addAction(_insertDocumentAction); if (onItem && isSimple) menu.addSeparator(); if (onItem && isSimple) menu.addAction(_copyValueAction); if (onItem && isEditable) menu.addSeparator(); if (onItem && isEditable) menu.addAction(_deleteDocumentAction); QPoint menuPoint = mapToGlobal(event->pos()); menuPoint.setY(menuPoint.y() + header()->height()); menu.exec(menuPoint); }
void BsonTreeWidget::expandNode(QTreeWidgetItem *item) { if(item){ ui_itemExpanded(item); item->setExpanded(true); for(int i = 0;i<item->childCount();++i){ QTreeWidgetItem *tritem = item->child(i); if(tritem&&tritem->childIndicatorPolicy()==QTreeWidgetItem::ShowIndicator){ expandNode(tritem); } } } }