diff options
author | Jirka Novak <j.novak@netsystem.cz> | 2021-08-17 21:42:17 +0200 |
---|---|---|
committer | j.novak@netsystem.cz <j.novak@netsystem.cz> | 2021-08-18 19:27:10 +0000 |
commit | af059913b37b49667b2b98f21c4dde98699f9154 (patch) | |
tree | 5ca6973de42e9c1e9a0e91bcddb26074baee8a06 /ui/qt/rtp_analysis_dialog.cpp | |
parent | e5062a224982dd64197dc5e922c1da45b7002d92 (diff) |
RTP Analysis: CSV export has header line
Export to CSV from RTP Analysis has header now. Header is on top of the
export so for export of multiple tabs it is just once in the export.
Diffstat (limited to 'ui/qt/rtp_analysis_dialog.cpp')
-rw-r--r-- | ui/qt/rtp_analysis_dialog.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/ui/qt/rtp_analysis_dialog.cpp b/ui/qt/rtp_analysis_dialog.cpp index adb2e46004..a6dac14d30 100644 --- a/ui/qt/rtp_analysis_dialog.cpp +++ b/ui/qt/rtp_analysis_dialog.cpp @@ -840,6 +840,27 @@ void RtpAnalysisDialog::rtpPlayerRemove() emit rtpPlayerDialogRemoveRtpStreams(getSelectedRtpIds()); } +void RtpAnalysisDialog::saveCsvHeader(QFile *save_file, QTreeWidget *tree) +{ + QList<QVariant> row_data; + QStringList values; + + for (int col = 0; col < tree->columnCount(); col++) { + row_data << tree->headerItem()->text(col); + } + foreach (QVariant v, row_data) { + if (!v.isValid()) { + values << "\"\""; + } else if ((int) v.type() == (int) QMetaType::QString) { + values << QString("\"%1\"").arg(v.toString()); + } else { + values << v.toString(); + } + } + save_file->write(values.join(",").toUtf8()); + save_file->write("\n"); +} + void RtpAnalysisDialog::saveCsvData(QFile *save_file, QTreeWidget *tree) { for (int row = 0; row < tree->topLevelItemCount(); row++) { @@ -891,6 +912,8 @@ void RtpAnalysisDialog::saveCsv(RtpAnalysisDialog::StreamDirection direction) tab_info_t *tab_data = getTabInfoForCurrentTab(); if (tab_data) { + saveCsvHeader(&save_file, tab_data->tree_widget); + QString n = QString(*tab_data->tab_name); n.replace("\n"," "); save_file.write("\""); @@ -902,6 +925,10 @@ void RtpAnalysisDialog::saveCsv(RtpAnalysisDialog::StreamDirection direction) break; case dir_all_: default: + if (tabs_.count() > 0) { + saveCsvHeader(&save_file, tabs_[0]->tree_widget); + } + for(int i=0; i<tabs_.count(); i++) { QString n = QString(*tabs_[i]->tab_name); n.replace("\n"," "); |