}
void EffectStackView::slotClipItemSelected(ClipItem* c) {
- clipref = c;
+ int ix = 0;
+ if (c && c == clipref) {
+ ix = ui.effectlist->currentRow();
+ } else {
+ clipref = c;
+ if (c) ix = c->selectedEffectIndex();
+ }
if (clipref == NULL) {
+ ui.effectlist->clear();
setEnabled(false);
return;
}
setEnabled(true);
- setupListView();
-
+ setupListView(ix);
}
void EffectStackView::slotItemChanged(QListWidgetItem *item) {
}
-void EffectStackView::setupListView() {
-
+void EffectStackView::setupListView(int ix) {
ui.effectlist->clear();
for (int i = 0;i < clipref->effectsCount();i++) {
QDomElement d = clipref->effectAt(i);
}
if (clipref->effectsCount() == 0)
emit transferParamDesc(QDomElement(), 0, 100);
- ui.effectlist->setCurrentRow(0);
-
+ if (ix < 0) ix = 0;
+ ui.effectlist->setCurrentRow(ix);
}
void EffectStackView::slotItemSelectionChanged() {
if (hasItem && ui.effectlist->currentItem()->isSelected()) {
emit transferParamDesc(clipref->effectAt(activeRow), 0, 100);//minx max frame
}
+ if (clipref) clipref->setSelectedEffect(activeRow);
ui.buttonDel->setEnabled(hasItem);
ui.buttonReset->setEnabled(hasItem && isChecked);
ui.buttonUp->setEnabled(activeRow > 0);
}
void EffectStackView::slotNewEffect() {
-
-
+ int ix = ui.effectlist->currentRow();
QMenu *displayMenu = new QMenu(this);
displayMenu->setTitle("Filters");
foreach(const QString &type, effectLists.keys()) {
slotClipItemSelected(clipref);
}
- setupListView();
+ setupListView(ix);
//kDebug()<< result->data();
}
delete displayMenu;