#include <cassert>
#include <cstdint>
+#include <QDebug>
#include <QSpinBox>
+#include <libsigrokcxx/libsigrokcxx.hpp>
+
#include "int.hpp"
using boost::optional;
namespace pv {
namespace prop {
-Int::Int(QString name,
- QString desc,
- QString suffix,
- optional< pair<int64_t, int64_t> > range,
- Getter getter,
- Setter setter) :
+Int::Int(QString name, QString desc, QString suffix,
+ optional< pair<int64_t, int64_t> > range, Getter getter, Setter setter,
+ QString special_value_text) :
Property(name, desc, getter, setter),
suffix_(suffix),
+ special_value_text_(special_value_text),
range_(range),
spin_box_(nullptr)
{
if (!getter_)
return nullptr;
- value_ = getter_();
+ try {
+ value_ = getter_();
+ } catch (const sigrok::Error &e) {
+ qWarning() << tr("Querying config key %1 resulted in %2").arg(name_, e.what());
+ return nullptr;
+ }
GVariant *value = value_.gobj();
if (!value)
spin_box_ = new QSpinBox(parent);
spin_box_->setSuffix(suffix_);
+ spin_box_->setSpecialValueText(special_value_text_);
const GVariantType *const type = g_variant_get_type(value);
assert(type);
if (!spin_box_)
return;
- value_ = getter_();
+ try {
+ value_ = getter_();
+ } catch (const sigrok::Error &e) {
+ qWarning() << tr("Querying config key %1 resulted in %2").arg(name_, e.what());
+ return;
+ }
+
GVariant *value = value_.gobj();
assert(value);