|
|
@ -186,13 +186,9 @@ void SettingsDialogPrivate::createEntry(const SettingsElements::Entry &entry, QW |
|
|
|
}); |
|
|
|
content = btn; |
|
|
|
} else { |
|
|
|
try { |
|
|
|
auto widgetFactory = WidgetsPresenterPrivate::currentPresenter()->inputWidgetFactory(); |
|
|
|
content = widgetFactory->createInput(entry.type, sectionWidget, entry.properties); |
|
|
|
if(!content) { |
|
|
|
logWarning() << "Failed to create settings widget for type" << entry.type; |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
auto property = content->metaObject()->userProperty(); |
|
|
|
property.write(content, viewModel->loadValue(entry.key, entry.defaultValue)); |
|
|
|
if(property.hasNotifySignal()) { |
|
|
@ -203,6 +199,15 @@ void SettingsDialogPrivate::createEntry(const SettingsElements::Entry &entry, QW |
|
|
|
changedEntries.insert(content); |
|
|
|
|
|
|
|
entryMap.insert(content, {entry, property}); |
|
|
|
} catch (PresenterException &e) { |
|
|
|
logWarning() << "Failed to create settings widget for key" |
|
|
|
<< entry.key |
|
|
|
<< "with error:" << e.what(); |
|
|
|
content = new QLabel(tr("<i>Failed to load edit view!<i>"), sectionWidget); |
|
|
|
auto pal = content->palette(); |
|
|
|
pal.setColor(QPalette::WindowText, Qt::darkRed); |
|
|
|
content->setPalette(pal); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
auto label = new QLabel(entry.title + tr(":"), sectionWidget); |
|
|
|