void MainGraphicsView::keyPressEvent(QKeyEvent *event) { if(event->modifiers() & Qt::ControlModifier) { switch (event->key()) { case Qt::Key_Plus: scaleView(qreal(1.2)); break; case Qt::Key_Minus: case Qt::Key_Equal: scaleView(1 / qreal(1.2)); break; default: QGraphicsView::keyPressEvent(event); } } else { switch (event->key()) { case Qt::Key_Left: emit prevImage(); break; case Qt::Key_Right: emit nextImage(); break; default: QGraphicsView::keyPressEvent(event); } } }
ImgViewer::ImgViewer(QWidget *parent) : QWidget(parent), ui(new Ui::ImgViewer) { ui->setupUi(this); connect(ui->prevBut, SIGNAL(released()), this, SLOT(prevImage())); connect(ui->nextBut, SIGNAL(released()), this, SLOT(nextImage())); connect(ui->slider, SIGNAL(valueChanged(int)), this, SLOT(slid(int))); }
static void raster_special(int key, int x, int y) { (void) x; (void) y; switch (key) { case GLUT_KEY_PAGE_UP: /* previous logical image */ if (TIFFCurrentDirectory(tif) > 0) { if (TIFFSetDirectory(tif, TIFFCurrentDirectory(tif)-1)) { initImage(); setWindowSize(); } } else { TIFFRGBAImageEnd(&img); prevImage(); initImage(); setWindowSize(); } break; case GLUT_KEY_PAGE_DOWN: /* next logical image */ if (!TIFFLastDirectory(tif)) { if (TIFFReadDirectory(tif)) { initImage(); setWindowSize(); } } else { TIFFRGBAImageEnd(&img); nextImage(); initImage(); setWindowSize(); } break; case GLUT_KEY_HOME: /* 1st image in current file */ if (TIFFSetDirectory(tif, 0)) { TIFFRGBAImageEnd(&img); initImage(); setWindowSize(); } break; case GLUT_KEY_END: /* last image in current file */ TIFFRGBAImageEnd(&img); while (!TIFFLastDirectory(tif)) TIFFReadDirectory(tif); initImage(); setWindowSize(); break; } glutPostRedisplay(); }
/*! \fn ViewerWidget::wheelEvent(QWheelEvent* e) */ void ViewerWidget::wheelEvent(QWheelEvent* e) { switch(wheelAction) { // mousewheel triggers zoom case zoomImage: setCursor(zoomCursor); zoom(e->delta(), e->pos(), zoomfactor_scrollwheel); break; // mousewheel triggers image change case changeImage: if (e->delta() < 0) nextImage(); else prevImage(); break; } }
void MainGraphicsView::wheelEvent(QWheelEvent *event) { qreal scale = pow((double)2, event->delta() / 240.0); if(event->modifiers() & Qt::ShiftModifier) { // m_wheelCounter += scale; // qDebug() << "Scroll Delta:"<<scale<<", m_wheelCounter:"<<m_wheelCounter; // if(m_wheelCounter > 3) // m_wheelCounter = 0; if(scale > 0) emit nextImage(); else emit prevImage(); } else { scaleView(scale); } }
/*! \fn ViewerWidget::keyPressEvent(QKeyEvent *k) Handle all keyboard events. All events which are not handled trigger a help window. */ void ViewerWidget::keyPressEvent(QKeyEvent* k) { QPoint middlepoint; switch (k->key()) { // next image case Qt::Key_N: case Qt::Key_Right: case Qt::Key_Down: case Qt::Key_PageDown: case Qt::Key_Space: nextImage(); break; // previous image case Qt::Key_P: case Qt::Key_Left: case Qt::Key_Up: case Qt::Key_PageUp: prevImage(); break; // rotate image case Qt::Key_R: texture->rotate(); downloadTex(texture); updateGL(); break; // terminate image viewer case Qt::Key_Escape: // clean up: where does this have to be done? close(); break; // full screen case Qt::Key_F: // according to QT documentation, showFullScreen() has some // serious issues on window managers that do not follow modern // post-ICCCM specifications if (isFullScreen()) { texture->reset(); showNormal(); } else { texture->reset(); showFullScreen(); } break; // reset size and redraw case Qt::Key_Z: texture->reset(); updateGL(); break; // toggle permanent between "show next image" and "zoom" on mousewheel change case Qt::Key_C: if (wheelAction==zoomImage) wheelAction=changeImage; else wheelAction=zoomImage; break; // zoom in case Qt::Key_Plus: middlepoint = QPoint(width()/2,height()/2); if (texture->setSize( zoomsize )) downloadTex(texture); //load full resolution image zoom(-1, middlepoint, zoomfactor_keyboard); break; // zoom out case Qt::Key_Minus: middlepoint = QPoint(width()/2,height()/2); if (texture->setSize( zoomsize )) downloadTex(texture); //load full resolution image zoom(1, middlepoint, zoomfactor_keyboard); break; // zoom to original size case Qt::Key_O: texture->zoomToOriginal(); updateGL(); break; // toggle temorarily between "show next image" and "zoom" on mousewheel change case Qt::Key_Control: if (wheelAction == zoomImage) { //scrollwheel changes to the next image wheelAction = changeImage; } else { //scrollwheel does zoom wheelAction = zoomImage; setCursor (zoomCursor); timerMouseMove.stop(); } break; //do noting, don't trigger the help dialog case Qt::Key_Shift: break; //key is not bound to any action, therefore show help dialog to enlighten the user default: QPointer<QDialog> d = new QDialog(this); Ui::HelpDialog hd; hd.setupUi(d); d->exec(); delete d; break; } }
void PhotoDetails::slotPrevProp() { modifyImage(); emit prevImage(); }