mirror of https://gitlab.com/basile.b/dexed.git
improved the mini explorer
This commit is contained in:
parent
54d7f8902d
commit
ebdc158738
|
@ -13,6 +13,7 @@ object CEMainForm: TCEMainForm
|
||||||
LCLVersion = '1.2.4.0'
|
LCLVersion = '1.2.4.0'
|
||||||
object mainMenu: TMainMenu
|
object mainMenu: TMainMenu
|
||||||
Images = imgList
|
Images = imgList
|
||||||
|
top = 1
|
||||||
object MenuItem1: TMenuItem
|
object MenuItem1: TMenuItem
|
||||||
Caption = 'File'
|
Caption = 'File'
|
||||||
object MenuItem5: TMenuItem
|
object MenuItem5: TMenuItem
|
||||||
|
@ -454,6 +455,12 @@ object CEMainForm: TCEMainForm
|
||||||
AEEAB3B3B100B5B5B300B5B5B300B5B5B300B5B5B300B5B5B300
|
AEEAB3B3B100B5B5B300B5B5B300B5B5B300B5B5B300B5B5B300
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
object MenuItem59: TMenuItem
|
||||||
|
Caption = '-'
|
||||||
|
end
|
||||||
|
object MenuItem60: TMenuItem
|
||||||
|
Action = actFileOpenContFold
|
||||||
|
end
|
||||||
end
|
end
|
||||||
object MenuItem7: TMenuItem
|
object MenuItem7: TMenuItem
|
||||||
Caption = 'Edit'
|
Caption = 'Edit'
|
||||||
|
@ -1259,6 +1266,9 @@ object CEMainForm: TCEMainForm
|
||||||
91F4969391FF908D8B00969391FF969391F4979492008D8A8800
|
91F4969391FF908D8B00969391FF969391F4979492008D8A8800
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
object MenuItem61: TMenuItem
|
||||||
|
Action = actProjOpenContFold
|
||||||
|
end
|
||||||
object MenuItem40: TMenuItem
|
object MenuItem40: TMenuItem
|
||||||
Caption = '-'
|
Caption = '-'
|
||||||
end
|
end
|
||||||
|
@ -1751,6 +1761,7 @@ object CEMainForm: TCEMainForm
|
||||||
Images = imgList
|
Images = imgList
|
||||||
OnUpdate = ActionsUpdate
|
OnUpdate = ActionsUpdate
|
||||||
left = 32
|
left = 32
|
||||||
|
top = 1
|
||||||
object actEdCopy: TAction
|
object actEdCopy: TAction
|
||||||
Category = 'Edit'
|
Category = 'Edit'
|
||||||
Caption = 'Copy'
|
Caption = 'Copy'
|
||||||
|
@ -1976,11 +1987,23 @@ object CEMainForm: TCEMainForm
|
||||||
OnExecute = actEdFindNextExecute
|
OnExecute = actEdFindNextExecute
|
||||||
ShortCut = 114
|
ShortCut = 114
|
||||||
end
|
end
|
||||||
|
object actFileOpenContFold: TAction
|
||||||
|
Category = 'File'
|
||||||
|
Caption = 'View in mini explorer'
|
||||||
|
ImageIndex = 29
|
||||||
|
OnExecute = actFileOpenContFoldExecute
|
||||||
|
end
|
||||||
|
object actProjOpenContFold: TAction
|
||||||
|
Category = 'Project'
|
||||||
|
Caption = 'View in mini explorer'
|
||||||
|
ImageIndex = 29
|
||||||
|
OnExecute = actProjOpenContFoldExecute
|
||||||
|
end
|
||||||
end
|
end
|
||||||
object imgList: TImageList
|
object imgList: TImageList
|
||||||
left = 64
|
left = 64
|
||||||
Bitmap = {
|
Bitmap = {
|
||||||
4C691D0000001000000010000000008F4E00008C4AB000965DFF00935AFF0093
|
4C691E0000001000000010000000008F4E00008C4AB000965DFF00935AFF0093
|
||||||
59FF009359FF009359FF009359FF009359FF00945AFF008743FF008945FF008A
|
59FF009359FF009359FF009359FF009359FF00945AFF008743FF008945FF008A
|
||||||
49A8FFFFFF00008F4E00008F4F00008E4E00008A47FF66E2D0FF62DDCAFF62DD
|
49A8FFFFFF00008F4E00008F4F00008E4E00008A47FF66E2D0FF62DDCAFF62DD
|
||||||
C8FF62DDC8FF62DDC8FF62DDC8FF62DDC8FF62DDC9FF61E0CAFF62DEC8FF3ABA
|
C8FF62DDC8FF62DDC8FF62DDC8FF62DDC8FF62DDC9FF61E0CAFF62DEC8FF3ABA
|
||||||
|
@ -2908,7 +2931,39 @@ object CEMainForm: TCEMainForm
|
||||||
65FF666362FF5A5756C0605D5C007E7C7A00716F6DC0767472FF706D6CFF6D6A
|
65FF666362FF5A5756C0605D5C007E7C7A00716F6DC0767472FF706D6CFF6D6A
|
||||||
69FF696765FF666362FF5A5756C0000000000000003300000033000000330000
|
69FF696765FF666362FF5A5756C0000000000000003300000033000000330000
|
||||||
0033000000330000000000000000000000000000000000000033000000330000
|
0033000000330000000000000000000000000000000000000033000000330000
|
||||||
0033000000330000003300000000
|
0033000000330000003300000000B8A596EFB5A292FFB5A090FFB4A090FFB49F
|
||||||
|
8FFFB39F8EFFB39F8EFFB39F8EFFB39F8EFFB39F8FFFB4A191FFB6A393FFB5A2
|
||||||
|
92FFB4A191FFBBA99AFFB8A696B0B5A292FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB19C8BFFFFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFB6A393FFB5A090FFFFFFFFFF50C08BFF51C18BFFFFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFEFDFFFFFFFEFFFFFFFFFFAF9A89FFF6F2
|
||||||
|
EBFF73706DFFF9F4EEFFB6A393FFB4A090FFFFFFFFFF4FB592FF6AB49BFFAFAA
|
||||||
|
ADFFA8A8A9FFD2D2D2FFF8F6F5FFFDF9F8FFFDFAF9FFFFFFFFFFB09B8AFFE7DD
|
||||||
|
D1FFE8DDD1FFE9DED2FFB7A494FFB4A090FFFFFFFFFFFFFFFFFFFFFAFAFFFEFA
|
||||||
|
F9FFFFFFFFFFFFFEFEFFF8F5F4FFFCF8F7FFFCF9F7FFFFFFFFFFB19D8CFFB4A0
|
||||||
|
91FFB4A091FFB5A292FFB6A394F3B4A090FFFFFFFFFFAAAAABFFFFFDF9FFFEFC
|
||||||
|
FAFFDCBC94FFDDBD94FFFEFDFAFFFDFAF6FFFBF9F4FFFFFFFFFFB19C8CFFDFD3
|
||||||
|
C4FFDED1C3FFE0D4C6FFB7A596FFB4A090FFFFFFFFFFACADAEFFA9AAACFFFEF9
|
||||||
|
F7FFCCA983FFCFAB85FFA9ACAFFFA8A9AAFFD1D0CEFFFEFEFDFFB09B8BFFE3D8
|
||||||
|
CCFFE2D6CAFFE5D9CDFFB6A394FFB4A190FFFFFFFFFFACADAEFFFEF8F2FFFDF5
|
||||||
|
EFFFFFF8F1FFFFF9F2FFFFF7F1FFFBF5F0FFF9F4EEFFFFFFFFFFAF9B8AFFE7DE
|
||||||
|
D5FFE6DCD2FFE9E0D6FFB5A393FFB4A190FFFFFFFFFFACADAEFFFEF6EEFFFFF4
|
||||||
|
E9FF45C4FAFF46C5FBFFFFF5EBFFFBF3ECFFF8F1EBFFFFFFFFFFAF9B8AFFEEE6
|
||||||
|
DEFFECE4DCFFEFE8DFFFB5A393FFB4A191FFFFFFFFFFADAEAFFFACACADFFFFF1
|
||||||
|
E7FF45ACF9FF47ADFAFFB2ADAAFFAAABACFFCAC8C5FFFCFAF8FFB19C8CFFE5DC
|
||||||
|
D3FFE3DAD1FFE6DDD5FFB7A494FFB5A191FFFFFFFFFFADAEAFFFFAF0E8FFFAEF
|
||||||
|
E3FFFFF4E0FFFFF5E1FFFCF1E5FFF7EEE5FFF5ECE5FFFFFEFDFFB19D8CFFB29E
|
||||||
|
8DFFB19D8CFFB39F8EFFB7A595FFB5A191FFFFFFFDFFACAEAFFFF7EDE3FFF9EF
|
||||||
|
DFFF8581F1FF8682F2FFFBF1E0FFF5EBE1FFF2E9E0FFF7F2EEFFB09B8BFFFFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFB6A393FFB5A191FFFFFFFBFFACAEB0FFACAEAFFFFAEF
|
||||||
|
DDFF5B57DEFF5D58DFFFB1B4AEFFACAEAFFFCDCBC6FFF7F2EFFFB19C8BFFF6F2
|
||||||
|
EBFF73706DFFF9F4EEFFB6A393FFB6A393FFFFFFFDFFF5EBE0FFF5EBE0FFF6EC
|
||||||
|
DFFFFAF0DEFFFBF1DFFFF8EEE0FFF5EBE1FFF4EAE0FFF5F1EEFFB3A090FFE9DE
|
||||||
|
D2FFE8DED1FFE9DFD3FFB7A495FFA9988BC0B6A393FFB5A293FFB5A293FFB5A3
|
||||||
|
93FFB6A392FFB6A393FFB6A393FFB5A393FFB5A293FFB6A394FFB7A596FFB7A4
|
||||||
|
95FFB7A494FFB7A596FFB7A495F2000000000000003300000033000000330000
|
||||||
|
0033000000330000003300000033000000330000003300000033000000330000
|
||||||
|
0033000000330000003300000030
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
object ApplicationProperties1: TApplicationProperties
|
object ApplicationProperties1: TApplicationProperties
|
||||||
|
|
|
@ -70,6 +70,8 @@ type
|
||||||
actFileCompAndRunWithArgs: TAction;
|
actFileCompAndRunWithArgs: TAction;
|
||||||
actEdFind: TAction;
|
actEdFind: TAction;
|
||||||
actEdFindNext: TAction;
|
actEdFindNext: TAction;
|
||||||
|
actFileOpenContFold: TAction;
|
||||||
|
actProjOpenContFold: TAction;
|
||||||
actProjOptView: TAction;
|
actProjOptView: TAction;
|
||||||
actProjSource: TAction;
|
actProjSource: TAction;
|
||||||
actProjRun: TAction;
|
actProjRun: TAction;
|
||||||
|
@ -148,6 +150,9 @@ type
|
||||||
MenuItem56: TMenuItem;
|
MenuItem56: TMenuItem;
|
||||||
MenuItem57: TMenuItem;
|
MenuItem57: TMenuItem;
|
||||||
MenuItem58: TMenuItem;
|
MenuItem58: TMenuItem;
|
||||||
|
MenuItem59: TMenuItem;
|
||||||
|
MenuItem60: TMenuItem;
|
||||||
|
MenuItem61: TMenuItem;
|
||||||
mnuItemMruFile: TMenuItem;
|
mnuItemMruFile: TMenuItem;
|
||||||
mnuItemMruProj: TMenuItem;
|
mnuItemMruProj: TMenuItem;
|
||||||
mnuItemWin: TMenuItem;
|
mnuItemWin: TMenuItem;
|
||||||
|
@ -164,6 +169,7 @@ type
|
||||||
procedure actFileCloseExecute(Sender: TObject);
|
procedure actFileCloseExecute(Sender: TObject);
|
||||||
procedure actFileCompAndRunExecute(Sender: TObject);
|
procedure actFileCompAndRunExecute(Sender: TObject);
|
||||||
procedure actFileCompAndRunWithArgsExecute(Sender: TObject);
|
procedure actFileCompAndRunWithArgsExecute(Sender: TObject);
|
||||||
|
procedure actFileOpenContFoldExecute(Sender: TObject);
|
||||||
procedure actFileSaveAllExecute(Sender: TObject);
|
procedure actFileSaveAllExecute(Sender: TObject);
|
||||||
procedure actEdIndentExecute(Sender: TObject);
|
procedure actEdIndentExecute(Sender: TObject);
|
||||||
procedure actProjCompAndRunWithArgsExecute(Sender: TObject);
|
procedure actProjCompAndRunWithArgsExecute(Sender: TObject);
|
||||||
|
@ -178,6 +184,7 @@ type
|
||||||
procedure actProjNewExecute(Sender: TObject);
|
procedure actProjNewExecute(Sender: TObject);
|
||||||
procedure actFileNewRunExecute(Sender: TObject);
|
procedure actFileNewRunExecute(Sender: TObject);
|
||||||
procedure actFileOpenExecute(Sender: TObject);
|
procedure actFileOpenExecute(Sender: TObject);
|
||||||
|
procedure actProjOpenContFoldExecute(Sender: TObject);
|
||||||
procedure actProjOpenExecute(Sender: TObject);
|
procedure actProjOpenExecute(Sender: TObject);
|
||||||
procedure actEdPasteExecute(Sender: TObject);
|
procedure actEdPasteExecute(Sender: TObject);
|
||||||
procedure actProjCloseExecute(Sender: TObject);
|
procedure actProjCloseExecute(Sender: TObject);
|
||||||
|
@ -829,6 +836,15 @@ begin
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TCEMainForm.actProjOpenContFoldExecute(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if fProject = nil then exit;
|
||||||
|
if not fileExists(fProject.fileName) then exit;
|
||||||
|
//
|
||||||
|
DockMaster.GetAnchorSite(fExplWidg).Show;
|
||||||
|
fExplWidg.expandPath(extractFilePath(fProject.fileName));
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TCEMainForm.actFileNewExecute(Sender: TObject);
|
procedure TCEMainForm.actFileNewExecute(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
newFile;
|
newFile;
|
||||||
|
@ -1305,6 +1321,18 @@ begin
|
||||||
compileAndRunFile(fEditWidg.editorIndex, runargs);
|
compileAndRunFile(fEditWidg.editorIndex, runargs);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TCEMainForm.actFileOpenContFoldExecute(Sender: TObject);
|
||||||
|
var
|
||||||
|
curr: TCESynMemo;
|
||||||
|
begin
|
||||||
|
curr := EditWidget.currentEditor;
|
||||||
|
if curr = nil then exit;
|
||||||
|
if not fileExists(curr.fileName) then exit;
|
||||||
|
//
|
||||||
|
DockMaster.GetAnchorSite(fExplWidg).Show;
|
||||||
|
fExplWidg.expandPath(extractFilePath(curr.fileName));
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TCEMainForm.actProjCompileExecute(Sender: TObject);
|
procedure TCEMainForm.actProjCompileExecute(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
compileProject(fProject);
|
compileProject(fProject);
|
||||||
|
|
|
@ -6,7 +6,7 @@ interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
|
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
|
||||||
Menus, StdCtrls, ComCtrls, Buttons, ce_widget, lcltype;
|
Menus, ComCtrls, Buttons, ce_widget, lcltype, strutils;
|
||||||
|
|
||||||
type
|
type
|
||||||
TCEMiniExplorerWidget = class(TCEWidget)
|
TCEMiniExplorerWidget = class(TCEWidget)
|
||||||
|
@ -31,6 +31,7 @@ type
|
||||||
private
|
private
|
||||||
fFavorites: TStringList;
|
fFavorites: TStringList;
|
||||||
fLastFold: string;
|
fLastFold: string;
|
||||||
|
procedure lstFavDblClick(Sender: TObject);
|
||||||
procedure optset_LastFold(aReader: TReader);
|
procedure optset_LastFold(aReader: TReader);
|
||||||
procedure optget_LastFold(aWriter: TWriter);
|
procedure optget_LastFold(aWriter: TWriter);
|
||||||
procedure optset_Favs(aReader: TReader);
|
procedure optset_Favs(aReader: TReader);
|
||||||
|
@ -54,6 +55,8 @@ type
|
||||||
destructor destroy; override;
|
destructor destroy; override;
|
||||||
//
|
//
|
||||||
procedure declareProperties(aFiler: TFiler); override;
|
procedure declareProperties(aFiler: TFiler); override;
|
||||||
|
//
|
||||||
|
procedure expandPath(const aPath: string);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
@ -71,6 +74,7 @@ begin
|
||||||
lstFiles.OnDeletion := @lstDeletion;
|
lstFiles.OnDeletion := @lstDeletion;
|
||||||
lstFav.OnDeletion := @lstDeletion;
|
lstFav.OnDeletion := @lstDeletion;
|
||||||
lstFav.OnSelectItem := @lstFavSelect;
|
lstFav.OnSelectItem := @lstFavSelect;
|
||||||
|
lstFav.OnDblClick := @lstFavDblClick;
|
||||||
//
|
//
|
||||||
Tree.OnClick := @treeClick;
|
Tree.OnClick := @treeClick;
|
||||||
Tree.OnChange := @treeChanged;
|
Tree.OnChange := @treeChanged;
|
||||||
|
@ -197,6 +201,13 @@ begin
|
||||||
if Tree.Selected = nil then exit;
|
if Tree.Selected = nil then exit;
|
||||||
fFavorites.Add(PString(Tree.Selected.Data)^);
|
fFavorites.Add(PString(Tree.Selected.Data)^);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TCEMiniExplorerWidget.lstFavDblClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if lstFav.Selected = nil then exit;
|
||||||
|
expandPath(lstFav.Selected.Caption);
|
||||||
|
end;
|
||||||
|
|
||||||
{$ENDREGION}
|
{$ENDREGION}
|
||||||
|
|
||||||
{$REGION Files -----------------------------------------------------------------}
|
{$REGION Files -----------------------------------------------------------------}
|
||||||
|
@ -343,6 +354,44 @@ begin
|
||||||
if Tree.Selected.Expanded then exit;
|
if Tree.Selected.Expanded then exit;
|
||||||
treeScanSubFolders(Tree.Selected);
|
treeScanSubFolders(Tree.Selected);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
//TODO-cbugfix: it leaks expanded nodes data.
|
||||||
|
procedure TCEMiniExplorerWidget.expandPath(const aPath: string);
|
||||||
|
var
|
||||||
|
i: NativeInt;
|
||||||
|
node : TTreeNode;
|
||||||
|
function dig(const aRoot: TTreenode): boolean;
|
||||||
|
var
|
||||||
|
i: NativeInt;
|
||||||
|
str: string;
|
||||||
|
begin
|
||||||
|
result := false;
|
||||||
|
for i := 0 to aRoot.Count-1 do
|
||||||
|
begin
|
||||||
|
str := PString(aRoot.Items[i].Data)^;
|
||||||
|
if LeftStr(aPath, length(str)) = str then
|
||||||
|
begin
|
||||||
|
result := true;
|
||||||
|
Tree.Selected := aRoot.Items[i];
|
||||||
|
Tree.Selected.Expand(false);
|
||||||
|
//
|
||||||
|
if str = aPath then break;
|
||||||
|
if dig(Tree.Selected) then break;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
begin
|
||||||
|
for i := 0 to Tree.Items.Count-1 do
|
||||||
|
begin
|
||||||
|
node := Tree.Items[i];
|
||||||
|
if node.Level = 0 then
|
||||||
|
begin
|
||||||
|
node.Selected := true;
|
||||||
|
node.Expand(false);
|
||||||
|
end;
|
||||||
|
if dig(node) then break;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
{$ENDREGION}
|
{$ENDREGION}
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|
Loading…
Reference in New Issue