X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Feffectslistview.cpp;h=ae6c846928589311658d75ac6813bf8860077849;hb=bc070a183076f187c8c854d66f1a8d43fc679d87;hp=db01507d2b206fca2571eb28dcb6c43fc76050f6;hpb=fa5af4bea938a2bb3d9232977b2973698693e8d2;p=kdenlive diff --git a/src/effectslistview.cpp b/src/effectslistview.cpp index db01507d..ae6c8469 100644 --- a/src/effectslistview.cpp +++ b/src/effectslistview.cpp @@ -30,20 +30,33 @@ #include #include + EffectsListView::EffectsListView(QWidget *parent) : QWidget(parent) { setupUi(this); - - QMenu *menu = new QMenu(this); - m_effectsList = new EffectsListWidget(menu); + 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} \ + QTreeView::branch:has-children:!has-siblings:closed,QTreeView::branch:closed:has-children:has-siblings { \ + border-image: none;image: url(:/images/stylesheet-branch-closed.png);} \ + QTreeView::branch:open:has-children:!has-siblings,QTreeView::branch:open:has-children:has-siblings { \ + border-image: none;image: url(:/images/stylesheet-branch-open.png);}"; + + QMenu *contextMenu = new QMenu(this); + m_effectsList = new EffectsListWidget(contextMenu); + m_effectsList->setStyleSheet(styleSheet); QVBoxLayout *lyr = new QVBoxLayout(effectlistframe); lyr->addWidget(m_effectsList); lyr->setContentsMargins(0, 0, 0, 0); search_effect->setTreeWidget(m_effectsList); search_effect->setToolTip(i18n("Search in the effect list")); + + int size = style()->pixelMetric(QStyle::PM_SmallIconSize); + QSize iconSize(size, size); buttonInfo->setIcon(KIcon("help-about")); buttonInfo->setToolTip(i18n("Show/Hide the effect description")); + buttonInfo->setIconSize(iconSize); setFocusPolicy(Qt::StrongFocus); setFocusProxy(search_effect); m_effectsList->setFocusProxy(search_effect); @@ -53,13 +66,14 @@ EffectsListView::EffectsListView(QWidget *parent) : else infopanel->hide(); - menu->addAction(KIcon("edit-delete"), i18n("Delete effect"), this, SLOT(slotRemoveEffect())); + contextMenu->addAction(KIcon("edit-delete"), i18n("Delete effect"), this, SLOT(slotRemoveEffect())); 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); } @@ -108,10 +122,10 @@ void EffectsListView::showInfoPanel() void EffectsListView::slotEffectSelected() { QDomElement effect = m_effectsList->currentEffect(); - QTreeWidgetItem* item=m_effectsList->currentItem(); - if (item && item->data(0, Qt::UserRole).toInt() == 4){ - 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); } @@ -121,9 +135,9 @@ void EffectsListView::slotUpdateInfo() infopanel->setText(m_effectsList->currentInfo()); } -void EffectsListView::reloadEffectList() +void EffectsListView::reloadEffectList(QMenu *effectsMenu, KActionCategory *effectActions) { - m_effectsList->initList(); + m_effectsList->initList(effectsMenu, effectActions); } void EffectsListView::slotRemoveEffect() @@ -173,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; @@ -182,12 +196,23 @@ 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); +} + +void EffectsListView::updatePalette() +{ + m_effectsList->setStyleSheet(m_effectsList->styleSheet()); } #include "effectslistview.moc"