From 8c478084a2031887776ccc4316f7196de5943ff5 Mon Sep 17 00:00:00 2001 From: Beu Date: Thu, 6 Jul 2023 21:28:55 +0200 Subject: [PATCH] Replace Entry by TextEdit for string settings to workaround the limit of 255 characters --- core/Configurator/GameModeSettings.php | 16 +++++++++++++++- core/Configurator/ManiaControlSettings.php | 16 +++++++++++++++- core/Plugins/PluginMenu.php | 14 ++++++++++++++ 3 files changed, 44 insertions(+), 2 deletions(-) diff --git a/core/Configurator/GameModeSettings.php b/core/Configurator/GameModeSettings.php index ad29f998..f9061d23 100644 --- a/core/Configurator/GameModeSettings.php +++ b/core/Configurator/GameModeSettings.php @@ -4,6 +4,7 @@ namespace ManiaControl\Configurator; use FML\Components\CheckBox; use FML\Controls\Entry; +use FML\Controls\TextEdit; use FML\Controls\Frame; use FML\Controls\Label; use FML\Controls\Labels\Label_Text; @@ -439,7 +440,7 @@ class GameModeSettings implements ConfiguratorMenu, CallbackListener, Communicat $quad->setX(0.27 * $width); $checkBox = new CheckBox(self::ACTION_PREFIX_SETTING . $settingName, $settingValue, $quad); $settingFrame->addChild($checkBox); - } else { + } else if (is_numeric($settingValue)) { // Value entry $entry = new Entry(); $settingFrame->addChild($entry); @@ -449,6 +450,19 @@ class GameModeSettings implements ConfiguratorMenu, CallbackListener, Communicat $entry->setStyle(Label_Text::STYLE_TextValueSmall); $entry->setTextSize(1); $entry->setX(0.275 * $width); + } else { + // Standard entry + $textedit = new TextEdit(); + $settingFrame->addChild($textedit); + $textedit->setX(0.275 * $width); + $textedit->setSize(0.3 * $width, 0.9 * $settingHeight); + $textedit->setStyle(Label_Text::STYLE_TextValueSmall); + $textedit->setTextSize(1); + $textedit->setName(self::ACTION_PREFIX_SETTING . $settingName); + $textedit->setDefault($settingValue); + $textedit->setHorizontalAlign(TextEdit::CENTER); + $textedit->setVerticalAlign(TextEdit::CENTER); + $textedit->setMaxLines(1); } if ($isScriptMode) { diff --git a/core/Configurator/ManiaControlSettings.php b/core/Configurator/ManiaControlSettings.php index db8ff62a..a2aae1a3 100644 --- a/core/Configurator/ManiaControlSettings.php +++ b/core/Configurator/ManiaControlSettings.php @@ -10,6 +10,7 @@ use FML\Controls\Labels\Label_Button; use FML\Controls\Labels\Label_Text; use FML\Controls\Quad; use FML\Controls\Quads\Quad_Icons64x64_1; +use FML\Controls\TextEdit; use FML\Script\Features\Paging; use FML\Script\Script; use ManiaControl\Admin\AuthenticationManager; @@ -218,7 +219,7 @@ class ManiaControlSettings implements ConfiguratorMenu, CallbackListener { $label->setTextSize(1); $valuePicker = new ValuePicker($settingName, $setting->set, $setting->value, $label); $settingFrame->addChild($valuePicker); - } else { + } else if ($setting->type === Setting::TYPE_INT) { // Standard entry $entry = new Entry(); $settingFrame->addChild($entry); @@ -228,6 +229,19 @@ class ManiaControlSettings implements ConfiguratorMenu, CallbackListener { $entry->setTextSize(1); $entry->setName($settingName); $entry->setDefault($setting->value); + } else { + // Standard TextEdit + $textedit = new TextEdit(); + $settingFrame->addChild($textedit); + $textedit->setX($width * 0.33); + $textedit->setSize($width * 0.3, $settingHeight * 0.9); + $textedit->setStyle(Label_Text::STYLE_TextValueSmall); + $textedit->setTextSize(1); + $textedit->setName(self::ACTION_PREFIX_SETTING . $setting->index); + $textedit->setDefault($setting->value); + $textedit->setHorizontalAlign(TextEdit::CENTER); + $textedit->setVerticalAlign(TextEdit::CENTER); + $textedit->setMaxLines(1); } $posY -= $settingHeight; diff --git a/core/Plugins/PluginMenu.php b/core/Plugins/PluginMenu.php index 99538ab3..d32f2f25 100644 --- a/core/Plugins/PluginMenu.php +++ b/core/Plugins/PluginMenu.php @@ -5,6 +5,7 @@ namespace ManiaControl\Plugins; use FML\Components\CheckBox; use FML\Components\ValuePicker; use FML\Controls\Entry; +use FML\Controls\TextEdit; use FML\Controls\Frame; use FML\Controls\Label; use FML\Controls\Labels\Label_Button; @@ -347,6 +348,19 @@ class PluginMenu implements CallbackListener, ConfiguratorMenu, ManialinkPageAns $label->setTextSize(1); $valuePicker = new ValuePicker(self::ACTION_PREFIX_SETTING . $setting->index, $setting->set, $setting->value, $label); $settingFrame->addChild($valuePicker); + } else if ($setting->type === Setting::TYPE_STRING) { + // Standard entry + $textedit = new TextEdit(); + $settingFrame->addChild($textedit); + $textedit->setX($width * 0.33); + $textedit->setSize($width * 0.3, $settingHeight * 0.9); + $textedit->setStyle(Label_Text::STYLE_TextValueSmall); + $textedit->setTextSize(1); + $textedit->setName(self::ACTION_PREFIX_SETTING . $setting->index); + $textedit->setDefault($setting->value); + $textedit->setHorizontalAlign(TextEdit::CENTER); + $textedit->setVerticalAlign(TextEdit::CENTER); + $textedit->setMaxLines(1); } else { // Value entry $entry = new Entry();