|
|
@@ -376,6 +376,32 @@ void Widget::SetupComponent(const QString& label, std::function<void()>& load_fu
|
|
|
layout->addWidget(qt_label);
|
|
|
}
|
|
|
|
|
|
+ request = [&]() {
|
|
|
+ if (request != RequestType::Default) {
|
|
|
+ return request;
|
|
|
+ }
|
|
|
+ switch (setting.Specialization()) {
|
|
|
+ case Settings::Specialization::Default:
|
|
|
+ return RequestType::Default;
|
|
|
+ case Settings::Specialization::Time:
|
|
|
+ return RequestType::DateTimeEdit;
|
|
|
+ case Settings::Specialization::Hex:
|
|
|
+ return RequestType::HexEdit;
|
|
|
+ case Settings::Specialization::RuntimeList:
|
|
|
+ managed = false;
|
|
|
+ [[fallthrough]];
|
|
|
+ case Settings::Specialization::List:
|
|
|
+ return RequestType::ComboBox;
|
|
|
+ case Settings::Specialization::Scalar:
|
|
|
+ return RequestType::Slider;
|
|
|
+ case Settings::Specialization::Countable:
|
|
|
+ return RequestType::SpinBox;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ return request;
|
|
|
+ }();
|
|
|
+
|
|
|
if (setting.TypeId() == typeid(bool)) {
|
|
|
data_component = CreateCheckBox(&setting, label, serializer, restore_func, touch);
|
|
|
} else if (setting.IsEnum()) {
|
|
|
@@ -544,6 +570,11 @@ Widget* Builder::BuildWidget(Settings::BasicSetting* setting,
|
|
|
return nullptr;
|
|
|
}
|
|
|
|
|
|
+ if (setting->Specialization() == Settings::Specialization::Paired) {
|
|
|
+ LOG_DEBUG(Frontend, "\"{}\" has specialization Paired: ignoring", setting->GetLabel());
|
|
|
+ return nullptr;
|
|
|
+ }
|
|
|
+
|
|
|
return new Widget(setting, *translations, *combobox_translations, parent, runtime_lock,
|
|
|
apply_funcs, request, managed, multiplier, other_setting, string);
|
|
|
}
|