20namespace MantidWidgets {
21namespace QSettingsHelper {
24inline QString
qualifiedName(std::string
const &settingGroup, QString
const &settingName) {
25 auto group = QString::fromStdString(settingGroup);
28 return group.append(settingName);
41T
getSetting(QSettings
const &settings, std::string
const &settingGroup, std::string
const &settingName) {
42 return settings.value(
Detail::qualifiedName(settingGroup, QString::fromStdString(settingName))).template value<T>();
45template <
typename T> T
getSetting(std::string
const &settingGroup, std::string
const &settingName) {
47 return getSetting<T>(settings, settingGroup, settingName);
59std::map<std::string, T>
getSettingsAsMap(QSettings
const &settings, std::string
const &settingGroup) {
60 std::map<std::string, T> settingsMap;
61 auto groupPrefix = QString::fromStdString(settingGroup);
62 if (!groupPrefix.isEmpty() && !groupPrefix.endsWith(
'/'))
63 groupPrefix.append(
'/');
64 std::string templateTypeName =
typeid(T).
name();
65 for (
auto const &qualifiedName : settings.allKeys()) {
66 if (qualifiedName.startsWith(groupPrefix) && qualifiedName.endsWith(
"/type")) {
67 std::string settingTypeName = settings.value(qualifiedName).toString().toStdString();
68 if (settingTypeName == templateTypeName) {
69 auto settingName = qualifiedName.mid(groupPrefix.size());
71 auto setting = settings.value(groupPrefix + settingName +
"/value");
72 settingsMap[settingName.toStdString()] = setting.template value<T>();
79template <
typename T> std::map<std::string, T>
getSettingsAsMap(std::string
const &settingGroup) {
81 return getSettingsAsMap<T>(settings, settingGroup);
92void setSetting(QSettings &settings, std::string
const &settingGroup, std::string
const &settingName, T
const &
value) {
99template <
typename T>
void setSetting(std::string
const &settingGroup, std::string
const &settingName, T
const &
value) {
double value
The value of the point.
The AlgorithmProgressDialogPresenter keeps track of the running algorithms and displays a progress ba...