mirror of https://gitlab.com/basile.b/dexed.git
Merge branch 'a12_2_a13'
This commit is contained in:
commit
186d0583df
|
@ -1,7 +1,7 @@
|
||||||
inherited CESymbolListWidget: TCESymbolListWidget
|
inherited CESymbolListWidget: TCESymbolListWidget
|
||||||
Left = 1548
|
Left = 985
|
||||||
Height = 430
|
Height = 430
|
||||||
Top = 457
|
Top = 215
|
||||||
Width = 310
|
Width = 310
|
||||||
Caption = 'Symbol list'
|
Caption = 'Symbol list'
|
||||||
ClientHeight = 430
|
ClientHeight = 430
|
||||||
|
@ -25,18 +25,16 @@ inherited CESymbolListWidget: TCESymbolListWidget
|
||||||
Align = alClient
|
Align = alClient
|
||||||
BorderSpacing.Around = 4
|
BorderSpacing.Around = 4
|
||||||
DefaultItemHeight = 18
|
DefaultItemHeight = 18
|
||||||
ExpandSignType = tvestPlusMinus
|
|
||||||
HideSelection = False
|
HideSelection = False
|
||||||
Images = imgList
|
Images = imgList
|
||||||
ReadOnly = True
|
ReadOnly = True
|
||||||
RightClickSelect = True
|
RightClickSelect = True
|
||||||
RowSelect = True
|
|
||||||
ScrollBars = ssAutoBoth
|
ScrollBars = ssAutoBoth
|
||||||
SelectionColor = clActiveBorder
|
SelectionColor = clActiveBorder
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
OnDeletion = TreeDeletion
|
OnDeletion = TreeDeletion
|
||||||
OnKeyPress = TreeKeyPress
|
OnKeyPress = TreeKeyPress
|
||||||
Options = [tvoAutoItemHeight, tvoKeepCollapsedNodes, tvoReadOnly, tvoRightClickSelect, tvoRowSelect, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips, tvoThemedDraw]
|
Options = [tvoAutoItemHeight, tvoKeepCollapsedNodes, tvoReadOnly, tvoRightClickSelect, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips, tvoThemedDraw]
|
||||||
Items.Data = {
|
Items.Data = {
|
||||||
F9FFFFFF02000B000000000000000000000000000000FFFFFFFF000000000000
|
F9FFFFFF02000B000000000000000000000000000000FFFFFFFF000000000000
|
||||||
00000005000000416C696173010000000100000001000000FFFFFFFF00000000
|
00000005000000416C696173010000000100000001000000FFFFFFFF00000000
|
||||||
|
@ -73,6 +71,7 @@ inherited CESymbolListWidget: TCESymbolListWidget
|
||||||
Top = 2
|
Top = 2
|
||||||
Width = 272
|
Width = 272
|
||||||
OnAfterFilter = TreeFilterEdit1AfterFilter
|
OnAfterFilter = TreeFilterEdit1AfterFilter
|
||||||
|
OnFilterItem = TreeFilterEdit1FilterItem
|
||||||
ButtonWidth = 28
|
ButtonWidth = 28
|
||||||
NumGlyphs = 1
|
NumGlyphs = 1
|
||||||
Align = alClient
|
Align = alClient
|
||||||
|
@ -80,6 +79,7 @@ inherited CESymbolListWidget: TCESymbolListWidget
|
||||||
BorderSpacing.Around = 2
|
BorderSpacing.Around = 2
|
||||||
MaxLength = 0
|
MaxLength = 0
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
|
OnMouseEnter = TreeFilterEdit1MouseEnter
|
||||||
FilteredTreeview = Tree
|
FilteredTreeview = Tree
|
||||||
end
|
end
|
||||||
object btnRefresh: TBitBtn
|
object btnRefresh: TBitBtn
|
||||||
|
|
|
@ -7,7 +7,7 @@ interface
|
||||||
uses
|
uses
|
||||||
Classes, SysUtils, TreeFilterEdit, Forms, Controls, Graphics, ExtCtrls, Menus,
|
Classes, SysUtils, TreeFilterEdit, Forms, Controls, Graphics, ExtCtrls, Menus,
|
||||||
ComCtrls, ce_widget, jsonparser, process, actnlist, Buttons, Clipbrd, LCLProc,
|
ComCtrls, ce_widget, jsonparser, process, actnlist, Buttons, Clipbrd, LCLProc,
|
||||||
ce_common, ce_observer, ce_synmemo, ce_interfaces, ce_writableComponent;
|
ce_common, ce_observer, ce_synmemo, ce_interfaces, ce_writableComponent, EditBtn;
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
|
@ -77,18 +77,22 @@ type
|
||||||
fRefreshOnFocus: boolean;
|
fRefreshOnFocus: boolean;
|
||||||
fShowChildCategories: boolean;
|
fShowChildCategories: boolean;
|
||||||
fAutoRefreshDelay: Integer;
|
fAutoRefreshDelay: Integer;
|
||||||
|
fSmartFilter: boolean;
|
||||||
published
|
published
|
||||||
property autoRefresh: boolean read fAutoRefresh write fAutoRefresh;
|
property autoRefresh: boolean read fAutoRefresh write fAutoRefresh;
|
||||||
property refreshOnChange: boolean read fRefreshOnChange write fRefreshOnChange;
|
property refreshOnChange: boolean read fRefreshOnChange write fRefreshOnChange;
|
||||||
property refreshOnFocus: boolean read fRefreshOnFocus write fRefreshOnFocus default true;
|
property refreshOnFocus: boolean read fRefreshOnFocus write fRefreshOnFocus;
|
||||||
property showChildCategories: boolean read fShowChildCategories write fShowChildCategories default true;
|
property showChildCategories: boolean read fShowChildCategories write fShowChildCategories;
|
||||||
property autoRefreshDelay: Integer read fAutoRefreshDelay write fAutoRefreshDelay default 1500;
|
property autoRefreshDelay: Integer read fAutoRefreshDelay write fAutoRefreshDelay;
|
||||||
|
property smartFilter: boolean read fSmartFilter write fSmartFilter;
|
||||||
public
|
public
|
||||||
constructor Create(AOwner: TComponent); override;
|
constructor Create(AOwner: TComponent); override;
|
||||||
procedure Assign(Source: TPersistent); override;
|
procedure Assign(Source: TPersistent); override;
|
||||||
procedure AssignTo(Dest: TPersistent); override;
|
procedure AssignTo(Dest: TPersistent); override;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{ TCESymbolListWidget }
|
||||||
|
|
||||||
TCESymbolListWidget = class(TCEWidget, ICEMultiDocObserver, ICEEditableOptions)
|
TCESymbolListWidget = class(TCEWidget, ICEMultiDocObserver, ICEEditableOptions)
|
||||||
btnRefresh: TBitBtn;
|
btnRefresh: TBitBtn;
|
||||||
imgList: TImageList;
|
imgList: TImageList;
|
||||||
|
@ -98,6 +102,9 @@ type
|
||||||
procedure btnRefreshClick(Sender: TObject);
|
procedure btnRefreshClick(Sender: TObject);
|
||||||
procedure TreeDeletion(Sender: TObject; Node: TTreeNode);
|
procedure TreeDeletion(Sender: TObject; Node: TTreeNode);
|
||||||
procedure TreeFilterEdit1AfterFilter(Sender: TObject);
|
procedure TreeFilterEdit1AfterFilter(Sender: TObject);
|
||||||
|
function TreeFilterEdit1FilterItem(Item: TObject; out Done: Boolean
|
||||||
|
): Boolean;
|
||||||
|
procedure TreeFilterEdit1MouseEnter(Sender: TObject);
|
||||||
procedure TreeKeyPress(Sender: TObject; var Key: char);
|
procedure TreeKeyPress(Sender: TObject; var Key: char);
|
||||||
private
|
private
|
||||||
fOptions: TCESymbolListOptions;
|
fOptions: TCESymbolListOptions;
|
||||||
|
@ -115,6 +122,7 @@ type
|
||||||
fRefreshOnChange: boolean;
|
fRefreshOnChange: boolean;
|
||||||
fRefreshOnFocus: boolean;
|
fRefreshOnFocus: boolean;
|
||||||
fShowChildCategories: boolean;
|
fShowChildCategories: boolean;
|
||||||
|
fSmartFilter: boolean;
|
||||||
fToolOutput: TMemoryStream;
|
fToolOutput: TMemoryStream;
|
||||||
ndAlias, ndClass, ndEnum, ndFunc, ndUni: TTreeNode;
|
ndAlias, ndClass, ndEnum, ndFunc, ndUni: TTreeNode;
|
||||||
ndImp, ndIntf, ndMix, ndStruct, ndTmp, ndVar: TTreeNode;
|
ndImp, ndIntf, ndMix, ndStruct, ndTmp, ndVar: TTreeNode;
|
||||||
|
@ -230,6 +238,7 @@ begin
|
||||||
inherited;
|
inherited;
|
||||||
fRefreshOnFocus := true;
|
fRefreshOnFocus := true;
|
||||||
fShowChildCategories := true;
|
fShowChildCategories := true;
|
||||||
|
fSmartFilter := true;
|
||||||
fAutoRefreshDelay := 1500;
|
fAutoRefreshDelay := 1500;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -246,6 +255,7 @@ begin
|
||||||
fRefreshOnChange := widg.fRefreshOnChange;
|
fRefreshOnChange := widg.fRefreshOnChange;
|
||||||
fAutoRefresh := widg.fAutoRefresh;
|
fAutoRefresh := widg.fAutoRefresh;
|
||||||
fShowChildCategories := widg.fShowChildCategories;
|
fShowChildCategories := widg.fShowChildCategories;
|
||||||
|
fSmartFilter := widg.fSmartFilter;
|
||||||
end
|
end
|
||||||
else inherited;
|
else inherited;
|
||||||
end;
|
end;
|
||||||
|
@ -263,6 +273,7 @@ begin
|
||||||
widg.fRefreshOnChange := fRefreshOnChange;
|
widg.fRefreshOnChange := fRefreshOnChange;
|
||||||
widg.fAutoRefresh := fAutoRefresh;
|
widg.fAutoRefresh := fAutoRefresh;
|
||||||
widg.fShowChildCategories := fShowChildCategories;
|
widg.fShowChildCategories := fShowChildCategories;
|
||||||
|
widg.fSmartFilter := fSmartFilter;
|
||||||
//
|
//
|
||||||
widg.fActAutoRefresh.Checked := fAutoRefresh;
|
widg.fActAutoRefresh.Checked := fAutoRefresh;
|
||||||
widg.fActRefreshOnChange.Checked:= fRefreshOnChange;
|
widg.fActRefreshOnChange.Checked:= fRefreshOnChange;
|
||||||
|
@ -312,7 +323,8 @@ begin
|
||||||
fSyms := TSymbolList.create(nil);
|
fSyms := TSymbolList.create(nil);
|
||||||
fToolOutput := TMemoryStream.create;
|
fToolOutput := TMemoryStream.create;
|
||||||
//
|
//
|
||||||
fOptions := TCESymbolListOptions.Create(nil);
|
fOptions := TCESymbolListOptions.Create(self);
|
||||||
|
fOptions.Name:= 'symbolListOptions';
|
||||||
fname := getCoeditDocPath + OptsFname;
|
fname := getCoeditDocPath + OptsFname;
|
||||||
if FileExists(fname) then
|
if FileExists(fname) then
|
||||||
fOptions.loadFromFile(fname);
|
fOptions.loadFromFile(fname);
|
||||||
|
@ -549,6 +561,26 @@ begin
|
||||||
updateVisibleCat;
|
updateVisibleCat;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TCESymbolListWidget.TreeFilterEdit1FilterItem(Item: TObject; out
|
||||||
|
Done: Boolean): Boolean;
|
||||||
|
begin
|
||||||
|
if not fSmartFilter then exit;
|
||||||
|
//
|
||||||
|
if TreeFilterEdit1.Filter <> '' then
|
||||||
|
tree.FullExpand
|
||||||
|
else if tree.Selected = nil then
|
||||||
|
tree.FullCollapse
|
||||||
|
else tree.MakeSelectionVisible;
|
||||||
|
result := false;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCESymbolListWidget.TreeFilterEdit1MouseEnter(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if not fSmartFilter then exit;
|
||||||
|
//
|
||||||
|
tree.Selected := nil;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TCESymbolListWidget.TreeKeyPress(Sender: TObject; var Key: char);
|
procedure TCESymbolListWidget.TreeKeyPress(Sender: TObject; var Key: char);
|
||||||
begin
|
begin
|
||||||
if Key = #13 then TreeDblClick(nil);
|
if Key = #13 then TreeDblClick(nil);
|
||||||
|
|
Loading…
Reference in New Issue