projects
/
pulseview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
MainWindow, View::View: Fix two memory errors reported by valgrind
[pulseview.git]
/
pv
/
dialogs
/
storeprogress.cpp
diff --git
a/pv/dialogs/storeprogress.cpp
b/pv/dialogs/storeprogress.cpp
index e0f670d325d7e71bee51ad2c36db1cb78d0e415e..5aeafd141fbc86453a00070eb7a94c5a060777b5 100644
(file)
--- a/
pv/dialogs/storeprogress.cpp
+++ b/
pv/dialogs/storeprogress.cpp
@@
-18,28
+18,41
@@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#include "storeprogress.h"
+#include <cassert>
+
+#include <QMessageBox>
+
+#include "storeprogress.hpp"
+
+using std::map;
+using std::string;
+
+using Glib::VariantBase;
namespace pv {
namespace dialogs {
StoreProgress::StoreProgress(const QString &file_name,
namespace pv {
namespace dialogs {
StoreProgress::StoreProgress(const QString &file_name,
- const SigSession &session, QWidget *parent) :
+ const std::shared_ptr<sigrok::OutputFormat> output_format,
+ const map<string, VariantBase> &options,
+ const std::pair<uint64_t, uint64_t> sample_range,
+ const Session &session, QWidget *parent) :
QProgressDialog(tr("Saving..."), tr("Cancel"), 0, 0, parent),
QProgressDialog(tr("Saving..."), tr("Cancel"), 0, 0, parent),
- _session(file_name.toStdString(), session)
+ session_(file_name.toStdString(), output_format, options, sample_range,
+ session)
{
{
- connect(&
_session
, SIGNAL(progress_updated()),
+ connect(&
session_
, SIGNAL(progress_updated()),
this, SLOT(on_progress_updated()));
}
StoreProgress::~StoreProgress()
{
this, SLOT(on_progress_updated()));
}
StoreProgress::~StoreProgress()
{
-
_session
.wait();
+
session_
.wait();
}
void StoreProgress::run()
{
}
void StoreProgress::run()
{
- if (
_session
.start())
+ if (
session_
.start())
show();
else
show_error();
show();
else
show_error();
@@
-49,7
+62,7
@@
void StoreProgress::show_error()
{
QMessageBox msg(parentWidget());
msg.setText(tr("Failed to save session."));
{
QMessageBox msg(parentWidget());
msg.setText(tr("Failed to save session."));
- msg.setInformativeText(
_session
.error());
+ msg.setInformativeText(
session_
.error());
msg.setStandardButtons(QMessageBox::Ok);
msg.setIcon(QMessageBox::Warning);
msg.exec();
msg.setStandardButtons(QMessageBox::Ok);
msg.setIcon(QMessageBox::Warning);
msg.exec();
@@
-57,25
+70,23
@@
void StoreProgress::show_error()
void StoreProgress::closeEvent(QCloseEvent*)
{
void StoreProgress::closeEvent(QCloseEvent*)
{
-
_session
.cancel();
+
session_
.cancel();
}
void StoreProgress::on_progress_updated()
{
}
void StoreProgress::on_progress_updated()
{
- const std::pair<
uint64_t, uint64_t> p = _session
.progress();
+ const std::pair<
int, int> p = session_
.progress();
assert(p.first <= p.second);
assert(p.first <= p.second);
- setValue(p.first);
- setMaximum(p.second);
-
- const QString err = _session.error();
- if (!err.isEmpty()) {
- show_error();
+ if (p.second) {
+ setValue(p.first);
+ setMaximum(p.second);
+ } else {
+ const QString err = session_.error();
+ if (!err.isEmpty())
+ show_error();
close();
}
close();
}
-
- if (p.first == p.second)
- close();
}
} // dialogs
}
} // dialogs