transform_selector.cpp
Go to the documentation of this file.
1 #include "transform_selector.h"
2 #include "ui_transform_selector.h"
3 #include <QSettings>
4 #include <QDomDocument>
5 #include <QTableWidget>
6 #include <QComboBox>
7 #include <QDebug>
8 
9 TransformSelector::TransformSelector(QStringList builtin_transform, QStringList available_transforms,
10  QString* default_tansform, std::map<std::string, QString>* curve_transforms,
11  QWidget* parent)
12  : QDialog(parent), ui(new Ui::transform_selector), _curves_trans(curve_transforms), _default_trans(default_tansform)
13 {
14  ui->setupUi(this);
15 
16  QStringList transforms = builtin_transform + available_transforms;
17 
18  ui->comboDefault->insertItems(0, transforms);
19  ui->comboDefault->insertSeparator(builtin_transform.size());
20  if (transforms.contains(*default_tansform))
21  {
22  ui->comboDefault->setCurrentText(*default_tansform);
23  }
24 
25  ui->tableWidget->setRowCount(int(curve_transforms->size()));
26  ui->tableWidget->setColumnCount(2);
27 
28  int row = 0;
29  for (const auto& it : *curve_transforms)
30  {
31  const auto& trans = it.second;
32  auto item_name = new QTableWidgetItem(QString::fromStdString(it.first));
33  auto item_combo = new QComboBox();
34  item_combo->insertItems(0, transforms);
35  item_combo->insertSeparator(3);
36  ui->tableWidget->setItem(row, 0, item_name);
37  ui->tableWidget->setCellWidget(row, 1, item_combo);
38  if (transforms.contains(trans))
39  {
40  item_combo->setCurrentText(trans);
41  }
42  row++;
43  }
44  QHeaderView* header = ui->tableWidget->horizontalHeader();
45  header->setSectionResizeMode(QHeaderView::Stretch);
46 }
47 
49 {
50  delete ui;
51 }
52 
54 {
55  int default_index = ui->comboDefault->currentIndex();
56  for (int row = 0; row < ui->tableWidget->rowCount(); row++)
57  {
58  auto combo = static_cast<QComboBox*>(ui->tableWidget->cellWidget(row, 1));
59  combo->setCurrentIndex(default_index);
60  }
61 }
62 
64 {
65  for (int row = 0; row < ui->tableWidget->rowCount(); row++)
66  {
67  auto combo = static_cast<QComboBox*>(ui->tableWidget->cellWidget(row, 1));
68  combo->setCurrentIndex(0);
69  }
70 }
71 
73 {
74  for (int row = 0; row < ui->tableWidget->rowCount(); row++)
75  {
76  const auto& name = ui->tableWidget->item(row, 0)->text();
77  auto combo = static_cast<QComboBox*>(ui->tableWidget->cellWidget(row, 1));
78  (*_curves_trans)[name.toStdString()] = combo->currentText();
79  }
80  *_default_trans = ui->comboDefault->currentText();
81 }
TransformSelector(QStringList builtin_transform, QStringList available_transforms, QString *default_tansform, std::map< std::string, QString > *curve_transforms, QWidget *parent=nullptr)
const char * name
Ui::transform_selector * ui


plotjuggler
Author(s): Davide Faconti
autogenerated on Sun Dec 6 2020 04:02:48