]> git.sesse.net Git - kdenlive/blobdiff - src/effectstack/collapsibleeffect.cpp
Minor optimization. Use const'ref
[kdenlive] / src / effectstack / collapsibleeffect.cpp
index 8b5ca2601832fed6f5c38a87d2619a1730496424..194c25cdd871341b29f5e2595ddbd3abf5e9dee9 100644 (file)
@@ -41,7 +41,7 @@
 #include <KApplication>
 
 
-CollapsibleEffect::CollapsibleEffect(QDomElement effect, QDomElement original_effect, ItemInfo info, EffectMetaInfo *metaInfo, bool lastEffect, QWidget * parent) :
+CollapsibleEffect::CollapsibleEffect(const QDomElement &effect, const QDomElement &original_effect, const ItemInfo &info, EffectMetaInfo *metaInfo, bool lastEffect, QWidget * parent) :
         AbstractCollapsibleWidget(parent),
         m_paramWidget(NULL),
         m_effect(effect),
@@ -78,15 +78,21 @@ CollapsibleEffect::CollapsibleEffect(QDomElement effect, QDomElement original_ef
     m_menu->addAction(KIcon("view-refresh"), i18n("Reset Effect"), this, SLOT(slotResetEffect()));
     m_menu->addAction(KIcon("document-save"), i18n("Save Effect"), this, SLOT(slotSaveEffect()));
     
-    QDomElement namenode = m_effect.firstChildElement("name");
-    if (namenode.isNull()) return;
-    QString effectname = i18n(namenode.text().toUtf8().data());
-    if (m_regionEffect) effectname.append(':' + KUrl(EffectsList::parameter(m_effect, "resource")).fileName());
-    
     QHBoxLayout *l = static_cast <QHBoxLayout *>(frame->layout());
     title = new QLabel(this);
     l->insertWidget(2, title);
     
+    m_groupAction = new QAction(KIcon("folder-new"), i18n("Create Group"), this);
+    connect(m_groupAction, SIGNAL(triggered(bool)), this, SLOT(slotCreateGroup()));
+    
+    QDomElement namenode = m_effect.firstChildElement("name");
+    if (namenode.isNull()) {
+       // Warning, broken effect?
+       kDebug()<<"// Could not create effect";
+       return;
+    }
+    QString effectname = i18n(namenode.text().toUtf8().data());
+    if (m_regionEffect) effectname.append(':' + KUrl(EffectsList::parameter(m_effect, "resource")).fileName());    
     title->setText(effectname);
     /*
      * Do not show icon, makes too much visual noise
@@ -97,8 +103,6 @@ CollapsibleEffect::CollapsibleEffect(QDomElement effect, QDomElement original_ef
     else if (type == "custom") icon = KIcon("kdenlive-custom-effect");
     else icon = KIcon("kdenlive-show-video");
     effecticon->setPixmap(icon.pixmap(16,16));*/
-    m_groupAction = new QAction(KIcon("folder-new"), i18n("Create Group"), this);
-    connect(m_groupAction, SIGNAL(triggered(bool)), this, SLOT(slotCreateGroup()));
 
     if (!m_regionEffect) {
        if (m_info.groupIndex == -1) m_menu->addAction(m_groupAction);
@@ -141,7 +145,7 @@ CollapsibleEffect::CollapsibleEffect(QDomElement effect, QDomElement original_ef
 
 CollapsibleEffect::~CollapsibleEffect()
 {
-    if (m_paramWidget) delete m_paramWidget;
+    delete m_paramWidget;
     delete m_menu;
 }
 
@@ -401,18 +405,16 @@ int CollapsibleEffect::effectIndex() const
     return m_effect.attribute("kdenlive_ix").toInt();
 }
 
-void CollapsibleEffect::updateWidget(ItemInfo info, QDomElement effect, EffectMetaInfo *metaInfo)
+void CollapsibleEffect::updateWidget(const ItemInfo &info, const QDomElement &effect, EffectMetaInfo *metaInfo)
 {
-    if (m_paramWidget) {
-        // cleanup
-        delete m_paramWidget;
-        m_paramWidget = NULL;
-    }
+    // cleanup
+    delete m_paramWidget;
+    m_paramWidget = NULL;
     m_effect = effect;
     setupWidget(info, metaInfo);
 }
 
-void CollapsibleEffect::setupWidget(ItemInfo info, EffectMetaInfo *metaInfo)
+void CollapsibleEffect::setupWidget(const ItemInfo &info, EffectMetaInfo *metaInfo)
 {
     if (m_effect.isNull()) {
 //         kDebug() << "// EMPTY EFFECT STACK";
@@ -428,10 +430,10 @@ void CollapsibleEffect::setupWidget(ItemInfo info, EffectMetaInfo *metaInfo)
        QVBoxLayout *vbox = static_cast<QVBoxLayout *> (widgetFrame->layout());
         vbox->addWidget(container);
        // m_paramWidget = new ParameterContainer(m_effect.toElement(), info, metaInfo, container);
-        for (int i = 0; i < effects.count(); i++) {
+        for (int i = 0; i < effects.count(); ++i) {
             CollapsibleEffect *coll = new CollapsibleEffect(effects.at(i).toElement(), origin_effects.at(i).toElement(), info, metaInfo, container);
             m_subParamWidgets.append(coll);
-           connect(coll, SIGNAL(parameterChanged(const QDomElement, const QDomElement, int)), this , SLOT(slotUpdateRegionEffectParams(const QDomElement, const QDomElement, int)));
+           connect(coll, SIGNAL(parameterChanged(QDomElement,QDomElement,int)), this , SLOT(slotUpdateRegionEffectParams(QDomElement,QDomElement,int)));
             //container = new QWidget(widgetFrame);
             vbox->addWidget(coll);
             //p = new ParameterContainer(effects.at(i).toElement(), info, isEffect, container);
@@ -453,9 +455,9 @@ void CollapsibleEffect::setupWidget(ItemInfo info, EffectMetaInfo *metaInfo)
        collapseButton->setArrowType(Qt::RightArrow);
        
     }
-    connect (m_paramWidget, SIGNAL(parameterChanged(const QDomElement, const QDomElement, int)), this, SIGNAL(parameterChanged(const QDomElement, const QDomElement, int)));
+    connect (m_paramWidget, SIGNAL(parameterChanged(QDomElement,QDomElement,int)), this, SIGNAL(parameterChanged(QDomElement,QDomElement,int)));
     
-    connect(m_paramWidget, SIGNAL(startFilterJob(QString,QString,QString,QString,const QMap <QString, QString>)), this, SIGNAL(startFilterJob(QString,QString,QString,QString,const QMap <QString, QString>)));
+    connect(m_paramWidget, SIGNAL(startFilterJob(QString,QString,QString,QString,QMap<QString,QString>)), this, SIGNAL(startFilterJob(QString,QString,QString,QString,QMap<QString,QString>)));
     
     connect (this, SIGNAL(syncEffectsPos(int)), m_paramWidget, SIGNAL(syncEffectsPos(int)));
     connect (m_paramWidget, SIGNAL(checkMonitorPosition(int)), this, SIGNAL(checkMonitorPosition(int)));
@@ -486,7 +488,7 @@ void CollapsibleEffect::updateTimecodeFormat()
     m_paramWidget->updateTimecodeFormat();
     if (!m_subParamWidgets.isEmpty()) {
         // we have a group
-        for (int i = 0; i < m_subParamWidgets.count(); i++)
+        for (int i = 0; i < m_subParamWidgets.count(); ++i)
             m_subParamWidgets.at(i)->updateTimecodeFormat();
     }
 }
@@ -549,7 +551,7 @@ void CollapsibleEffect::dropEvent(QDropEvent *event)
                // Moving group
                QList <int> effectsIds;
                // Collect moved effects ids
-               for (int i = 0; i < subeffects.count(); i++) {
+               for (int i = 0; i < subeffects.count(); ++i) {
                    QDomElement effect = subeffects.at(i).toElement();
                    effectsIds << effect.attribute("kdenlive_ix").toInt();
                }
@@ -597,3 +599,11 @@ void CollapsibleEffect::setRange(int inPoint , int outPoint)
 {
     m_paramWidget->setRange(inPoint, outPoint);
 }
+
+void CollapsibleEffect::setKeyframes(const QString &data, int maximum)
+{
+    m_paramWidget->setKeyframes(data, maximum);
+}
+
+
+#include "collapsibleeffect.moc"