]> git.sesse.net Git - kdenlive/commitdiff
transitiondialog is now enabled when transition is selected
authorMarco Gittler <marco@gitma.de>
Sat, 15 Mar 2008 13:44:23 +0000 (13:44 +0000)
committerMarco Gittler <marco@gitma.de>
Sat, 15 Mar 2008 13:44:23 +0000 (13:44 +0000)
svn path=/branches/KDE4/; revision=2060

src/CMakeLists.txt
src/customtrackview.cpp
src/customtrackview.h
src/mainwindow.cpp
src/mainwindow.h
src/trackview.cpp
src/trackview.h
src/transitionsettings.cpp [new file with mode: 0644]
src/transitionsettings.h [new file with mode: 0644]
src/widgets/transitionsettings_ui.ui [new file with mode: 0644]

index 0e4f61f1959bd736ab06ec1ff902aed11891e0c2..8c5d95885d3e68c0a35ec04d6bbbc94242a00e81 100644 (file)
@@ -39,6 +39,7 @@ kde4_add_ui_files(kdenlive_UI
   widgets/timelinebuttons_ui.ui
   widgets/renderwidget_ui.ui
   widgets/saveprofile_ui.ui
+  widgets/transitionsettings_ui.ui
 )
  
 set(kdenlive_SRCS 
@@ -87,6 +88,7 @@ set(kdenlive_SRCS
   renderjob.cpp
   renderwidget.cpp
   abstractclipitem.cpp
+  transitionsettings.cpp
 )
 
 kde4_add_kcfg_files(kdenlive_SRCS GENERATE_MOC kdenlivesettings.kcfgc )
index 668fb8882b0ae470f3a527715bd2519dd193afda..b228c1aff99738491999d47d4c4a679fad00d917 100644 (file)
@@ -336,6 +336,7 @@ void CustomTrackView::mousePressEvent(QMouseEvent * event) {
     } else {
         bool collision = false;
         QList<QGraphicsItem *> collisionList = items(event->pos());
+        AbstractClipItem *clipItem = NULL, *transitionItem = NULL;
         for (int i = 0; i < collisionList.size(); ++i) {
             QGraphicsItem *item = collisionList.at(i);
             if (item->type() == AVWIDGET || item->type() == TRANSITIONWIDGET) {
@@ -350,7 +351,9 @@ void CustomTrackView::mousePressEvent(QMouseEvent * event) {
 
                 m_dragItem = (AbstractClipItem *) item;
                 if (item->type() == AVWIDGET) {
-                    emit clipItemSelected((ClipItem*) m_dragItem);
+                    clipItem = m_dragItem;
+                } else if (item->type() == TRANSITIONWIDGET) {
+                    transitionItem = m_dragItem;
                 }
                 m_clickPoint = mapToScene(event->pos()).x() - m_dragItem->startPos().frames(m_document->fps()) * m_scale;
                 m_operationMode = m_dragItem->operationMode(item->mapFromScene(mapToScene(event->pos())), m_scale);
@@ -375,6 +378,8 @@ void CustomTrackView::mousePressEvent(QMouseEvent * event) {
                 break;
             }
         }
+        emit clipItemSelected((ClipItem*) clipItem);
+        emit transitionItemSelected((Transition*) transitionItem);
         if (!collision) {
             kDebug() << "//////// NO ITEMĀ FOUND ON CLICK";
             m_dragItem = NULL;
@@ -382,7 +387,7 @@ void CustomTrackView::mousePressEvent(QMouseEvent * event) {
             QList<QGraphicsItem *> itemList = items();
             for (int i = 0; i < itemList.count(); i++)
                 itemList.at(i)->setSelected(false);
-            emit clipItemSelected(NULL);
+            //emit clipItemSelected(NULL);
             if (event->button() == Qt::RightButton) {
                 displayContextMenu(event->globalPos());
             } else setCursorPos((int) mapToScene(event->x(), 0).x() / m_scale);
index 78bad08f4f7ca697c778ae1a21ed9e7ae2f25eb4..f9fde05843feb3d6937985e0b3157d9d79a852f2 100644 (file)
@@ -118,6 +118,7 @@ signals:
     void zoomOut();
     void mousePosition(int);
     void clipItemSelected(ClipItem*);
+    void transitionItemSelected(Transition*);
     void activateDocumentMonitor();
 };
 
index 467a8f5590010ad5f03a17d5d2e1f469fc4a9883..9b041f45e654bc5eac31b96301e62fb7e05aecec 100644 (file)
@@ -108,7 +108,7 @@ MainWindow::MainWindow(QWidget *parent)
 
     transitionConfigDock = new QDockWidget(i18n("Transition"), this);
     transitionConfigDock->setObjectName("transition");
-    transitionConfig = new KListWidget(this);
+    transitionConfig = new TransitionSettings(this);
     transitionConfigDock->setWidget(transitionConfig);
     addDockWidget(Qt::TopDockWidgetArea, transitionConfigDock);
 
@@ -617,6 +617,7 @@ void MainWindow::connectDocument(TrackView *trackView, KdenliveDoc *doc) { //cha
             disconnect(m_activeDocument, SIGNAL(deletTimelineClip(int)), m_activeTimeline, SLOT(slotDeleteClip(int)));
             disconnect(m_activeDocument, SIGNAL(thumbsProgress(KUrl, int)), this, SLOT(slotGotProgressInfo(KUrl, int)));
             disconnect(m_activeTimeline, SIGNAL(clipItemSelected(ClipItem*)), effectStack, SLOT(slotClipItemSelected(ClipItem*)));
+            disconnect(m_activeTimeline, SIGNAL(transitionItemSelected(Transition*)), transitionConfig, SLOT(slotTransitionItemSelected(Transition*)));
             disconnect(timeline_buttons_ui.zoom_slider, SIGNAL(valueChanged(int)), m_activeTimeline, SLOT(slotChangeZoom(int)));
             disconnect(m_activeDocument, SIGNAL(docModified(bool)), this, SLOT(slotUpdateDocumentState(bool)));
             disconnect(effectStack, SIGNAL(updateClipEffect(ClipItem*, QDomElement, QDomElement)), m_activeTimeline->projectView(), SLOT(slotUpdateClipEffect(ClipItem*, QDomElement, QDomElement)));
@@ -644,6 +645,7 @@ void MainWindow::connectDocument(TrackView *trackView, KdenliveDoc *doc) { //cha
     connect(doc, SIGNAL(docModified(bool)), this, SLOT(slotUpdateDocumentState(bool)));
 
     connect(trackView, SIGNAL(clipItemSelected(ClipItem*)), effectStack, SLOT(slotClipItemSelected(ClipItem*)));
+    connect(trackView, SIGNAL(transitionItemSelected(Transition*)), transitionConfig, SLOT(slotTransitionItemSelected(Transition*)));
     timeline_buttons_ui.zoom_slider->setValue(trackView->currentZoom());
     connect(timeline_buttons_ui.zoom_slider, SIGNAL(valueChanged(int)), trackView, SLOT(slotChangeZoom(int)));
     connect(trackView->projectView(), SIGNAL(zoomIn()), this, SLOT(slotZoomIn()));
index 90293eaa75b4474043afcbf8c981014d688439db..cdf1c20a2fd736602645ac43e20ca80d2f184f92 100644 (file)
@@ -43,6 +43,7 @@
 #include "effectslist.h"
 #include "effectslistview.h"
 #include "effectstackview.h"
+#include "transitionsettings.h"
 #include "ui_timelinebuttons_ui.h"
 #include "renderwidget.h"
 
@@ -77,7 +78,7 @@ private:
     EffectStackView *effectStack;
 
     QDockWidget *transitionConfigDock;
-    KListWidget *transitionConfig;
+    TransitionSettings *transitionConfig;
 
     QDockWidget *clipMonitorDock;
     Monitor *m_clipMonitor;
index 493aa544f86040848976b16e957be6372b96e915..54ded5af2b34525dc59f1158e15c093dcd425013 100644 (file)
@@ -74,6 +74,7 @@ TrackView::TrackView(KdenliveDoc *doc, QWidget *parent)
     connect(m_trackview->horizontalScrollBar(), SIGNAL(valueChanged(int)), m_ruler, SLOT(slotMoveRuler(int)));
     connect(m_trackview, SIGNAL(mousePosition(int)), this, SIGNAL(mousePosition(int)));
     connect(m_trackview, SIGNAL(clipItemSelected(ClipItem*)), this, SLOT(slotClipItemSelected(ClipItem*)));
+    connect(m_trackview, SIGNAL(transitionItemSelected(Transition*)), this, SLOT(slotTransitionItemSelected(Transition*)));
     slotChangeZoom(m_currentZoom);
 }
 
@@ -101,6 +102,10 @@ void TrackView::slotClipItemSelected(ClipItem*c) {
     emit clipItemSelected(c);
 }
 
+void TrackView::slotTransitionItemSelected(Transition *t) {
+    emit transitionItemSelected(t);
+}
+
 void TrackView::setDuration(int dur) {
     m_trackview->setDuration(dur);
     m_ruler->setDuration(dur);
index ead433f3b9712c33d1af898d0be61cc092abaadd..d2f114d5561cdfc7f660f7e96257d71adae9b6ae 100644 (file)
@@ -35,6 +35,7 @@
 #include "kdenlivedoc.h"
 #include "customtrackview.h"
 class ClipItem;
+class Transition;
 
 class TrackView : public QWidget {
     Q_OBJECT
@@ -86,11 +87,13 @@ private slots:
     void setCursorPos(int pos);
     void moveCursorPos(int pos);
     void slotClipItemSelected(ClipItem*);
+    void slotTransitionItemSelected(Transition*);
 
 signals:
     void mousePosition(int);
     void cursorMoved();
     void clipItemSelected(ClipItem*);
+    void transitionItemSelected(Transition*);
 };
 
 #endif
diff --git a/src/transitionsettings.cpp b/src/transitionsettings.cpp
new file mode 100644 (file)
index 0000000..4ea8a03
--- /dev/null
@@ -0,0 +1,29 @@
+/***************************************************************************
+                          effecstackedit.h  -  description
+                             -------------------
+    begin                : Mar 15 2008
+    copyright            : (C) 2008 by Marco Gittler
+    email                : g.marco@freenet.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.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#include "transitionsettings.h"
+#include <KDebug>
+
+TransitionSettings::TransitionSettings(QWidget* parent): QWidget(parent) {
+    ui.setupUi(this);
+    setEnabled(false);
+}
+
+void TransitionSettings::slotTransitionItemSelected(Transition* t) {
+    setEnabled(t != NULL);
+}
+
diff --git a/src/transitionsettings.h b/src/transitionsettings.h
new file mode 100644 (file)
index 0000000..60c08b0
--- /dev/null
@@ -0,0 +1,33 @@
+/***************************************************************************
+                          effecstackedit.h  -  description
+                             -------------------
+    begin                : Mar 15 2008
+    copyright            : (C) 2008 by Marco Gittler
+    email                : g.marco@freenet.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.                                   *
+ *                                                                         *
+ ***************************************************************************/
+#ifndef TRANSITIONSETTINGS_H
+#define TRANSITIONSETTINGS_H
+#include "ui_transitionsettings_ui.h"
+
+class Transition;
+
+class TransitionSettings : public QWidget  {
+    Q_OBJECT
+public:
+    TransitionSettings(QWidget* parent = 0);
+private:
+    Ui::TransitionSettings_UI ui;
+public slots:
+    void slotTransitionItemSelected(Transition*);
+};
+
+#endif
diff --git a/src/widgets/transitionsettings_ui.ui b/src/widgets/transitionsettings_ui.ui
new file mode 100644 (file)
index 0000000..f72fbff
--- /dev/null
@@ -0,0 +1,33 @@
+<ui version="4.0" >
+ <class>TransitionSettings_UI</class>
+ <widget class="QWidget" name="TransitionSettings_UI" >
+  <property name="geometry" >
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>421</width>
+    <height>283</height>
+   </rect>
+  </property>
+  <property name="windowTitle" >
+   <string>Form</string>
+  </property>
+  <layout class="QGridLayout" name="gridLayout" >
+   <item row="0" column="0" >
+    <widget class="QSplitter" name="splitter" >
+     <property name="orientation" >
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <widget class="QListWidget" name="listWidget" />
+     <widget class="QGroupBox" name="groupBox" >
+      <property name="title" >
+       <string>GroupBox</string>
+      </property>
+     </widget>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>