X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=src%2Fvogleditor%2Fvogleditor_qapicalltreemodel.cpp;h=28e7e380aa99d070f8fbac34b89a980e5bb8e958;hb=cd54134a22a55a0ad84f169aa96075703d64dd95;hp=c89e1589c24d425f37a88ef11c249ee2a3e44149;hpb=c7738c00c15281eb251c54b04f968d823f2a247b;p=vogl diff --git a/src/vogleditor/vogleditor_qapicalltreemodel.cpp b/src/vogleditor/vogleditor_qapicalltreemodel.cpp index c89e158..28e7e38 100644 --- a/src/vogleditor/vogleditor_qapicalltreemodel.cpp +++ b/src/vogleditor/vogleditor_qapicalltreemodel.cpp @@ -454,10 +454,14 @@ vogleditor_apiCallTreeItem* vogleditor_QApiCallTreeModel::find_next_snapshot(vog { QLinkedListIterator iter(m_itemList); - if (iter.findNext(start) == false) + // if start is NULL, then search will begin from top, otherwise it will begin from the start item and search onwards + if (start != NULL) { - // the object wasn't found in the list, so just return the same item - return start; + if (iter.findNext(start) == false) + { + // the object wasn't found in the list, so just return the same item + return start; + } } // now the iterator is pointing to the desired start object in the list, @@ -546,3 +550,49 @@ vogleditor_apiCallTreeItem *vogleditor_QApiCallTreeModel::find_next_drawcall(vog return pFound; } + +vogleditor_apiCallTreeItem* vogleditor_QApiCallTreeModel::find_call_number(uint64_t callNumber) +{ + QLinkedListIterator iter(m_itemList); + + vogleditor_apiCallTreeItem* pFound = NULL; + while (iter.hasNext()) + { + vogleditor_apiCallTreeItem* pItem = iter.peekNext(); + if (pItem->apiCallItem() != NULL) + { + if (pItem->apiCallItem()->globalCallIndex() == callNumber) + { + pFound = iter.peekNext(); + break; + } + } + + iter.next(); + } + + return pFound; +} + +vogleditor_apiCallTreeItem* vogleditor_QApiCallTreeModel::find_frame_number(uint64_t frameNumber) +{ + QLinkedListIterator iter(m_itemList); + + vogleditor_apiCallTreeItem* pFound = NULL; + while (iter.hasNext()) + { + vogleditor_apiCallTreeItem* pItem = iter.peekNext(); + if (pItem->frameItem() != NULL) + { + if (pItem->frameItem()->frameNumber() == frameNumber) + { + pFound = iter.peekNext(); + break; + } + } + + iter.next(); + } + + return pFound; +}