rock_widget_collection  0.1
SonarWidget.cc
Go to the documentation of this file.
1 #include "SonarWidget.h"
2 #include "./SonarPlot.h"
3 #include <iostream>
4 
5 
6 
7 
8 SonarWidget::SonarWidget(QWidget *parent)
9  : QWidget(parent)
10 {
11  resize(1020,670);
12 
13  plot = new SonarPlot(this);
14  plot->setGeometry (10,10,BASE_WIDTH,BASE_HEIGHT);
15  connect(this,SIGNAL(rangeChanged(int)),plot,SLOT(rangeChanged(int)));
16  connect(this,SIGNAL(sonarPaletteChanged(int)),plot,SLOT(sonarPaletteChanged(int)));
17  connect(this,SIGNAL(gridChanged(bool)),plot,SLOT(gridChanged(bool)));
18 
19  QPalette Pal(palette());
20  Pal.setColor(QPalette::Background, plot->palette().color(QPalette::Background));
21  setAutoFillBackground(true);
22  setPalette(Pal);
23 
28 
29  show();
30 }
31 
32 void SonarWidget::resizeEvent ( QResizeEvent * event )
33 {
34  plot->setGeometry (10,10,width()-20,height()-70);
35  lbGain->setGeometry(10,height()-70,50,20);
36  slGain->setGeometry(70,height()-70,150,20);
37  edGain->setGeometry(230,height()-70,50,20);
38  lbRange->setGeometry(10,height()-40,50,20);
39  slRange->setGeometry(70,height()-40,150,20);
40  edRange->setGeometry(230,height()-40,50,20);
41  lbPalette->setGeometry(width()-160,height()-40,50,20);
42  comboPalette->setGeometry(width()-100,height()-40,80,20);
43  lbGrid->setGeometry(width()-160,height()-70,50,20);
44  boxGrid->setGeometry(width()-100,height()-70,80,20);
45  QWidget::resizeEvent (event);
46 }
47 
49 {
50  if(plot){
51  delete plot;
52  }
53 }
54 
55 void SonarWidget::setData(const base::samples::SonarScan scan)
56 {
57  base::samples::Sonar sonar(scan);
58  setData(sonar);
59 }
60 
61 void SonarWidget::setData(const base::samples::Sonar sonar)
62 {
63  plot->setData(sonar);
64 }
65 
66 void SonarWidget::setGain(int value)
67 {
68  slGain->setValue(value);
69 }
70 
71 void SonarWidget::setRange(int value)
72 {
73  slRange->setValue(value);
74 }
75 
76 void SonarWidget::setSectorScan(bool continuous, base::Angle left, base::Angle right)
77 {
78  plot->setSectorScan(continuous, left, right);
79 }
80 
81 void SonarWidget::setMinRange(int value)
82 {
83  slRange->setMinimum(value);
84 }
85 
86 void SonarWidget::setMaxRange(int value)
87 {
88  slRange->setMaximum(value);
89 }
90 
92 {
93  comboPalette->setCurrentIndex(value);
94 }
95 
97 {
98  slRange->setEnabled(!value);
99 }
100 
102 {
103  QString str;
104  str.setNum(value);
105  edGain->setText(str + " %");
106  gainChanged(value);
107 }
108 
110 {
111  QString str;
112  str.setNum(value);
113  edRange->setText(str + " m");
114  rangeChanged(value);
115 }
116 
118 {
119  sonarPaletteChanged(value);
120 }
121 
123 {
124  gridChanged(value);
125 }
126 
128  lbGain = new QLabel(this);
129  lbGain->setGeometry(10, height() - 70, 50, 20);
130  QPalette Pal = lbGain->palette();
131  Pal.setColor(QPalette::Foreground, Qt::white);
132  lbGain->setPalette(Pal);
133  lbGain->setText("Gain:");
134  slGain = new QSlider(Qt::Horizontal, this);
135  slGain->setGeometry(70, height() - 70, 150, 20);
136  slGain->setMinimum(0);
137  slGain->setMaximum(100);
138  slGain->setValue(50);
139  edGain = new QLineEdit(this);
140  edGain->setGeometry(230, height() - 70, 50, 20);
141  edGain->setAlignment(Qt::AlignRight);
142  Pal = edGain->palette();
143  Pal.setColor(QPalette::Base, plot->palette().color(QPalette::Background));
144  Pal.setColor(QPalette::Text, Qt::white);
145  setAutoFillBackground(true);
146  edGain->setPalette(Pal);
147  edGain->setReadOnly(true);
148  edGain->setText("50 %");
149  connect(slGain,SIGNAL(valueChanged(int)),this,SLOT(onSlGainChanged(int)));
150 }
151 
153  lbRange = new QLabel(this);
154  lbRange->setGeometry(10,height()-40,50,20);
155  QPalette Pal=lbRange->palette();
156  Pal.setColor(QPalette::Foreground,Qt::white);
157  lbRange->setPalette(Pal);
158  lbRange->setText("Range:");
159  slRange = new QSlider(Qt::Horizontal, this);
160  slRange->setGeometry(70,height()-40,150,20);
161  slRange->setMinimum(1);
162  slRange->setMaximum(150);
163  slRange->setValue(5);
164  edRange = new QLineEdit(this);
165  edRange->setGeometry(230,height()-40,50,20);
166  edRange->setAlignment(Qt::AlignRight);
167  Pal=edRange->palette();
168  Pal.setColor(QPalette::Base, plot->palette().color(QPalette::Background));
169  Pal.setColor(QPalette::Text,Qt::white);
170  setAutoFillBackground(true);
171  edRange->setPalette(Pal);
172  edRange->setReadOnly(true);
173  edRange->setText("5 m");
174  connect(slRange,SIGNAL(valueChanged(int)),this,SLOT(onSlRangeChanged(int)));
175 }
176 
178  lbPalette = new QLabel(this);
179  lbPalette->setGeometry(width()-160, height() - 40, 50, 20);
180  lbPalette->setGeometry(width()-160, height() - 40, 50, 20);
181  lbPalette->setText("Palette:");
182  lbPalette->setStyleSheet("background-color: blue; color: white;");
183  lbPalette->setAlignment(Qt::AlignRight);
184 
185  comboPalette = new QComboBox(this);
186  comboPalette->setGeometry(width()-100,height()-40,80,20);
187  QPalette Pal = comboPalette->palette();
188  Pal.setColor(comboPalette->backgroundRole(), plot->palette().color(QPalette::Background));
189  Pal.setColor(comboPalette->foregroundRole(),Qt::white);
190  setAutoFillBackground(true);
191  comboPalette->setPalette(Pal);
192  comboPalette->insertItem(comboPalette->count()+1,"Jet");
193  comboPalette->insertItem(comboPalette->count()+1,"Hot");
194  comboPalette->insertItem(comboPalette->count()+1,"Gray");
195  comboPalette->insertItem(comboPalette->count()+1,"Bronze");
196  connect(comboPalette,SIGNAL(currentIndexChanged(int)),this,SLOT(onComboPaletteChanged(int)));
197 }
198 
200  lbGrid = new QLabel(this);
201  lbGrid->setGeometry(width() - 160, height() - 70, 50, 20);
202  lbGrid->setText("Grid:");
203  lbGrid->setAlignment(Qt::AlignRight);
204  lbGrid->setStyleSheet("background-color: blue; color: white;");
205 
206  boxGrid = new QCheckBox(this);
207  boxGrid->setGeometry(width() - 100, height() - 70, 20, 20);
208  boxGrid->setStyleSheet("background-color: blue;");
209  boxGrid->setChecked(true);
210  connect(boxGrid,SIGNAL(clicked(bool)), this, SLOT(onCheckboxGridChanged(bool)));
211 }
void gainChanged(int)
void onSlRangeChanged(int)
Definition: SonarWidget.cc:109
#define BASE_WIDTH
Definition: SonarPlot.h:9
QCheckBox * boxGrid
Definition: SonarWidget.h:35
SonarPlot * plot
Definition: SonarWidget.h:14
void createPaletteComponent()
Definition: SonarWidget.cc:177
void setGain(int)
Definition: SonarWidget.cc:66
QLabel * lbPalette
Definition: SonarWidget.h:20
void setSonarPalette(int)
Definition: SonarWidget.cc:91
QLineEdit * edGain
Definition: SonarWidget.h:22
void setData(const base::samples::Sonar &sonar)
Definition: SonarPlot.cc:29
void setRange(int)
Definition: SonarWidget.cc:71
QLabel * lbRange
Definition: SonarWidget.h:19
QLabel * lbGain
Definition: SonarWidget.h:18
#define BASE_HEIGHT
Definition: SonarPlot.h:10
QLineEdit * edRange
Definition: SonarWidget.h:23
void createRangeComponent()
Definition: SonarWidget.cc:152
QComboBox * comboPalette
Definition: SonarWidget.h:34
QLabel * lbGrid
Definition: SonarWidget.h:21
void onComboPaletteChanged(int)
Definition: SonarWidget.cc:117
void setData(const base::samples::SonarScan scan)
Definition: SonarWidget.cc:55
void gridChanged(bool)
void setMaxRange(int)
Definition: SonarWidget.cc:86
void createGainComponent()
Definition: SonarWidget.cc:127
QSlider * slGain
Definition: SonarWidget.h:32
void createGridComponent()
Definition: SonarWidget.cc:199
void rangeChanged(int)
void enableAutoRanging(bool)
Definition: SonarWidget.cc:96
void setMinRange(int)
Definition: SonarWidget.cc:81
void onSlGainChanged(int)
Definition: SonarWidget.cc:101
void onCheckboxGridChanged(bool)
Definition: SonarWidget.cc:122
QSlider * slRange
Definition: SonarWidget.h:33
void resizeEvent(QResizeEvent *event)
Definition: SonarWidget.cc:32
void sonarPaletteChanged(int)
SonarWidget(QWidget *parent=0)
Definition: SonarWidget.cc:8
void setSectorScan(bool continuous, base::Angle left, base::Angle right)
Definition: SonarWidget.cc:76
void setSectorScan(bool continuous, base::Angle leftLimit, base::Angle rightLimit)
Definition: SonarPlot.cc:239
virtual ~SonarWidget()
Definition: SonarWidget.cc:48
Definition: DrawItem.h:19