MCPcopy Create free account
hub / github.com/PointCloudLibrary/pcl / exec

Method exec

apps/modeler/src/parameter_dialog.cpp:72–130  ·  view source on GitHub ↗

/////////////////////////////////////////////////////////////////////////////////////////

Source from the content-addressed store, hash-verified

70
71//////////////////////////////////////////////////////////////////////////////////////////////
72int
73pcl::modeler::ParameterDialog::exec()
74{
75 pcl::modeler::ParameterModel parameterModel(int(name_parameter_map_.size()), 2, this);
76 parameter_model_ = &parameterModel;
77
78 QStringList headerLabels;
79 headerLabels.push_back("Variable Name");
80 headerLabels.push_back("Variable Value");
81 parameterModel.setHorizontalHeaderLabels(headerLabels);
82
83 QTableView tableView(this);
84 tableView.setModel(&parameterModel);
85
86 std::size_t currentRow = 0;
87 for (const auto& name_parameter : name_parameter_map_) {
88 QModelIndex name = parameterModel.index(int(currentRow), 0, QModelIndex());
89 parameterModel.setData(name, QVariant(name_parameter.first.c_str()));
90
91 QModelIndex value = parameterModel.index(int(currentRow), 1, QModelIndex());
92 std::pair<QVariant, int> model_data = name_parameter.second->toModelData();
93 parameterModel.setData(value, model_data.first, model_data.second);
94
95 currentRow++;
96 }
97
98 ParameterDelegate parameterDelegate(name_parameter_map_);
99 tableView.setItemDelegate(&parameterDelegate);
100
101 tableView.horizontalHeader()->setStretchLastSection(true);
102 tableView.horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
103 tableView.setShowGrid(true);
104 tableView.verticalHeader()->hide();
105 tableView.setSelectionBehavior(QAbstractItemView::SelectRows);
106 tableView.resizeColumnsToContents();
107
108 int totlen =
109 tableView.columnWidth(0) + tableView.columnWidth(1) + frameSize().width();
110 setMinimumWidth(totlen);
111
112 QPushButton* pushButtonReset = new QPushButton("Reset", this);
113 QPushButton* pushButtonApply = new QPushButton("Apply", this);
114 QPushButton* pushButtonCancel = new QPushButton("Cancel", this);
115
116 connect(pushButtonReset, SIGNAL(clicked()), this, SLOT(reset()));
117 connect(pushButtonApply, SIGNAL(clicked()), this, SLOT(accept()));
118 connect(pushButtonCancel, SIGNAL(clicked()), this, SLOT(reject()));
119
120 QGridLayout gridLayout(this);
121 gridLayout.addWidget(&tableView, 0, 0, 1, 3);
122 gridLayout.addWidget(pushButtonReset, 1, 0);
123 gridLayout.addWidget(pushButtonApply, 1, 1);
124 gridLayout.addWidget(pushButtonCancel, 1, 2);
125 setLayout(&gridLayout);
126
127 int result = QDialog::exec();
128
129 return result;

Callers

nothing calls this directly

Calls 7

resetFunction · 0.50
sizeMethod · 0.45
push_backMethod · 0.45
setModelMethod · 0.45
setDataMethod · 0.45
toModelDataMethod · 0.45
widthMethod · 0.45

Tested by

no test coverage detected