17 acceptedValue = originalValue;
18 this->details = details;
21 QMenu *menu =
new QMenu(
reinterpret_cast<QWidget *
>(parent()));
22 menu->setSeparatorsCollapsible(
false);
24 QActionGroup *menuActionGroup;
25 menuActionGroup =
new QActionGroup(menu);
27 connect(menuActionGroup, &QActionGroup::triggered,
this, &VuoInputEditorWithMenu::acceptAction);
30 menuActionGroup->setExclusive(
true);
35 string originalValueAsString = json_object_to_json_string_ext(originalValue, JSON_C_TO_STRING_PLAIN);
36 foreach (QAction *action, menuActionGroup->actions())
39 string actionValueAsString = json_object_to_json_string_ext(actionValue, JSON_C_TO_STRING_PLAIN);
41 bool isOriginalValue = (actionValueAsString == originalValueAsString)
43 || (originalValueAsString ==
"false" && actionValueAsString ==
"0")
44 || (originalValueAsString ==
"true" && actionValueAsString ==
"1");
46 action->setChecked(isOriginalValue);
53 int xOffset = menu->sizeHint().width();
54 int yOffset = (checkIndex + 0.5) / menu->actions().size() * menu->sizeHint().height();
55 portLeftCenter = portLeftCenter - QPoint(xOffset, yOffset);
56 menu->exec(portLeftCenter);
74 void VuoInputEditorWithMenu::acceptAction(QAction *action)
76 acceptedValue = (
json_object *)action->data().value<
void *>();
86 json_object_object_get_ex(details,
"includeValues", &includeValues);
90 bool includeThisValue =
false;
91 int includeValuesCount = json_object_array_length(includeValues);
92 const char *valueString = json_object_to_json_string(value);
93 for (
int j = 0; j < includeValuesCount; ++j)
95 const char *includeValueString = json_object_to_json_string(json_object_array_get_idx(includeValues, j));
96 if (strcmp(valueString, includeValueString) == 0)
98 includeThisValue =
true;
103 return includeThisValue;
112 if (json_object_object_get_ex(details,
"isDark", &o))
113 return json_object_get_boolean(o);