From: Jean-Baptiste M. <jb...@kd...> - 2012-03-26 18:49:52
|
Git commit b1b3280e0761e3434257556a9f509ba9631620d0 by Jean-Baptiste Mardelle. Committed on 26/03/2012 at 20:49. Pushed by mardelle into branch 'effectstack'. Apply effect when return pressed in effect list M +2 -2 src/customtrackview.cpp M +15 -8 src/effectslistview.cpp M +9 -1 src/effectslistwidget.cpp M +4 -0 src/effectslistwidget.h http://commits.kde.org/kdenlive/b1b3280e0761e3434257556a9f509ba9631620d0 diff --git a/src/customtrackview.cpp b/src/customtrackview.cpp index e60c836..92cc78f 100644 --- a/src/customtrackview.cpp +++ b/src/customtrackview.cpp @@ -1837,12 +1837,12 @@ void CustomTrackView::slotAddEffect(QDomElement effect, GenTime pos, int track) for (int i = 0; i < itemList.count(); i++) { if (itemList.at(i)->type() == AVWIDGET) { ClipItem *clip = static_cast<ClipItem *>(itemList.at(i)); + clip->setSelectedEffect(clip->effectsCount() - 1); if (!clip->isSelected()) { clearSelection(false); clip->setSelected(true); + emit clipItemSelected(clip, clip->selectedEffectIndex()); } - clip->setSelectedEffect(clip->effectsCount() - 1); - //emit clipItemSelected(clip, clip->selectedEffectIndex()); break; } } diff --git a/src/effectslistview.cpp b/src/effectslistview.cpp index def04ec..4d86309 100644 --- a/src/effectslistview.cpp +++ b/src/effectslistview.cpp @@ -30,11 +30,11 @@ #include <QMenu> #include <QDir> + EffectsListView::EffectsListView(QWidget *parent) : QWidget(parent) { setupUi(this); - QString styleSheet = "QTreeView::branch:has-siblings:!adjoins-item{border-image:none;border:0px} \ QTreeView::branch:has-siblings:adjoins-item {border-image: none;border:0px} \ QTreeView::branch:!has-children:!has-siblings:adjoins-item {border-image: none;border:0px} \ @@ -71,8 +71,9 @@ EffectsListView::EffectsListView(QWidget *parent) : connect(type_combo, SIGNAL(currentIndexChanged(int)), this, SLOT(filterList(int))); connect(buttonInfo, SIGNAL(clicked()), this, SLOT(showInfoPanel())); connect(m_effectsList, SIGNAL(itemSelectionChanged()), this, SLOT(slotUpdateInfo())); - connect(m_effectsList, SIGNAL(itemDoubleClicked(QTreeWidgetItem *, int)), this, SLOT(slotEffectSelected())); + connect(m_effectsList, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)), this, SLOT(slotEffectSelected())); connect(search_effect, SIGNAL(hiddenChanged(QTreeWidgetItem *, bool)), this, SLOT(slotUpdateSearch(QTreeWidgetItem *, bool))); + connect(m_effectsList, SIGNAL(applyEffect(QDomElement)), this, SIGNAL(addEffect(QDomElement))); connect(search_effect, SIGNAL(textChanged(QString)), this, SLOT(slotAutoExpand(QString))); //m_effectsList->setCurrentRow(0); } @@ -121,10 +122,10 @@ void EffectsListView::showInfoPanel() void EffectsListView::slotEffectSelected() { QDomElement effect = m_effectsList->currentEffect(); - QTreeWidgetItem* item=m_effectsList->currentItem(); - if (item && m_effectsList->indexOfTopLevelItem(item)!=-1){ - item->setExpanded(!item->isExpanded()); - } + QTreeWidgetItem* item=m_effectsList->currentItem(); + if (item && m_effectsList->indexOfTopLevelItem(item)!=-1){ + item->setExpanded(!item->isExpanded()); + } if (!effect.isNull()) emit addEffect(effect); } @@ -186,7 +187,7 @@ void EffectsListView::slotUpdateSearch(QTreeWidgetItem *item, bool hidden) void EffectsListView::slotAutoExpand(QString text) { search_effect->updateSearch(); - + bool selected = false; for (int i = 0; i < m_effectsList->topLevelItemCount(); ++i) { QTreeWidgetItem *folder = m_effectsList->topLevelItem(i); bool expandFolder = false; @@ -195,12 +196,18 @@ void EffectsListView::slotAutoExpand(QString text) if (!text.isEmpty()) { for (int j = 0; j < folder->childCount(); j++) { QTreeWidgetItem *item = folder->child(j); - if (!item->isHidden()) + if (!item->isHidden()) { expandFolder = true; + if (!selected) { + m_effectsList->setCurrentItem(item); + selected = true; + } + } } } folder->setExpanded(expandFolder); } + if (!selected) m_effectsList->setCurrentItem(NULL); } #include "effectslistview.moc" diff --git a/src/effectslistwidget.cpp b/src/effectslistwidget.cpp index d445962..2c51069 100644 --- a/src/effectslistwidget.cpp +++ b/src/effectslistwidget.cpp @@ -283,7 +283,6 @@ const QDomElement EffectsListWidget::itemEffect(QTreeWidgetItem *item) const QDomElement effect; if (!item || item->data(0, TypeRole).toInt() == (int)EFFECT_FOLDER) return effect; QStringList effectInfo = item->data(0, IdRole).toStringList(); - kDebug() << "// EFFECT SELECTED: " << effectInfo; switch (item->data(0, TypeRole).toInt()) { case 1: effect = MainWindow::videoEffects.getEffectByTag(effectInfo.at(0), effectInfo.at(1)).cloneNode().toElement(); @@ -320,6 +319,15 @@ QString EffectsListWidget::currentInfo() } //virtual +void EffectsListWidget::keyPressEvent(QKeyEvent *e) +{ + if (e->key() == Qt::Key_Enter || e->key() == Qt::Key_Return) { + emit applyEffect(currentEffect()); + } + QTreeWidget::keyPressEvent(e); +} + +//virtual QMimeData * EffectsListWidget::mimeData(const QList<QTreeWidgetItem *> list) const { QDomDocument doc; diff --git a/src/effectslistwidget.h b/src/effectslistwidget.h index 9f8ac42..3828884 100644 --- a/src/effectslistwidget.h +++ b/src/effectslistwidget.h @@ -45,6 +45,7 @@ protected: virtual void dragMoveEvent(QDragMoveEvent *event); virtual void contextMenuEvent(QContextMenuEvent * event); virtual QMimeData *mimeData(const QList<QTreeWidgetItem *> list) const; + virtual void keyPressEvent(QKeyEvent *e); private: QMenu *m_menu; @@ -64,6 +65,9 @@ private: private slots: void slotExpandItem(const QModelIndex & index); + +signals: + void applyEffect(const QDomElement); }; #endif |