MCPcopy Create free account
hub / github.com/OpenBoard-org/OpenBoard / itemChange

Method itemChange

src/domain/UBGraphicsItemDelegate.cpp:287–356  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

285
286
287QVariant UBGraphicsItemDelegate::itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value)
288{
289 std::shared_ptr<UBGraphicsScene>ubScene = castUBGraphicsScene();
290 switch (static_cast<int>(change))
291 {
292 case QGraphicsItem::ItemSelectedHasChanged :
293 {
294 if (ubScene) {
295 if (value.toBool()) { //selected(true)
296 if (delegated()->data(UBGraphicsItemData::ItemIsHiddenOnDisplay).toBool())
297 {
298 showHide(false);
299 }
300 ubScene->setSelectedZLevel(delegated());
301 } else {
302 ubScene->setOwnZlevel(delegated());
303 if (delegated()->data(UBGraphicsItemData::ItemIsHiddenOnDisplay).toBool())
304 {
305 showHide(true);
306 }
307 freeControls();
308 }
309 }
310 break;
311 }
312 case QGraphicsItem::ItemVisibleHasChanged :
313 {
314 bool shownOnDisplay = mDelegated->data(UBGraphicsItemData::ItemLayerType).toInt() != UBItemLayerType::Control;
315 showHide(shownOnDisplay);
316 break;
317 }
318 case QGraphicsItem::ItemPositionHasChanged :
319 case QGraphicsItem::ItemTransformHasChanged :
320 case QGraphicsItem::ItemZValueHasChanged :
321 {
322 if (ubScene)
323 {
324 ubScene->setModified(true);
325 }
326
327 if (controlsExist())
328 {
329 mAntiScaleRatio = 1 / (UBApplication::boardController->systemScaleFactor() * UBApplication::boardController->currentZoom());
330 positionHandles();
331 break;
332 }
333
334 break;
335 }
336 }
337
338#ifdef DEBUG_Z_LEVEL
339 if (change == QGraphicsItem::ItemZValueHasChanged)
340 {
341 qreal newZ = qvariant_cast<double>(value);
342
343 qDebug() << newZ;
344

Callers

nothing calls this directly

Calls 8

setSelectedZLevelMethod · 0.80
setOwnZlevelMethod · 0.80
setModifiedMethod · 0.80
systemScaleFactorMethod · 0.80
currentZoomMethod · 0.80
setTextMethod · 0.80
dataMethod · 0.45
boundingRectMethod · 0.45

Tested by

no test coverage detected