forked from Mirrors/openclonk
Editor graph delegate: Add update callback functionality for graph edits
parent
83c1d25b84
commit
072e1dcde0
|
@ -2162,6 +2162,7 @@ C4PropertyDelegateGraph::C4PropertyDelegateGraph(const class C4PropertyDelegateF
|
||||||
horizontal_fix = props->GetPropertyBool(P_HorizontalFix);
|
horizontal_fix = props->GetPropertyBool(P_HorizontalFix);
|
||||||
vertical_fix = props->GetPropertyBool(P_VerticalFix);
|
vertical_fix = props->GetPropertyBool(P_VerticalFix);
|
||||||
structure_fix = props->GetPropertyBool(P_StructureFix);
|
structure_fix = props->GetPropertyBool(P_StructureFix);
|
||||||
|
update_callback = props->GetPropertyStr(P_OnUpdate);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2246,6 +2247,11 @@ void C4PropertyDelegateGraph::ConnectSignals(C4ConsoleQtShape *shape, const C4Pr
|
||||||
connect(shape_graph, &C4ConsoleQtGraph::GraphEdit, this, [this, shape, property_path](C4ControlEditGraph::Action action, int32_t index, int32_t x, int32_t y) {
|
connect(shape_graph, &C4ConsoleQtGraph::GraphEdit, this, [this, shape, property_path](C4ControlEditGraph::Action action, int32_t index, int32_t x, int32_t y) {
|
||||||
// Send graph editing via queue
|
// Send graph editing via queue
|
||||||
::Control.DoInput(CID_EditGraph, new C4ControlEditGraph(property_path.GetGetPath(), action, index, x, y), CDT_Decide);
|
::Control.DoInput(CID_EditGraph, new C4ControlEditGraph(property_path.GetGetPath(), action, index, x, y), CDT_Decide);
|
||||||
|
// Also send update callback to root object
|
||||||
|
if (update_callback)
|
||||||
|
{
|
||||||
|
::Console.EditCursor.EMControl(CID_Script, new C4ControlScript(FormatString("%s->%s(%s)", property_path.GetRoot(), update_callback->GetCStr(), property_path.GetGetPath()).getData(), 0, false));
|
||||||
|
}
|
||||||
});
|
});
|
||||||
connect(shape, &C4ConsoleQtShape::BorderSelectionChanged, this, []() {
|
connect(shape, &C4ConsoleQtShape::BorderSelectionChanged, this, []() {
|
||||||
// Different part of the shape selected: Refresh info on next update
|
// Different part of the shape selected: Refresh info on next update
|
||||||
|
|
|
@ -562,6 +562,7 @@ class C4PropertyDelegateGraph : public C4PropertyDelegateShape
|
||||||
bool horizontal_fix = false;
|
bool horizontal_fix = false;
|
||||||
bool vertical_fix = false;
|
bool vertical_fix = false;
|
||||||
bool structure_fix = false;
|
bool structure_fix = false;
|
||||||
|
C4RefCntPointer<C4String> update_callback;
|
||||||
|
|
||||||
void DoPaint(QPainter *painter, const QRect &inner_rect) const override;
|
void DoPaint(QPainter *painter, const QRect &inner_rect) const override;
|
||||||
protected:
|
protected:
|
||||||
|
|
|
@ -270,6 +270,7 @@ C4StringTable::C4StringTable()
|
||||||
P[P_HorizontalFix] = "HorizontalFix";
|
P[P_HorizontalFix] = "HorizontalFix";
|
||||||
P[P_VerticalFix] = "VerticalFix";
|
P[P_VerticalFix] = "VerticalFix";
|
||||||
P[P_StructureFix] = "StructureFix";
|
P[P_StructureFix] = "StructureFix";
|
||||||
|
P[P_OnUpdate] = "OnUpdate";
|
||||||
P[P_Min] = "Min";
|
P[P_Min] = "Min";
|
||||||
P[P_Max] = "Max";
|
P[P_Max] = "Max";
|
||||||
P[P_Set] = "Set";
|
P[P_Set] = "Set";
|
||||||
|
|
|
@ -494,6 +494,7 @@ enum C4PropertyName
|
||||||
P_HorizontalFix,
|
P_HorizontalFix,
|
||||||
P_VerticalFix,
|
P_VerticalFix,
|
||||||
P_StructureFix,
|
P_StructureFix,
|
||||||
|
P_OnUpdate,
|
||||||
P_Min,
|
P_Min,
|
||||||
P_Max,
|
P_Max,
|
||||||
P_Set,
|
P_Set,
|
||||||
|
|
Loading…
Reference in New Issue