19 acceptedValue = json_object_get(originalValue);
20 this->details = details;
23 QMenu *menu =
new QMenu(
reinterpret_cast<QWidget *
>(parent()));
24 menu->setSeparatorsCollapsible(
false);
26 QActionGroup *menuActionGroup;
27 menuActionGroup =
new QActionGroup(menu);
29 connect(menuActionGroup, &QActionGroup::triggered,
this, &VuoInputEditorWithMenu::acceptAction);
32 menuActionGroup->setExclusive(
true);
37 string originalValueAsString = json_object_to_json_string_ext(originalValue, JSON_C_TO_STRING_PLAIN);
38 foreach (QAction *action, menuActionGroup->actions())
41 string actionValueAsString = json_object_to_json_string_ext(actionValue, JSON_C_TO_STRING_PLAIN);
43 bool isOriginalValue = (actionValueAsString == originalValueAsString)
45 || (originalValueAsString ==
"false" && actionValueAsString ==
"0")
46 || (originalValueAsString ==
"true" && actionValueAsString ==
"1");
48 action->setChecked(isOriginalValue);
55 int xOffset = menu->sizeHint().width();
56 int yOffset = (checkIndex + 0.5) / menu->actions().size() * menu->sizeHint().height();
57 portLeftCenter = portLeftCenter - QPoint(xOffset, yOffset);
58 menu->exec(portLeftCenter);
76void VuoInputEditorWithMenu::acceptAction(QAction *action)
78 json_object_put(acceptedValue);
79 acceptedValue = json_object_get(action->data().value<
json_object *>());
89 json_object_object_get_ex(details,
"includeValues", &includeValues);
93 bool includeThisValue =
false;
94 int includeValuesCount = json_object_array_length(includeValues);
95 const char *valueString = json_object_to_json_string(value);
96 for (
int j = 0; j < includeValuesCount; ++j)
98 const char *includeValueString = json_object_to_json_string(json_object_array_get_idx(includeValues, j));
99 if (strcmp(valueString, includeValueString) == 0)
101 includeThisValue =
true;
106 return includeThisValue;
115 if (json_object_object_get_ex(details,
"isDark", &o))
116 return json_object_get_boolean(o);