diff --git a/client/gui/InterfaceObjectConfigurable.cpp b/client/gui/InterfaceObjectConfigurable.cpp index dca2f125d..5196df21c 100644 --- a/client/gui/InterfaceObjectConfigurable.cpp +++ b/client/gui/InterfaceObjectConfigurable.cpp @@ -300,7 +300,7 @@ std::shared_ptr InterfaceObjectConfigurable::buildToggleButton(co assert(imgOrder.size() >= 4); button->setImageOrder(imgOrder[0].Integer(), imgOrder[1].Integer(), imgOrder[2].Integer(), imgOrder[3].Integer()); } - loadButtonCallback(button, config["callback"]); + loadToggleButtonCallback(button, config["callback"]); return button; } @@ -340,6 +340,19 @@ void InterfaceObjectConfigurable::loadButtonBorderColor(std::shared_ptr button->setBorderColor(color); } +void InterfaceObjectConfigurable::loadToggleButtonCallback(std::shared_ptr button, const JsonNode & config) const +{ + if(config.isNull()) + return; + + std::string callbackName = config.String(); + + if (callbacks.count(callbackName) > 0) + button->addCallback(callbacks.at(callbackName)); + else + logGlobal->error("Invalid callback '%s' in widget", callbackName ); +} + void InterfaceObjectConfigurable::loadButtonCallback(std::shared_ptr button, const JsonNode & config) const { if(config.isNull()) diff --git a/client/gui/InterfaceObjectConfigurable.h b/client/gui/InterfaceObjectConfigurable.h index 6bdbfcb02..e99c2f4d6 100644 --- a/client/gui/InterfaceObjectConfigurable.h +++ b/client/gui/InterfaceObjectConfigurable.h @@ -75,6 +75,7 @@ protected: std::pair readHintText(const JsonNode &) const; EShortcut readHotkey(const JsonNode &) const; + void loadToggleButtonCallback(std::shared_ptr button, const JsonNode & config) const; void loadButtonCallback(std::shared_ptr button, const JsonNode & config) const; void loadButtonHotkey(std::shared_ptr button, const JsonNode & config) const; void loadButtonBorderColor(std::shared_ptr button, const JsonNode & config) const; diff --git a/config/widgets/settings/generalOptionsTab.json b/config/widgets/settings/generalOptionsTab.json index 140c7f5b4..42a1544c9 100644 --- a/config/widgets/settings/generalOptionsTab.json +++ b/config/widgets/settings/generalOptionsTab.json @@ -68,7 +68,7 @@ "text": "vcmi.systemOptions.scalingButton.hover" }, { - "name": "resolutionButton", + "name": "scalingButton", "type": "button", "position": {"x": 10, "y": 113}, "image": "settingsWindow/button32",