#include <KDebug>
#include <KGlobalSettings>
-#include <KLocale>
+#include <KLocalizedString>
#include <KMessageBox>
#include <KStandardDirs>
#include <KFileDialog>
{
setFrame(false);
setReadOnly(true);
- setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred);
+ setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
}
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()));
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()
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()
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;
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();
}
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");
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;
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;
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"