]> git.sesse.net Git - kdenlive/blobdiff - src/effectstack/collapsiblegroup.cpp
Use KLocalizedString (for i18n only, in kf5 it will necessary => use a script for...
[kdenlive] / src / effectstack / collapsiblegroup.cpp
index f414004dfe7865ab3e04829c0d041199ca82b2f1..cd5a439fbd6e4fcf8dd3c2261a99ee8691863b14 100644 (file)
@@ -30,7 +30,7 @@
 
 #include <KDebug>
 #include <KGlobalSettings>
-#include <KLocale>
+#include <KLocalizedString>
 #include <KMessageBox>
 #include <KStandardDirs>
 #include <KFileDialog>
@@ -42,7 +42,7 @@ MyEditableLabel::MyEditableLabel(QWidget * parent):
 {
     setFrame(false);
     setReadOnly(true);
-    setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred);
+    setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
 }
 
 void MyEditableLabel::mouseDoubleClickEvent ( QMouseEvent * e )
@@ -53,16 +53,17 @@ void MyEditableLabel::mouseDoubleClickEvent ( QMouseEvent * e )
 }
 
 
-CollapsibleGroup::CollapsibleGroup(int ix, bool firstGroup, bool lastGroup, EffectInfo info, QWidget * parent) :
+CollapsibleGroup::CollapsibleGroup(int ix, bool firstGroup, bool lastGroup, const EffectInfo &info, QWidget * parent) :
         AbstractCollapsibleWidget(parent)
 {
-    setupUi(this);
     m_info.groupIndex = ix;
     m_subWidgets = QList <CollapsibleEffect *> ();
     setFont(KGlobalSettings::smallestReadableFont());
-    QHBoxLayout *l = static_cast <QHBoxLayout *>(framegroup->layout());
+    frame->setObjectName("framegroup");
+    decoframe->setObjectName("decoframegroup");
+    QHBoxLayout *l = static_cast <QHBoxLayout *>(frame->layout());
     m_title = new MyEditableLabel(this);
-    l->insertWidget(3, m_title);
+    l->insertWidget(2, m_title);
     m_title->setText(info.groupName.isEmpty() ? i18n("Effect Group") : info.groupName);
     m_info.groupName = m_title->text();
     connect(m_title, SIGNAL(editingFinished()), this, SLOT(slotRenameGroup()));
@@ -111,31 +112,31 @@ void CollapsibleGroup::slotUnGroup()
 
 bool CollapsibleGroup::isActive() const
 {
-    return decoframegroup->property("active").toBool();
+    return decoframe->property("active").toBool();
 }
 
 void CollapsibleGroup::setActive(bool activate)
 {
-    decoframegroup->setProperty("active", activate);
-    decoframegroup->setStyleSheet(decoframegroup->styleSheet());
+    decoframe->setProperty("active", activate);
+    decoframe->setStyleSheet(decoframe->styleSheet());
 }
 
 void CollapsibleGroup::mouseDoubleClickEvent ( QMouseEvent * event )
 {
-    if (framegroup->underMouse() && collapseButton->isEnabled()) slotSwitch();
+    if (frame->underMouse() && collapseButton->isEnabled()) slotSwitch();
     QWidget::mouseDoubleClickEvent(event);
 }
 
 
-void CollapsibleGroup::slotEnable(bool disable)
+void CollapsibleGroup::slotEnable(bool disable, bool emitInfo)
 {
     m_title->setEnabled(!disable);
     enabledButton->blockSignals(true);
     enabledButton->setChecked(disable);
     enabledButton->setIcon(disable ? KIcon("novisible") : KIcon("visible"));
     enabledButton->blockSignals(false);
-    for (int i = 0; i < m_subWidgets.count(); i++)
-       m_subWidgets.at(i)->slotEnable(disable);
+    for (int i = 0; i < m_subWidgets.count(); ++i)
+       m_subWidgets.at(i)->slotDisable(disable, emitInfo);
 }
 
 void CollapsibleGroup::slotDeleteGroup()
@@ -143,19 +144,25 @@ void CollapsibleGroup::slotDeleteGroup()
     QDomDocument doc;
     // delete effects from the last one to the first, otherwise each deletion would trigger an update
     // in other effects's kdenlive_ix index.
-    for (int i = m_subWidgets.count() - 1; i >= 0; i--)
+    for (int i = m_subWidgets.count() - 1; i >= 0; --i)
         doc.appendChild(doc.importNode(m_subWidgets.at(i)->effect(), true));
     emit deleteGroup(doc);
 }
 
 void CollapsibleGroup::slotEffectUp()
 {
-    emit changeGroupPosition(groupIndex(), true);
+    QList <int> indexes;
+    for (int i = 0; i < m_subWidgets.count(); ++i)
+        indexes << m_subWidgets.at(i)->effectIndex();
+    emit changeEffectPosition(indexes, true);
 }
 
 void CollapsibleGroup::slotEffectDown()
 {
-    emit changeGroupPosition(groupIndex(), false);
+    QList <int> indexes;
+    for (int i = 0; i < m_subWidgets.count(); ++i)
+        indexes << m_subWidgets.at(i)->effectIndex();
+    emit changeEffectPosition(indexes, false);
 }
 
 void CollapsibleGroup::slotSaveGroup()
@@ -169,7 +176,7 @@ void CollapsibleGroup::slotSaveGroup()
     QDomDocument doc = effectsData();
     QDomElement base = doc.documentElement();
     QDomNodeList effects = base.elementsByTagName("effect");
-    for (int i = 0; i < effects.count(); i++) {
+    for (int i = 0; i < effects.count(); ++i) {
        QDomElement eff = effects.at(i).toElement();
         eff.removeAttribute("kdenlive_ix");
        EffectInfo info;
@@ -198,7 +205,7 @@ void CollapsibleGroup::slotSaveGroup()
 void CollapsibleGroup::slotResetGroup()
 {
     QMutexLocker lock(&m_mutex);
-    for (int i = 0; i < m_subWidgets.count(); i++)
+    for (int i = 0; i < m_subWidgets.count(); ++i)
         m_subWidgets.at(i)->slotResetEffect();
 }
 
@@ -254,7 +261,7 @@ void CollapsibleGroup::removeGroup(int ix, QVBoxLayout *layout)
     QMutexLocker lock(&m_mutex);
     QVBoxLayout *vbox = static_cast<QVBoxLayout *>(widgetFrame->layout());
     if (vbox == NULL) return;
-    for (int i = m_subWidgets.count() - 1; i >= 0 ; i--) {
+    for (int i = m_subWidgets.count() - 1; i >= 0 ; --i) {
        vbox->removeWidget(m_subWidgets.at(i));
        layout->insertWidget(ix, m_subWidgets.at(i));
        m_subWidgets.at(i)->decoframe->setObjectName("decoframe");
@@ -286,22 +293,22 @@ void CollapsibleGroup::updateTimecodeFormat()
 void CollapsibleGroup::dragEnterEvent(QDragEnterEvent *event)
 {
     if (event->mimeData()->hasFormat("kdenlive/effectslist")) {
-       framegroup->setProperty("target", true);
-       framegroup->setStyleSheet(framegroup->styleSheet());
+       frame->setProperty("target", true);
+       frame->setStyleSheet(frame->styleSheet());
        event->acceptProposedAction();
     }
 }
 
 void CollapsibleGroup::dragLeaveEvent(QDragLeaveEvent */*event*/)
 {
-    framegroup->setProperty("target", false);
-    framegroup->setStyleSheet(framegroup->styleSheet());
+    frame->setProperty("target", false);
+    frame->setStyleSheet(frame->styleSheet());
 }
 
 void CollapsibleGroup::dropEvent(QDropEvent *event)
 {
-    framegroup->setProperty("target", false);
-    framegroup->setStyleSheet(framegroup->styleSheet());
+    frame->setProperty("target", false);
+    frame->setStyleSheet(frame->styleSheet());
     const QString effects = QString::fromUtf8(event->mimeData()->data("kdenlive/effectslist"));
     //event->acceptProposedAction();
     QDomDocument doc;
@@ -330,10 +337,10 @@ void CollapsibleGroup::dropEvent(QDropEvent *event)
                return;
            }
            // Moving group
-           for (int i = 0; i < pastedEffects.count(); i++) {
+           for (int i = 0; i < pastedEffects.count(); ++i) {
                pastedEffectIndexes << pastedEffects.at(i).toElement().attribute("kdenlive_ix").toInt();
            }
-           for (int i = 0; i < m_subWidgets.count(); i++) {
+           for (int i = 0; i < m_subWidgets.count(); ++i) {
                currentEffectIndexes << m_subWidgets.at(i)->effectIndex();
            }
            kDebug()<<"PASTING: "<<pastedEffectIndexes<<" TO "<<currentEffectIndexes;
@@ -396,3 +403,12 @@ QDomDocument CollapsibleGroup::effectsData()
     return doc;
 }
 
+void CollapsibleGroup::adjustEffects()
+{
+    for (int i = 0; i < m_subWidgets.count(); ++i) {
+       m_subWidgets.at(i)->adjustButtons(i, m_subWidgets.count());
+    }
+}
+
+
+#include "collapsiblegroup.moc"