MCPcopy Index your code
hub / github.com/DreamSourceLab/DSView / get_widget

Method get_widget

DSView/pv/prop/int.cpp:71–152  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

69}
70
71QWidget* Int::get_widget(QWidget *parent, bool auto_commit)
72{
73 int64_t int_val = 0, range_min = 0, range_max = 0;
74
75 if (_spin_box)
76 return _spin_box;
77
78 if (_value)
79 g_variant_unref(_value);
80
81 _value = _getter ? _getter() : NULL;
82 if (!_value)
83 return NULL;
84
85 _spin_box = new QSpinBox(parent);
86 _spin_box->setSuffix(_suffix);
87
88 const GVariantType *const type = g_variant_get_type(_value);
89 assert(type);
90
91 if (g_variant_type_equal(type, G_VARIANT_TYPE_BYTE))
92 {
93 int_val = g_variant_get_byte(_value);
94 range_min = 0, range_max = UINT8_MAX;
95 }
96 else if (g_variant_type_equal(type, G_VARIANT_TYPE_INT16))
97 {
98 int_val = g_variant_get_int16(_value);
99 range_min = INT16_MIN, range_max = INT16_MAX;
100 }
101 else if (g_variant_type_equal(type, G_VARIANT_TYPE_UINT16))
102 {
103 int_val = g_variant_get_uint16(_value);
104 range_min = 0, range_max = UINT16_MAX;
105 }
106 else if (g_variant_type_equal(type, G_VARIANT_TYPE_INT32))
107 {
108 int_val = g_variant_get_int32(_value);
109 range_min = INT32_MIN, range_max = INT32_MAX;
110 }
111 else if (g_variant_type_equal(type, G_VARIANT_TYPE_UINT32))
112 {
113 int_val = g_variant_get_uint32(_value);
114 range_min = 0, range_max = UINT32_MAX;
115 }
116 else if (g_variant_type_equal(type, G_VARIANT_TYPE_INT64))
117 {
118 int_val = g_variant_get_int64(_value);
119 range_min = INT64_MIN, range_max = INT64_MAX;
120 }
121 else if (g_variant_type_equal(type, G_VARIANT_TYPE_UINT64))
122 {
123 int_val = g_variant_get_uint64(_value);
124 range_min = 0, range_max = UINT64_MAX;
125 }
126 else
127 {
128 // Unexpected value type.

Callers 3

get_property_formMethod · 0.45
analog_probesMethod · 0.45

Calls 2

setRangeMethod · 0.80
setValueMethod · 0.80

Tested by

no test coverage detected