QTreeWidget internal move

Alles rund um die Programmierung mit Qt
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

pronti hat geschrieben:'pTreeWidget' was not declared in this scope
Na was mag das wohl sein? :-) Der Pointer auf das TreeWidget.
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.
pronti
Beiträge: 7
Registriert: 29. Januar 2008 13:46
Wohnort: Villach

Beitrag von pronti »

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();
	}
}
Antworten