Ejemplo n.º 1
0
void ChannelRenderArea::setZoomFactor(float z)
{
	QString str;

	zoomFactor = z;

	emit(zoomFactorChanged(zoomFactor));
	emit(zoomFactorChanged(str.sprintf("%f", zoomFactor)));
}
Ejemplo n.º 2
0
void SinglePhotoPreviewLayout::setZoomFactor(double z, SetZoomFlags flags)
{
    if (!d->item || !d->view)
    {
        return;
    }

    if (flags & SnapZoomFactor)
    {
        z = d->zoomSettings()->snappedZoomFactor(z, d->frameSize());
    }

    d->isFitToWindow = false;
    d->previousZoom  = d->zoomSettings()->zoomFactor();

    d->zoomSettings()->setZoomFactor(z);
    d->item->sizeHasChanged();
    updateLayout();
    d->item->update();

    emit fitToWindowToggled(d->isFitToWindow);
    emit zoomFactorChanged(d->zoomSettings()->zoomFactor());

    if (flags & CenterView)
    {
        d->view->centerOn(d->view->scene()->sceneRect().width() / 2.0,
                          d->view->scene()->sceneRect().height() / 2.0);
    }
}
Ejemplo n.º 3
0
void QGraphicsWebView::setZoomFactor(qreal factor)
{
    if (factor == page()->mainFrame()->zoomFactor())
        return;

    page()->mainFrame()->setZoomFactor(factor);
    emit zoomFactorChanged();
}
Ejemplo n.º 4
0
void MainWindow::createStatusBar()
{
    locationLabel = new QLabel("0, 0");
    locationLabel->setAlignment(Qt::AlignHCenter);
    locationLabel->setMinimumSize(locationLabel->sizeHint());

    zoomFactorLabel = new QLabel(tr("Zoom factor") + ": 1.0");

    statusBar()->addWidget(locationLabel);
    statusBar()->addWidget(zoomFactorLabel);
    connect(painter, SIGNAL(cursorChanged()),
            this, SLOT(updateStatusBar()));
    connect(painter, SIGNAL(zoomFactorChanged()),
            this, SLOT(updateStatusBar()));
    updateStatusBar();
}
Ejemplo n.º 5
0
void SinglePhotoPreviewLayout::fitToWindow()
{
    if (!d->item || !d->view)
    {
        return;
    }

    d->isFitToWindow = true;
    d->previousZoom  = d->zoomSettings()->zoomFactor();

    d->zoomSettings()->fitToSize(d->frameSize(), ImageZoomSettings::OnlyScaleDown);
    d->item->sizeHasChanged();
    updateLayout();
    d->item->update();

    emit fitToWindowToggled(d->isFitToWindow);
    emit zoomFactorChanged(d->zoomSettings()->zoomFactor());
}
Ejemplo n.º 6
0
//-----------------------------------------------------------------------------
void ImgChildWnd::zoomActionUpdate(float fZoomFactor)
{
    if (fZoomFactor >= 8.0f)
    {
        emit zoomInActionAvailable(false);
    }
    else if (fZoomFactor <= 0.125f)
    {
        emit zoomOutActionAvailable(false);
    }
    else
    {
        emit zoomInActionAvailable(true);
        emit zoomOutActionAvailable(true);
        emit zoomNormalActionAvailable(true);
    }

    emit zoomFactorChanged(fZoomFactor);
}
Ejemplo n.º 7
0
void MapperGLCanvasToolbar::createZoomToolsLayout()
{
  // Create zoom tool bar
  setObjectName("zoom-toolbox");

  // Create label for title
  _titleLabel = new QLabel;

  // Create horizontale layout for widgets
  QHBoxLayout* toolbarLayout = new QHBoxLayout;
  toolbarLayout->setContentsMargins(0, 3, 15, 3);
  toolbarLayout->setSpacing(16);
  // Create buttons
  // Zoom In button
  _zoomInButton = new QToolButton;
  _zoomInButton->setIcon(QIcon(":/zoom-in"));
  _zoomInButton->setIconSize(QSize(MM::ZOOM_TOOLBAR_ICON_SIZE, MM::ZOOM_TOOLBAR_ICON_SIZE));
  _zoomInButton->setToolTip(tr("Enlarge the shape"));
  _zoomInButton->setFixedSize(QSize(MM::ZOOM_TOOLBAR_BUTTON_SIZE, MM::ZOOM_TOOLBAR_BUTTON_SIZE));
  _zoomInButton->setObjectName("zoom-in");
  connect(_zoomInButton, SIGNAL(clicked()), _canvas, SLOT(increaseZoomLevel()));
  // Zoom Out button
  _zoomOutButton = new QToolButton;
  _zoomOutButton->setIcon(QIcon(":/zoom-out"));
  _zoomOutButton->setIconSize(QSize(MM::ZOOM_TOOLBAR_ICON_SIZE, MM::ZOOM_TOOLBAR_ICON_SIZE));
  _zoomOutButton->setToolTip(tr("Shrink the shape"));
  _zoomOutButton->setFixedSize(QSize(MM::ZOOM_TOOLBAR_BUTTON_SIZE, MM::ZOOM_TOOLBAR_BUTTON_SIZE));
  _zoomOutButton->setObjectName("zoom-out");
  connect(_zoomOutButton, SIGNAL(clicked()), _canvas, SLOT(decreaseZoomLevel()));
  // Reset to normal size button.
  _resetZoomButton = new QToolButton;
  _resetZoomButton->setIcon(QIcon(":/reset-zoom"));
  _resetZoomButton->setIconSize(QSize(MM::ZOOM_TOOLBAR_ICON_SIZE, MM::ZOOM_TOOLBAR_ICON_SIZE));
  _resetZoomButton->setToolTip(tr("Reset the shape to the normal size"));
  _resetZoomButton->setFixedSize(QSize(MM::ZOOM_TOOLBAR_BUTTON_SIZE, MM::ZOOM_TOOLBAR_BUTTON_SIZE));
  _resetZoomButton->setObjectName("reset-zoom");
  connect(_resetZoomButton, SIGNAL(clicked()), _canvas, SLOT(resetZoomLevel()));
  // Fit to view button
  _fitToViewButton = new QToolButton;
  _fitToViewButton->setIcon(QIcon(":/zoom-fit"));
  _fitToViewButton->setIconSize(QSize(MM::ZOOM_TOOLBAR_ICON_SIZE, MM::ZOOM_TOOLBAR_ICON_SIZE));
  _fitToViewButton->setToolTip(tr("Fit the shape to content view"));
  _fitToViewButton->setFixedSize(QSize(MM::ZOOM_TOOLBAR_BUTTON_SIZE, MM::ZOOM_TOOLBAR_BUTTON_SIZE));
  _fitToViewButton->setObjectName("zoom-fit");
  connect(_fitToViewButton, SIGNAL(clicked()), _canvas, SLOT(fitShapeToView()));

  // Create the dropdowm menu
  _dropdownMenu = new QComboBox;
  // make some settings
  _dropdownMenu->setFixedHeight(MM::ZOOM_TOOLBAR_BUTTON_SIZE);
  _dropdownMenu->setObjectName("dropdown-menu");
  // Create if empty or update list
  updateDropdownMenu();
  // And listen
  connect(_dropdownMenu, SIGNAL(activated(QString)), _canvas, SLOT(setZoomFromMenu(QString)));

  // Add widgets into layout
  toolbarLayout->addWidget(_titleLabel, 0, Qt::AlignVCenter);
  toolbarLayout->addWidget(_zoomInButton, 0, Qt::AlignVCenter);
  toolbarLayout->addWidget(_zoomOutButton, 0, Qt::AlignVCenter);
  toolbarLayout->addWidget(_resetZoomButton, 0, Qt::AlignVCenter);
  toolbarLayout->addWidget(_fitToViewButton, 0, Qt::AlignVCenter);
  toolbarLayout->addSpacing(25);
  toolbarLayout->addWidget(_dropdownMenu, 0, Qt::AlignVCenter);

  // Insert layout in widget
  setLayout(toolbarLayout);

  connect(_canvas, SIGNAL(zoomFactorChanged(qreal)), this, SLOT(updateDropdownMenu(qreal)));
}
Ejemplo n.º 8
0
void MainWindow::setupDockWidgets(void)
{
	int i;
	QString s;
	QColor color;

	/* TODO: Do not create new dockWidgets if we already have them. */

	/* TODO: Kill any old dockWidgets before creating new ones? */

	for (i = 0; i < getNumChannels(); ++i) {
		widgets[i] = new QWidget(this);
		gridLayouts[i] = new QGridLayout(widgets[i]);

		lineEdits[i] = new QLineEdit(this);
		lineEdits[i]->setMaximumWidth(150);
		lineEdits[i]->setText(s.sprintf("Channel %d", i));
		/* Use random colors for the channel names for now. */
		QPalette p = QPalette(QApplication::palette());
		color = QColor(2 + qrand() * 16);
		p.setColor(QPalette::Base, color);
		lineEdits[i]->setPalette(p);
		gridLayouts[i]->addWidget(lineEdits[i], i, 1);

		channelRenderAreas[i] = new ChannelRenderArea(this);
		channelRenderAreas[i]->setSizePolicy(QSizePolicy::Minimum,
					QSizePolicy::MinimumExpanding);
		channelRenderAreas[i]->setChannelNumber(i);
		channelRenderAreas[i]->setChannelColor(color);
		gridLayouts[i]->addWidget(channelRenderAreas[i], i, 2);

		dockWidgets[i] = new QDockWidget(this);
		dockWidgets[i]->setAllowedAreas(Qt::RightDockWidgetArea);
		dockWidgets[i]->setFeatures(
			QDockWidget::DockWidgetClosable |
			QDockWidget::DockWidgetMovable |
			QDockWidget::DockWidgetFloatable |
			QDockWidget::DockWidgetVerticalTitleBar);
		dockWidgets[i]->setWidget(widgets[i]);
		addDockWidget(Qt::RightDockWidgetArea, dockWidgets[i]);

		/* Update labels upon changes. */
		QObject::connect(channelRenderAreas[i],
			SIGNAL(sampleStartChanged(QString)),
			ui->labelSampleStart, SLOT(setText(QString)));
		QObject::connect(channelRenderAreas[i],
			SIGNAL(sampleEndChanged(QString)),
			ui->labelSampleEnd, SLOT(setText(QString)));
		QObject::connect(channelRenderAreas[i],
			SIGNAL(zoomFactorChanged(QString)),
			ui->labelZoomFactor, SLOT(setText(QString)));

		/* Redraw channels upon changes. */
		QObject::connect(channelRenderAreas[i],
			SIGNAL(sampleStartChanged(QString)),
			channelRenderAreas[i], SLOT(generatePainterPath()));
		QObject::connect(channelRenderAreas[i],
			SIGNAL(sampleEndChanged(QString)),
			channelRenderAreas[i], SLOT(generatePainterPath()));
		QObject::connect(channelRenderAreas[i],
			SIGNAL(zoomFactorChanged(QString)),
			channelRenderAreas[i], SLOT(generatePainterPath()));

		// dockWidgets[i]->show();
#if 0
		/* If the user renames a channel, adapt the dock title. */
		QObject::connect(lineEdits[i], SIGNAL(textChanged(QString)),
				 dockWidgets[i], SLOT(setWindowTitle(QString)));
#endif
	}
}
Ejemplo n.º 9
0
void MyGLWidget::wheelEvent ( QWheelEvent * event )
{
    zoom += event->delta() / 30 ;
    emit zoomFactorChanged(zoom);
    glDraw() ;                      // !Deprecated
}