Esempio n. 1
0
void ImportView::setThumbSize(int size)
{
    if (d->stackedView->viewMode() == ImportStackedView::PreviewImageMode)
    {
        double z = DZoomBar::zoomFromSize(size, zoomMin(), zoomMax());
        setZoomFactor(z);
    }
    else if (d->stackedView->viewMode() == ImportStackedView::PreviewCameraMode)
    {
        if (size > ThumbnailSize::maxThumbsSize())
        {
            d->thumbSize = ThumbnailSize::maxThumbsSize();
        }
        else if (size < ThumbnailSize::Small)
        {
            d->thumbSize = ThumbnailSize::Small;
        }
        else
        {
            d->thumbSize = size;
        }

        emit signalThumbSizeChanged(d->thumbSize);

        d->thumbSizeTimer->start();
    }
}
Esempio n. 2
0
MyWebView::MyWebView(QWidget *parent):
   QWebEngineView(parent)
      {
      page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);
      QNetworkAccessManager* networkManager = new MyNetworkAccessManager(this);
#ifndef QT_NO_OPENSSL
      connect(networkManager,SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>)),this, SLOT(ignoreSSLErrors(QNetworkReply*,QList<QSslError>)));
#endif

      connect(this, SIGNAL(loadFinished(bool)), SLOT(stopBusy(bool)));
      connect(this, SIGNAL(linkClicked(const QUrl&)), SLOT(link(const QUrl&)));

      QWebFrame* frame = page()->mainFrame();
      connect(frame, SIGNAL(javaScriptWindowObjectCleared()), this, SLOT(addToJavascript()));

      page()->setNetworkAccessManager(networkManager);

      setZoomFactor(guiScaling);

      if (!enableExperimental)
            setContextMenuPolicy(Qt::NoContextMenu);

      //set cookie jar for persistent cookies
      CookieJar* jar = new CookieJar(QString(dataPath + "/cookie_store.txt"));
      page()->networkAccessManager()->setCookieJar(jar);

      page()->currentFrame()->setScrollBarPolicy(Qt::Vertical, Qt::ScrollBarAlwaysOff);
      page()->currentFrame()->setScrollBarPolicy(Qt::Horizontal, Qt::ScrollBarAsNeeded);
      }
int QPrintPreviewWidget::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
    _id = QWidget::qt_metacall(_c, _id, _a);
    if (_id < 0)
        return _id;
    if (_c == QMetaObject::InvokeMetaMethod) {
        switch (_id) {
        case 0: paintRequested((*reinterpret_cast< QPrinter*(*)>(_a[1]))); break;
        case 1: previewChanged(); break;
        case 2: print(); break;
        case 3: zoomIn((*reinterpret_cast< qreal(*)>(_a[1]))); break;
        case 4: zoomIn(); break;
        case 5: zoomOut((*reinterpret_cast< qreal(*)>(_a[1]))); break;
        case 6: zoomOut(); break;
        case 7: setZoomFactor((*reinterpret_cast< qreal(*)>(_a[1]))); break;
        case 8: setOrientation((*reinterpret_cast< QPrinter::Orientation(*)>(_a[1]))); break;
        case 9: setViewMode((*reinterpret_cast< ViewMode(*)>(_a[1]))); break;
        case 10: setZoomMode((*reinterpret_cast< ZoomMode(*)>(_a[1]))); break;
        case 11: setCurrentPage((*reinterpret_cast< int(*)>(_a[1]))); break;
        case 12: fitToWidth(); break;
        case 13: fitInView(); break;
        case 14: setLandscapeOrientation(); break;
        case 15: setPortraitOrientation(); break;
        case 16: setSinglePageViewMode(); break;
        case 17: setFacingPagesViewMode(); break;
        case 18: setAllPagesViewMode(); break;
        case 19: updatePreview(); break;
        case 20: d_func()->_q_fit(); break;
        case 21: d_func()->_q_updateCurrentPage(); break;
        }
        _id -= 22;
    }
    return _id;
}
Esempio n. 4
0
void ScrolledImage::resize(const Box& newExterior)
	{
	/* Resize the parent class widget: */
	Container::resize(newExterior);
	
	/* Get the new interior size: */
	Box iBox=getInterior();
	
	/* Make room for and position the horizontal and vertical scroll bars: */
	Vector hbSize=horizontalScrollBar->calcNaturalSize();
	Vector vbSize=verticalScrollBar->calcNaturalSize();
	Box hbBox=iBox;
	hbBox.size[0]-=vbSize[0];
	hbBox.size[1]=hbSize[1];
	horizontalScrollBar->resize(hbBox);
	Box vbBox=iBox;
	vbBox.size[0]=vbSize[0];
	vbBox.origin[0]+=iBox.size[0]-vbBox.size[0];
	vbBox.size[1]-=hbSize[1];
	vbBox.origin[1]+=hbSize[1];
	verticalScrollBar->resize(vbBox);
	
	/* Resize the image: */
	iBox.size[0]-=vbSize[0];
	iBox.size[1]-=hbSize[1];
	iBox.origin[1]+=hbSize[1];
	image->resize(iBox);
	
	/* Adjust the image's display region: */
	setZoomFactor(zoomFactor);
	}
Esempio n. 5
0
void SkyMap::mouseReleaseEvent( QMouseEvent * ) {
    if ( ZoomRect.isValid() ) {
        stopTracking();
        SkyPoint newcenter = projector()->fromScreen( ZoomRect.center(), data->lst(), data->geo()->lat() );
        setFocus( &newcenter );
        setDestination( newcenter );

        //Zoom in on center of Zoom Circle, by a factor equal to the ratio
        //of the sky pixmap's width to the Zoom Circle's diameter
        float factor = float(width()) / float(ZoomRect.width());
        setZoomFactor( Options::zoomFactor() * factor );
    }
    setDefaultMouseCursor();
    ZoomRect = QRect(); //invalidate ZoomRect

    if(m_previewLegend) {
        slotCancelLegendPreviewMode();
    }

    //false if double-clicked, because it's unset there.
    if (mouseButtonDown) {
        mouseButtonDown = false;
        if ( slewing ) {
            slewing = false;
            if ( Options::useAltAz() )
                setDestinationAltAz( focus()->alt(), focus()->az() );
            else
                setDestination( *focus() );
        }
        forceUpdate();	// is needed because after moving the sky not all stars are shown
    }
    // if middle button was pressed unset here
    midMouseButtonDown = false;
}
Esempio n. 6
0
// Adjust to settings changes {{{
void MiniWeb::updateConfiguration()
{
	setZoomFactor(MWSettings::zoomLevel());
	settings()->setFontFamily(QWebSettings::StandardFont,
								MWSettings::generalFont().family());
	settings()->setFontFamily(QWebSettings::FixedFont,
								MWSettings::fixedFont().family());
}
bool ofx2DFormMapping::mouseScrolled(ofMouseEventArgs &args) {

	if(!direct_edit && mapping_rect_dst.inside(ofGetMouseX(), ofGetMouseY())) {
		setZoomFactor(args.y);
	}

	return ofxPanel::mouseScrolled(args);
}
Esempio n. 8
0
/*!
 * \brief DocumentationViewer::mouseDoubleClickEvent
 * Reimplementation of mousedoubleclickevent.
 * Defines what to do for control+doubleclick
 * \param event
 */
void DocumentationViewer::mouseDoubleClickEvent(QMouseEvent *event)
{
  if (event->modifiers().testFlag(Qt::ControlModifier)) {
    mZoomFactor=1.;
    setZoomFactor(mZoomFactor);
  } else {
    QWebView::mouseDoubleClickEvent(event);
  }
}
Esempio n. 9
0
	void CustomWebView::zoomOut ()
	{
		int i = LevelForZoom (zoomFactor ());

		if (i > 0)
			setZoomFactor (Zooms_ [i - 1]);

		emit invalidateSettings ();
	}
Esempio n. 10
0
void MyTextBrowser::setZOOM_FACTOR(int factor)
{
#ifdef NO_WEBKIT
  if(factor > 1) zoomIn();
  else           zoomOut();
#else
  setZoomFactor(factor);
#endif
}
Esempio n. 11
0
	void CustomWebView::zoomIn ()
	{
		int i = LevelForZoom (zoomFactor ());

		if (i < Zooms_.size () - 1)
			setZoomFactor (Zooms_ [i + 1]);

		emit invalidateSettings ();
	}
Esempio n. 12
0
void ZoomAction::init()
{
	setEditable(true);
	setToolTip(tr("Select or insert zoom factor here"));
	setWhatsThis(tr("<p>Select the zoom factor here.  "
	                "Alternatively, you can also introduce a zoom factor and "
	                "press Enter.</p>"));
	setCurrentZoomFactor();
	connect(this, SIGNAL(triggered(QString)), this, SLOT(setZoomFactor(QString)));
}
Esempio n. 13
0
void ScrolledImage::setZoomFactor(GLfloat newZoomFactor)
	{
	/* Zoom the image around its center point: */
	Vector imageCenter;
	imageCenter=image->getInterior().origin;
	for(int i=0;i<3;++i)
		imageCenter[i]=image->getInterior().origin[i]+image->getInterior().size[i]*0.5f;
	
	setZoomFactor(newZoomFactor,imageCenter);
	}
Esempio n. 14
0
/*!
 * \brief DocumentationViewer::wheelEvent
 * Reimplementation of wheelevent.
 * Defines what to do for control+scrolling the wheel
 * \param event
 */
void DocumentationViewer::wheelEvent(QWheelEvent *event)
{
  if (event->orientation() == Qt::Vertical && event->modifiers().testFlag(Qt::ControlModifier)) {
      mZoomFactor+=event->delta()/120.;
      if (mZoomFactor > 5.) mZoomFactor = 5.;
      if (mZoomFactor < .1) mZoomFactor = .1;
      setZoomFactor(mZoomFactor);
  } else {
    QWebView::wheelEvent(event);
  }
}
Esempio n. 15
0
void ofx2DFormMapping::setEditMode(bool direct_edit) {
	this->direct_edit = direct_edit;
	if(direct_edit) {
		control_rect_backup = control_rect;
		setZoomFactor(0);
	}
	else {
		control_rect = control_rect_backup;
	}
	rebuild();
}
Esempio n. 16
0
	void CustomWebView::wheelEvent (QGraphicsSceneWheelEvent *e)
	{
		if (e->modifiers () & Qt::ControlModifier)
		{
			int degrees = e->delta () / 8;
			qreal delta = static_cast<qreal> (degrees) / 150;
			setZoomFactor (zoomFactor () + delta);
			e->accept ();
		}
		else
			QGraphicsWebView::wheelEvent (e);
	}
Esempio n. 17
0
void pvQWebView::keyPressEvent(QKeyEvent *event)
{
  if(event->matches(QKeySequence::ZoomIn))
  {
    factor = factor*1.1f;
#if QT_VERSION >= 0x040500
    setZoomFactor(factor);
#endif    
  }
  else if(event->matches(QKeySequence::ZoomOut))
  {
    factor = factor*0.9f;
#if QT_VERSION >= 0x040500    
    setZoomFactor(factor);
#endif    
  }
  else
  {
    QWebView::keyPressEvent(event);
  }
}
Esempio n. 18
0
void SinglePhotoPreviewLayout::decreaseZoom(const QPoint& viewportAnchor)
{
    if (!d->item || !d->view)
    {
        return;
    }

    double zoom    = d->zoomSettings()->zoomFactor() / d->zoomMultiplier;
    zoom           = qMax(zoom, d->minZoom);
    zoom           = d->zoomSettings()->snappedZoomStep(zoom, d->frameSize());
    setZoomFactor(zoom, viewportAnchor);
}
Esempio n. 19
0
void ZoomAction::setCurrentZoomFactor(qreal newZoomFactor)
{
	const qreal zoomFactorArray[] = {12.50, 25, 50, 75, 100, 125, 150, 200, 250, 300};
	const int zoomFactorNumber = 10;
	QStringList zoomFactorList;
	int newZoomFactorPosition = -1;
	bool addNewZoomFactor = true;

	if (newZoomFactor < s_minZoomFactor || newZoomFactor > s_maxZoomFactor)
		addNewZoomFactor = false;

	newZoomFactor *= 100;
	for (int i = 0; i < zoomFactorNumber; ++i)
	{
		if (addNewZoomFactor && newZoomFactor < zoomFactorArray[i])
		{
			zoomFactorList << formatZoomFactor(newZoomFactor);
			newZoomFactorPosition = i;
			addNewZoomFactor = false;
		}
		else if (newZoomFactor == zoomFactorArray[i])
		{
			newZoomFactorPosition = i;
			addNewZoomFactor = false;
		}
		zoomFactorList << formatZoomFactor(zoomFactorArray[i]);
	}
	if (addNewZoomFactor)
	{
		zoomFactorList << formatZoomFactor(newZoomFactor);
		newZoomFactorPosition = zoomFactorNumber;
	}

	disconnect(this, SIGNAL(triggered(QString)), this, SLOT(setZoomFactor(QString)));
	removeAllActions();
	setItems(zoomFactorList);
	if (newZoomFactorPosition >= 0)
		setCurrentItem(newZoomFactorPosition);
	connect(this, SIGNAL(triggered(QString)), this, SLOT(setZoomFactor(QString)));
}
Esempio n. 20
0
void qPBReaderDocView::SetMultiplier(double val)
{
   TRSCOPE(view, "qPBReaderDocView::SetMultiplier");
   double oldVal = GetMultiplier();
   setZoomFactor(val);

   if (val != oldVal)
   {
      qPBReaderPlatform::ShowHourGlass();
      _pDoc->UpdateContentsSizeForPagedMode();
      emit MagnificationChanged(val);
   }
}
Esempio n. 21
0
int QWebFrame::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
    _id = QObject::qt_metacall(_c, _id, _a);
    if (_id < 0)
        return _id;
    if (_c == QMetaObject::InvokeMetaMethod) {
        if (_id < 13)
            qt_static_metacall(this, _c, _id, _a);
        _id -= 13;
    }
#ifndef QT_NO_PROPERTIES
      else if (_c == QMetaObject::ReadProperty) {
        void *_v = _a[0];
        switch (_id) {
        case 0: *reinterpret_cast< qreal*>(_v) = textSizeMultiplier(); break;
        case 1: *reinterpret_cast< qreal*>(_v) = zoomFactor(); break;
        case 2: *reinterpret_cast< QString*>(_v) = title(); break;
        case 3: *reinterpret_cast< QUrl*>(_v) = url(); break;
        case 4: *reinterpret_cast< QUrl*>(_v) = requestedUrl(); break;
        case 5: *reinterpret_cast< QUrl*>(_v) = baseUrl(); break;
        case 6: *reinterpret_cast< QIcon*>(_v) = icon(); break;
        case 7: *reinterpret_cast< QSize*>(_v) = contentsSize(); break;
        case 8: *reinterpret_cast< QPoint*>(_v) = scrollPosition(); break;
        case 9: *reinterpret_cast< bool*>(_v) = hasFocus(); break;
        }
        _id -= 10;
    } else if (_c == QMetaObject::WriteProperty) {
        void *_v = _a[0];
        switch (_id) {
        case 0: setTextSizeMultiplier(*reinterpret_cast< qreal*>(_v)); break;
        case 1: setZoomFactor(*reinterpret_cast< qreal*>(_v)); break;
        case 3: setUrl(*reinterpret_cast< QUrl*>(_v)); break;
        case 8: setScrollPosition(*reinterpret_cast< QPoint*>(_v)); break;
        }
        _id -= 10;
    } else if (_c == QMetaObject::ResetProperty) {
        _id -= 10;
    } else if (_c == QMetaObject::QueryPropertyDesignable) {
        _id -= 10;
    } else if (_c == QMetaObject::QueryPropertyScriptable) {
        _id -= 10;
    } else if (_c == QMetaObject::QueryPropertyStored) {
        _id -= 10;
    } else if (_c == QMetaObject::QueryPropertyEditable) {
        _id -= 10;
    } else if (_c == QMetaObject::QueryPropertyUser) {
        _id -= 10;
    }
#endif // QT_NO_PROPERTIES
    return _id;
}
Esempio n. 22
0
void MyTextBrowser::keyPressEvent(QKeyEvent *event)
{
#ifdef NO_WEBKIT
  if(event->matches(QKeySequence::ZoomIn))
  {
    factor = factor*1.1f;
    zoomIn();
  }
  else if(event->matches(QKeySequence::ZoomOut))
  {
    factor = factor*0.9f;
    zoomOut();
  }
  else
  {
    QTextBrowser::keyPressEvent(event);
  }
#else
  if(event->matches(QKeySequence::ZoomIn))
  {
    factor = factor*1.1f;
#if QT_VERSION >= 0x040500
    setZoomFactor(factor);
#endif    
  }
  else if(event->matches(QKeySequence::ZoomOut))
  {
    factor = factor*0.9f;
#if QT_VERSION >= 0x040500
    setZoomFactor(factor);
#endif    
  }
  else
  {
    QWebView::keyPressEvent(event);
  }
#endif
}
Esempio n. 23
0
int QGraphicsWebView::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
    _id = QGraphicsWidget::qt_metacall(_c, _id, _a);
    if (_id < 0)
        return _id;
    if (_c == QMetaObject::InvokeMetaMethod) {
        if (_id < 17)
            qt_static_metacall(this, _c, _id, _a);
        _id -= 17;
    }
#ifndef QT_NO_PROPERTIES
      else if (_c == QMetaObject::ReadProperty) {
        void *_v = _a[0];
        switch (_id) {
        case 0: *reinterpret_cast< QString*>(_v) = title(); break;
        case 1: *reinterpret_cast< QIcon*>(_v) = icon(); break;
        case 2: *reinterpret_cast< qreal*>(_v) = zoomFactor(); break;
        case 3: *reinterpret_cast< QUrl*>(_v) = url(); break;
        case 4: *reinterpret_cast< bool*>(_v) = isModified(); break;
        case 5: *reinterpret_cast< bool*>(_v) = resizesToContents(); break;
        case 6: *reinterpret_cast< bool*>(_v) = isTiledBackingStoreFrozen(); break;
        case 7: *reinterpret_cast<int*>(_v) = QFlag(renderHints()); break;
        }
        _id -= 8;
    } else if (_c == QMetaObject::WriteProperty) {
        void *_v = _a[0];
        switch (_id) {
        case 2: setZoomFactor(*reinterpret_cast< qreal*>(_v)); break;
        case 3: setUrl(*reinterpret_cast< QUrl*>(_v)); break;
        case 5: setResizesToContents(*reinterpret_cast< bool*>(_v)); break;
        case 6: setTiledBackingStoreFrozen(*reinterpret_cast< bool*>(_v)); break;
        case 7: setRenderHints(QFlag(*reinterpret_cast<int*>(_v))); break;
        }
        _id -= 8;
    } else if (_c == QMetaObject::ResetProperty) {
        _id -= 8;
    } else if (_c == QMetaObject::QueryPropertyDesignable) {
        _id -= 8;
    } else if (_c == QMetaObject::QueryPropertyScriptable) {
        _id -= 8;
    } else if (_c == QMetaObject::QueryPropertyStored) {
        _id -= 8;
    } else if (_c == QMetaObject::QueryPropertyEditable) {
        _id -= 8;
    } else if (_c == QMetaObject::QueryPropertyUser) {
        _id -= 8;
    }
#endif // QT_NO_PROPERTIES
    return _id;
}
Esempio n. 24
0
void SinglePhotoPreviewLayout::setZoomFactor(double z, const QPoint& givenAnchor, SetZoomFlags flags)
{
    if (!d->item || !d->view)
    {
        return;
    }

    QPoint  viewportAnchor = givenAnchor.isNull() ? d->view->viewport()->rect().center() : givenAnchor;
    QPointF sceneAnchor    = d->view->mapToScene(viewportAnchor);
    QPointF imageAnchor    = d->zoomSettings()->mapZoomToImage(sceneAnchor);

    setZoomFactor(z, flags);

    d->view->scrollPointOnPoint(d->zoomSettings()->mapImageToZoom(imageAnchor), viewportAnchor);
}
Esempio n. 25
0
void HelpWindowWidget::setZoomLevel(const int &pZoomLevel)
{
    if (pZoomLevel == mZoomLevel)
        return;

    // Set the zoom level of the help document contents to a particular value

    mZoomLevel = pZoomLevel;

    setZoomFactor(0.1*mZoomLevel);

    // Emit a few zoom-related signals

    emitZoomRelatedSignals();
}
Esempio n. 26
0
void SinglePhotoPreviewLayout::toggleFitToWindowOr100()
{
    if (!d->item || !d->view)
    {
        return;
    }

    if (d->isFitToWindow)
    {
        setZoomFactor(1.0);
    }
    else
    {
        fitToWindow();
    }
}
Esempio n. 27
0
void PhotoView::keyPressEvent( QKeyEvent * event )
{
    if ( ! event )
	return;

    switch ( event->key() )
    {
	case Qt::Key_2:	       setZoomFactor( 2.0 );	break;
	case Qt::Key_3:	       setZoomFactor( 3.0 );	break;
	case Qt::Key_4:	       setZoomFactor( 4.0 );	break;
	case Qt::Key_5:	       setZoomFactor( 5.0 );	break;
	case Qt::Key_6:	       setZoomFactor( 6.0 );	break;
	case Qt::Key_7:	       setZoomFactor( 7.0 );	break;
	case Qt::Key_8:	       setZoomFactor( 8.0 );	break;
	case Qt::Key_9:	       setZoomFactor( 9.0 );	break;
	case Qt::Key_0:	       setZoomFactor( 10.0 );   break;

	case Qt::Key_Y:
	    {
		const int max=10;
		logInfo() << "*** Benchmark start" << endl;
		QTime time;
		time.start();

		for ( int i=0; i < max; ++i )
		{
		    _photoDir->toNext();
		    loadImage();
		}
		logInfo() << "*** Benchmark end; time: "
                          << time.elapsed() / 1000.0 << " sec / "
                          << max << " images"
                          << endl;
	    }
	    break;

	default:
	    QGraphicsView::keyPressEvent( event );
    }
}
Esempio n. 28
0
void WizWebEngineView::innerLoadFinished(bool ret)
{
    //
    if (ret)
    {
        // 页面加载时设置合适的缩放比例
        qreal zFactor = (1.0 * WizSmartScaleUI(100)) / 100;
        setZoomFactor(zFactor);
        //
        //
        emit loadFinishedEx(ret);
    }
    else
    {
        emit loadFinishedEx(ret);
    }
}
Esempio n. 29
0
//! Constructor
//! @param pParent is the pointer to DocumentationWidget.
DocumentationViewer::DocumentationViewer(DocumentationWidget *pParent)
  : QWebView(pParent)
{
  setContextMenuPolicy(Qt::CustomContextMenu);
  connect(this, SIGNAL(customContextMenuRequested(QPoint)), SLOT(showContextMenu(QPoint)));
  mpDocumentationWidget = pParent;
  zoomFact = 1.;
  setZoomFactor(zoomFact);
  // set DocumentationViewer settings
  settings()->setFontFamily(QWebSettings::StandardFont, "Verdana");
  settings()->setFontSize(QWebSettings::DefaultFontSize, 10);
  settings()->setAttribute(QWebSettings::LocalStorageEnabled, true);
  settings()->setDefaultTextEncoding(Helper::utf8.toStdString().data());
  // set DocumentationViewer web page policy
  page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);
  connect(page(), SIGNAL(linkClicked(QUrl)), SLOT(processLinkClick(QUrl)));
  connect(page(), SIGNAL(linkHovered(QString,QString,QString)), SLOT(processLinkHover(QString,QString,QString)));
}
Esempio n. 30
0
void ChannelRenderArea::wheelEvent(QWheelEvent *event)
{
	uint64_t sampleStartNew, sampleEndNew;
	float zoomFactorNew;

	/* FIXME: Make this constant user-configurable. */
	zoomFactorNew = getZoomFactor()
			+ 0.01 * (event->delta() / WHEEL_DELTA);
	if (zoomFactorNew < 0)
		zoomFactorNew = 0;
	if (zoomFactorNew > 2)
		zoomFactorNew = 2; /* FIXME: Don't hardcode. */
	setZoomFactor(zoomFactorNew);

	sampleStartNew = 0; /* FIXME */
	sampleEndNew = getNumSamples() * zoomFactorNew;
	if (sampleEndNew > getNumSamples())
		sampleEndNew = getNumSamples();

	setSampleStart(sampleStartNew);
	setSampleEnd(sampleEndNew);

#if 0
	uint64_t sampleStartNew, sampleEndNew;

	sampleStartNew = getSampleStart() + event->delta() / WHEEL_DELTA;
	sampleEndNew = getSampleEnd() + event->delta() / WHEEL_DELTA;

	/* TODO: More checks. */

#if 1
	if (sampleStartNew < 0 || sampleEndNew < 0)
		return;
	if (sampleStartNew > 512 * 1000 || sampleEndNew > 512 * 1000 /* FIXME */)
		return;
#endif

	setSampleStart(sampleStartNew);
	setSampleEnd(sampleEndNew); /* FIXME: Use len? */
#endif

	repaint();
}