X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Feffectslistview.cpp;h=6593c8e9cbab7b6d982c1383406e0ea43d9df3a0;hb=e7cc204174b626f1970483faf36ec6d9033b1a7f;hp=e0d2cf9cfa6290e10ab67f25c8be561211e97328;hpb=0e80d47584de89836bdd85543f9e5e1e32ba1285;p=kdenlive diff --git a/src/effectslistview.cpp b/src/effectslistview.cpp index e0d2cf9c..6593c8e9 100644 --- a/src/effectslistview.cpp +++ b/src/effectslistview.cpp @@ -17,98 +17,116 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * ***************************************************************************/ -#include -#include -#include + +#include "effectslistview.h" +#include "effectslistwidget.h" +#include "effectslist.h" +#include "kdenlivesettings.h" #include #include #include -#include "effectslistview.h" -#include "effectslistwidget.h" -#include "effectslist.h" +#include +#include -EffectsListView::EffectsListView(QWidget *parent) - : QWidget(parent) { - ui.setupUi(this); +EffectsListView::EffectsListView(QWidget *parent) : + QWidget(parent) +{ + setupUi(this); QMenu *menu = new QMenu(this); m_effectsList = new EffectsListWidget(menu); - QVBoxLayout *lyr = new QVBoxLayout(ui.effectlistframe); + QVBoxLayout *lyr = new QVBoxLayout(effectlistframe); lyr->addWidget(m_effectsList); lyr->setContentsMargins(0, 0, 0, 0); - ui.search_effect->setListWidget(m_effectsList); - ui.buttonInfo->setIcon(KIcon("help-about")); - ui.infopanel->hide(); + search_effect->setTreeWidget(m_effectsList); + buttonInfo->setIcon(KIcon("help-about")); + setFocusPolicy(Qt::StrongFocus); + + if (KdenliveSettings::showeffectinfo()) { + buttonInfo->setDown(true); + } else infopanel->hide(); menu->addAction(KIcon("edit-delete"), i18n("Delete effect"), this, SLOT(slotRemoveEffect())); - connect(ui.type_combo, SIGNAL(currentIndexChanged(int)), this, SLOT(filterList(int))); - connect(ui.buttonInfo, SIGNAL(clicked()), this, SLOT(showInfoPanel())); + 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(doubleClicked(QListWidgetItem *, const QPoint &)), this, SLOT(slotEffectSelected())); + connect(m_effectsList, SIGNAL(itemDoubleClicked(QTreeWidgetItem *, int)), this, SLOT(slotEffectSelected())); - m_effectsList->setCurrentRow(0); + //m_effectsList->setCurrentRow(0); } -void EffectsListView::filterList(int pos) { - QListWidgetItem *item; - for (int i = 0; i < m_effectsList->count(); i++) { - item = m_effectsList->item(i); - if (pos == 0) item->setHidden(false); - else if (item->data(Qt::UserRole).toInt() == pos) item->setHidden(false); - else item->setHidden(true); +void EffectsListView::focusInEvent(QFocusEvent * /*event*/) +{ + search_effect->setFocus(); +} + +void EffectsListView::filterList(int pos) +{ + QTreeWidgetItem *item; + QTreeWidgetItem *folder; + for (int i = 0; i < m_effectsList->topLevelItemCount(); i++) { + folder = m_effectsList->topLevelItem(i); + for (int j = 0; j < folder->childCount(); j++) { + item = folder->child(j); + if (pos == 0) item->setHidden(false); + else if (item->data(0, Qt::UserRole).toInt() == pos) item->setHidden(false); + else item->setHidden(true); + } } item = m_effectsList->currentItem(); - if (item) { + /*if (item) { if (item->isHidden()) { int i; - for (i = 0; i < m_effectsList->count() && m_effectsList->item(i)->isHidden(); i++); + for (i = 0; i < m_effectsList->count() && m_effectsList->item(i)->isHidden(); i++); //do nothing m_effectsList->setCurrentRow(i); } else m_effectsList->scrollToItem(item); - } + }*/ } -void EffectsListView::showInfoPanel() { - if (ui.infopanel->isVisible()) { - ui.infopanel->setVisible(false); - ui.buttonInfo->setDown(false); +void EffectsListView::showInfoPanel() +{ + if (infopanel->isVisible()) { + infopanel->setVisible(false); + buttonInfo->setDown(false); + KdenliveSettings::setShoweffectinfo(false); } else { - ui.infopanel->setVisible(true); - ui.buttonInfo->setDown(true); + infopanel->setVisible(true); + buttonInfo->setDown(true); + KdenliveSettings::setShoweffectinfo(true); } } -void EffectsListView::slotEffectSelected() { - QDomElement effect = m_effectsList->currentEffect().cloneNode().toElement(); +void EffectsListView::slotEffectSelected() +{ + QDomElement effect = m_effectsList->currentEffect(); if (!effect.isNull()) emit addEffect(effect); } -void EffectsListView::slotUpdateInfo() { - QString info = m_effectsList->currentInfo(); - if (!info.isEmpty()) ui.infopanel->setText(info); -} - -KListWidget *EffectsListView::listView() { - return m_effectsList; +void EffectsListView::slotUpdateInfo() +{ + infopanel->setText(m_effectsList->currentInfo()); } -void EffectsListView::reloadEffectList() { +void EffectsListView::reloadEffectList() +{ m_effectsList->initList(); } -void EffectsListView::slotRemoveEffect() { - QListWidgetItem *item = m_effectsList->currentItem(); - QString effectId = item->text(); - QString path = KStandardDirs::locateLocal("data", "kdenlive/effects/", true); +void EffectsListView::slotRemoveEffect() +{ + QTreeWidgetItem *item = m_effectsList->currentItem(); + QString effectId = item->text(0); + QString path = KStandardDirs::locateLocal("appdata", "effects/", true); QDir directory = QDir(path); QStringList filter; filter << "*.xml"; const QStringList fileList = directory.entryList(filter, QDir::Files); QString itemName; - foreach(const QString filename, fileList) { + foreach(const QString &filename, fileList) { itemName = KUrl(path + filename).path(); QDomDocument doc; QFile file(itemName);