mirror of https://gitlab.com/basile.b/dexed.git
shortcut editor, the filter works with the key combinations
This commit is contained in:
parent
200b43662c
commit
078f9e9d06
|
@ -20,21 +20,23 @@ object CEShortcutEditor: TCEShortcutEditor
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
object fltItems: TTreeFilterEdit
|
object fltItems: TTreeFilterEdit
|
||||||
Left = 2
|
Left = 2
|
||||||
Height = 20
|
Height = 24
|
||||||
Top = 2
|
Top = 2
|
||||||
Width = 420
|
Width = 420
|
||||||
|
OnFilterItem = fltItemsFilterItem
|
||||||
ButtonWidth = 28
|
ButtonWidth = 28
|
||||||
NumGlyphs = 1
|
NumGlyphs = 1
|
||||||
Align = alTop
|
Align = alTop
|
||||||
BorderSpacing.Around = 2
|
BorderSpacing.Around = 2
|
||||||
|
AutoSize = False
|
||||||
MaxLength = 0
|
MaxLength = 0
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
FilteredTreeview = tree
|
FilteredTreeview = tree
|
||||||
end
|
end
|
||||||
object tree: TTreeView
|
object tree: TTreeView
|
||||||
Left = 2
|
Left = 2
|
||||||
Height = 407
|
Height = 403
|
||||||
Top = 26
|
Top = 30
|
||||||
Width = 420
|
Width = 420
|
||||||
Align = alClient
|
Align = alClient
|
||||||
AutoExpand = True
|
AutoExpand = True
|
||||||
|
|
|
@ -6,9 +6,9 @@ interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
Classes, SysUtils, FileUtil, TreeFilterEdit, Forms, Controls, Menus, Graphics,
|
Classes, SysUtils, FileUtil, TreeFilterEdit, Forms, Controls, Menus, Graphics,
|
||||||
ExtCtrls, LCLProc, ComCtrls, StdCtrls, Buttons, LCLType, PropEdits,
|
ExtCtrls, LCLProc, ComCtrls, StdCtrls, Buttons, LCLType, PropEdits, strutils,
|
||||||
ce_sharedres, ce_observer, ce_interfaces, ce_common, ce_writableComponent,
|
ce_sharedres, ce_observer, ce_interfaces, ce_common, ce_writableComponent,
|
||||||
ce_dialogs;
|
ce_dialogs, EditBtn;
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
|
@ -59,6 +59,7 @@ type
|
||||||
tree: TTreeView;
|
tree: TTreeView;
|
||||||
procedure btnActivateClick(Sender: TObject);
|
procedure btnActivateClick(Sender: TObject);
|
||||||
procedure btnClearClick(Sender: TObject);
|
procedure btnClearClick(Sender: TObject);
|
||||||
|
function fltItemsFilterItem(Item: TObject; out Done: Boolean): Boolean;
|
||||||
procedure LabeledEdit1KeyDown(Sender: TObject; var Key: Word;Shift: TShiftState);
|
procedure LabeledEdit1KeyDown(Sender: TObject; var Key: Word;Shift: TShiftState);
|
||||||
procedure shortcutCatcherExit(Sender: TObject);
|
procedure shortcutCatcherExit(Sender: TObject);
|
||||||
procedure shortcutCatcherMouseLeave(Sender: TObject);
|
procedure shortcutCatcherMouseLeave(Sender: TObject);
|
||||||
|
@ -283,6 +284,28 @@ begin
|
||||||
updateEditCtrls;
|
updateEditCtrls;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TCEShortcutEditor.fltItemsFilterItem(Item: TObject; out Done: Boolean): Boolean;
|
||||||
|
var
|
||||||
|
shc: TShortcutItem;
|
||||||
|
begin
|
||||||
|
if fltItems.Filter.isBlank then
|
||||||
|
begin
|
||||||
|
result := true;
|
||||||
|
done := true;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
result := false;
|
||||||
|
done := false;
|
||||||
|
// see TTreeFilterEdit: they pass TObject(TTreeNode.Data) and not a TTreeNode
|
||||||
|
if Pointer(item).isNil then
|
||||||
|
exit;
|
||||||
|
shc := TShortcutItem(item);
|
||||||
|
result := AnsiContainsText(shc.combination, fltItems.Filter);
|
||||||
|
done := true;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TCEShortcutEditor.LabeledEdit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
|
procedure TCEShortcutEditor.LabeledEdit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
|
||||||
var
|
var
|
||||||
i: integer;
|
i: integer;
|
||||||
|
|
Loading…
Reference in New Issue