mirror of
https://github.com/4ian/GDevelop.git
synced 2025-10-15 10:19:04 +00:00
Save grid settings for variant tabs (#7869)
This commit is contained in:
@@ -37,6 +37,7 @@ void EventsBasedObjectVariant::SerializeTo(SerializerElement &element) const {
|
||||
|
||||
layers.SerializeLayersTo(element.AddChild("layers"));
|
||||
initialInstances.SerializeTo(element.AddChild("instances"));
|
||||
editorSettings.SerializeTo(element.AddChild("editionSettings"));
|
||||
}
|
||||
|
||||
void EventsBasedObjectVariant::UnserializeFrom(
|
||||
@@ -66,6 +67,7 @@ void EventsBasedObjectVariant::UnserializeFrom(
|
||||
layers.Reset();
|
||||
}
|
||||
initialInstances.UnserializeFrom(element.GetChild("instances"));
|
||||
editorSettings.UnserializeFrom(element.GetChild("editionSettings"));
|
||||
}
|
||||
|
||||
} // namespace gd
|
||||
|
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "GDCore/IDE/Dialogs/LayoutEditorCanvas/EditorSettings.h"
|
||||
#include "GDCore/Project/InitialInstancesContainer.h"
|
||||
#include "GDCore/Project/LayersContainer.h"
|
||||
#include "GDCore/Project/ObjectsContainer.h"
|
||||
@@ -199,6 +200,19 @@ public:
|
||||
const gd::String &GetAssetStoreOriginalName() const {
|
||||
return assetStoreOriginalName;
|
||||
};
|
||||
|
||||
/**
|
||||
*
|
||||
* \brief Get the user settings for the IDE.
|
||||
*/
|
||||
const gd::EditorSettings& GetAssociatedEditorSettings() const {
|
||||
return editorSettings;
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Get the user settings for the IDE.
|
||||
*/
|
||||
gd::EditorSettings& GetAssociatedEditorSettings() { return editorSettings; }
|
||||
|
||||
void SerializeTo(SerializerElement &element) const;
|
||||
|
||||
@@ -224,6 +238,7 @@ private:
|
||||
* store.
|
||||
*/
|
||||
gd::String assetStoreOriginalName;
|
||||
gd::EditorSettings editorSettings;
|
||||
};
|
||||
|
||||
} // namespace gd
|
||||
|
@@ -3251,6 +3251,8 @@ interface EventsBasedObjectVariant {
|
||||
void SetAssetStoreOriginalName([Const] DOMString assetStoreOriginalName);
|
||||
[Const, Ref] DOMString GetAssetStoreOriginalName();
|
||||
|
||||
[Ref] EditorSettings GetAssociatedEditorSettings();
|
||||
|
||||
void SerializeTo([Ref] SerializerElement element);
|
||||
void UnserializeFrom([Ref] Project project, [Const, Ref] SerializerElement element);
|
||||
};
|
||||
|
1
GDevelop.js/types.d.ts
vendored
1
GDevelop.js/types.d.ts
vendored
@@ -2363,6 +2363,7 @@ export class EventsBasedObjectVariant extends EmscriptenObject {
|
||||
getAssetStoreAssetId(): string;
|
||||
setAssetStoreOriginalName(assetStoreOriginalName: string): void;
|
||||
getAssetStoreOriginalName(): string;
|
||||
getAssociatedEditorSettings(): EditorSettings;
|
||||
serializeTo(element: SerializerElement): void;
|
||||
unserializeFrom(project: Project, element: SerializerElement): void;
|
||||
}
|
||||
|
@@ -22,6 +22,7 @@ declare class gdEventsBasedObjectVariant {
|
||||
getAssetStoreAssetId(): string;
|
||||
setAssetStoreOriginalName(assetStoreOriginalName: string): void;
|
||||
getAssetStoreOriginalName(): string;
|
||||
getAssociatedEditorSettings(): gdEditorSettings;
|
||||
serializeTo(element: gdSerializerElement): void;
|
||||
unserializeFrom(project: gdProject, element: gdSerializerElement): void;
|
||||
delete(): void;
|
||||
|
@@ -14,6 +14,10 @@ import {
|
||||
import SceneEditor from '../../SceneEditor';
|
||||
import { ProjectScopedContainersAccessor } from '../../InstructionOrExpression/EventsScope';
|
||||
import { type ObjectWithContext } from '../../ObjectsList/EnumerateObjects';
|
||||
import {
|
||||
serializeToJSObject,
|
||||
unserializeFromJSObject,
|
||||
} from '../../Utils/Serializer';
|
||||
|
||||
const gd: libGDevelop = global.gd;
|
||||
|
||||
@@ -121,14 +125,14 @@ export class CustomObjectEditorContainer extends React.Component<RenderEditorCon
|
||||
}
|
||||
|
||||
saveUiSettings = () => {
|
||||
// const layout = this.getCustomObject();
|
||||
// const editor = this.editor;
|
||||
// if (editor && layout) {
|
||||
// unserializeFromJSObject(
|
||||
// layout.getAssociatedEditorSettings(),
|
||||
// editor.getInstancesEditorSettings()
|
||||
// );
|
||||
// }
|
||||
const variant = this.getVariant();
|
||||
const editor = this.editor;
|
||||
if (editor && variant) {
|
||||
unserializeFromJSObject(
|
||||
variant.getAssociatedEditorSettings(),
|
||||
editor.getInstancesEditorSettings()
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
getEventsFunctionsExtension(): ?gdEventsFunctionsExtension {
|
||||
@@ -235,8 +239,11 @@ export class CustomObjectEditorContainer extends React.Component<RenderEditorCon
|
||||
initialInstances={variant.getInitialInstances()}
|
||||
getInitialInstancesEditorSettings={() =>
|
||||
prepareInstancesEditorSettings(
|
||||
{}, // TODO
|
||||
1024 // TODO
|
||||
serializeToJSObject(variant.getAssociatedEditorSettings()),
|
||||
Math.max(
|
||||
variant.getAreaMaxX() - variant.getAreaMinX(),
|
||||
variant.getAreaMaxY() - variant.getAreaMinY()
|
||||
)
|
||||
)
|
||||
}
|
||||
onOpenEvents={() =>
|
||||
|
@@ -343,7 +343,8 @@ export const saveUiSettings = (state: EditorTabsState) => {
|
||||
if (
|
||||
editorTab.editorRef &&
|
||||
(editorTab.editorRef instanceof SceneEditorContainer ||
|
||||
editorTab.editorRef instanceof ExternalLayoutEditorContainer)
|
||||
editorTab.editorRef instanceof ExternalLayoutEditorContainer ||
|
||||
editorTab.editorRef instanceof CustomObjectEditorContainer)
|
||||
) {
|
||||
editorTab.editorRef.saveUiSettings();
|
||||
}
|
||||
|
Reference in New Issue
Block a user