#include "dmlabel.h" /* #include "view/epc_label.h" #include "view/dialog_ok.h" #include "view/dialog_yes_no.h" #include #include #include #include #include #include /// \addtogroup EpcLabel /// @{ DMLabel::DMLabel(QWidget *parent) : QLabel(parent), rubberBand(QRubberBand::Rectangle, this) { cursorCrosshair = QCursor(QPixmap(":/cursors/cursor_crosshair.png")); selectROI = false; this->setMouseTracking(true); this->setMinimumSize(1,1); selectEnable = true; partType = PartType::EPC660; ctrlKeyFlag = false; altKeyFlag = false; shiftKeyFlag = false; } DMLabel::~DMLabel() { qDebug() << "-----EpcLabel destroying"; qDebug() << "-----EpcLabel destroyed"; } void DMLabel::mousePressEvent ( QMouseEvent * event ) { if(event->modifiers() == Qt::ControlModifier){ //for Pixel Info ctrlKeyFlag = true; altKeyFlag = false; }else if(event->modifiers() == Qt::AltModifier){ //for Time scope altKeyFlag = true; ctrlKeyFlag = false; }else if(event->modifiers() == Qt::ShiftModifier){ //for ROI if (partType == PartType::EPC635 || partType == PartType::EPC503){ return; } selectMarker(false); shiftKeyFlag = true; selectROI = true; rubberStartX = event->x(); rubberStartY = event->y(); if (!(partType == PartType::EPC635 || partType == PartType::EPC503)){ rubberStopY = height() - rubberStartY; } } else { ctrlKeyFlag = false; altKeyFlag = false; emit selectMarker(false); } } void DMLabel::mouseMoveEvent ( QMouseEvent * event ) { if (shiftKeyFlag && selectROI && selectEnable){ rubberStopX = event->x(); if (rubberStartX > rubberStopX){ x1 = rubberStopX; x2 = rubberStartX; }else{ x1 = rubberStartX; x2 = rubberStopX; } if (partType == PartType::EPC635 || partType == PartType::EPC503){ return; } else { if (rubberStartY > rubberStopY){ y1 = rubberStopY; y2 = rubberStartY; } else{ y1 = rubberStartY; y2 = rubberStopY; } } if(x1 < 0) x1 = 0; if(x2 > width()) x2 = width(); if(y1 < 0) y1 = 0; if(y2 > height()) y2 = height(); rubberBand.setGeometry(x1, y1, x2 - x1, y2 - y1); rubberBand.show(); } if(ctrlKeyFlag || altKeyFlag){ return; } emit mouseHover(event->x(), event->y()); } void DMLabel::mouseReleaseEvent ( QMouseEvent * event ) { if(event->button() == Qt::RightButton){ QPixmap pixmap= *this->pixmap(); QString filename = QFileDialog::getSaveFileName(this,"save image as", "", ".png"); if (!filename.isNull()){ pixmap.save(filename); } }else if(event->button() == Qt::LeftButton && selectEnable && shiftKeyFlag){ if (partType == PartType::EPC635 || partType == PartType::EPC503){ return; } shiftKeyFlag = false; ctrlKeyFlag = false; altKeyFlag = false; selectROI = false; rubberBand.hide(); selectMarker(false); emit regionSelected(x1, x2, y1, y2); } if(altKeyFlag){ emit mouseHover(event->x(), event->y()); emit selectMarker(true); emit checkTimeScope(true); } else if(ctrlKeyFlag){ emit mouseHover(event->x(), event->y()); emit selectMarker(true); } } void DMLabel::mouseDoubleClickEvent ( QMouseEvent * event ){ Q_UNUSED(event) emit mouseDoubleClick(); } void DMLabel::enterEvent ( QEvent* ) { setCursor(EpcLabel::cursorCrosshair); } void DMLabel::leaveEvent ( QEvent*) { } void DMLabel::enableSelect(bool state){ selectEnable = state; selectROI = false; } void DMLabel::setType(PartType value) { partType = value; }*/