#10, delete a project property

This commit is contained in:
Basile Burg 2015-09-20 18:22:43 +02:00
parent c8db00ec0d
commit 3eeb985081
2 changed files with 29 additions and 2 deletions

View File

@ -21,10 +21,10 @@ inherited CEDubProjectEditorWidget: TCEDubProjectEditorWidget
Height = 416
Top = 4
Width = 403
ActivePage = TabSheet1
ActivePage = TabSheet2
Align = alClient
BorderSpacing.Around = 4
TabIndex = 0
TabIndex = 1
TabOrder = 0
object TabSheet1: TTabSheet
Caption = 'Inspector'
@ -144,6 +144,7 @@ inherited CEDubProjectEditorWidget: TCEDubProjectEditorWidget
Width = 28
Align = alLeft
Layout = blGlyphBottom
OnClick = btnDelPropClick
ShowCaption = False
end
end

View File

@ -32,6 +32,7 @@ type
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
procedure btnAcceptPropClick(Sender: TObject);
procedure btnDelPropClick(Sender: TObject);
procedure propTreeSelectionChanged(Sender: TObject);
procedure treeInspectDblClick(Sender: TObject);
private
@ -142,9 +143,12 @@ end;
procedure TCEDubProjectEditorWidget.propTreeSelectionChanged(Sender: TObject);
begin
fSelectedNode := nil;
btnDelProp.Enabled:= false;
if propTree.Selected = nil then exit;
//
fSelectedNode := propTree.Selected;
btnDelProp.Enabled := (fSelectedNode.Level > 0) and (fSelectedNode.Text <> 'name')
and (fSelectedNode.data <> nil);
updateValueEditor;
end;
@ -155,6 +159,27 @@ begin
setJsonValueFromEditor;
end;
procedure TCEDubProjectEditorWidget.btnDelPropClick(Sender: TObject);
var
prt: TJSONData;
begin
if fSelectedNode = nil then exit;
if fSelectedNode.Level = 0 then exit;
if fSelectedNode.Text = 'name' then exit;
if fSelectedNode.Data = nil then exit;
if fSelectedNode.Parent.Data = nil then exit;
//
fProj.beginModification;
prt := TJSONData(fSelectedNode.Parent.Data);
if prt.JSONType = jtObject then
TJSONObject(prt).Delete(fSelectedNode.Index)
else if prt.JSONType = jtArray then
TJSONArray(prt).Delete(fSelectedNode.Index);
fProj.endModification;
//
updateValueEditor;
end;
procedure TCEDubProjectEditorWidget.setJsonValueFromEditor;
var
dat: TJSONData;
@ -224,6 +249,7 @@ procedure TCEDubProjectEditorWidget.updateEditor;
i: integer;
c: TTreeNode;
begin
node.Data:= data;
if data.JSONType = jtObject then for i := 0 to data.Count-1 do
begin
node.ImageIndex:=7;