Example #1
0
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);
		}
	}
}
Example #2
0
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)));
}
Example #3
0
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;
    }
}
Example #5
0
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;
    }
}
Example #7
0
void PhotoDetails::slotPrevProp() {

    modifyImage();
    emit prevImage();

}