]> git.sesse.net Git - kdenlive/commitdiff
Separate monitor scene controls from Geometrywidget
authorTill Theato <root@ttill.de>
Sun, 10 Oct 2010 21:29:23 +0000 (21:29 +0000)
committerTill Theato <root@ttill.de>
Sun, 10 Oct 2010 21:29:23 +0000 (21:29 +0000)
svn path=/trunk/kdenlive/; revision=4979

src/CMakeLists.txt
src/geometrywidget.cpp
src/geometrywidget.h
src/monitorscenecontrolwidget.cpp [new file with mode: 0644]
src/monitorscenecontrolwidget.h [new file with mode: 0644]
src/widgets/geometrywidget_ui.ui
src/widgets/monitorscenecontrolwidget_ui.ui [new file with mode: 0644]

index d246aacbddbb0bd9393fd3bff9199055ec674ca2..72cc8023fd1084376cf79bf8e0550c554446e22e 100644 (file)
@@ -102,6 +102,7 @@ kde4_add_ui_files(kdenlive_UI
   widgets/histogram_ui.ui
   widgets/geometrywidget_ui.ui
   widgets/stopmotion_ui.ui
   widgets/histogram_ui.ui
   widgets/geometrywidget_ui.ui
   widgets/stopmotion_ui.ui
+  widgets/monitorscenecontrolwidget_ui.ui
 )
 
 set(kdenlive_SRCS
 )
 
 set(kdenlive_SRCS
@@ -227,6 +228,7 @@ set(kdenlive_SRCS
   blackmagic/devices.cpp
   stopmotion/stopmotion.cpp
   onmonitoritems/onmonitorrectitem.cpp
   blackmagic/devices.cpp
   stopmotion/stopmotion.cpp
   onmonitoritems/onmonitorrectitem.cpp
+  monitorscenecontrolwidget.cpp
 )
 
 
 )
 
 
index 93c4f470c1e8242225ba6aa93195a7a237591dd7..cc378de928702483956f6969be7c9311c5da8b48 100644 (file)
@@ -24,6 +24,7 @@
 #include "keyframehelper.h"
 #include "timecodedisplay.h"
 #include "monitorscene.h"
 #include "keyframehelper.h"
 #include "timecodedisplay.h"
 #include "monitorscene.h"
+#include "monitorscenecontrolwidget.h"
 #include "onmonitoritems/onmonitorrectitem.h"
 #include "kdenlivesettings.h"
 
 #include "onmonitoritems/onmonitorrectitem.h"
 #include "kdenlivesettings.h"
 
@@ -123,37 +124,13 @@ GeometryWidget::GeometryWidget(Monitor* monitor, Timecode timecode, int clipPos,
         Setup of configuration controls
     */
 
         Setup of configuration controls
     */
 
-    m_ui.buttonConfig->setIcon(KIcon("system-run"));
-    m_ui.buttonConfig->setToolTip(i18n("Show/Hide settings"));
-    m_ui.groupSettings->setHidden(true);
+    m_config = new MonitorSceneControlWidget(m_scene, m_ui.frameSettings);
+    QHBoxLayout *settingsLayout = new QHBoxLayout(m_ui.frameSettings);
+    settingsLayout->addWidget(m_config);
+    settingsLayout->setContentsMargins(0, 0, 0, 0);
+    ((QGridLayout *)m_ui.widgetFirstColumn->layout())->addWidget(m_config->getShowHideButton(), 1, 2);
+    connect(m_config, SIGNAL(showScene(bool)), this, SLOT(slotShowScene(bool)));
 
 
-    m_ui.buttonShowScene->setIcon(KIcon("video-display"));
-    m_ui.buttonShowScene->setToolTip(i18n("Show monitor scene"));
-    m_ui.buttonDirectUpdate->setIcon(KIcon("transform-scale"));
-    m_ui.buttonDirectUpdate->setToolTip(i18n("Update parameters while monitor scene changes"));
-    m_ui.buttonDirectUpdate->setChecked(KdenliveSettings::monitorscene_directupdate());
-
-    m_ui.buttonZoomFit->setIcon(KIcon("zoom-fit-best"));
-    m_ui.buttonZoomFit->setToolTip(i18n("Fit zoom to monitor size"));
-    m_ui.buttonZoomOriginal->setIcon(KIcon("zoom-original"));
-    m_ui.buttonZoomOriginal->setToolTip(i18n("Original size"));
-    m_ui.buttonZoomIn->setIcon(KIcon("zoom-in"));
-    m_ui.buttonZoomIn->setToolTip(i18n("Zoom in"));
-    m_ui.buttonZoomOut->setIcon(KIcon("zoom-out"));
-    m_ui.buttonZoomOut->setToolTip(i18n("Zoom out"));
-
-    connect(m_ui.buttonConfig, SIGNAL(toggled(bool)), m_ui.groupSettings, SLOT(setVisible(bool)));
-
-    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_ui.buttonZoomFit,      SIGNAL(clicked()), m_scene, SLOT(slotZoomFit()));
-    connect(m_ui.buttonZoomOriginal, SIGNAL(clicked()), m_scene, SLOT(slotZoomOriginal()));
-    connect(m_ui.buttonZoomIn,       SIGNAL(clicked()), m_scene, SLOT(slotZoomIn()));
-    connect(m_ui.buttonZoomOut,      SIGNAL(clicked()), m_scene, SLOT(slotZoomOut()));
-    m_scene->slotZoomFit();
-
-    connect(m_ui.buttonShowScene, SIGNAL(toggled(bool)), this, SLOT(slotShowScene(bool)));
-    connect(m_ui.buttonDirectUpdate, SIGNAL(toggled(bool)), m_scene, SLOT(slotSetDirectUpdate(bool)));
 
 
     connect(m_scene, SIGNAL(actionFinished()), this, SLOT(slotUpdateGeometry()));
 
 
     connect(m_scene, SIGNAL(actionFinished()), this, SLOT(slotUpdateGeometry()));
@@ -168,6 +145,7 @@ GeometryWidget::~GeometryWidget()
     delete m_timeline;
     m_scene->removeItem(m_rect);
     delete m_geometry;
     delete m_timeline;
     m_scene->removeItem(m_rect);
     delete m_geometry;
+    delete m_config;
     if (m_monitor)
         m_monitor->slotEffectScene(false);
 }
     if (m_monitor)
         m_monitor->slotEffectScene(false);
 }
index 7a7ff090710ed3603620a1cfc44e2b60ea80f5bf..8ffc002083222c0d9e0a0aa82b072ad19a0f4771 100644 (file)
@@ -33,6 +33,7 @@ class MonitorScene;
 class KeyframeHelper;
 class TimecodeDisplay;
 class OnMonitorRectItem;
 class KeyframeHelper;
 class TimecodeDisplay;
 class OnMonitorRectItem;
+class MonitorSceneControlWidget;
 
 
 class GeometryWidget : public QWidget
 
 
 class GeometryWidget : public QWidget
@@ -76,6 +77,7 @@ private:
     /** Stores the different settings in the MLT geometry format. */
     Mlt::Geometry *m_geometry;
     bool m_showScene;
     /** Stores the different settings in the MLT geometry format. */
     Mlt::Geometry *m_geometry;
     bool m_showScene;
+    MonitorSceneControlWidget *m_config;
 
 private slots:
     /** @brief Updates controls according to position.
 
 private slots:
     /** @brief Updates controls according to position.
diff --git a/src/monitorscenecontrolwidget.cpp b/src/monitorscenecontrolwidget.cpp
new file mode 100644 (file)
index 0000000..cbf65a4
--- /dev/null
@@ -0,0 +1,77 @@
+/***************************************************************************
+ *   Copyright (C) 2010 by Till Theato (root@ttill.de)                     *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA          *
+ ***************************************************************************/
+
+#include "monitorscenecontrolwidget.h"
+#include "monitorscene.h"
+#include "kdenlivesettings.h"
+
+
+MonitorSceneControlWidget::MonitorSceneControlWidget(MonitorScene* scene, QWidget* parent) :
+        QWidget(parent),
+        m_scene(scene)
+{
+    m_ui.setupUi(this);
+
+    m_buttonConfig = new QToolButton();
+    m_buttonConfig->setCheckable(true);
+    m_buttonConfig->setAutoRaise(true);
+    m_buttonConfig->setIcon(KIcon("system-run"));
+    m_buttonConfig->setToolTip(i18n("Show/Hide Settings"));
+    this->setHidden(true);
+
+    m_ui.buttonShowScene->setIcon(KIcon("video-display"));
+    m_ui.buttonShowScene->setToolTip(i18n("Show monitor scene"));
+    m_ui.buttonDirectUpdate->setIcon(KIcon("transform-scale"));
+    m_ui.buttonDirectUpdate->setToolTip(i18n("Update parameters while monitor scene changes"));
+    m_ui.buttonDirectUpdate->setChecked(KdenliveSettings::monitorscene_directupdate());
+
+    m_ui.buttonZoomFit->setIcon(KIcon("zoom-fit-best"));
+    m_ui.buttonZoomFit->setToolTip(i18n("Fit zoom to monitor size"));
+    m_ui.buttonZoomOriginal->setIcon(KIcon("zoom-original"));
+    m_ui.buttonZoomOriginal->setToolTip(i18n("Original size"));
+    m_ui.buttonZoomIn->setIcon(KIcon("zoom-in"));
+    m_ui.buttonZoomIn->setToolTip(i18n("Zoom in"));
+    m_ui.buttonZoomOut->setIcon(KIcon("zoom-out"));
+    m_ui.buttonZoomOut->setToolTip(i18n("Zoom out"));
+
+    connect(m_buttonConfig, SIGNAL(toggled(bool)), this, SLOT(setVisible(bool)));
+
+    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_ui.buttonZoomFit,      SIGNAL(clicked()), m_scene, SLOT(slotZoomFit()));
+    connect(m_ui.buttonZoomOriginal, SIGNAL(clicked()), m_scene, SLOT(slotZoomOriginal()));
+    connect(m_ui.buttonZoomIn,       SIGNAL(clicked()), m_scene, SLOT(slotZoomIn()));
+    connect(m_ui.buttonZoomOut,      SIGNAL(clicked()), m_scene, SLOT(slotZoomOut()));
+    m_scene->slotZoomFit();
+
+    connect(m_ui.buttonShowScene, SIGNAL(toggled(bool)), this, SIGNAL(showScene(bool)));
+    connect(m_ui.buttonDirectUpdate, SIGNAL(toggled(bool)), m_scene, SLOT(slotSetDirectUpdate(bool)));
+}
+
+MonitorSceneControlWidget::~MonitorSceneControlWidget()
+{
+    delete m_buttonConfig;
+}
+
+QToolButton *MonitorSceneControlWidget::getShowHideButton()
+{
+    return m_buttonConfig;
+}
+
+#include "monitorscenecontrolwidget.moc"
diff --git a/src/monitorscenecontrolwidget.h b/src/monitorscenecontrolwidget.h
new file mode 100644 (file)
index 0000000..1ed36fc
--- /dev/null
@@ -0,0 +1,52 @@
+/***************************************************************************
+ *   Copyright (C) 2010 by Till Theato (root@ttill.de)                     *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA          *
+ ***************************************************************************/
+
+
+#ifndef MONITORSCENECONTROLWIDGET_H
+#define MONITORSCENECONTROLWIDGET_H
+
+#include "ui_monitorscenecontrolwidget_ui.h"
+
+#include <QWidget>
+#include <QToolButton>
+
+class MonitorScene;
+
+
+class MonitorSceneControlWidget : public QWidget
+{
+    Q_OBJECT
+public:
+    /** @brief Sets up the UI and connects it. */
+    MonitorSceneControlWidget(MonitorScene *scene, QWidget *parent = 0);
+    virtual ~MonitorSceneControlWidget();
+
+    /** @brief Returns a button for showing and hiding the monitor scene controls (this widget). */
+    QToolButton *getShowHideButton();
+
+private:
+    Ui::MonitorSceneControlWidget_UI m_ui;
+    MonitorScene *m_scene;
+    QToolButton *m_buttonConfig;
+
+signals:
+    void showScene(bool);
+};
+
+#endif
index f71d6578e7a69208b30db06f86fc22d18f607458..9c57f465c3abeca89bdbf1673f509c81773831ba 100644 (file)
@@ -6,15 +6,15 @@
    <rect>
     <x>0</x>
     <y>0</y>
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>366</width>
-    <height>305</height>
+    <width>364</width>
+    <height>183</height>
    </rect>
   </property>
   <property name="windowTitle">
    <string>Form</string>
   </property>
   <layout class="QGridLayout" name="gridLayout">
    </rect>
   </property>
   <property name="windowTitle">
    <string>Form</string>
   </property>
   <layout class="QGridLayout" name="gridLayout">
-   <item row="1" column="2">
+   <item row="1" column="1">
     <widget class="QWidget" name="widgetGeometry" native="true">
      <layout class="QGridLayout" name="gridLayout_3">
       <property name="leftMargin">
     <widget class="QWidget" name="widgetGeometry" native="true">
      <layout class="QGridLayout" name="gridLayout_3">
       <property name="leftMargin">
      </layout>
     </widget>
    </item>
      </layout>
     </widget>
    </item>
-   <item row="1" column="3">
+   <item row="1" column="2">
     <spacer name="horizontalSpacer">
      <property name="orientation">
       <enum>Qt::Horizontal</enum>
     <spacer name="horizontalSpacer">
      <property name="orientation">
       <enum>Qt::Horizontal</enum>
      </property>
     </spacer>
    </item>
      </property>
     </spacer>
    </item>
-   <item row="0" column="0" colspan="4">
+   <item row="0" column="0" colspan="3">
     <widget class="QWidget" name="widgetTimeWrapper" native="true">
      <layout class="QGridLayout" name="gridLayout_4">
       <property name="margin">
     <widget class="QWidget" name="widgetTimeWrapper" native="true">
      <layout class="QGridLayout" name="gridLayout_4">
       <property name="margin">
     </widget>
    </item>
    <item row="1" column="0">
     </widget>
    </item>
    <item row="1" column="0">
-    <widget class="QWidget" name="widget_3" native="true">
+    <widget class="QWidget" name="widgetFirstColumn" native="true">
      <layout class="QGridLayout" name="gridLayout_6">
       <property name="leftMargin">
        <number>0</number>
      <layout class="QGridLayout" name="gridLayout_6">
       <property name="leftMargin">
        <number>0</number>
       <property name="spacing">
        <number>0</number>
       </property>
       <property name="spacing">
        <number>0</number>
       </property>
-      <item row="1" column="1">
-       <widget class="QToolButton" name="buttonConfig">
-        <property name="text">
-         <string>...</string>
-        </property>
-        <property name="checkable">
-         <bool>true</bool>
-        </property>
-        <property name="autoRaise">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
       <item row="0" column="0" rowspan="2">
        <spacer name="horizontalSpacer_2">
         <property name="orientation">
       <item row="0" column="0" rowspan="2">
        <spacer name="horizontalSpacer_2">
         <property name="orientation">
      </layout>
     </widget>
    </item>
      </layout>
     </widget>
    </item>
-   <item row="2" column="0" colspan="3">
-    <widget class="QGroupBox" name="groupSettings">
-     <property name="enabled">
-      <bool>true</bool>
-     </property>
-     <property name="title">
-      <string>Settings</string>
-     </property>
-     <property name="flat">
-      <bool>true</bool>
-     </property>
-     <layout class="QGridLayout" name="gridLayout_7">
-      <property name="leftMargin">
-       <number>4</number>
-      </property>
-      <property name="topMargin">
-       <number>0</number>
-      </property>
-      <property name="rightMargin">
-       <number>0</number>
-      </property>
-      <property name="bottomMargin">
-       <number>4</number>
-      </property>
-      <item row="0" column="0">
-       <widget class="QToolButton" name="buttonShowScene">
-        <property name="text">
-         <string>...</string>
-        </property>
-        <property name="checkable">
-         <bool>true</bool>
-        </property>
-        <property name="checked">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="0">
-       <widget class="QToolButton" name="buttonZoomFit">
-        <property name="text">
-         <string>...</string>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="3">
-       <widget class="QSlider" name="sliderZoom">
-        <property name="minimum">
-         <number>1</number>
-        </property>
-        <property name="maximum">
-         <number>300</number>
-        </property>
-        <property name="value">
-         <number>100</number>
-        </property>
-        <property name="orientation">
-         <enum>Qt::Horizontal</enum>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="1">
-       <widget class="QToolButton" name="buttonZoomOriginal">
-        <property name="text">
-         <string>...</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="1">
-       <widget class="QToolButton" name="buttonDirectUpdate">
-        <property name="text">
-         <string>...</string>
-        </property>
-        <property name="checkable">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="5">
-       <widget class="QToolButton" name="buttonZoomIn">
-        <property name="text">
-         <string>...</string>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="2">
-       <widget class="QToolButton" name="buttonZoomOut">
-        <property name="text">
-         <string>...</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item row="4" column="0" colspan="4">
+   <item row="3" column="0" colspan="3">
     <spacer name="verticalSpacer_2">
      <property name="orientation">
       <enum>Qt::Vertical</enum>
     <spacer name="verticalSpacer_2">
      <property name="orientation">
       <enum>Qt::Vertical</enum>
      </property>
     </spacer>
    </item>
      </property>
     </spacer>
    </item>
+   <item row="2" column="0" colspan="2">
+    <widget class="QFrame" name="frameSettings">
+     <property name="frameShape">
+      <enum>QFrame::NoFrame</enum>
+     </property>
+     <property name="frameShadow">
+      <enum>QFrame::Plain</enum>
+     </property>
+    </widget>
+   </item>
   </layout>
  </widget>
  <resources/>
   </layout>
  </widget>
  <resources/>
diff --git a/src/widgets/monitorscenecontrolwidget_ui.ui b/src/widgets/monitorscenecontrolwidget_ui.ui
new file mode 100644 (file)
index 0000000..57f1c7e
--- /dev/null
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>MonitorSceneControlWidget_UI</class>
+ <widget class="QWidget" name="MonitorSceneControlWidget_UI">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>340</width>
+    <height>114</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QGridLayout" name="gridLayout">
+   <item row="0" column="2">
+    <widget class="QGroupBox" name="groupBox">
+     <property name="title">
+      <string>Settings</string>
+     </property>
+     <property name="flat">
+      <bool>true</bool>
+     </property>
+     <property name="checkable">
+      <bool>false</bool>
+     </property>
+     <layout class="QGridLayout" name="gridLayout_2">
+      <item row="1" column="0">
+       <widget class="QToolButton" name="buttonZoomFit">
+        <property name="text">
+         <string>...</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="0">
+       <widget class="QToolButton" name="buttonShowScene">
+        <property name="text">
+         <string>...</string>
+        </property>
+        <property name="checkable">
+         <bool>true</bool>
+        </property>
+        <property name="checked">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1">
+       <widget class="QToolButton" name="buttonDirectUpdate">
+        <property name="text">
+         <string>...</string>
+        </property>
+        <property name="checkable">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="1">
+       <widget class="QToolButton" name="buttonZoomOriginal">
+        <property name="text">
+         <string>...</string>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="2">
+       <widget class="QToolButton" name="buttonZoomOut">
+        <property name="text">
+         <string>...</string>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="3">
+       <widget class="QSlider" name="sliderZoom">
+        <property name="minimum">
+         <number>1</number>
+        </property>
+        <property name="maximum">
+         <number>300</number>
+        </property>
+        <property name="value">
+         <number>100</number>
+        </property>
+        <property name="orientation">
+         <enum>Qt::Horizontal</enum>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="4">
+       <widget class="QToolButton" name="buttonZoomIn">
+        <property name="text">
+         <string>...</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item row="1" column="2">
+    <spacer name="verticalSpacer">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>40</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>