void FrameLabel::mouseReleaseEvent(QMouseEvent *ev) { // Update cursor position setMouseCursorPos(ev->pos()); // On left mouse button release if(ev->button()==Qt::LeftButton) { // Set leftButtonRelease flag to TRUE mouseData.leftButtonRelease=true; if(drawBox) { // Stop drawing box drawBox=false; // Save box dimensions mouseData.selectionBox.setX(box->left()); mouseData.selectionBox.setY(box->top()); mouseData.selectionBox.setWidth(box->width()); mouseData.selectionBox.setHeight(box->height()); // Set leftButtonRelease flag to TRUE mouseData.leftButtonRelease=true; // Inform main window of event emit newMouseData(mouseData); } // Set leftButtonRelease flag to FALSE mouseData.leftButtonRelease=false; } // On right mouse button release else if(ev->button()==Qt::RightButton) { // If user presses (and then releases) the right mouse button while drawing box, stop drawing box if(drawBox) drawBox=false; else { // Set rightButtonRelease flag to TRUE mouseData.rightButtonRelease=true; // Inform main window of event emit newMouseData(mouseData); // Set rightButtonRelease flag to FALSE mouseData.rightButtonRelease=false; } } } // mouseReleaseEvent()
int FrameLabel::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QLabel::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: newMouseData((*reinterpret_cast< MouseData(*)>(_a[1]))); break; case 1: onMouseMoveEvent(); break; default: ; } _id -= 2; } return _id; }