projects
/
pulseview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Update for 'probe_group' -> 'channel_group' rename in libsigrok.
[pulseview.git]
/
pv
/
prop
/
enum.cpp
diff --git
a/pv/prop/enum.cpp
b/pv/prop/enum.cpp
index 2249b570851fd183aeb943cb857923584902608a..6439a725c7adbdca16d90865c622da719fe9ef3b 100644
(file)
--- a/
pv/prop/enum.cpp
+++ b/
pv/prop/enum.cpp
@@
-24,8
+24,8
@@
#include "enum.h"
#include "enum.h"
-using
namespace boost
;
-using
namespace std
;
+using
std::pair
;
+using
std::vector
;
namespace pv {
namespace prop {
namespace pv {
namespace prop {
@@
-37,20
+37,26
@@
Enum::Enum(QString name,
_values(values),
_selector(NULL)
{
_values(values),
_selector(NULL)
{
+ for (vector< pair<GVariant*, QString> >::const_iterator i =
+ _values.begin(); i != _values.end(); i++)
+ g_variant_ref((*i).first);
}
Enum::~Enum()
{
}
Enum::~Enum()
{
- for (unsigned int i = 0; i < _values.size(); i++)
- g_variant_unref(_values[i].first);
+ for (vector< pair<GVariant*, QString> >::const_iterator i =
+ _values.begin(); i != _values.end(); i++)
+ g_variant_unref((*i).first);
}
}
-QWidget* Enum::get_widget(QWidget *parent)
+QWidget* Enum::get_widget(QWidget *parent
, bool auto_commit
)
{
if (_selector)
return _selector;
GVariant *const value = _getter ? _getter() : NULL;
{
if (_selector)
return _selector;
GVariant *const value = _getter ? _getter() : NULL;
+ if (!value)
+ return NULL;
_selector = new QComboBox(parent);
for (unsigned int i = 0; i < _values.size(); i++) {
_selector = new QComboBox(parent);
for (unsigned int i = 0; i < _values.size(); i++) {
@@
-62,6
+68,10
@@
QWidget* Enum::get_widget(QWidget *parent)
g_variant_unref(value);
g_variant_unref(value);
+ if (auto_commit)
+ connect(_selector, SIGNAL(currentIndexChanged(int)),
+ this, SLOT(on_current_item_changed(int)));
+
return _selector;
}
return _selector;
}
@@
-79,5
+89,10
@@
void Enum::commit()
_setter((GVariant*)_selector->itemData(index).value<void*>());
}
_setter((GVariant*)_selector->itemData(index).value<void*>());
}
+void Enum::on_current_item_changed(int)
+{
+ commit();
+}
+
} // prop
} // pv
} // prop
} // pv