]> sigrok.org Git - pulseview.git/blobdiff - pv/prop/binding/decoderoptions.cpp
SamplingBar: Improved event loop protection
[pulseview.git] / pv / prop / binding / decoderoptions.cpp
index 34f1b813a6478012ceec15eaa7f6d704784ab525..8738300ee9550007486c2b81f2fee1749f0293c5 100644 (file)
 #include <pv/prop/int.h>
 #include <pv/prop/string.h>
 
-using namespace boost;
-using namespace std;
+using boost::bind;
+using boost::none;
+using boost::shared_ptr;
+using std::map;
+using std::string;
 
 namespace pv {
 namespace prop {
@@ -54,7 +57,7 @@ DecoderOptions::DecoderOptions(
                const srd_decoder_option *const opt =
                        (srd_decoder_option*)l->data;
 
-               const QString name(opt->desc);
+               const QString name = QString::fromUtf8(opt->desc);
 
                const Property::Getter getter = bind(
                        &DecoderOptions::getter, this, opt->id);
@@ -78,13 +81,17 @@ DecoderOptions::DecoderOptions(
 
 GVariant* DecoderOptions::getter(const char *id)
 {
+       GVariant *val = NULL;
+
        assert(_decoder);
 
        // Get the value from the hash table if it is already present
-       GVariant *val = (GVariant*)g_hash_table_lookup(
-               (GHashTable*)_decoder->options(), id);
+       const map<string, GVariant*>& options = _decoder->options();
+       map<string, GVariant*>::const_iterator iter = options.find(id);
 
-       if (!val)
+       if (iter != options.end())
+               val = (*iter).second;
+       else
        {
                assert(_decoder->decoder());