void LLDBLocalsView::GetWatchesFromSelections(wxArrayTreeItemIds& items)
{
    items.Clear();
    wxArrayTreeItemIds arr;
    m_treeList->GetSelections(arr);

    for(size_t i = 0; i < arr.GetCount(); ++i) {
        wxTreeItemId item = arr.Item(i);
        if(!GetItemData(item)) continue;
        LLDBVariableClientData* data = GetItemData(item);
        if(!data) continue;

        LLDBVariable::Ptr_t lldbVar = data->GetVariable();
        if(!lldbVar) continue;

        if(lldbVar->IsWatch()) {
            items.Add(item);
        }
    }
}
void LLDBLocalsView::OnDelete(wxCommandEvent& event)
{
    wxArrayTreeItemIds items;
    GetWatchesFromSelections(items);
    if(items.IsEmpty()) return;

    for(size_t i = 0; i < items.GetCount(); ++i) {
        wxTreeItemId item = items.Item(i);
        if(!GetItemData(item)) continue;
        LLDBVariableClientData* data = GetItemData(item);
        if(!data) continue;

        LLDBVariable::Ptr_t lldbVar = data->GetVariable();
        if(!lldbVar) continue;

        if(lldbVar->IsWatch()) {
            m_plugin->GetLLDB()->DeleteWatch(lldbVar->GetLldbId());
        }
    }
    // Refresh the locals view
    m_plugin->GetLLDB()->RequestLocals();
}