Commit c007b60b authored by Yannick Verdie's avatar Yannick Verdie

New functions with QT GUI:

Fixed bugs indicated by Vadim
parent 5cbe64da
......@@ -144,9 +144,8 @@ CV_IMPL int cvWaitKey( int arg )
timer.setSingleShot(true);
if (arg>0)
timer.start(arg);//delayms);
timer.start(arg);
//QTimer::singleShot(delayms, &guiMainThread, SLOT(timeOut()));
while(!guiMainThread._bTimeOut)
{
qApp->processEvents(QEventLoop::AllEvents);
......@@ -157,6 +156,7 @@ CV_IMPL int cvWaitKey( int arg )
result = last_key;
last_key = -1;
timer.stop();
//printf("keypressed\n");
}
mutexKey.unlock();
......@@ -724,8 +724,6 @@ CvTrackbar::~CvTrackbar()
CvWindow::CvWindow(QString arg, int arg2)
{
moveToThread(qApp->instance()->thread());
last_key = 0;
name = arg;
flags = arg2;
......@@ -826,12 +824,11 @@ void CvWindow::keyPressEvent(QKeyEvent *event)
goodKey = true;
}
//control plus Z, plus +, and plus - are used for zoom functions
//control plus (Z, +, -, up, down, left, right) are used for zoom/panning functions
if (event->modifiers() != Qt::ControlModifier && goodKey)
{
mutexKey.lock();
last_key = key;
//last_key = event->nativeVirtualKey ();
mutexKey.unlock();
key_pressed.wakeAll();
......@@ -874,7 +871,7 @@ ViewPort::ViewPort(QWidget* arg, int arg2)
drawInfo = false;
positionGrabbing = QPointF(0,0);
positionCorners = QRect(0,0,size().width(),size().height());
on_mouse = NULL;
......@@ -1115,6 +1112,8 @@ void ViewPort::mousePressEvent(QMouseEvent *event)
{
int a, b;
matrixWorld_inv.map(pt.x(),pt.y(),&a,&b);
a*=float(image2Draw->width)/float(width());
b*=float(image2Draw->height)/float(height());
on_mouse( cv_event, a, b, flags, on_mouse_param );
}
......@@ -1176,6 +1175,8 @@ void ViewPort::mouseReleaseEvent(QMouseEvent *event)
{
int a, b;
matrixWorld_inv.map(pt.x(),pt.y(),&a,&b);
a*=float(image2Draw->width)/float(width());
b*=float(image2Draw->height)/float(height());
on_mouse( cv_event, a, b, flags, on_mouse_param );
}
......@@ -1231,6 +1232,8 @@ void ViewPort::mouseDoubleClickEvent(QMouseEvent *event)
{
int a, b;
matrixWorld_inv.map(pt.x(),pt.y(),&a,&b);
a*=float(image2Draw->width)/float(width());
b*=float(image2Draw->height)/float(height());
on_mouse( cv_event, a, b, flags, on_mouse_param );
}
......@@ -1263,11 +1266,26 @@ void ViewPort::mouseMoveEvent(QMouseEvent *event)
}
cv_event = CV_EVENT_MOUSEMOVE;
switch(event->buttons())
{
case Qt::LeftButton:
flags |= CV_EVENT_FLAG_LBUTTON;
break;
case Qt::RightButton:
flags |= CV_EVENT_FLAG_RBUTTON;
break;
case Qt::MidButton:
flags |= CV_EVENT_FLAG_MBUTTON;
break;
default:;
}
if (on_mouse)
{
int a, b;
matrixWorld_inv.map(pt.x(),pt.y(),&a,&b);
a*=float(image2Draw->width)/float(width());
b*=float(image2Draw->height)/float(height());
on_mouse( cv_event, a, b, flags, on_mouse_param );
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment