bool TagEntry::operator ==(const TagEntry& rhs) { //Note: tree item id is not used in this function! bool res = m_scope == rhs.m_scope && m_file == rhs.m_file && m_kind == rhs.m_kind && m_parent == rhs.m_parent && m_pattern == rhs.m_pattern && m_name == rhs.m_name && m_path == rhs.m_path && m_lineNumber == rhs.m_lineNumber && GetInherits() == rhs.GetInherits() && GetAccess() == rhs.GetAccess() && GetSignature() == rhs.GetSignature() && GetTyperef() == rhs.GetTyperef(); bool res2 = m_scope == rhs.m_scope && m_file == rhs.m_file && m_kind == rhs.m_kind && m_parent == rhs.m_parent && m_pattern == rhs.m_pattern && m_name == rhs.m_name && m_path == rhs.m_path && GetInherits() == rhs.GetInherits() && GetAccess() == rhs.GetAccess() && GetSignature() == rhs.GetSignature() && GetTyperef() == rhs.GetTyperef(); if (res2 && !res) { // the entries are differs only in the line numbers m_differOnByLineNumber = true; } return res; }
void SymbolTree::AddItem(TagNode* node) { // Get node icon index TagEntry nodeData = node->GetData(); int iconIndex = GetItemIconIndex(nodeData.GetKind(), nodeData.GetAccess()); wxString displayName(nodeData.GetDisplayName()); wxTreeItemId parentHti; if (nodeData.GetName().IsEmpty()) return; wxFont font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); if (nodeData.GetKind() == wxT("prototype")) { font.SetStyle(wxFONTSTYLE_ITALIC); } if (nodeData.GetAccess() == wxT("public")) { font.SetWeight(wxFONTWEIGHT_BOLD); } //------------------------------------------------------------------------------- // We gather globals together under special node //------------------------------------------------------------------------------- if ( (nodeData.GetParent() == wxT("<global>")) && // parent is global scope m_globalsKind.find(nodeData.GetKind()) != m_globalsKind.end() ) { //the node kind is one of function, prototype or variable if (nodeData.GetKind() == wxT("prototype")) parentHti = m_prototypesNode; else parentHti = m_globalsNode; } else parentHti = node->GetParent()->GetData().GetTreeItemId(); //--------------------------------------------------------------------------------- // Macros are gathered under the 'Macros' node //--------------------------------------------------------------------------------- if (nodeData.GetKind() == wxT("macro")) { parentHti = m_macrosNode; } //only if parent is valid, we add item to the tree wxTreeItemId hti; if (parentHti.IsOk() == false) { parentHti = GetRootItem(); } if (parentHti.IsOk()) { hti = AppendItem(parentHti, // parent displayName, // display name iconIndex, // item image index iconIndex, // selected item image new MyTreeItemData(node->GetData().GetFile(), node->GetData().GetPattern(), node->GetData().GetLine())); SetItemFont(hti, font); node->GetData().SetTreeItemId( hti ); m_sortItems[parentHti.m_pItem] = true; m_items[nodeData.Key()] = hti.m_pItem; } }
void SymbolTree::UpdateGuiItem(TagEntry& data, const wxString& key) { if (!m_tree) return; TagNode* node = m_tree->Find(key); if ( node ) { // Update the new data with the gui tree item id data.SetTreeItemId( node->GetData().GetTreeItemId() ); node->SetData(data); // Update Icon if needed int iconIndex = GetItemIconIndex(data.GetKind(), data.GetAccess()); int curIconIndex = -1; wxTreeItemId itemId = node->GetData().GetTreeItemId(); if (itemId.IsOk()) { curIconIndex = GetItemImage(itemId); if (curIconIndex != iconIndex ) { // Need to update the image as well SetItemImage(node->GetData().GetTreeItemId(), iconIndex); SetItemImage(node->GetData().GetTreeItemId(), iconIndex, wxTreeItemIcon_Selected); } // if(curIconIndex != iconIndex ) //update the linenumber and file MyTreeItemData *item_data = new MyTreeItemData(data.GetFile(), data.GetPattern()); wxTreeItemData *old_data = GetItemData(itemId); if (old_data) delete old_data; SetItemData(itemId, item_data); } } }
bool TagEntry::operator ==(const TagEntry& rhs) { //Note: tree item id is not used in this function! return m_parentId == rhs.m_parentId && m_scope == rhs.m_scope && m_file == rhs.m_file && m_kind == rhs.m_kind && m_parent == rhs.m_parent && m_pattern == rhs.m_pattern && m_lineNumber == rhs.m_lineNumber && m_name == rhs.m_name && m_path == rhs.m_path && GetInherits() == rhs.GetInherits() && GetAccess() == rhs.GetAccess() && GetSignature() == rhs.GetSignature() && GetPosition() == rhs.GetPosition() && GetTyperef() == rhs.GetTyperef(); }