const int TypeRole = Qt::UserRole;
const int IdRole = TypeRole + 1;
-EffectsListWidget::EffectsListWidget(QMenu *menu, QWidget *parent)
- : KListWidget(parent), m_menu(menu)
+EffectsListWidget::EffectsListWidget(QMenu *menu, QWidget *parent) :
+ KListWidget(parent),
+ m_menu(menu)
{
//setSelectionMode(QAbstractItemView::ExtendedSelection);
//setDragDropMode(QAbstractItemView::DragDrop);
QStringList effectInfo;
KIcon videoIcon("kdenlive-show-video");
KIcon audioIcon("kdenlive-show-audio");
+ KIcon customIcon("kdenlive-custom-effect");
int ct = MainWindow::videoEffects.count();
for (int ix = 0; ix < ct; ix ++) {
effectInfo = MainWindow::videoEffects.effectIdInfo(ix);
for (int ix = 0; ix < ct; ix ++) {
effectInfo = MainWindow::customEffects.effectIdInfo(ix);
if (!effectInfo.isEmpty()) {
- item = new QListWidgetItem(effectInfo.takeFirst(), this);
+ item = new QListWidgetItem(customIcon, effectInfo.takeFirst(), this);
item->setData(TypeRole, QString::number((int) EFFECT_CUSTOM));
item->setData(IdRole, effectInfo);
}
}
}
-QDomElement EffectsListWidget::currentEffect()
+const QDomElement EffectsListWidget::currentEffect() const
{
return itemEffect(currentItem());
}
-QDomElement EffectsListWidget::itemEffect(QListWidgetItem *item)
+const QDomElement EffectsListWidget::itemEffect(QListWidgetItem *item) const
{
QDomElement effect;
if (!item) return effect;
kDebug() << "// EFFECT SELECTED: " << effectInfo;
switch (item->data(TypeRole).toInt()) {
case 1:
- effect = MainWindow::videoEffects.getEffectByTag(effectInfo.at(0), effectInfo.at(1));
+ effect = MainWindow::videoEffects.getEffectByTag(effectInfo.at(0), effectInfo.at(1)).cloneNode().toElement();
break;
case 2:
- effect = MainWindow::audioEffects.getEffectByTag(effectInfo.at(0), effectInfo.at(1));
+ effect = MainWindow::audioEffects.getEffectByTag(effectInfo.at(0), effectInfo.at(1)).cloneNode().toElement();
break;
default:
- effect = MainWindow::customEffects.getEffectByTag(effectInfo.at(0), effectInfo.at(1));
+ effect = MainWindow::customEffects.getEffectByTag(effectInfo.at(0), effectInfo.at(1)).cloneNode().toElement();
break;
}
return effect;
const QList <QListWidgetItem *>list = selectedItems();
QDomDocument doc;
foreach(QListWidgetItem *item, list) {
- QDomElement e = itemEffect(item);
+ const QDomElement e = itemEffect(item);
if (!e.isNull()) doc.appendChild(doc.importNode(e, true));
}
QByteArray data;
//QPixmap pix = qVariantValue<QPixmap>(clickItem->data(Qt::DecorationRole));
//drag->setPixmap(pix);
//drag->setHotSpot(QPoint(0, 50));
- drag->start(Qt::MoveAction);
+ drag->start(Qt::CopyAction);
}
- //event->accept();
+ event->accept();
}
}
void EffectsListWidget::dragMoveEvent(QDragMoveEvent * event)
{
- event->setDropAction(Qt::IgnoreAction);
- //if (item) {
- event->setDropAction(Qt::MoveAction);
+ event->setDropAction(Qt::CopyAction);
if (event->mimeData()->hasText()) {
event->acceptProposedAction();
}