void BiomeView::mouseMoveEvent(QMouseEvent * a_Event) { // If there's no data displayed, bail out: if (!hasData()) { return; } if (m_IsMouseDragging) { // The user is dragging the mouse, move the view around: m_X += (m_LastX - a_Event->x()) / m_Zoom; m_Z += (m_LastY - a_Event->y()) / m_Zoom; m_LastX = a_Event->x(); m_LastY = a_Event->y(); redraw(); return; } // Update the status bar info text: int blockX = floor((a_Event->x() - width() / 2) / m_Zoom + m_X); int blockZ = floor((a_Event->y() - height() / 2) / m_Zoom + m_Z); int regionX, regionZ; Region::blockToRegion(blockX, blockZ, regionX, regionZ); int relX = blockX - regionX * 512; int relZ = blockZ - regionZ * 512; auto region = m_Cache.fetch(regionX, regionZ); int biome = (region.get() != nullptr) ? region->getRelBiome(relX, relZ) : biInvalidBiome; emit hoverChanged(blockX, blockZ, biome); }
QStyleItem::QStyleItem(QQuickPaintedItem *parent) : QQuickPaintedItem(parent), m_styleoption(0), m_itemType(Undefined), m_sunken(false), m_raised(false), m_active(true), m_selected(false), m_focus(false), m_hover(false), m_on(false), m_horizontal(true), m_sharedWidget(false), m_minimum(0), m_maximum(100), m_value(0), m_step(0), m_paintMargins(0), m_contentWidth(0), m_contentHeight(0) { if (!qApp->style()) { qWarning("\nError: No widget style available. \n\nQt Desktop Components " "currently depend on the widget module to function. \n" "Use QApplication when creating standalone executables.\n\n"); exit(-1); } m_font = qApp->font(); setFlag(QQuickItem::ItemHasContents, true); setSmooth(false); connect(this, SIGNAL(enabledChanged()), this, SLOT(updateItem())); connect(this, SIGNAL(infoChanged()), this, SLOT(updateItem())); connect(this, SIGNAL(onChanged()), this, SLOT(updateItem())); connect(this, SIGNAL(selectedChanged()), this, SLOT(updateItem())); connect(this, SIGNAL(activeChanged()), this, SLOT(updateItem())); connect(this, SIGNAL(textChanged()), this, SLOT(updateItem())); connect(this, SIGNAL(activeChanged()), this, SLOT(updateItem())); connect(this, SIGNAL(raisedChanged()), this, SLOT(updateItem())); connect(this, SIGNAL(sunkenChanged()), this, SLOT(updateItem())); connect(this, SIGNAL(hoverChanged()), this, SLOT(updateItem())); connect(this, SIGNAL(maximumChanged()), this, SLOT(updateItem())); connect(this, SIGNAL(minimumChanged()), this, SLOT(updateItem())); connect(this, SIGNAL(valueChanged()), this, SLOT(updateItem())); connect(this, SIGNAL(horizontalChanged()), this, SLOT(updateItem())); connect(this, SIGNAL(activeControlChanged()), this, SLOT(updateItem())); connect(this, SIGNAL(hasFocusChanged()), this, SLOT(updateItem())); connect(this, SIGNAL(activeControlChanged()), this, SLOT(updateItem())); connect(this, SIGNAL(elementTypeChanged()), this, SLOT(updateItem())); connect(this, SIGNAL(textChanged()), this, SLOT(updateSizeHint())); connect(this, SIGNAL(contentWidthChanged(int)), this, SLOT(updateSizeHint())); connect(this, SIGNAL(contentHeightChanged(int)), this, SLOT(updateSizeHint())); }
/*! \internal */ bool QGLPickNode::event(QEvent *e) { // ripped off from teaservice demo, but not before the same code // was ripped off and put in item3d.cpp - those should probably all // use this implementation here if (e->type() == QEvent::MouseButtonPress) { QMouseEvent *me = (QMouseEvent *)e; if (me->button() == Qt::LeftButton) emit pressed(); } else if (e->type() == QEvent::MouseButtonRelease) { QMouseEvent *me = (QMouseEvent *)e; if (me->button() == Qt::LeftButton) { emit released(); if (me->x() >= 0) // Positive: inside object, Negative: outside. emit clicked(); } } else if (e->type() == QEvent::MouseButtonDblClick) { emit doubleClicked(); } else if (e->type() == QEvent::Enter) { //m_hovering = true; emit hoverChanged(); } else if (e->type() == QEvent::Leave) { //m_hovering = false; emit hoverChanged(); } return QObject::event(e); }
ColumnHandleItem::ColumnHandleItem(qreal w, QGraphicsItem *parent) : QGraphicsItem(parent), _width(w), _boundingRect(-_width/2, 0, _width, 0), _hover(0), _moving(false), _minXPos(0), _maxXPos(0), _timeLine(350), _rulerColor(QApplication::palette().windowText().color()) { _timeLine.setUpdateInterval(20); setAcceptsHoverEvents(true); setZValue(10); setCursor(QCursor(Qt::OpenHandCursor)); connect(&_timeLine, SIGNAL(valueChanged(qreal)), this, SLOT(hoverChanged(qreal))); }
QStyleItem::QStyleItem(QDeclarativeItem *parent) : QDeclarativeItem(parent), m_dummywidget(0), m_styleoption(0), m_type(Undefined), m_sunken(false), m_raised(false), m_active(true), m_selected(false), m_focus(false), m_on(false), m_horizontal(true), m_sharedWidget(false), m_minimum(0), m_maximum(100), m_value(0), m_paintMargins(0) { setFlag(QGraphicsItem::ItemHasNoContents, false); setCacheMode(QGraphicsItem::DeviceCoordinateCache); setSmooth(true); connect(this, SIGNAL(infoChanged()), this, SLOT(updateItem())); connect(this, SIGNAL(onChanged()), this, SLOT(updateItem())); connect(this, SIGNAL(selectedChanged()), this, SLOT(updateItem())); connect(this, SIGNAL(activeChanged()), this, SLOT(updateItem())); connect(this, SIGNAL(textChanged()), this, SLOT(updateItem())); connect(this, SIGNAL(activeChanged()), this, SLOT(updateItem())); connect(this, SIGNAL(raisedChanged()), this, SLOT(updateItem())); connect(this, SIGNAL(sunkenChanged()), this, SLOT(updateItem())); connect(this, SIGNAL(hoverChanged()), this, SLOT(updateItem())); connect(this, SIGNAL(maximumChanged()), this, SLOT(updateItem())); connect(this, SIGNAL(minimumChanged()), this, SLOT(updateItem())); connect(this, SIGNAL(valueChanged()), this, SLOT(updateItem())); connect(this, SIGNAL(horizontalChanged()), this, SLOT(updateItem())); connect(this, SIGNAL(activeControlChanged()), this, SLOT(updateItem())); connect(this, SIGNAL(focusChanged()), this, SLOT(updateItem())); connect(this, SIGNAL(activeControlChanged()), this, SLOT(updateItem())); connect(this, SIGNAL(elementTypeChanged()), this, SLOT(updateItem())); }
virtual void hoverLeaveEvent( QGraphicsSceneHoverEvent * event ) { Q_UNUSED( event ) emit hoverChanged( this, false ); }
virtual void hoverEnterEvent( QGraphicsSceneHoverEvent * event ) { Q_UNUSED( event ) emit hoverChanged( this, true ); }