transform_selector.cpp
Go to the documentation of this file.
00001 #include "transform_selector.h"
00002 #include "ui_transform_selector.h"
00003 #include <QSettings>
00004 #include <QDomDocument>
00005 #include <QTableWidget>
00006 #include <QComboBox>
00007 #include <QDebug>
00008 
00009 TransformSelector::TransformSelector(QStringList builtin_transform,
00010                                      QStringList available_transforms,
00011                                      QString *default_tansform,
00012                                      std::map<std::string, QString> *curve_transforms,
00013                                      QWidget *parent) :
00014     QDialog(parent),
00015     ui(new Ui::transform_selector),
00016     _curves_trans(curve_transforms),
00017     _default_trans(default_tansform)
00018 {
00019     ui->setupUi(this);
00020 
00021     QStringList transforms = builtin_transform + available_transforms;
00022 
00023     ui->comboDefault->insertItems(0, transforms);
00024     ui->comboDefault->insertSeparator( builtin_transform.size() );
00025     if( transforms.contains( *default_tansform ) )
00026     {
00027         ui->comboDefault->setCurrentText( *default_tansform );
00028     }
00029 
00030     ui->tableWidget->setRowCount( int(curve_transforms->size()) );
00031     ui->tableWidget->setColumnCount(2);
00032 
00033     int row = 0;
00034     for(const auto& it: *curve_transforms)
00035     {
00036         const auto& trans = it.second;
00037         auto item_name = new QTableWidgetItem(QString::fromStdString(it.first));
00038         auto item_combo = new QComboBox();
00039         item_combo->insertItems(0, transforms);
00040         item_combo->insertSeparator(3);
00041         ui->tableWidget->setItem(row, 0, item_name);
00042         ui->tableWidget->setCellWidget(row, 1, item_combo);
00043         if( transforms.contains( trans ) )
00044         {
00045             item_combo->setCurrentText( trans );
00046         }
00047         row++;
00048     }
00049     QHeaderView* header = ui->tableWidget->horizontalHeader();
00050     header->setSectionResizeMode(QHeaderView::Stretch);
00051 }
00052 
00053 TransformSelector::~TransformSelector()
00054 {
00055     delete ui;
00056 }
00057 
00058 
00059 void TransformSelector::on_buttonApplyDefault_clicked()
00060 {
00061     int default_index = ui->comboDefault->currentIndex();
00062     for(int row = 0; row < ui->tableWidget->rowCount(); row++)
00063     {
00064         auto combo = static_cast<QComboBox*>(ui->tableWidget->cellWidget(row,1));
00065         combo->setCurrentIndex(default_index);
00066     }
00067 }
00068 
00069 void TransformSelector::on_buttonResetAll_clicked()
00070 {
00071     for(int row = 0; row < ui->tableWidget->rowCount(); row++)
00072     {
00073         auto combo = static_cast<QComboBox*>(ui->tableWidget->cellWidget(row,1));
00074         combo->setCurrentIndex(0);
00075     }
00076 }
00077 
00078 void TransformSelector::on_transform_selector_accepted()
00079 {
00080     for(int row = 0; row < ui->tableWidget->rowCount(); row++)
00081     {
00082         const auto& name = ui->tableWidget->item(row,0)->text();
00083         auto combo = static_cast<QComboBox*>(ui->tableWidget->cellWidget(row,1));
00084         (*_curves_trans)[ name.toStdString() ] = combo->currentText();
00085     }
00086     *_default_trans = ui->comboDefault->currentText();
00087 }


plotjuggler
Author(s): Davide Faconti
autogenerated on Wed Jul 3 2019 19:28:05