benoitrigolleau@56
|
1
|
benoitrigolleau@56
|
2 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
|
benoitrigolleau@56
|
3
|
benoitrigolleau@56
|
4 /*
|
benoitrigolleau@56
|
5 Sound Access
|
benoitrigolleau@56
|
6 EASAIER client application.
|
benoitrigolleau@56
|
7 Silogic 2007. Benoit Rigolleau.
|
benoitrigolleau@56
|
8
|
benoitrigolleau@56
|
9 This program is free software; you can redistribute it and/or
|
benoitrigolleau@56
|
10 modify it under the terms of the GNU General Public License as
|
benoitrigolleau@56
|
11 published by the Free Software Foundation; either version 2 of the
|
benoitrigolleau@56
|
12 License, or (at your option) any later version. See the file
|
benoitrigolleau@56
|
13 COPYING included with this distribution for more information.
|
benoitrigolleau@56
|
14 */
|
benoitrigolleau@56
|
15
|
benoitrigolleau@56
|
16 #include "ItemLayerList.h"
|
benoitrigolleau@56
|
17
|
benoitrigolleau@56
|
18 #include "data/model/LayerItemModel.h"
|
benoitrigolleau@58
|
19 #include "layer/Layer.h"
|
benoitrigolleau@58
|
20 #include "base/PlayParameters.h"
|
benoitrigolleau@56
|
21
|
benoitrigolleau@56
|
22 #include <QWidget>
|
benoitrigolleau@56
|
23
|
benoitrigolleau@56
|
24 #include <QApplication>
|
benoitrigolleau@56
|
25 #include <QLabel>
|
benoitrigolleau@56
|
26
|
benoitrigolleau@58
|
27
|
benoitrigolleau@56
|
28 ItemLayerList::ItemLayerList(QWidget *parent) : GenericItemList(parent){
|
benoitrigolleau@56
|
29 setAcceptDrops(true);
|
benoitrigolleau@56
|
30
|
benoitrigolleau@56
|
31 /* Init all variables*/
|
benoitrigolleau@58
|
32 m_labelIcon = new QLabel;
|
benoitrigolleau@58
|
33 m_labelName = new QLabel;
|
benoitrigolleau@58
|
34 m_checkBoxShow = new QCheckBox;
|
benoitrigolleau@58
|
35 m_checkBoxPlay = new QCheckBox;
|
benoitrigolleau@58
|
36 m_layoutMain = new QHBoxLayout;
|
benoitrigolleau@133
|
37
|
benoitrigolleau@56
|
38
|
benoitrigolleau@56
|
39 /* set the correct widget parameters*/
|
benoitrigolleau@58
|
40 m_labelIcon->setMaximumSize(25,25);
|
benoitrigolleau@56
|
41 //labelIcon->setPixmap(QIcon(":icons/layerViewer_btn_config.png").pixmap(20));
|
benoitrigolleau@56
|
42
|
benoitrigolleau@58
|
43 m_labelName->setMaximumHeight(25);
|
benoitrigolleau@56
|
44 //labelName->setText("ljdh lksdf hl");
|
benoitrigolleau@56
|
45
|
benoitrigolleau@58
|
46 m_checkBoxShow->setLayoutDirection(Qt::RightToLeft);
|
benoitrigolleau@58
|
47 m_checkBoxShow->setMaximumSize(30,30);
|
benoitrigolleau@56
|
48 //checkBox1->setText("");
|
benoitrigolleau@58
|
49 m_checkBoxShow->setAutoFillBackground(true);
|
benoitrigolleau@60
|
50 QPalette palette;
|
benoitrigolleau@60
|
51 palette.setColor(QPalette::Button,palette.color(QPalette::Background));
|
benoitrigolleau@60
|
52 m_checkBoxShow->setPalette(palette);
|
benoitrigolleau@56
|
53
|
benoitrigolleau@58
|
54 m_checkBoxPlay->setMaximumSize(20,30);
|
benoitrigolleau@56
|
55
|
benoitrigolleau@58
|
56 m_layoutMain->setSpacing(5);
|
benoitrigolleau@58
|
57 m_layoutMain->setMargin(0);
|
benoitrigolleau@56
|
58
|
benoitrigolleau@56
|
59 this->setMaximumHeight(30);
|
benoitrigolleau@56
|
60 this->setMinimumHeight(30);
|
benoitrigolleau@56
|
61 this->setFrameStyle(QFrame::Panel | QFrame::Raised);
|
benoitrigolleau@56
|
62 this->setLineWidth(1);
|
benoitrigolleau@56
|
63
|
benoitrigolleau@56
|
64 /* build the interface*/
|
benoitrigolleau@58
|
65 m_layoutMain->addWidget(m_checkBoxShow);
|
benoitrigolleau@58
|
66 m_layoutMain->addWidget(m_checkBoxPlay);
|
benoitrigolleau@58
|
67 m_layoutMain->addWidget(m_labelIcon);
|
benoitrigolleau@58
|
68 m_layoutMain->addWidget(m_labelName);
|
benoitrigolleau@56
|
69
|
benoitrigolleau@56
|
70 /*add the main layout in this widget*/
|
benoitrigolleau@58
|
71 this->setLayout(m_layoutMain);
|
benoitrigolleau@56
|
72
|
benoitrigolleau@56
|
73 connect(this, SIGNAL(doubleClicked()), this, SLOT(openPropertyBox()));
|
benoitrigolleau@56
|
74 }
|
benoitrigolleau@56
|
75
|
benoitrigolleau@133
|
76 ItemLayerList::~ItemLayerList(){
|
benoitrigolleau@133
|
77 /*if(m_propertyBox){
|
benoitrigolleau@133
|
78 m_propertyBox->close();
|
benoitrigolleau@133
|
79 delete m_propertyBox;
|
benoitrigolleau@133
|
80 }*/
|
benoitrigolleau@133
|
81 }
|
benoitrigolleau@133
|
82
|
benoitrigolleau@56
|
83 void ItemLayerList::setIcon(QString &icon){
|
benoitrigolleau@58
|
84 m_labelIcon->setPixmap(QIcon(icon).pixmap(25));
|
benoitrigolleau@56
|
85 }
|
benoitrigolleau@56
|
86
|
benoitrigolleau@56
|
87 void ItemLayerList::setName(QString &name){
|
benoitrigolleau@58
|
88 m_labelName->setText(name);
|
benoitrigolleau@56
|
89 }
|
benoitrigolleau@56
|
90
|
benoitrigolleau@56
|
91 void ItemLayerList::setColor(QColor &color){
|
benoitrigolleau@56
|
92 QPalette palette;
|
benoitrigolleau@56
|
93 palette.setColor(QPalette::Button,color);
|
benoitrigolleau@58
|
94 m_checkBoxShow->setPalette(palette);
|
benoitrigolleau@56
|
95 }
|
benoitrigolleau@56
|
96
|
benoitrigolleau@58
|
97 void ItemLayerList::changeCheckBoxShowState(bool state){
|
benoitrigolleau@58
|
98 m_checkBoxShow->setChecked(state);
|
benoitrigolleau@56
|
99 }
|
benoitrigolleau@56
|
100
|
benoitrigolleau@58
|
101 void ItemLayerList::changeCheckBoxPlayState(bool state){
|
benoitrigolleau@58
|
102 m_checkBoxPlay->setChecked(state);
|
benoitrigolleau@56
|
103 }
|
benoitrigolleau@56
|
104
|
benoitrigolleau@56
|
105 void ItemLayerList::setPropertyBox(PropertyBox *box){
|
benoitrigolleau@56
|
106 m_propertyBox = box;
|
benoitrigolleau@57
|
107 if(m_propertyBox!=0){
|
benoitrigolleau@58
|
108
|
benoitrigolleau@58
|
109 m_container = m_propertyBox->container();
|
benoitrigolleau@58
|
110
|
benoitrigolleau@58
|
111
|
benoitrigolleau@58
|
112 updateCheckboxs();
|
benoitrigolleau@61
|
113 updateColor();
|
benoitrigolleau@58
|
114 connect(m_checkBoxShow,SIGNAL(stateChanged(int)),m_propertyBox,SLOT(layerVisibilityChanged(int)));
|
benoitrigolleau@57
|
115 connect(m_propertyBox, SIGNAL(showLayer(bool)), this, SLOT(showLayer(bool)));
|
benoitrigolleau@57
|
116 }
|
benoitrigolleau@57
|
117
|
benoitrigolleau@57
|
118 //connect();
|
benoitrigolleau@56
|
119 }
|
benoitrigolleau@56
|
120
|
benoitrigolleau@56
|
121 void ItemLayerList::configAction(){
|
benoitrigolleau@56
|
122 if(m_propertyBox!=0){
|
lbajardsilogic@183
|
123 m_propertyBox->showNormal();
|
benoitrigolleau@56
|
124 }
|
benoitrigolleau@56
|
125 }
|
benoitrigolleau@56
|
126
|
benoitrigolleau@56
|
127
|
benoitrigolleau@56
|
128 /*********SLOTS ************/
|
benoitrigolleau@56
|
129 void ItemLayerList::openPropertyBox(){
|
benoitrigolleau@56
|
130 ItemLayerList::configAction();
|
benoitrigolleau@56
|
131 }
|
benoitrigolleau@56
|
132
|
benoitrigolleau@57
|
133 void ItemLayerList::showLayer(bool value){
|
benoitrigolleau@58
|
134 changeCheckBoxShowState(value);
|
benoitrigolleau@57
|
135 }
|
benoitrigolleau@56
|
136
|
benoitrigolleau@99
|
137 void ItemLayerList::playAudibleChanged(bool value){
|
benoitrigolleau@99
|
138 changeCheckBoxPlayState(value);
|
benoitrigolleau@99
|
139 }
|
benoitrigolleau@99
|
140
|
benoitrigolleau@99
|
141
|
benoitrigolleau@58
|
142 void ItemLayerList::updateCheckboxs(){
|
benoitrigolleau@58
|
143 Layer *layer = dynamic_cast<Layer *>(m_container);
|
benoitrigolleau@58
|
144 if (layer) {
|
benoitrigolleau@58
|
145 m_checkBoxShow->setEnabled(true);
|
benoitrigolleau@58
|
146 m_checkBoxShow->setChecked(true);
|
benoitrigolleau@58
|
147
|
benoitrigolleau@58
|
148 disconnect(layer, SIGNAL(modelReplaced()),
|
benoitrigolleau@58
|
149 this, SLOT(updateCheckboxs()));
|
benoitrigolleau@58
|
150 connect(layer, SIGNAL(modelReplaced()),
|
benoitrigolleau@58
|
151 this, SLOT(updateCheckboxs()));
|
benoitrigolleau@60
|
152
|
benoitrigolleau@60
|
153 disconnect(layer, SIGNAL(layerParametersChanged()),
|
benoitrigolleau@60
|
154 this,SLOT(updateColor()));
|
benoitrigolleau@60
|
155 connect(layer, SIGNAL(layerParametersChanged()),
|
benoitrigolleau@60
|
156 this,SLOT(updateColor()));
|
benoitrigolleau@60
|
157
|
benoitrigolleau@58
|
158 }else{
|
benoitrigolleau@58
|
159 m_checkBoxShow->setEnabled(false);
|
benoitrigolleau@58
|
160 }
|
benoitrigolleau@58
|
161 PlayParameters *params = m_container->getPlayParameters();
|
benoitrigolleau@56
|
162
|
benoitrigolleau@58
|
163 if(params){
|
benoitrigolleau@58
|
164 m_checkBoxPlay->setEnabled(true);
|
benoitrigolleau@58
|
165 m_checkBoxPlay->setChecked(!params->isPlayMuted());
|
benoitrigolleau@58
|
166
|
benoitrigolleau@99
|
167 connect(params, SIGNAL(playAudibleChanged(bool)),this, SLOT(playAudibleChanged(bool)));
|
benoitrigolleau@58
|
168 connect(m_checkBoxPlay, SIGNAL(stateChanged(int)),params, SLOT(setPlayAudible(int)));
|
benoitrigolleau@58
|
169 }else{
|
benoitrigolleau@58
|
170 m_checkBoxPlay->setEnabled(false);
|
benoitrigolleau@58
|
171 }
|
benoitrigolleau@58
|
172 }
|
benoitrigolleau@58
|
173
|
benoitrigolleau@60
|
174 void ItemLayerList::updateColor(){
|
benoitrigolleau@60
|
175 Layer *layer = dynamic_cast<Layer *>(m_container);
|
benoitrigolleau@60
|
176 if (layer) {
|
benoitrigolleau@60
|
177 QPalette palette;
|
benoitrigolleau@61
|
178 palette.setColor(QPalette::Button,layer->getBaseColour());
|
benoitrigolleau@60
|
179 m_checkBoxShow->setPalette(palette);
|
benoitrigolleau@60
|
180 }
|
benoitrigolleau@60
|
181 }
|
benoitrigolleau@58
|
182
|
benoitrigolleau@58
|
183
|
benoitrigolleau@58
|
184
|
benoitrigolleau@58
|
185
|
benoitrigolleau@58
|
186
|
benoitrigolleau@58
|
187
|
benoitrigolleau@60
|
188
|