Exemple #1
0
/* Gibt einen Node zurück, der sich in list
 * befindet und mit ->next auf myNode zeigt.
 * Diese Funktion wird benötigt, um myNode aus
 * der Liste löschen zu können.
 */
node * findPrevItem(node * myNode, node* list)
{
	if (list == 0) { puts("Error! List for findPrevItem is empty"); return 0;}

	if ( list->next == myNode )
		return list;
	else
	{
		if (list->next != 0)
			return findPrevItem(myNode, list->next);
		else
			return 0;
	}
}
Exemple #2
0
/* Entfernt einen Freispeicherknoten aus
 * der Freispeicherliste und dem Freispeicher-Baum
 */
void removeFreeNode(node * myNode)
{
	if (myNode==0)
		return;

	/* Loesche Speicher aus Liste */
	int index = -1;
	if (myNode->size > MAXSIZE) index = 32;
	else index = myNode->size / 8 - 1;

	node * prev = findPrevItem(myNode, freeMem[index]);
	if (prev == 0) freeMem[index] = 0;
	else prev->next = myNode->next;

	/* Loesche Speicher aus Baum */
	removeFromTree(myNode, &freeTree);
}
void TreeWidget::moveToPrevActiveItem()
{
    QTreeWidgetItem* item = findPrevItem(currentItem(), 1, TreeRole::Badge);
    if (item)
        setCurrentItem(item);
}