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 }