TransformableMarkerOperatorAction::TransformableMarkerOperatorAction( QWidget* parent ) : rviz::Panel( parent ) { layout = new QVBoxLayout; QVBoxLayout* layout1 = new QVBoxLayout; QVBoxLayout* layout2 = new QVBoxLayout; QTabWidget* tabs = new QTabWidget(); QWidget* tab_1 = new QWidget(); QWidget* tab_2 = new QWidget(); //Button to send cancel topic insert_box_button_ = new QPushButton("Insert New Box Marker"); layout1->addWidget( insert_box_button_ ); insert_cylinder_button_ = new QPushButton("Insert New Cylinder Marker"); layout1->addWidget( insert_cylinder_button_ ); insert_torus_button_ = new QPushButton("Insert New Torus Marker"); layout1->addWidget( insert_torus_button_ ); QHBoxLayout* name_layout = new QHBoxLayout; name_layout->addWidget( new QLabel( "Name:" )); name_editor_ = new QLineEdit; name_layout->addWidget( name_editor_ ); layout1->addLayout( name_layout ); QHBoxLayout* description_layout = new QHBoxLayout; description_layout->addWidget( new QLabel( "Description:" )); description_editor_ = new QLineEdit; description_layout->addWidget( description_editor_ ); layout1->addLayout( description_layout ); QHBoxLayout* frame_layout = new QHBoxLayout; frame_layout->addWidget( new QLabel( "Frame:" )); frame_editor_ = new QLineEdit; frame_layout->addWidget( frame_editor_ ); layout1->addLayout( frame_layout ); erase_with_id_button_ = new QPushButton("Erase with id"); layout2->addWidget( erase_with_id_button_ ); QHBoxLayout* id_layout = new QHBoxLayout; id_layout->addWidget( new QLabel( "Id:" )); id_editor_ = new QLineEdit; id_layout->addWidget( id_editor_ ); layout2->addLayout( id_layout ); erase_all_button_ = new QPushButton("Erase all"); layout2->addWidget( erase_all_button_ ); erase_focus_button_ = new QPushButton("Erase focus"); layout2->addWidget( erase_focus_button_ ); tab_1->setLayout( layout1 ); tab_2->setLayout( layout2 ); tabs->addTab(tab_1, QString("Insert")); tabs->addTab(tab_2, QString("Erase")); layout->addWidget( tabs ); setLayout( layout ); connect( insert_box_button_, SIGNAL( clicked() ), this, SLOT( insertBoxService ())); connect( insert_cylinder_button_, SIGNAL( clicked() ), this, SLOT( insertCylinderService ())); connect( insert_torus_button_, SIGNAL( clicked() ), this, SLOT( insertTorusService ())); connect( erase_with_id_button_, SIGNAL( clicked() ), this, SLOT( eraseWithIdService ())); connect( erase_all_button_, SIGNAL( clicked() ), this, SLOT( eraseAllService ())); connect( erase_focus_button_, SIGNAL( clicked() ), this, SLOT( eraseFocusService ())); }
TransformableMarkerOperatorAction::TransformableMarkerOperatorAction( QWidget* parent ) : rviz::Panel( parent ) { layout = new QVBoxLayout; // server name QHBoxLayout* server_name_layout = new QHBoxLayout; server_name_layout->addWidget( new QLabel( "Server Name:" )); server_name_editor_ = new QLineEdit; server_name_layout->addWidget( server_name_editor_ ); layout->addLayout( server_name_layout ); // topic name QHBoxLayout* obj_array_topic_layout = new QHBoxLayout; obj_array_topic_layout->addWidget( new QLabel( "ObjectArray Topic:" )); topic_name_editor_ = new QLineEdit; obj_array_topic_layout->addWidget( topic_name_editor_ ); layout->addLayout( obj_array_topic_layout ); // tabs for operations QTabWidget* tabs = new QTabWidget(); QVBoxLayout* layout1 = new QVBoxLayout; QVBoxLayout* layout2 = new QVBoxLayout; QVBoxLayout* layout3 = new QVBoxLayout; QWidget* tab_1 = new QWidget(); QWidget* tab_2 = new QWidget(); QWidget* tab_3 = new QWidget(); // tab_1, layout1: insert insert_box_button_ = new QPushButton("Insert New Box Marker"); layout1->addWidget( insert_box_button_ ); insert_cylinder_button_ = new QPushButton("Insert New Cylinder Marker"); layout1->addWidget( insert_cylinder_button_ ); insert_torus_button_ = new QPushButton("Insert New Torus Marker"); layout1->addWidget( insert_torus_button_ ); insert_mesh_button_ = new QPushButton("Insert New Mesh Marker"); layout1->addWidget( insert_mesh_button_ ); QHBoxLayout* object_layout = new QHBoxLayout; object_layout->addWidget( new QLabel( "Object:" )); object_editor_ = new QComboBox; object_editor_->setIconSize(QSize(50, 50)); object_editor_->setSizeAdjustPolicy(QComboBox::AdjustToContents); object_layout->addWidget( object_editor_ ); layout1->addLayout( object_layout ); QHBoxLayout* name_layout = new QHBoxLayout; name_layout->addWidget( new QLabel( "Name:" )); name_editor_ = new QLineEdit; name_layout->addWidget( name_editor_ ); layout1->addLayout( name_layout ); QHBoxLayout* description_layout = new QHBoxLayout; description_layout->addWidget( new QLabel( "Description:" )); description_editor_ = new QLineEdit; description_layout->addWidget( description_editor_ ); layout1->addLayout( description_layout ); QHBoxLayout* frame_layout = new QHBoxLayout; frame_layout->addWidget( new QLabel( "Frame:" )); frame_editor_ = new QLineEdit; frame_layout->addWidget( frame_editor_ ); layout1->addLayout( frame_layout ); // tab_2, layout2: transform QVBoxLayout* transform_layout = new QVBoxLayout; transform_layout->addWidget( new QLabel( "Object Name:" )); transform_name_editor_ = new QLineEdit; transform_layout->addWidget( transform_name_editor_ ); transform_layout->addWidget( new QLabel( "Dimension X:" )); dimension_x_editor_ = new QLineEdit; transform_layout->addWidget( dimension_x_editor_ ); transform_layout->addWidget( new QLabel( "Dimension Y:" )); dimension_y_editor_ = new QLineEdit; transform_layout->addWidget( dimension_y_editor_ ); transform_layout->addWidget( new QLabel( "Dimension Z:" )); dimension_z_editor_ = new QLineEdit; transform_layout->addWidget( dimension_z_editor_ ); transform_layout->addWidget( new QLabel( "Dimension Radius:" )); dimension_radius_editor_ = new QLineEdit; transform_layout->addWidget( dimension_radius_editor_ ); transform_layout->addWidget( new QLabel( "Dimension Small Radius:" )); dimension_sm_radius_editor_ = new QLineEdit; transform_layout->addWidget( dimension_sm_radius_editor_ ); layout2->addLayout( transform_layout ); // tab_3, layout3: erase erase_with_id_button_ = new QPushButton("Erase with id"); layout3->addWidget( erase_with_id_button_ ); QHBoxLayout* id_layout = new QHBoxLayout; id_layout->addWidget( new QLabel( "Id:" )); id_editor_ = new QLineEdit; id_layout->addWidget( id_editor_ ); layout3->addLayout( id_layout ); erase_all_button_ = new QPushButton("Erase all"); layout3->addWidget( erase_all_button_ ); erase_focus_button_ = new QPushButton("Erase focus"); layout3->addWidget( erase_focus_button_ ); tab_1->setLayout( layout1 ); tab_2->setLayout( layout2 ); tab_3->setLayout( layout3 ); tabs->addTab(tab_1, QString("Insert")); tabs->addTab(tab_2, QString("Transform")); tabs->addTab(tab_3, QString("Erase")); layout->addWidget( tabs ); setLayout( layout ); connect( insert_box_button_, SIGNAL( clicked() ), this, SLOT( insertBoxService ())); connect( insert_cylinder_button_, SIGNAL( clicked() ), this, SLOT( insertCylinderService ())); connect( insert_torus_button_, SIGNAL( clicked() ), this, SLOT( insertTorusService ())); connect( insert_mesh_button_, SIGNAL( clicked() ), this, SLOT( insertMeshService ())); connect( erase_with_id_button_, SIGNAL( clicked() ), this, SLOT( eraseWithIdService ())); connect( erase_all_button_, SIGNAL( clicked() ), this, SLOT( eraseAllService ())); connect( erase_focus_button_, SIGNAL( clicked() ), this, SLOT( eraseFocusService ())); connect( dimension_x_editor_, SIGNAL( editingFinished() ), this, SLOT( updateDimensionsService ())); connect( dimension_y_editor_, SIGNAL( editingFinished() ), this, SLOT( updateDimensionsService ())); connect( dimension_z_editor_, SIGNAL( editingFinished() ), this, SLOT( updateDimensionsService ())); connect( dimension_radius_editor_, SIGNAL( editingFinished() ), this, SLOT( updateDimensionsService ())); connect( dimension_sm_radius_editor_, SIGNAL( editingFinished() ), this, SLOT( updateDimensionsService ())); connect( object_editor_, SIGNAL( currentIndexChanged(int)), SLOT( updateName ())); connect( topic_name_editor_, SIGNAL( editingFinished() ), this, SLOT( updateObjectArrayTopic ())); }