54 #include "QtCoordFrameDialog.hh"
55 #include "../Scenegraph/CoordFrameNode.hh"
57 #include <qcombobox.h>
58 #include <qpushbutton.h>
59 #include <qgroupbox.h>
73 QtCoordFrameDialog( QWidget* _parent,
74 SceneGraph::CoordFrameNode* _node,
77 : QDialog(_parent, _fl),
83 connect( ui_.OkButton, SIGNAL( clicked() ),
this, SLOT( apply_changes() ) );
84 connect( ui_.OkButton, SIGNAL( clicked() ),
this, SLOT( accept() ) );
85 connect( ui_.ApplyButton, SIGNAL( clicked() ),
this, SLOT( apply_changes() ) );
86 connect( ui_.CancelButton, SIGNAL( clicked() ),
this, SLOT( reject() ) );
87 connect( ui_.CancelButton, SIGNAL( clicked() ),
this, SLOT( undo_changes() ) );
88 connect( ui_.x_add_button, SIGNAL( clicked() ),
this, SLOT( add_x_plane() ) );
89 connect( ui_.x_mod_button, SIGNAL( clicked() ),
this, SLOT( mod_x_plane() ) );
90 connect( ui_.x_del_button, SIGNAL( clicked() ),
this, SLOT( del_x_plane() ) );
91 connect( ui_.y_add_button, SIGNAL( clicked() ),
this, SLOT( add_y_plane() ) );
92 connect( ui_.y_mod_button, SIGNAL( clicked() ),
this, SLOT( mod_y_plane() ) );
93 connect( ui_.y_del_button, SIGNAL( clicked() ),
this, SLOT( del_y_plane() ) );
94 connect( ui_.z_add_button, SIGNAL( clicked() ),
this, SLOT( add_z_plane() ) );
95 connect( ui_.z_mod_button, SIGNAL( clicked() ),
this, SLOT( mod_z_plane() ) );
96 connect( ui_.z_del_button, SIGNAL( clicked() ),
this, SLOT( del_z_plane() ) );
106 QtCoordFrameDialog::show()
117 QtCoordFrameDialog::update_values()
119 x_planes_bak_ = node_->x_planes();
120 y_planes_bak_ = node_->y_planes();
121 z_planes_bak_ = node_->z_planes();
123 planes2combo(x_planes_bak_, ui_.x_combobox);
124 planes2combo(y_planes_bak_, ui_.y_combobox);
125 planes2combo(z_planes_bak_, ui_.z_combobox);
130 title = ( QString(
"X-Planes: [") +
131 s.setNum(node_->bb_min()[0],
'f', 4) +
133 s.setNum(node_->bb_max()[0],
'f', 4) +
135 ui_.x_groupbox->setTitle(title);
137 title = ( QString(
"Y-Planes: [") +
138 s.setNum(node_->bb_min()[1],
'f', 4) +
140 s.setNum(node_->bb_max()[1],
'f', 4) +
142 ui_.y_groupbox->setTitle(title);
144 title = ( QString(
"Z-Planes: [") +
145 s.setNum(node_->bb_min()[2],
'f', 4) +
147 s.setNum(node_->bb_max()[2],
'f', 4) +
149 ui_.z_groupbox->setTitle(title);
157 QtCoordFrameDialog::combo2planes(
const QComboBox* _combo,
158 std::vector<float>& _planes)
160 unsigned int i(0), N(_combo->count());
166 _planes.push_back(_combo->itemText(i).toFloat());
171 QtCoordFrameDialog::planes2combo(
const std::vector<float>& _planes,
174 std::vector<float>::const_iterator p_it, p_end;
178 for (p_it=_planes.begin(), p_end=_planes.end(); p_it!=p_end; ++p_it)
179 _combo->addItem(s.setNum(*p_it,
'f', 3));
186 void QtCoordFrameDialog::apply_changes()
188 std::vector<float> planes;
190 combo2planes(ui_.x_combobox, planes);
191 node_->set_x_planes(planes);
193 combo2planes(ui_.y_combobox, planes);
194 node_->set_y_planes(planes);
196 combo2planes(ui_.z_combobox, planes);
197 node_->set_z_planes(planes);
199 emit signalNodeChanged(node_);
206 void QtCoordFrameDialog::undo_changes()
208 node_->set_x_planes(x_planes_bak_);
209 node_->set_y_planes(y_planes_bak_);
210 node_->set_z_planes(z_planes_bak_);
212 emit signalNodeChanged(node_);
219 void QtCoordFrameDialog::add_x_plane()
221 ui_.x_combobox->addItem(ui_.x_combobox->currentText());
225 void QtCoordFrameDialog::mod_x_plane()
227 ui_.x_combobox->setItemText(ui_.x_combobox->currentIndex(),ui_.x_combobox->currentText());
231 void QtCoordFrameDialog::del_x_plane()
233 ui_.x_combobox->removeItem(ui_.x_combobox->currentIndex());
241 void QtCoordFrameDialog::add_y_plane()
243 ui_.y_combobox->addItem(ui_.y_combobox->currentText());
247 void QtCoordFrameDialog::mod_y_plane()
249 ui_.y_combobox->setItemText(ui_.y_combobox->currentIndex(),ui_.y_combobox->currentText());
253 void QtCoordFrameDialog::del_y_plane()
255 ui_.y_combobox->removeItem(ui_.y_combobox->currentIndex());
263 void QtCoordFrameDialog::add_z_plane()
265 ui_.z_combobox->addItem(ui_.z_combobox->currentText());
269 void QtCoordFrameDialog::mod_z_plane()
271 ui_.z_combobox->setItemText(ui_.z_combobox->currentIndex(),ui_.z_combobox->currentText());
275 void QtCoordFrameDialog::del_z_plane()
277 ui_.z_combobox->removeItem(ui_.z_combobox->currentIndex());