]> git.sesse.net Git - kdenlive/blobdiff - src/monitoreditwidget.cpp
on-monitor editing:
[kdenlive] / src / monitoreditwidget.cpp
index f72bfacff0a74de0c5139062b73984768df2397a..25df13dd2827b30a7b9bfe005731bc839e8f7db0 100644 (file)
@@ -25,6 +25,7 @@
 #include <QGraphicsView>
 #include <QVBoxLayout>
 #include <QAction>
+#include <QToolButton>
 
 #include <KIcon>
 
@@ -42,7 +43,9 @@ MonitorEditWidget::MonitorEditWidget(Render* renderer, QWidget* parent) :
 
     ((QVBoxLayout*)m_ui.frameVideo->layout())->addWidget(m_view);
 
-    m_customControlsLayout = static_cast<QVBoxLayout *>(m_ui.frameCustomControls->layout());
+    m_customControlsLayout = new QVBoxLayout(m_ui.frameCustomControls);
+    m_customControlsLayout->setContentsMargins(0, 4, 0, 4);
+    m_customControlsLayout->setSpacing(0);
 
     m_visibilityAction = new QAction(KIcon("video-display"), i18n("Show/Hide edit mode"), this);
     m_visibilityAction->setCheckable(true);
@@ -100,6 +103,21 @@ void MonitorEditWidget::addCustomControl(QWidget* widget)
     m_customControlsLayout->addWidget(widget);
 }
 
+void MonitorEditWidget::addCustomButton(const QIcon& icon, const QString& text, const QObject* receiver, const char* member, bool checkable, bool checked)
+{
+    QToolButton *button = new QToolButton(m_ui.frameCustomControls);
+    button->setIcon(icon);
+    button->setToolTip(text);
+    button->setCheckable(checkable);
+    button->setChecked(checked);
+    button->setAutoRaise(true);
+    if (checkable)
+        connect(button, SIGNAL(toggled(bool)), receiver, member);
+    else
+        connect(button, SIGNAL(clicked()), receiver, member);
+    m_customControlsLayout->addWidget(button);
+}
+
 void MonitorEditWidget::removeCustomControls()
 {
     QLayoutItem *child;