From: Marco Gittler Date: Sat, 15 Mar 2008 13:44:23 +0000 (+0000) Subject: transitiondialog is now enabled when transition is selected X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;ds=sidebyside;h=e2ca1b0cdda0f7caf8e3cb4f6c2301ace00a1a41;p=kdenlive transitiondialog is now enabled when transition is selected svn path=/branches/KDE4/; revision=2060 --- diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 0e4f61f1..8c5d9588 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -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 ) diff --git a/src/customtrackview.cpp b/src/customtrackview.cpp index 668fb888..b228c1af 100644 --- a/src/customtrackview.cpp +++ b/src/customtrackview.cpp @@ -336,6 +336,7 @@ void CustomTrackView::mousePressEvent(QMouseEvent * event) { } else { bool collision = false; QList 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 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); diff --git a/src/customtrackview.h b/src/customtrackview.h index 78bad08f..f9fde058 100644 --- a/src/customtrackview.h +++ b/src/customtrackview.h @@ -118,6 +118,7 @@ signals: void zoomOut(); void mousePosition(int); void clipItemSelected(ClipItem*); + void transitionItemSelected(Transition*); void activateDocumentMonitor(); }; diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 467a8f55..9b041f45 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -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())); diff --git a/src/mainwindow.h b/src/mainwindow.h index 90293eaa..cdf1c20a 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -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; diff --git a/src/trackview.cpp b/src/trackview.cpp index 493aa544..54ded5af 100644 --- a/src/trackview.cpp +++ b/src/trackview.cpp @@ -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); diff --git a/src/trackview.h b/src/trackview.h index ead433f3..d2f114d5 100644 --- a/src/trackview.h +++ b/src/trackview.h @@ -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 index 00000000..4ea8a031 --- /dev/null +++ b/src/transitionsettings.cpp @@ -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 + +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 index 00000000..60c08b01 --- /dev/null +++ b/src/transitionsettings.h @@ -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 index 00000000..f72fbff4 --- /dev/null +++ b/src/widgets/transitionsettings_ui.ui @@ -0,0 +1,33 @@ + + TransitionSettings_UI + + + + 0 + 0 + 421 + 283 + + + + Form + + + + + + Qt::Horizontal + + + + + GroupBox + + + + + + + + +