#include <KDebug>
#include <KLocale>
#include <KFileDialog>
-#include <KColorScheme>
#include <QVBoxLayout>
#include <QLabel>
#include <QPushButton>
#include <QCheckBox>
#include <QScrollArea>
+#include <QScrollBar>
+#include <QProgressBar>
// For QDomNode debugging (output into files); leaving here as sample code.
//#define DEBUG_ESE
setFrameStyle(QFrame::NoFrame);
setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::MinimumExpanding));
- QPalette p = palette();
- KColorScheme scheme(p.currentColorGroup(), KColorScheme::View, KSharedConfig::openConfig(KdenliveSettings::colortheme()));
- QColor dark_bg = scheme.shade(KColorScheme::DarkShade);
- QColor selected_bg = scheme.decoration(KColorScheme::FocusColor).color();
- QColor hover_bg = scheme.decoration(KColorScheme::HoverColor).color();
- QColor light_bg = scheme.shade(KColorScheme::LightShade);
-
- QString stylesheet(QString("QProgressBar:horizontal {border: 1px solid %1;border-radius:0px;border-top-left-radius: 4px;border-bottom-left-radius: 4px;border-right: 0px;background:%4;padding: 0px;text-align:left center}\
- QProgressBar:horizontal#dragOnly {background: %1} QProgressBar:horizontal:hover#dragOnly {background: %3} QProgressBar:horizontal:hover {border: 1px solid %3;border-right: 0px;}\
- QProgressBar::chunk:horizontal {background: %1;} QProgressBar::chunk:horizontal:hover {background: %3;}\
- QProgressBar:horizontal[inTimeline=\"true\"] { border: 1px solid %2;border-right: 0px;background: %4;padding: 0px;text-align:left center } QProgressBar::chunk:horizontal[inTimeline=\"true\"] {background: %2;}\
- QAbstractSpinBox#dragBox {border: 1px solid %1;border-top-right-radius: 4px;border-bottom-right-radius: 4px;padding-right:0px;} QAbstractSpinBox::down-button#dragBox {width:0px;padding:0px;}\
- QAbstractSpinBox::up-button#dragBox {width:0px;padding:0px;} QAbstractSpinBox[inTimeline=\"true\"]#dragBox { border: 1px solid %2;} QAbstractSpinBox:hover#dragBox {border: 1px solid %3;} ")
- .arg(dark_bg.name()).arg(selected_bg.name()).arg(hover_bg.name()).arg(light_bg.name()));
- setStyleSheet(stylesheet);
+ setStyleSheet(CollapsibleEffect::getStyleSheet());
setWidget(m_baseWidget);
/*m_vbox = new QVBoxLayout(m_baseWidget);
m_vbox->setContentsMargins(0, 0, 0, 0);
void EffectStackEdit::updateParameter(const QString &name, const QString &value)
{
- m_params.setAttribute(name, value);
+ m_paramWidget->updateParameter(name, value);
if (name == "disable") {
// if effect is disabled, disable parameters widget
}
}
+bool EffectStackEdit::eventFilter( QObject * o, QEvent * e )
+{
+ if (e->type() == QEvent::Wheel) {
+ QWheelEvent *we = static_cast<QWheelEvent *>(e);
+ bool filterWheel = verticalScrollBar() && verticalScrollBar()->isVisible();
+ if (!filterWheel || we->modifiers() != Qt::NoModifier) {
+ e->accept();
+ return false;
+ }
+ if (qobject_cast<QAbstractSpinBox*>(o)) {
+ if(qobject_cast<QAbstractSpinBox*>(o)->focusPolicy() == Qt::WheelFocus)
+ {
+ e->accept();
+ return false;
+ }
+ else
+ {
+ e->ignore();
+ return true;
+ }
+ }
+ if (qobject_cast<KComboBox*>(o)) {
+ if(qobject_cast<KComboBox*>(o)->focusPolicy() == Qt::WheelFocus)
+ {
+ e->accept();
+ return false;
+ }
+ else
+ {
+ e->ignore();
+ return true;
+ }
+ }
+ if (qobject_cast<QProgressBar*>(o)) {
+ if(qobject_cast<QProgressBar*>(o)->focusPolicy() == Qt::WheelFocus)
+ {
+ e->accept();
+ return false;
+ }
+ else
+ {
+ e->ignore();
+ return true;
+ }
+ }
+ }
+ return QWidget::eventFilter(o, e);
+}
+
void EffectStackEdit::transferParamDesc(const QDomElement &d, ItemInfo info, bool /*isEffect*/)
{
if (m_paramWidget) delete m_paramWidget;
- m_paramWidget = new ParameterContainer(d, info, &m_metaInfo, 0, m_baseWidget);
+ m_paramWidget = new ParameterContainer(d, info, &m_metaInfo, m_baseWidget);
connect (m_paramWidget, SIGNAL(parameterChanged(const QDomElement, const QDomElement, int)), this, SIGNAL(parameterChanged(const QDomElement, const QDomElement, int)));
connect(m_paramWidget, SIGNAL(startFilterJob(QString,QString,QString,QString,QString,QString)), this, SIGNAL(startFilterJob(QString,QString,QString,QString,QString,QString)));
connect (this, SIGNAL(syncEffectsPos(int)), m_paramWidget, SIGNAL(syncEffectsPos(int)));
connect (m_paramWidget, SIGNAL(checkMonitorPosition(int)), this, SIGNAL(checkMonitorPosition(int)));
connect (m_paramWidget, SIGNAL(seekTimeline(int)), this, SIGNAL(seekTimeline(int)));
+
+
+ Q_FOREACH( QSpinBox * sp, m_baseWidget->findChildren<QSpinBox*>() ) {
+ sp->installEventFilter( this );
+ sp->setFocusPolicy( Qt::StrongFocus );
+ }
+ Q_FOREACH( KComboBox * cb, m_baseWidget->findChildren<KComboBox*>() ) {
+ cb->installEventFilter( this );
+ cb->setFocusPolicy( Qt::StrongFocus );
+ }
+ Q_FOREACH( QProgressBar * cb, m_baseWidget->findChildren<QProgressBar*>() ) {
+ cb->installEventFilter( this );
+ cb->setFocusPolicy( Qt::StrongFocus );
+ }
+
return;
/*
//clearAllItems();
emit syncEffectsPos(pos);
}
-void EffectStackEdit::slotStartFilterJobAction()
-{
- QDomNodeList namenode = m_params.elementsByTagName("parameter");
- for (int i = 0; i < namenode.count() ; i++) {
- QDomElement pa = namenode.item(i).toElement();
- QString type = pa.attribute("type");
- if (type == "filterjob") {
- emit startFilterJob(pa.attribute("filtertag"), pa.attribute("filterparams"), pa.attribute("finalfilter"), pa.attribute("consumer"), pa.attribute("consumerparams"), pa.attribute("wantedproperties"));
- kDebug()<<" - - -PROPS:\n"<<pa.attribute("filtertag")<<"-"<< pa.attribute("filterparams")<<"-"<< pa.attribute("consumer")<<"-"<< pa.attribute("consumerparams")<<"-"<< pa.attribute("wantedproperties");
- break;
- }
- }
-}