MCPcopy Create free account
hub / github.com/MultiMC/Launcher / mousePressEvent

Method mousePressEvent

launcher/ui/instanceview/InstanceView.cpp:270–317  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

268}
269
270void InstanceView::mousePressEvent(QMouseEvent *event)
271{
272 executeDelayedItemsLayout();
273
274 QPoint visualPos = event->pos();
275 QPoint geometryPos = event->pos() + offset();
276
277 QPersistentModelIndex index = indexAt(visualPos);
278
279 m_pressedIndex = index;
280 m_pressedAlreadySelected = selectionModel()->isSelected(m_pressedIndex);
281 m_pressedPosition = geometryPos;
282
283 VisualGroup::HitResults hitresult;
284 m_pressedCategory = categoryAt(geometryPos, hitresult);
285 if (m_pressedCategory && hitresult & VisualGroup::CheckboxHit)
286 {
287 setState(m_pressedCategory->collapsed ? ExpandingState : CollapsingState);
288 event->accept();
289 return;
290 }
291
292 if (index.isValid() && (index.flags() & Qt::ItemIsEnabled))
293 {
294 if(index != currentIndex())
295 {
296 // FIXME: better!
297 m_currentCursorColumn = -1;
298 }
299 // we disable scrollTo for mouse press so the item doesn't change position
300 // when the user is interacting with it (ie. clicking on it)
301 bool autoScroll = hasAutoScroll();
302 setAutoScroll(false);
303 selectionModel()->setCurrentIndex(index, QItemSelectionModel::NoUpdate);
304
305 setAutoScroll(autoScroll);
306 QRect rect(visualPos, visualPos);
307 setSelection(rect, QItemSelectionModel::ClearAndSelect);
308
309 // signal handlers may change the model
310 emit pressed(index);
311 }
312 else
313 {
314 // Forces a finalize() even if mouse is pressed, but not on a item
315 selectionModel()->select(QModelIndex(), QItemSelectionModel::Select);
316 }
317}
318
319void InstanceView::mouseMoveEvent(QMouseEvent *event)
320{

Callers

nothing calls this directly

Calls 5

QModelIndexClass · 0.85
isSelectedMethod · 0.80
acceptMethod · 0.45
isValidMethod · 0.45
flagsMethod · 0.45

Tested by

no test coverage detected