X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fmonitoreditwidget.cpp;h=8ed40df24898b0aa439ffe3ed481e4fa8e9e161a;hb=b8f6dc09b4b35cab3bebb54b3d4eec0b57fb7387;hp=25df13dd2827b30a7b9bfe005731bc839e8f7db0;hpb=81be3bf632b306ffd8795f0c81d4372e358e88d2;p=kdenlive diff --git a/src/monitoreditwidget.cpp b/src/monitoreditwidget.cpp index 25df13dd..8ed40df2 100644 --- a/src/monitoreditwidget.cpp +++ b/src/monitoreditwidget.cpp @@ -22,21 +22,31 @@ #include "monitorscene.h" #include "kdenlivesettings.h" +#include "onmonitoritems/onmonitorrectitem.h" +#include "onmonitoritems/onmonitorpathitem.h" + #include #include #include #include +#include #include + MonitorEditWidget::MonitorEditWidget(Render* renderer, QWidget* parent) : QWidget(parent) { + setAutoFillBackground(true); + setAttribute(Qt::WA_PaintOnScreen, false); + setAttribute(Qt::WA_OpaquePaintEvent, false); + setContentsMargins(0, 0, 0, 0); + setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding); m_ui.setupUi(this); - m_scene = new MonitorScene(renderer); m_view = new QGraphicsView(m_scene, m_ui.frameVideo); - m_view->setRenderHints(QFlags()); + m_view->setFrameShape(QFrame::NoFrame); + //m_view->setRenderHints(QFlags()); m_view->scale(((double) renderer->renderWidth()) / renderer->frameRenderWidth(), 1.0); m_view->setMouseTracking(true); m_scene->setUp(); @@ -49,6 +59,7 @@ MonitorEditWidget::MonitorEditWidget(Render* renderer, QWidget* parent) : m_visibilityAction = new QAction(KIcon("video-display"), i18n("Show/Hide edit mode"), this); m_visibilityAction->setCheckable(true); + m_visibilityAction->setChecked(KdenliveSettings::showOnMonitorScene()); m_visibilityAction->setVisible(false); m_ui.buttonDirectUpdate->setIcon(KIcon("transform-scale")); @@ -61,7 +72,7 @@ MonitorEditWidget::MonitorEditWidget(Render* renderer, QWidget* parent) : m_ui.buttonZoomOriginal->setToolTip(i18n("Original size")); connect(m_ui.sliderZoom, SIGNAL(valueChanged(int)), m_scene, SLOT(slotZoom(int))); - connect(m_scene, SIGNAL(zoomChanged(int)), m_ui.sliderZoom, SLOT(setValue(int))); + connect(m_scene, SIGNAL(zoomChanged(int)), this, SLOT(slotZoom(int))); connect(m_ui.buttonZoomFit, SIGNAL(clicked()), m_scene, SLOT(slotZoomFit())); connect(m_ui.buttonZoomOriginal, SIGNAL(clicked()), m_scene, SLOT(slotZoomOriginal())); m_scene->slotZoomFit(); @@ -72,18 +83,26 @@ MonitorEditWidget::MonitorEditWidget(Render* renderer, QWidget* parent) : MonitorEditWidget::~MonitorEditWidget() { + KdenliveSettings::setShowOnMonitorScene(m_visibilityAction->isChecked()); delete m_view; delete m_scene; delete m_visibilityAction; } +void MonitorEditWidget::slotZoom(int value) +{ + m_ui.sliderZoom->blockSignals(true); + m_ui.sliderZoom->setValue(value); + m_ui.sliderZoom->blockSignals(false); +} + void MonitorEditWidget::resetProfile(Render* renderer) { m_view->scale(((double) renderer->renderWidth()) / renderer->frameRenderWidth(), 1.0); m_scene->resetProfile(); } -MonitorScene* MonitorEditWidget::getScene() +MonitorScene* MonitorEditWidget::getScene() const { return m_scene; } @@ -121,8 +140,10 @@ void MonitorEditWidget::addCustomButton(const QIcon& icon, const QString& text, void MonitorEditWidget::removeCustomControls() { QLayoutItem *child; - while ((child = m_customControlsLayout->takeAt(0)) != 0) + while ((child = m_customControlsLayout->takeAt(0)) != 0) { + if (child->widget()) delete child->widget(); delete child; + } } void MonitorEditWidget::slotSetDirectUpdate(bool directUpdate)