1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
From 02157c43210db076a4b371b222943edb70e91e86 Mon Sep 17 00:00:00 2001
From: Mike Walters <mike@flomp.net>
Date: Sun, 6 Jun 2021 16:20:10 +0100
Subject: [PATCH 19/31] Add a progress bar for sample export
---
src/plotview.cpp | 19 +++++++++++++------
1 file changed, 13 insertions(+), 6 deletions(-)
diff --git a/src/plotview.cpp b/src/plotview.cpp
index 2240edb..914c2c9 100644
--- a/src/plotview.cpp
+++ b/src/plotview.cpp
@@ -21,17 +21,18 @@
#include <iostream>
#include <fstream>
#include <QApplication>
+#include <QClipboard>
#include <QDebug>
+#include <QFileDialog>
+#include <QGridLayout>
+#include <QGroupBox>
#include <QMenu>
#include <QPainter>
-#include <QScrollBar>
-#include <QFileDialog>
+#include <QProgressDialog>
#include <QRadioButton>
-#include <QVBoxLayout>
-#include <QGroupBox>
-#include <QGridLayout>
+#include <QScrollBar>
#include <QSpinBox>
-#include <QClipboard>
+#include <QVBoxLayout>
#include "plots.h"
PlotView::PlotView(InputSource *input) : cursors(this), viewRange({0, 0})
@@ -349,7 +350,13 @@ void PlotView::exportSamples(std::shared_ptr<AbstractSampleSource> src)
// viewRange.length() is used as some less arbitrary step value
size_t step = viewRange.length();
+ QProgressDialog progress("Exporting samples...", "Cancel", start, end, this);
+ progress.setWindowModality(Qt::WindowModal);
for (index = start; index < end; index += step) {
+ progress.setValue(index);
+ if (progress.wasCanceled())
+ break;
+
size_t length = std::min(step, end - index);
auto samples = sampleSrc->getSamples(index, length);
if (samples != nullptr) {
--
2.35.1
|