Na was mag das wohl sein?pronti hat geschrieben:'pTreeWidget' was not declared in this scope
QTreeWidget internal move
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
Also ich habe es so gelöst:
Code: Alles auswählen
void MyTreeWidget::dragMoveEvent(QDragMoveEvent *event)
{
bool isRootItem(false), isChildItem(false);
QList<QTreeWidgetItem *> sel_items = selectedItems();
for (int i=0; i<sel_items.size(); i++)
{
if (sel_items[i]->childCount()>0)
isRootItem=true; //rootItem with children
else if (indexOfTopLevelItem(sel_items[i]->parent())==-1)
isRootItem=true; // rooItem without children
else
isChildItem=true;
}
if (isRootItem & isChildItem) // if rootItems and childItems are selected
event->ignore();
else
{
QTreeWidgetItem *item = itemAt(event->pos());
if(item)
{
if (!isRootItem && indexOfTopLevelItem(item->parent())==-1)
event->accept();
else
event->ignore();
}
else if (isChildItem) // childItem can not become a rootItem
event->ignore();
else
event->accept();
}
}