MCPcopy Create free account
hub / github.com/Codeya-IDE/deepin-ide / curmbItemClicked

Method curmbItemClicked

src/plugins/codeeditor/symbol/symbolbar.cpp:246–281  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

244}
245
246void SymbolBar::curmbItemClicked()
247{
248 CurmbItem *item = qobject_cast<CurmbItem *>(sender());
249 if (!item)
250 return;
251
252 if (!symbolView) {
253 symbolView = new SymbolView(SymbolView::Click, this);
254 symbolView->setFixedWidth(400);
255 symbolView->setWindowFlags(Qt::Popup);
256 symbolView->setClickToHide(true);
257 connect(symbolView, &SymbolView::hidden, this, &SymbolBar::resetCurmbItemState);
258 }
259
260 auto rect = item->rect();
261 auto pos = item->mapToGlobal(rect.bottomLeft());
262
263 switch (item->curmbType()) {
264 case CurmbItem::FilePath: {
265 const auto &path = item->userData().toString();
266 QFileInfo info(path);
267 symbolView->setRootPath(info.absolutePath());
268 symbolView->select(path);
269 symbolView->show(pos);
270 } break;
271 case CurmbItem::Symbol: {
272 const auto &data = item->userData().toList();
273 if (data.size() == 3 && symbolView->setSymbolPath(data[0].toString())) {
274 symbolView->selectSymbol(item->text(), data[1].toInt(), data[2].toInt());
275 symbolView->show(pos);
276 } else {
277 item->setSelected(false);
278 }
279 } break;
280 }
281}
282
283void SymbolBar::resetCurmbItemState()
284{

Callers

nothing calls this directly

Calls 14

connectFunction · 0.85
setClickToHideMethod · 0.80
curmbTypeMethod · 0.80
userDataMethod · 0.80
selectMethod · 0.80
toListMethod · 0.80
setSymbolPathMethod · 0.80
selectSymbolMethod · 0.80
setSelectedMethod · 0.80
toStringMethod · 0.45
setRootPathMethod · 0.45
showMethod · 0.45

Tested by

no test coverage detected