| 218 | } |
| 219 | |
| 220 | void SymbolBar::updateSymbol(int line, int index) |
| 221 | { |
| 222 | auto editor = qobject_cast<TextEditor *>(sender()); |
| 223 | if (!editor) |
| 224 | return; |
| 225 | |
| 226 | auto info = SymbolManager::instance()->findSymbol(editor->getFile(), line, index); |
| 227 | if (info.symbolName.isEmpty()) |
| 228 | return; |
| 229 | |
| 230 | if (!symbolItem) { |
| 231 | if (mainLayout->count() < 1) |
| 232 | return; |
| 233 | |
| 234 | symbolItem = new CurmbItem(CurmbItem::Symbol, mainLayout->count() - 1, this); |
| 235 | mainLayout->insertWidget(mainLayout->count() - 1, symbolItem); |
| 236 | connect(symbolItem, &CurmbItem::clicked, this, &SymbolBar::curmbItemClicked); |
| 237 | } |
| 238 | |
| 239 | QVariantList list { editor->getFile(), line, index }; |
| 240 | symbolItem->setUserData(list); |
| 241 | symbolItem->setText(info.symbolName); |
| 242 | symbolItem->setToolTip(info.symbolName); |
| 243 | symbolItem->setIcon(SymbolManager::instance()->iconFromKind(info.kind)); |
| 244 | } |
| 245 | |
| 246 | void SymbolBar::curmbItemClicked() |
| 247 | { |
nothing calls this directly
no test coverage detected