Skip to content

Commit cf39de4

Browse files
authored
Allow custom objects to declare multi-line text properties (#7436)
1 parent 5b325dd commit cf39de4

File tree

13 files changed

+37
-16
lines changed

13 files changed

+37
-16
lines changed

Core/GDCore/Extensions/Metadata/ValueTypeMetadata.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ const gd::String &ValueTypeMetadata::ConvertPropertyTypeToValueType(
101101
} else if (propertyType == "KeyboardKey") {
102102
return keyboardKeyValueType;
103103
}
104-
// For "String", "Resource" or default
104+
// For "String", "Resource", "MultilineString" or default
105105
return stringValueType;
106106
};
107107

Extensions/BBText/JsExtension.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ module.exports = {
5454
objectProperties
5555
.getOrCreate('text')
5656
.setValue(objectContent.text)
57-
.setType('textarea')
57+
.setType('multilinestring')
5858
.setLabel(_('BBCode text'));
5959

6060
objectProperties

Extensions/BitmapText/JsExtension.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ module.exports = {
5454
objectProperties
5555
.getOrCreate('text')
5656
.setValue(objectContent.text)
57-
.setType('textarea')
57+
.setType('multilinestring')
5858
.setLabel(_('Text'));
5959

6060
objectProperties

Extensions/Firebase/JsExtension.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ module.exports = {
3737
extension
3838
.registerProperty('FirebaseConfig')
3939
.setLabel(_('Firebase configuration string'))
40-
.setType('textarea');
40+
.setType('multilinestring');
4141

4242
/* ====== ANALYTICS ====== */
4343
extension

Extensions/TextObject/TextObject.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ std::map<gd::String, gd::PropertyDescriptor> TextObject::GetProperties() const {
119119

120120
objectProperties["text"]
121121
.SetValue(text)
122-
.SetType("textarea")
122+
.SetType("multilinestring")
123123
.SetLabel(_("Text"));
124124

125125
objectProperties["characterSize"]

GDevelop.js/TestUtils/TestExtensions.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ module.exports = {
9797
objectProperties
9898
.getOrCreate('text')
9999
.setValue(objectContent.text)
100-
.setType('textarea')
100+
.setType('multilinestring')
101101
.setLabel('Text');
102102

103103
return objectProperties;

newIDE/app/src/CompactPropertiesEditor/PropertiesMapToCompactSchema.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -219,10 +219,10 @@ const createField = (
219219
getDescription,
220220
hasImpactOnAllOtherFields: property.hasImpactOnOtherProperties(),
221221
};
222-
} else if (valueType === 'textarea') {
222+
} else if (valueType === 'multilinestring') {
223223
return {
224224
name,
225-
valueType: 'textarea',
225+
valueType: 'multilinestring',
226226
getValue: (instance: Instance): string => {
227227
return getProperties(instance)
228228
.get(name)

newIDE/app/src/CompactPropertiesEditor/index.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ export type PrimitiveValueField =
110110
...ValueFieldCommonProperties,
111111
|}
112112
| {|
113-
valueType: 'textarea',
113+
valueType: 'multilinestring',
114114
getValue: Instance => string,
115115
setValue: (instance: Instance, newValue: string) => void,
116116
...ValueFieldCommonProperties,
@@ -554,7 +554,7 @@ const CompactPropertiesEditor = ({
554554
{field.renderIcon(value)}
555555
</IconButton>
556556
);
557-
} else if (field.valueType === 'textarea') {
557+
} else if (field.valueType === 'multilinestring') {
558558
const { setValue } = field;
559559
return (
560560
<CompactTextAreaField

newIDE/app/src/EventsBasedBehaviorEditor/EventsBasedBehaviorPropertiesEditor.js

+11-1
Original file line numberDiff line numberDiff line change
@@ -754,6 +754,11 @@ export default function EventsBasedBehaviorPropertiesEditor({
754754
value="KeyboardKey"
755755
label={t`Keyboard key (text)`}
756756
/>
757+
<SelectOption
758+
key="property-type-text-area"
759+
value="MultilineString"
760+
label={t`Multiline text`}
761+
/>
757762
<SelectOption
758763
key="property-type-resource"
759764
value="Resource"
@@ -820,8 +825,9 @@ export default function EventsBasedBehaviorPropertiesEditor({
820825
property.getType() === 'Number' ||
821826
property.getType() ===
822827
'ObjectAnimationName' ||
828+
property.getType() === 'KeyboardKey' ||
823829
property.getType() ===
824-
'KeyboardKey') && (
830+
'MultilineString') && (
825831
<SemiControlledTextField
826832
commitOnBlur
827833
floatingLabelText={
@@ -839,6 +845,10 @@ export default function EventsBasedBehaviorPropertiesEditor({
839845
onPropertiesUpdated &&
840846
onPropertiesUpdated();
841847
}}
848+
multiline={
849+
property.getType() ===
850+
'MultilineString'
851+
}
842852
fullWidth
843853
/>
844854
)}

newIDE/app/src/EventsBasedObjectEditor/EventsBasedObjectPropertiesEditor.js

+12-1
Original file line numberDiff line numberDiff line change
@@ -734,6 +734,11 @@ export default function EventsBasedObjectPropertiesEditor({
734734
value="LeaderboardId"
735735
label={t`Leaderboard (text)`}
736736
/>
737+
<SelectOption
738+
key="property-type-text-area"
739+
value="MultilineString"
740+
label={t`Multiline text`}
741+
/>
737742
<SelectOption
738743
key="property-type-resource"
739744
value="Resource"
@@ -786,7 +791,9 @@ export default function EventsBasedObjectPropertiesEditor({
786791
</SelectField>
787792
)}
788793
{(property.getType() === 'String' ||
789-
property.getType() === 'Number') && (
794+
property.getType() === 'Number' ||
795+
property.getType() ===
796+
'MultilineString') && (
790797
<SemiControlledTextField
791798
commitOnBlur
792799
floatingLabelText={
@@ -804,6 +811,10 @@ export default function EventsBasedObjectPropertiesEditor({
804811
onPropertiesUpdated &&
805812
onPropertiesUpdated();
806813
}}
814+
multiline={
815+
property.getType() ===
816+
'MultilineString'
817+
}
807818
fullWidth
808819
/>
809820
)}

newIDE/app/src/PropertiesEditor/PropertiesMapToSchema.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -206,10 +206,10 @@ const createField = (
206206
getLabel,
207207
getDescription,
208208
};
209-
} else if (valueType === 'textarea') {
209+
} else if (valueType === 'multilinestring') {
210210
return {
211211
name,
212-
valueType: 'textarea',
212+
valueType: 'multilinestring',
213213
getValue: (instance: Instance): string => {
214214
return getProperties(instance)
215215
.get(name)

newIDE/app/src/PropertiesEditor/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,7 @@ const PropertiesEditor = ({
289289
/>
290290
</Column>
291291
);
292-
} else if (field.valueType === 'textarea') {
292+
} else if (field.valueType === 'multilinestring') {
293293
const { setValue } = field;
294294
return (
295295
<SemiControlledTextField

newIDE/app/src/fixtures/TestExtensions.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,7 @@ export const makeTestExtensions = (gd: libGDevelop) => {
300300
objectProperties
301301
.getOrCreate('text')
302302
.setValue(objectContent.text)
303-
.setType('textarea')
303+
.setType('multilinestring')
304304
.setLabel('Text');
305305

306306
return objectProperties;

0 commit comments

Comments
 (0)