]> git.sesse.net Git - kdenlive/blob - src/complexparameter.cpp
Reindent the codebase using 'linux' bracket placement.
[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     ui.setupUi(this);
31     //ui.effectlist->horizontalHeader()->setVisible(false);
32     //ui.effectlist->verticalHeader()->setVisible(false);
33     activeRow = -1;
34     clipref = NULL;
35
36
37     ui.buttonLeftRight->setIcon(KIcon("go-next"));//better icons needed
38     ui.buttonLeftRight->setToolTip(i18n("Allow horizontal moves"));
39     ui.buttonUpDown->setIcon(KIcon("go-up"));
40     ui.buttonUpDown->setToolTip(i18n("Allow vertical moves"));
41     ui.buttonShowInTimeline->setIcon(KIcon("kmplayer"));
42     ui.buttonShowInTimeline->setToolTip(i18n("Show keyframes in timeline"));
43     ui.buttonHelp->setIcon(KIcon("help-about"));
44     ui.buttonHelp->setToolTip(i18n("Parameter info"));
45     ui.buttonNewPoints->setIcon(KIcon("document-new"));
46     ui.buttonNewPoints->setToolTip(i18n("Add keyframe"));
47
48     connect(ui.buttonLeftRight, SIGNAL(clicked()), this , SLOT(slotSetMoveX()));
49     connect(ui.buttonUpDown, SIGNAL(clicked()), this , SLOT(slotSetMoveY()));
50     connect(ui.buttonShowInTimeline, SIGNAL(clicked()), this , SLOT(slotShowInTimeline()));
51     connect(ui.buttonNewPoints, SIGNAL(clicked()), this , SLOT(slotSetNew()));
52     connect(ui.buttonHelp, SIGNAL(clicked()), this , SLOT(slotSetHelp()));
53     connect(ui.parameterList, SIGNAL(currentIndexChanged(const QString &)), this, SLOT(slotParameterChanged(const QString&)));
54     //connect (ui.effectlist, SIGNAL (itemSelectionChanged() ) , this, SLOT ( itemSelectionChanged()));
55     connect(this, SIGNAL(transferParamDesc(const QDomElement&, const QString&, int , int)), ui.kplotwidget, SLOT(setPointLists(const QDomElement&, const QString&, int , int)));
56     connect(ui.kplotwidget, SIGNAL(parameterChanged(QDomElement)), this , SLOT(slotUpdateEffectParams(QDomElement)));
57     connect(ui.kplotwidget, SIGNAL(parameterList(QStringList)), this , SLOT(slotUpdateParameterList(QStringList)));
58     /*ÜeffectLists["audio"]=audioEffectList;
59     effectLists["video"]=videoEffectList;
60     effectLists["custom"]=customEffectList;*/
61     setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding));
62     ui.infoBox->hide();
63     updateButtonStatus();
64
65 }
66
67
68
69 void ComplexParameter::slotSetMoveX()
70 {
71     ui.kplotwidget->setMoveX(!ui.kplotwidget->isMoveX());
72     updateButtonStatus();
73 }
74
75 void ComplexParameter::slotSetMoveY()
76 {
77     ui.kplotwidget->setMoveY(!ui.kplotwidget->isMoveY());
78     updateButtonStatus();
79 }
80
81 void ComplexParameter::slotSetNew()
82 {
83     ui.kplotwidget->setNewPoints(!ui.kplotwidget->isNewPoints());
84     updateButtonStatus();
85 }
86
87 void ComplexParameter::slotSetHelp()
88 {
89     ui.infoBox->setVisible(!ui.infoBox->isVisible());
90     ui.buttonHelp->setDown(ui.infoBox->isVisible());
91 }
92
93 void ComplexParameter::slotShowInTimeline()
94 {
95
96     ui.kplotwidget->setMoveTimeLine(!ui.kplotwidget->isMoveTimeline());
97     updateButtonStatus();
98
99 }
100
101 void ComplexParameter::updateButtonStatus()
102 {
103     ui.buttonLeftRight->setDown(ui.kplotwidget->isMoveX());
104     ui.buttonUpDown->setDown(ui.kplotwidget->isMoveY());
105
106     ui.buttonShowInTimeline->setEnabled(ui.kplotwidget->isMoveX() || ui.kplotwidget->isMoveY());
107     ui.buttonShowInTimeline->setDown(ui.kplotwidget->isMoveTimeline());
108
109     ui.buttonNewPoints->setEnabled(ui.parameterList->currentText() != "all");
110     ui.buttonNewPoints->setDown(ui.kplotwidget->isNewPoints());
111 }
112
113 void ComplexParameter::slotParameterChanged(const QString& text)
114 {
115
116     //ui.buttonNewPoints->setEnabled(text!="all");
117     ui.kplotwidget->replot(text);
118     updateButtonStatus();
119 }
120
121 void ComplexParameter::setupParam(const QDomElement& d, const QString& paramName, int from, int to)
122 {
123     param = d;
124     ui.kplotwidget->setPointLists(d, paramName, from, to);
125 }
126
127 void ComplexParameter::itemSelectionChanged()
128 {
129     //kDebug() << "drop";
130 }
131
132 void ComplexParameter::slotUpdateEffectParams(QDomElement e)
133 {
134     param = e;
135     emit parameterChanged();
136 }
137
138 QDomElement ComplexParameter::getParamDesc()
139 {
140     return param;
141 }
142
143 void ComplexParameter::slotUpdateParameterList(QStringList l)
144 {
145     kDebug() << l ;
146     ui.parameterList->clear();
147     ui.parameterList->addItem("all");
148     ui.parameterList->addItems(l);
149 }
150
151 #include "complexparameter.moc"