From 19d0cd870d3a0026e30bbe024ea860794b9a38c0 Mon Sep 17 00:00:00 2001 From: Marco Gittler Date: Sat, 22 Mar 2008 22:35:20 +0000 Subject: [PATCH] use effectstackedit also for transitions svn path=/branches/KDE4/; revision=2101 --- src/customtrackview.cpp | 4 +++ src/renderer.cpp | 53 ++++++++++++++-------------- src/transitionsettings.cpp | 12 +++++++ src/transitionsettings.h | 4 +++ src/widgets/transitionsettings_ui.ui | 9 +++-- 5 files changed, 53 insertions(+), 29 deletions(-) diff --git a/src/customtrackview.cpp b/src/customtrackview.cpp index 0b499d1e..1217d1ab 100644 --- a/src/customtrackview.cpp +++ b/src/customtrackview.cpp @@ -591,6 +591,10 @@ void CustomTrackView::slotTransitionUpdated(QDomElement old, QDomElement newEffe } void CustomTrackView::updateTransition(int track, GenTime pos, QDomElement oldTransition, QDomElement transition) { + QString s; + QTextStream tx(&s); + transition.save(tx,2); + kDebug() << "in" << s; QMap < QString, QString> map; QDomNamedNodeMap attribs = transition.attributes(); for (int i = 0;i < attribs.count();i++) { diff --git a/src/renderer.cpp b/src/renderer.cpp index 8dc474cd..c636b75b 100644 --- a/src/renderer.cpp +++ b/src/renderer.cpp @@ -1012,27 +1012,27 @@ void Render::mltInsertClip(int track, GenTime position, QDomElement element) { QString resource = doc.toString(); kDebug() << "/////// ADDING CLIP TMLNE: " << resource << " ON TRACK: " << track; - Mlt::Tractor *tractor = getTractor(); - if (tractor) { - Mlt::Playlist *trackPlaylist = getPlaylist(track); - if (trackPlaylist) { - char *tmp = decodedString(resource); - Mlt::Producer clip(*m_mltProfile, "westley-xml", tmp); - //clip.set_in_and_out(in.frames(m_fps), out.frames(m_fps)); - delete[] tmp; - - trackPlaylist->insert_at((int)position.frames(m_fps), clip, 1); - tractor->multitrack()->refresh(); - tractor->refresh(); - if (track != 0) mltCheckLength(); + //Mlt::Tractor *tractor = getTractor(); + //if (tractor) { + Mlt::Playlist *trackPlaylist = getPlaylist(track); + if (trackPlaylist) { + char *tmp = decodedString(resource); + Mlt::Producer clip(*m_mltProfile, "westley-xml", tmp); + //clip.set_in_and_out(in.frames(m_fps), out.frames(m_fps)); + delete[] tmp; + + trackPlaylist->insert_at((int)position.frames(m_fps), clip, 1); + //tractor->multitrack()->refresh(); + //tractor->refresh(); + if (track != 0) mltCheckLength(); - delete trackPlaylist; - mltSavePlaylist(); - } - delete tractor; + delete trackPlaylist; + mltSavePlaylist(); } + //delete tractor; + //} m_isBlocked = false; } @@ -1217,7 +1217,7 @@ void Render::mltResizeClipEnd(int track, GenTime pos, GenTime in, GenTime out) { Mlt::Playlist *trackPlaylist = getPlaylist(track); if (trackPlaylist) { - Mlt::Tractor *tractor = getTractor(); + //Mlt::Tractor *tractor = getTractor(); if (trackPlaylist->is_blank_at((int)pos.frames(m_fps) + 1)) kDebug() << "//////// ERROR RSIZING BLANK CLIP!!!!!!!!!!!"; int clipIndex = trackPlaylist->get_clip_index_at((int)pos.frames(m_fps) + 1); @@ -1237,11 +1237,11 @@ void Render::mltResizeClipEnd(int track, GenTime pos, GenTime in, GenTime out) { } else trackPlaylist->insert_blank(clipIndex + 1, previousDuration - newDuration - 1); trackPlaylist->consolidate_blanks(0); - tractor->multitrack()->refresh(); - tractor->refresh(); + //tractor->multitrack()->refresh(); + //tractor->refresh(); if (track != 0) mltCheckLength(); - if (tractor) - delete tractor; + //if (tractor) + // delete tractor; m_isBlocked = false; delete trackPlaylist; } @@ -1252,7 +1252,6 @@ void Render::mltChangeTrackState(int track, bool mute, bool blind) { Mlt::Tractor *tractor = getTractor(); if (tractor) { Mlt::Producer trackProducer(tractor->track(track)); - Mlt::Playlist trackPlaylist((mlt_playlist) trackProducer.get_service()); if (mute) { if (blind) trackProducer.set("hide", 3); else trackProducer.set("hide", 2); @@ -1261,10 +1260,12 @@ void Render::mltChangeTrackState(int track, bool mute, bool blind) { } else { trackProducer.set("hide", 0); } - tractor->multitrack()->refresh(); - tractor->refresh(); - delete tractor; + //tractor->multitrack()->refresh(); + //tractor->refresh(); + //delete tractor; refresh(); + delete tractor; + } } diff --git a/src/transitionsettings.cpp b/src/transitionsettings.cpp index e50daa50..7bcac223 100644 --- a/src/transitionsettings.cpp +++ b/src/transitionsettings.cpp @@ -19,16 +19,21 @@ #include "transition.h" #include #include "effectslist.h" +#include "effectstackedit.h" TransitionSettings::TransitionSettings(EffectsList *transitions, QWidget* parent): QWidget(parent) { ui.setupUi(this); + effectEdit = new EffectStackEdit(ui.frame, this); setEnabled(false); m_transitions = transitions; ui.listWidget->addItems(transitions->effectNames()); kDebug() << transitions->effectNames().size() << " -" << transitions->size(); connect(ui.listWidget, SIGNAL(currentRowChanged(int)), this, SLOT(slotTransitionChanged())); + connect(this, SIGNAL(transferParamDesc(const QDomElement&, int , int)), effectEdit , SLOT(transferParamDesc(const QDomElement&, int , int))); + connect(effectEdit, SIGNAL(parameterChanged(const QDomElement&, const QDomElement&)), this , SLOT(slotUpdateEffectParams(const QDomElement&, const QDomElement&))); } + void TransitionSettings::slotTransitionChanged() { QDomElement e = m_usedTransition->toXML(); QDomElement newElement = e.cloneNode().toElement(); @@ -36,7 +41,10 @@ void TransitionSettings::slotTransitionChanged() { QDomElement desc = m_transitions->getEffectByName(ui.listWidget->currentItem()->text()); newElement.setAttribute("type", desc.attribute("tag")); + newElement.setAttribute("invert", "1"); + emit transitionUpdated(e, newElement); + emit transferParamDesc(desc, 0, 0); } void TransitionSettings::slotTransitionItemSelected(Transition* t) { @@ -44,3 +52,7 @@ void TransitionSettings::slotTransitionItemSelected(Transition* t) { m_usedTransition = t; } +void TransitionSettings::slotUpdateEffectParams(const QDomElement& oldparam, const QDomElement& param) { + + //emit transitionUpdated(oldparam, param); +} \ No newline at end of file diff --git a/src/transitionsettings.h b/src/transitionsettings.h index bc1c1069..7b6b0a96 100644 --- a/src/transitionsettings.h +++ b/src/transitionsettings.h @@ -21,6 +21,7 @@ class Transition; class EffectsList; +class EffectStackEdit; class TransitionSettings : public QWidget { Q_OBJECT @@ -29,12 +30,15 @@ public: private: Ui::TransitionSettings_UI ui; EffectsList *m_transitions; + EffectStackEdit *effectEdit; Transition* m_usedTransition; public slots: void slotTransitionItemSelected(Transition*); void slotTransitionChanged(); + void slotUpdateEffectParams(const QDomElement&, const QDomElement&); signals: void transitionUpdated(QDomElement, QDomElement); + void transferParamDesc(const QDomElement&, int , int); }; #endif diff --git a/src/widgets/transitionsettings_ui.ui b/src/widgets/transitionsettings_ui.ui index f72fbff4..6a91ec5f 100644 --- a/src/widgets/transitionsettings_ui.ui +++ b/src/widgets/transitionsettings_ui.ui @@ -19,9 +19,12 @@ Qt::Horizontal - - - GroupBox + + + QFrame::StyledPanel + + + QFrame::Raised -- 2.39.2