ulog_parameters_dialog.cpp
Go to the documentation of this file.
00001 #include "ulog_parameters_dialog.h"
00002 #include "ui_ulog_parameters_dialog.h"
00003 
00004 #include <QTableWidget>
00005 #include <QSettings>
00006 #include <QHeaderView>
00007 
00008 ULogParametersDialog::ULogParametersDialog(const ULogParser &parser,
00009                                            QWidget *parent):
00010     QDialog(parent),
00011     ui(new Ui::ULogParametersDialog)
00012 {
00013     ui->setupUi(this);
00014     QTableWidget* table_info = ui->tableWidgetInfo;
00015     QTableWidget* table_params = ui->tableWidgetParams;
00016     QTableWidget* table_logs = ui->tableWidgetLogs;
00017 
00018     table_info->setRowCount( parser.getInfo().size() );
00019     int row = 0;
00020     for(const auto& it: parser.getInfo() )
00021     {
00022         table_info->setItem( row, 0, new QTableWidgetItem( QString::fromStdString(it.first) ) );
00023         table_info->setItem( row, 1, new QTableWidgetItem( QString::fromStdString(it.second) ) );
00024         row++;
00025     }
00026     table_info->sortItems(0);
00027 
00028     table_params->setRowCount( parser.getParameters().size() );
00029     row = 0;
00030     for(const auto& param: parser.getParameters() )
00031     {
00032         table_params->setItem( row, 0, new QTableWidgetItem( QString::fromStdString(param.name) ) );
00033         if( param.val_type == ULogParser::FLOAT)
00034         {
00035             table_params->setItem( row, 1, new QTableWidgetItem( QString::number( param.value.val_real ) ) );
00036         }
00037         else{
00038             table_params->setItem( row, 1, new QTableWidgetItem( QString::number( param.value.val_int ) ) );
00039         }
00040         row++;
00041     }
00042     table_params->sortItems(0);
00043 
00044     table_logs->setRowCount( parser.getLogs().size() );
00045     row = 0;
00046     for(const auto& log_msg: parser.getLogs() )
00047     {
00048         QString time = QString::number( 0.001 * double(log_msg.timestamp /1000), 'f', 2);
00049         table_logs->setItem( row, 0, new QTableWidgetItem(time) );
00050 
00051         switch(log_msg.level)
00052         {
00053         case '0': table_logs->setItem( row, 1, new QTableWidgetItem("EMERGENCY") ); break;
00054         case '1': table_logs->setItem( row, 1, new QTableWidgetItem("ALERT") ); break;
00055         case '2': table_logs->setItem( row, 1, new QTableWidgetItem("CRITICAL") ); break;
00056         case '3': table_logs->setItem( row, 1, new QTableWidgetItem("ERROR") ); break;
00057         case '4': table_logs->setItem( row, 1, new QTableWidgetItem("WARNING") ); break;
00058         case '5': table_logs->setItem( row, 1, new QTableWidgetItem("NOTICE") ); break;
00059         case '6': table_logs->setItem( row, 1, new QTableWidgetItem("INFO") ); break;
00060         case '7': table_logs->setItem( row, 1, new QTableWidgetItem("DEBUG") ); break;
00061         default:
00062             table_logs->setItem( row, 1, new QTableWidgetItem( QString::number( log_msg.level )) );
00063         }
00064         table_logs->setItem( row, 2, new QTableWidgetItem( QString::fromStdString( log_msg.msg ) ) );
00065         row++;
00066     }
00067 }
00068 
00069 void ULogParametersDialog::restoreSettings()
00070 {
00071     QTableWidget* table_info = ui->tableWidgetInfo;
00072     QTableWidget* table_params = ui->tableWidgetParams;
00073 
00074     QSettings settings;
00075     restoreGeometry(settings.value("ULogParametersDialog/geometry").toByteArray());
00076     table_info->horizontalHeader()->restoreState(settings.value("ULogParametersDialog/info/state").toByteArray());
00077     table_params->horizontalHeader()->restoreState(settings.value("ULogParametersDialog/params/state").toByteArray());
00078 
00079     table_info->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Interactive);
00080     table_info->horizontalHeader()->setSectionResizeMode(1, QHeaderView::Interactive);
00081 
00082     table_params->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Interactive);
00083     table_params->horizontalHeader()->setSectionResizeMode(1, QHeaderView::Interactive);
00084 }
00085 
00086 ULogParametersDialog::~ULogParametersDialog()
00087 {
00088     QTableWidget* table_info = ui->tableWidgetInfo;
00089     QTableWidget* table_params = ui->tableWidgetParams;
00090 
00091     QSettings settings;
00092     settings.setValue("ULogParametersDialog/geometry", this->saveGeometry() );
00093     settings.setValue("ULogParametersDialog/info/state",
00094                       table_info->horizontalHeader()->saveState() );
00095     settings.setValue("ULogParametersDialog/params/state",
00096                       table_params->horizontalHeader()->saveState() );
00097 
00098     delete ui;
00099 }


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