]> git.sesse.net Git - kdenlive/blob - src/complexparameter.cpp
add explicit keyword when necessary. Add const ref when necessary
[kdenlive] / src / complexparameter.cpp
1 /***************************************************************************
2                           complexparameter.cpp  -  description
3                              -------------------
4     begin                : Feb 15 2008
5     copyright            : (C) 2008 by Marco Gittler
6     email                : g.marco@freenet.de
7  ***************************************************************************/
8
9 /***************************************************************************
10  *                                                                         *
11  *   This program is free software; you can redistribute it and/or modify  *
12  *   it under the terms of the GNU General Public License as published by  *
13  *   the Free Software Foundation; either version 2 of the License, or     *
14  *   (at your option) any later version.                                   *
15  *                                                                         *
16  ***************************************************************************/
17
18 #include "complexparameter.h"
19
20 #include <KDebug>
21 #include <KLocale>
22
23
24 #include <QHeaderView>
25 #include <QMenu>
26
27 ComplexParameter::ComplexParameter(QWidget *parent) :
28         QWidget(parent)
29 {
30     m_ui.setupUi(this);
31     //m_ui.effectlist->horizontalHeader()->setVisible(false);
32     //m_ui.effectlist->verticalHeader()->setVisible(false);
33
34
35     m_ui.buttonLeftRight->setIcon(KIcon("go-next"));//better icons needed
36     m_ui.buttonLeftRight->setToolTip(i18n("Allow horizontal moves"));
37     m_ui.buttonUpDown->setIcon(KIcon("go-up"));
38     m_ui.buttonUpDown->setToolTip(i18n("Allow vertical moves"));
39     m_ui.buttonShowInTimeline->setIcon(KIcon("kmplayer"));
40     m_ui.buttonShowInTimeline->setToolTip(i18n("Show keyframes in timeline"));
41     m_ui.buttonHelp->setIcon(KIcon("help-about"));
42     m_ui.buttonHelp->setToolTip(i18n("Parameter info"));
43     m_ui.buttonNewPoints->setIcon(KIcon("document-new"));
44     m_ui.buttonNewPoints->setToolTip(i18n("Add keyframe"));
45
46     connect(m_ui.buttonLeftRight, SIGNAL(clicked()), this , SLOT(slotSetMoveX()));
47     connect(m_ui.buttonUpDown, SIGNAL(clicked()), this , SLOT(slotSetMoveY()));
48     connect(m_ui.buttonShowInTimeline, SIGNAL(clicked()), this , SLOT(slotShowInTimeline()));
49     connect(m_ui.buttonNewPoints, SIGNAL(clicked()), this , SLOT(slotSetNew()));
50     connect(m_ui.buttonHelp, SIGNAL(clicked()), this , SLOT(slotSetHelp()));
51     connect(m_ui.parameterList, SIGNAL(currentIndexChanged(QString)), this, SLOT(slotParameterChanged(QString)));
52     connect(m_ui.kplotwidget, SIGNAL(parameterChanged(QDomElement)), this , SLOT(slotUpdateEffectParams(QDomElement)));
53     connect(m_ui.kplotwidget, SIGNAL(parameterList(QStringList)), this , SLOT(slotUpdateParameterList(QStringList)));
54     /*ÜeffectLists["audio"]=audioEffectList;
55     effectLists["video"]=videoEffectList;
56     effectLists["custom"]=customEffectList;*/
57     setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding));
58     m_ui.infoBox->hide();
59     updateButtonStatus();
60
61 }
62
63
64
65 void ComplexParameter::slotSetMoveX()
66 {
67     m_ui.kplotwidget->setMoveX(!m_ui.kplotwidget->isMoveX());
68     updateButtonStatus();
69 }
70
71 void ComplexParameter::slotSetMoveY()
72 {
73     m_ui.kplotwidget->setMoveY(!m_ui.kplotwidget->isMoveY());
74     updateButtonStatus();
75 }
76
77 void ComplexParameter::slotSetNew()
78 {
79     m_ui.kplotwidget->setNewPoints(!m_ui.kplotwidget->isNewPoints());
80     updateButtonStatus();
81 }
82
83 void ComplexParameter::slotSetHelp()
84 {
85     m_ui.infoBox->setVisible(!m_ui.infoBox->isVisible());
86     m_ui.buttonHelp->setDown(m_ui.infoBox->isVisible());
87 }
88
89 void ComplexParameter::slotShowInTimeline()
90 {
91
92     m_ui.kplotwidget->setMoveTimeLine(!m_ui.kplotwidget->isMoveTimeline());
93     updateButtonStatus();
94
95 }
96
97 void ComplexParameter::updateButtonStatus()
98 {
99     m_ui.buttonLeftRight->setDown(m_ui.kplotwidget->isMoveX());
100     m_ui.buttonUpDown->setDown(m_ui.kplotwidget->isMoveY());
101
102     m_ui.buttonShowInTimeline->setEnabled(m_ui.kplotwidget->isMoveX() || m_ui.kplotwidget->isMoveY());
103     m_ui.buttonShowInTimeline->setDown(m_ui.kplotwidget->isMoveTimeline());
104
105     m_ui.buttonNewPoints->setEnabled(m_ui.parameterList->currentText() != "all");
106     m_ui.buttonNewPoints->setDown(m_ui.kplotwidget->isNewPoints());
107 }
108
109 void ComplexParameter::slotParameterChanged(const QString& text)
110 {
111
112     //m_ui.buttonNewPoints->setEnabled(text!="all");
113     m_ui.kplotwidget->replot(text);
114     updateButtonStatus();
115 }
116
117 void ComplexParameter::setupParam(const QDomElement d, const QString& paramName, int from, int to)
118 {
119     m_param = d;
120     m_ui.kplotwidget->setPointLists(d, paramName, from, to);
121 }
122
123 void ComplexParameter::itemSelectionChanged()
124 {
125     //kDebug() << "drop";
126 }
127
128 void ComplexParameter::slotUpdateEffectParams(QDomElement e)
129 {
130     m_param = e;
131     emit parameterChanged();
132 }
133
134 QDomElement ComplexParameter::getParamDesc() const
135 {
136     return m_param;
137 }
138
139 void ComplexParameter::slotUpdateParameterList(const QStringList &l)
140 {
141     kDebug() << l ;
142     m_ui.parameterList->clear();
143     m_ui.parameterList->addItem("all");
144     m_ui.parameterList->addItems(l);
145 }
146
147 #include "complexparameter.moc"