Files
newspark110/customcontrols/dmlabel.cpp
Chenwenxuan edac2715f0 init
2024-03-06 14:54:30 +08:00

164 lines
4.0 KiB
C++

#include "dmlabel.h"
/*
#include "view/epc_label.h"
#include "view/dialog_ok.h"
#include "view/dialog_yes_no.h"
#include <QCursor>
#include <QDebug>
#include <QFileDialog>
#include <QImage>
#include <QPixmap>
#include <QString>
/// \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;
}*/