mirror of https://gitlab.com/basile.b/dexed.git
projinspect, move list of configs to a combo box
This commit is contained in:
parent
21c143fc25
commit
df4773f6ce
|
@ -4,6 +4,10 @@
|
|||
|
||||
- Project inspector: moved the list of configuration to a combo box over the file tree.
|
||||
|
||||
## Bugs fixed
|
||||
|
||||
- GDB commander, editor: bad expression returned when using mouse motion to get value of an expression within square brackets.
|
||||
|
||||
# v3.9.7
|
||||
|
||||
## Enhancements
|
||||
|
|
|
@ -23,8 +23,8 @@ inherited ProjectInspectWidget: TProjectInspectWidget
|
|||
PopupMenu = nil
|
||||
object Tree: TTreeView[0]
|
||||
Left = 2
|
||||
Height = 218
|
||||
Top = 2
|
||||
Height = 184
|
||||
Top = 36
|
||||
Width = 420
|
||||
Align = alClient
|
||||
AutoExpand = True
|
||||
|
@ -43,11 +43,26 @@ inherited ProjectInspectWidget: TProjectInspectWidget
|
|||
OnSelectionChanged = TreeSelectionChanged
|
||||
Options = [tvoAutoExpand, tvoAutoItemHeight, tvoKeepCollapsedNodes, tvoReadOnly, tvoRightClickSelect, tvoShowButtons, tvoShowLines, tvoThemedDraw]
|
||||
Items.Data = {
|
||||
F9FFFFFF020002000000000000000000000000000000FFFFFFFF000000000000
|
||||
0000000C000000536F757263652066696C6573010000000100000001000000FF
|
||||
FFFFFF0000000000000000000E000000436F6E66696775726174696F6E73
|
||||
F9FFFFFF020001000000000000000000000000000000FFFFFFFF000000000000
|
||||
0000000C000000536F757263652066696C6573
|
||||
}
|
||||
end
|
||||
object selConf: TComboBox[1]
|
||||
Left = 4
|
||||
Height = 30
|
||||
Hint = 'select the active configuaration'
|
||||
Top = 2
|
||||
Width = 416
|
||||
Align = alTop
|
||||
BorderSpacing.Left = 4
|
||||
BorderSpacing.Top = 2
|
||||
BorderSpacing.Right = 4
|
||||
BorderSpacing.Bottom = 4
|
||||
ItemHeight = 0
|
||||
OnChange = selConfChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 1
|
||||
end
|
||||
end
|
||||
inherited toolbar: TDexedToolBar
|
||||
Width = 416
|
||||
|
|
|
@ -6,9 +6,9 @@ interface
|
|||
|
||||
uses
|
||||
Classes, SysUtils, TreeFilterEdit, Forms, Controls, Graphics, actnlist,
|
||||
Dialogs, ExtCtrls, ComCtrls, Menus, Buttons, lcltype, u_ceproject, u_interfaces,
|
||||
u_common, u_widget, u_observer, u_dialogs, u_sharedres, u_dsgncontrols,
|
||||
u_dubproject, u_synmemo, u_stringrange, u_writableComponent;
|
||||
Dialogs, ExtCtrls, ComCtrls, Menus, Buttons, lcltype, StdCtrls, u_ceproject,
|
||||
u_interfaces, u_common, u_widget, u_observer, u_dialogs, u_sharedres,
|
||||
u_dsgncontrols, u_dubproject, u_synmemo, u_stringrange, u_writableComponent;
|
||||
|
||||
type
|
||||
|
||||
|
@ -28,6 +28,7 @@ type
|
|||
btnRemFile: TDexedToolButton;
|
||||
btnRemFold: TDexedToolButton;
|
||||
btnTree: TDexedToolButton;
|
||||
selConf: TComboBox;
|
||||
Tree: TTreeView;
|
||||
TreeFilterEdit1: TTreeFilterEdit;
|
||||
procedure btnAddFileClick(Sender: TObject);
|
||||
|
@ -37,6 +38,7 @@ type
|
|||
procedure btnTreeClick(Sender: TObject);
|
||||
procedure btnReloadClick(Sender: TObject);
|
||||
procedure FormDropFiles(Sender: TObject; const fnames: array of String);
|
||||
procedure selConfChange(Sender: TObject);
|
||||
procedure toolbarResize(Sender: TObject);
|
||||
procedure TreeClick(Sender: TObject);
|
||||
procedure TreeDeletion(Sender: TObject; Node: TTreeNode);
|
||||
|
@ -49,10 +51,9 @@ type
|
|||
procedure setToolBarFlat(value: boolean); override;
|
||||
private
|
||||
fActOpenFile: TAction;
|
||||
fActSelConf: TAction;
|
||||
fActBuildConf: TAction;
|
||||
fProj: ICommonProject;
|
||||
fFileNode, fConfNode: TTreeNode;
|
||||
fFileNode: TTreeNode;
|
||||
fLastFileOrFolder: string;
|
||||
fSymStringExpander: ISymStringExpander;
|
||||
fImages: TImageList;
|
||||
|
@ -100,12 +101,8 @@ begin
|
|||
fSymStringExpander:= getSymStringExpander;
|
||||
|
||||
fActOpenFile := TAction.Create(self);
|
||||
fActOpenFile.Caption := 'Open file in editor';
|
||||
fActOpenFile.Caption := 'Open file(s) in editor';
|
||||
fActOpenFile.OnExecute := @actOpenFileExecute;
|
||||
fActSelConf := TAction.Create(self);
|
||||
fActSelConf.Caption := 'Select configuration';
|
||||
fActSelConf.OnExecute := @actOpenFileExecute;
|
||||
fActSelConf.OnUpdate := @actUpdate;
|
||||
fActBuildConf:= TAction.Create(self);
|
||||
fActBuildConf.Caption := 'Build configuration';
|
||||
fActBuildConf.OnExecute := @actBuildExecute;
|
||||
|
@ -158,7 +155,6 @@ begin
|
|||
|
||||
Tree.OnDblClick := @TreeDblClick;
|
||||
fFileNode := Tree.Items[0];
|
||||
fConfNode := Tree.Items[1];
|
||||
|
||||
Tree.Images := fImages;
|
||||
Tree.PopupMenu := contextMenu;
|
||||
|
@ -218,15 +214,14 @@ end;
|
|||
|
||||
function TProjectInspectWidget.contextActionCount: integer;
|
||||
begin
|
||||
exit(3);
|
||||
exit(2);
|
||||
end;
|
||||
|
||||
function TProjectInspectWidget.contextAction(index: integer): TAction;
|
||||
begin
|
||||
case index of
|
||||
0: exit(fActOpenFile);
|
||||
1: exit(fActSelConf);
|
||||
2: exit(fActBuildConf);
|
||||
1: exit(fActBuildConf);
|
||||
else exit(nil);
|
||||
end;
|
||||
end;
|
||||
|
@ -362,6 +357,8 @@ begin
|
|||
if Tree.Selected.isAssigned then
|
||||
begin
|
||||
Tree.MultiSelect := Tree.Selected.Parent = fFileNode;
|
||||
if Tree.Selected.isNotAssigned() then
|
||||
exit;
|
||||
if not (Tree.Selected.Parent = fFileNode) then
|
||||
begin
|
||||
Tree.MultiSelect := false;
|
||||
|
@ -396,43 +393,32 @@ end;
|
|||
|
||||
procedure TProjectInspectWidget.TreeDblClick(sender: TObject);
|
||||
var
|
||||
fname: string;
|
||||
f: string;
|
||||
i: integer;
|
||||
begin
|
||||
if fProj.isNotAssigned or Tree.Selected.isNotAssigned then
|
||||
exit;
|
||||
|
||||
if Tree.Selected.Parent <> fConfNode then
|
||||
for i := 0 to Tree.SelectionCount - 1 do
|
||||
if Tree.Selections[i].Data.isAssigned() then
|
||||
begin
|
||||
if Tree.Selected.Data.isAssigned then
|
||||
begin
|
||||
fname := PString(Tree.Selected.Data)^;
|
||||
if isEditable(fname.extractFileExt) and fname.fileExists then
|
||||
getMultiDocHandler.openDocument(fname);
|
||||
end;
|
||||
end
|
||||
else
|
||||
begin
|
||||
i := Tree.Selected.Index;
|
||||
fProj.setActiveConfigurationIndex(i);
|
||||
beginDelayedUpdate;
|
||||
f := PString(Tree.Selections[i].Data)^;
|
||||
if isEditable(f.extractFileExt) and f.fileExists then
|
||||
getMultiDocHandler.openDocument(f);
|
||||
end;
|
||||
Tree.Selected := nil;
|
||||
end;
|
||||
|
||||
procedure TProjectInspectWidget.actUpdate(sender: TObject);
|
||||
begin
|
||||
fActSelConf.Enabled := false;
|
||||
fActOpenFile.Enabled := false;
|
||||
fActBuildConf.Enabled:= false;
|
||||
if Tree.Selected.isNotAssigned then
|
||||
exit;
|
||||
fActSelConf.Enabled := Tree.Selected.Parent = fConfNode;
|
||||
fActBuildConf.Enabled := Tree.Selected.Parent = fConfNode;
|
||||
fActBuildConf.Enabled := true;
|
||||
fActOpenFile.Enabled := Tree.Selected.ImageIndex = 2;
|
||||
end;
|
||||
|
||||
procedure TProjectInspectWidget.DetectNewDubSources(const document: TDexedMemo
|
||||
);
|
||||
procedure TProjectInspectWidget.DetectNewDubSources(const document: TDexedMemo);
|
||||
begin
|
||||
if fProj.isNotAssigned or (fProj.getFormat <> pfDUB) then
|
||||
exit;
|
||||
|
@ -634,6 +620,13 @@ begin
|
|||
end;
|
||||
end;
|
||||
|
||||
procedure TProjectInspectWidget.selConfChange(Sender: TObject);
|
||||
begin
|
||||
if fProj.isNotAssigned or selConf.ItemIndex.equals(-1) or selConf.Items.Count.equals(0) then
|
||||
exit;
|
||||
fProj.setActiveConfigurationIndex(selConf.ItemIndex);
|
||||
end;
|
||||
|
||||
procedure TProjectInspectWidget.toolbarResize(Sender: TObject);
|
||||
begin
|
||||
TreeFilterEdit1.Width := toolbar.Width - TreeFilterEdit1.Left - TreeFilterEdit1.BorderSpacing.Around;
|
||||
|
@ -656,7 +649,6 @@ var
|
|||
begin
|
||||
if Tree.Selected.isAssigned then
|
||||
sel := Tree.Selected.GetTextPath;
|
||||
fConfNode.DeleteChildren;
|
||||
fFileNode.DeleteChildren;
|
||||
|
||||
if fProj.isNotAssigned then
|
||||
|
@ -705,36 +697,15 @@ begin
|
|||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
j := fProj.getActiveConfigurationIndex;
|
||||
for i := 0 to fProj.configurationCount-1 do
|
||||
begin
|
||||
conf := fProj.configurationName(i);
|
||||
if i = j then
|
||||
conf += ' (active)';
|
||||
itm := Tree.Items.AddChild(fConfNode, conf);
|
||||
if i = j then
|
||||
begin
|
||||
itm.ImageIndex := 4;
|
||||
itm.SelectedIndex:= 4;
|
||||
end
|
||||
else
|
||||
begin
|
||||
itm.ImageIndex := 3;
|
||||
itm.SelectedIndex:= 3;
|
||||
end;
|
||||
end;
|
||||
if sel.isNotEmpty then
|
||||
begin
|
||||
itm := Tree.Items.FindNodeWithTextPath(sel);
|
||||
if itm.isAssigned then
|
||||
begin
|
||||
itm.Selected := true;
|
||||
itm.MakeVisible;
|
||||
end;
|
||||
end;
|
||||
Tree.EndUpdate;
|
||||
|
||||
selConf.Items.BeginUpdate();
|
||||
j := fProj.getActiveConfigurationIndex;
|
||||
selConf.Items.Clear;
|
||||
for i := 0 to fProj.configurationCount-1 do
|
||||
selConf.Items.Add(fProj.configurationName(i));
|
||||
selConf.ItemIndex := j;
|
||||
selConf.Items.EndUpdate();
|
||||
end;
|
||||
{$ENDREGION --------------------------------------------------------------------}
|
||||
|
||||
|
|
Loading…
Reference in New Issue