logwidget.cpp
Go to the documentation of this file.
00001 
00008 /*****************************************************************************
00009 ** Includes
00010 *****************************************************************************/
00011 
00012 #include <QDebug>
00013 #include <QMessageBox>
00014 #include <QSettings>
00015 #include <QFileDialog>
00016 #include <QStringList>
00017 #include <QHeaderView>
00018 #include <iostream>
00019 #include "logwidget.hpp"
00020 
00021 namespace rqt_console_plus {
00022 
00023 using namespace Qt;
00024 
00025 
00026 LogWidget::LogWidget(LogsTableModel& tablemodel, QWidget *parent)
00027   : QWidget(parent),
00028     model(tablemodel),
00029     proxy_model(this)
00030 {
00031   ui.setupUi(this); // Calling this incidentally connects all ui's triggers to on_...() callbacks in this class.
00032 
00033   proxy_model.setSourceModel(&model);
00034   ui.tableView->setModel(&proxy_model);
00035   // ui.tableView->setModel( &model );
00036 
00037   ui.tableView->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents);
00038   ui.tableView->horizontalHeader()->setSectionResizeMode(1, QHeaderView::ResizeToContents);
00039   ui.tableView->horizontalHeader()->setSectionResizeMode(2, QHeaderView::ResizeToContents);
00040   ui.tableView->horizontalHeader()->setSectionResizeMode(3, QHeaderView::Interactive);
00041   ui.tableView->horizontalHeader()->setSectionResizeMode(4, QHeaderView::Interactive);
00042   ui.tableView->horizontalHeader()->setSectionResizeMode(5, QHeaderView::Stretch);
00043 
00044   ui.tableView->verticalHeader()->setVisible(false);
00045 
00046   connect( &model, &LogsTableModel::rowsInserted,
00047            this,  &LogWidget::on_rowsInserted );
00048 
00049   proxy_model.setSeverityDebugEnabled( ui.buttonEnableDebug->isChecked() );
00050   proxy_model.setSeverityWarningsEnabled( ui.buttonEnableWarnings->isChecked() );
00051   proxy_model.setSeverityErrorEnabled( ui.buttonEnableError->isChecked() );
00052   proxy_model.setSeverityInfoEnabled( ui.buttonEnableInfo->isChecked() );
00053 
00054   proxy_model.setMessageFilterEnabled( ui.checkBoxMessageFilter->isChecked() );
00055   proxy_model.setNodeFilterEnabled( ui.checkBoxLoggerFilter->isChecked() );
00056   proxy_model.setTimeFilterEnabled( true );
00057 
00058 }
00059 
00060 LogWidget::~LogWidget() {}
00061 
00062 
00063 void LogWidget::on_lineEditMessageFilter_textEdited(const QString &filter)
00064 {
00065   proxy_model.messageFilterUpdated(
00066         static_cast<ModelFilter::FilterMode>( ui.comboBoxMessageFilter->currentIndex() ),
00067         filter );
00068   ui.tableView->resizeColumnToContents(3);
00069 }
00070 
00071 void LogWidget::on_comboBoxMessageFilter_currentIndexChanged(int mode)
00072 {
00073   proxy_model.messageFilterUpdated(
00074         static_cast<ModelFilter::FilterMode>( mode ),
00075         ui.lineEditMessageFilter->text() );
00076   ui.tableView->resizeColumnToContents(4);
00077 }
00078 
00079 void LogWidget::on_checkBoxMessageFilter_toggled(bool checked)
00080 {
00081   ui.labelMessageFilter->setEnabled( checked );
00082   ui.comboBoxMessageFilter->setEnabled( checked );
00083   ui.lineEditMessageFilter->setEnabled( checked );
00084 
00085   proxy_model.setMessageFilterEnabled( checked );
00086   ui.tableView->resizeColumnToContents(4);
00087 }
00088 
00089 void LogWidget::on_lineEditLoggerFilter_textEdited(const QString &filter)
00090 {
00091   proxy_model.nodeFilterUpdated(
00092         static_cast<ModelFilter::FilterMode>( ui.comboBoxLoggerFilter->currentIndex() ),
00093         filter );
00094   ui.tableView->resizeColumnToContents(3);
00095 }
00096 
00097 void LogWidget::on_comboBoxLoggerFilter_currentIndexChanged(int mode)
00098 {
00099   proxy_model.nodeFilterUpdated(
00100         static_cast<ModelFilter::FilterMode>( mode ),
00101         ui.lineEditLoggerFilter->text() );
00102   ui.tableView->resizeColumnToContents(3);
00103 }
00104 void LogWidget::on_checkBoxLoggerFilter_toggled(bool checked)
00105 
00106 {
00107   ui.labelLoggerFilter->setEnabled( checked );
00108   ui.comboBoxLoggerFilter->setEnabled( checked );
00109   ui.lineEditLoggerFilter->setEnabled( checked );
00110 
00111   proxy_model.setNodeFilterEnabled( checked );
00112   ui.tableView->resizeColumnToContents(3);
00113 }
00114 
00115 void LogWidget::on_rowsInserted(const QModelIndex &, int first_row, int last_row)
00116 {
00117   ui.tableView->scrollToBottom();
00118 }
00119 
00120 void LogWidget::on_buttonEnableDebug_toggled(bool checked)
00121 {
00122   proxy_model.setSeverityDebugEnabled(checked);
00123   ui.tableView->resizeColumnToContents(2);
00124 }
00125 
00126 void LogWidget::on_buttonEnableInfo_toggled(bool checked)
00127 {
00128   proxy_model.setSeverityInfoEnabled(checked);
00129   ui.tableView->resizeColumnToContents(2);
00130 }
00131 
00132 void LogWidget::on_buttonEnableWarnings_toggled(bool checked)
00133 {
00134   proxy_model.setSeverityWarningsEnabled(checked);
00135   ui.tableView->resizeColumnToContents(2);
00136 }
00137 
00138 void LogWidget::on_buttonEnableError_toggled(bool checked)
00139 {
00140   proxy_model.setSeverityErrorEnabled(checked);
00141   ui.tableView->resizeColumnToContents(2);
00142 }
00143 
00144 void LogWidget::on_timeRangeChanged(TimePoint time_min, TimePoint time_max)
00145 {
00146     using namespace std::chrono;
00147     {
00148         auto msec_since_epoch_A = duration_cast<milliseconds>( time_min.time_since_epoch() );
00149         auto datetimeA = QDateTime::fromMSecsSinceEpoch( msec_since_epoch_A.count());
00150         ui.timeRangeMin->setDateTime( datetimeA );
00151     }
00152 
00153     {
00154         auto msec_since_epoch_B = duration_cast<milliseconds>( time_max.time_since_epoch() );
00155         auto datetimeB = QDateTime::fromMSecsSinceEpoch( msec_since_epoch_B.count());
00156         ui.timeRangeMax->setDateTime( datetimeB );
00157     }
00158 
00159    // qDebug() << msec_since_epoch_A.count() << " " << msec_since_epoch_B.count();
00160    // qDebug() << datetimeA << " " << datetimeB;
00161 
00162     proxy_model.timeMinMaxUpdated( time_min, time_max );
00163     ui.tableView->scrollToBottom();
00164     ui.tableView->resizeColumnToContents(0);
00165     ui.tableView->resizeColumnToContents(1);
00166 }
00167 
00168 
00169 }  // namespace rqt_console_plus


plotjuggler
Author(s): Davide Faconti
autogenerated on Fri Sep 1 2017 02:41:56