X-Git-Url: http://git.code-monkey.de/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fviews%2Ftrace%2Fdecodetrace.cpp;fp=pv%2Fviews%2Ftrace%2Fdecodetrace.cpp;h=865c492604fea09e0647defbb6bd5fb95f123d5c;hp=300fd2ecddbb5759f908f64f0a3255944a746939;hb=1ed996b433f3391f54846784d76da4fe6b07500f;hpb=be843692f664e44d26458063042cc5d41a13df57 diff --git a/pv/views/trace/decodetrace.cpp b/pv/views/trace/decodetrace.cpp index 300fd2e..865c492 100644 --- a/pv/views/trace/decodetrace.cpp +++ b/pv/views/trace/decodetrace.cpp @@ -1041,8 +1041,8 @@ void DecodeTrace::on_export_row_from_here() if (annotations.empty()) return; - QSettings settings; - const QString dir = settings.value(SettingSaveDirectory).toString(); + GlobalSettings settings; + const QString dir = settings.value("MainWindow/SaveDirectory").toString(); const QString file_name = QFileDialog::getSaveFileName( owner_->view(), tr("Export annotations"), dir, tr("Text Files (*.txt);;All Files (*)")); @@ -1050,12 +1050,33 @@ void DecodeTrace::on_export_row_from_here() if (file_name.isEmpty()) return; + const QString format = settings.value(GlobalSettings::Key_Dec_ExportFormat).toString(); + const QString quote = format.contains("%q") ? "\"" : ""; + const QString class_name = selected_row_->class_name(); + QFile file(file_name); if (file.open(QIODevice::WriteOnly | QIODevice::Truncate | QIODevice::Text)) { QTextStream out_stream(&file); - for (Annotation &ann : annotations) - out_stream << ann.annotations().front() << '\n'; + for (Annotation &ann : annotations) { + const QString sample_range = QString("%1-%2").arg(ann.start_sample()).arg( + ann.end_sample()); + + QString all_ann_text; + for (const QString &s : ann.annotations()) + all_ann_text = all_ann_text + quote + s + quote + ","; + all_ann_text.chop(1); + + const QString first_ann_text = quote + ann.annotations().front() + quote; + + QString out_text = format; + out_text = out_text.replace("%s", sample_range); + out_text = out_text.replace("%d", decode_signal_->name()); + out_text = out_text.replace("%c", class_name); + out_text = out_text.replace("%1", first_ann_text); + out_text = out_text.replace("%a", all_ann_text); + out_stream << out_text << '\n'; + } if (out_stream.status() == QTextStream::Ok) return;