+void MonitorScene::slotSetBackgroundImage(const QImage &image)
+{
+ if (m_view && m_view->isVisible()) {
+ m_backgroundImage = image;
+ slotUpdateBackground();
+ }
+}
+
+void MonitorScene::slotZoom(int value)
+{
+ if (m_view) {
+ m_zoom = value / 100.0;
+ m_view->resetTransform();
+ m_view->scale(m_renderer->renderWidth() * m_zoom / m_renderer->frameRenderWidth(), m_zoom);
+ emit zoomChanged(value);
+ }
+}
+
+void MonitorScene::slotZoomFit()
+{
+ if (m_view) {
+ int xzoom = 100 * m_view->viewport()->height() / m_renderer->renderHeight();
+ int yzoom = 100 * m_view->viewport()->width() / m_renderer->renderWidth();
+ slotZoom(qMin(xzoom, yzoom));
+ m_view->centerOn(m_frameBorder);
+ }
+}
+
+void MonitorScene::slotZoomOriginal()
+{
+ slotZoom(100);
+ if (m_view)
+ m_view->centerOn(m_frameBorder);
+}
+
+void MonitorScene::slotZoomOut(int by)
+{
+ slotZoom(qMax(0, (int)(m_zoom * 100 - by)));
+}
+
+void MonitorScene::slotZoomIn(int by)
+{
+ slotZoom(qMin(300, (int)(m_zoom * 100 + by + 0.5)));
+}
+