Skip to content

Commit 4f96a18

Browse files
authored
Merge pull request #3 from DarkCoderSc/dev
* **Folder Tree View Added to File Manager:** The browsed folder tree is now optionally available in the file manager (default: enabled). * **File Upload Feedback Added:** When a file is uploaded, all file manager windows are notified if the new file matches the current directory (reactive update). * **Significant Protocol Improvements:** While not directly visible in the compiled version, the underlying code has been greatly enhanced. OptiX command dispatching is now handled generically, and command/response serialization and deserialization are partially automated using Delphi RTTI for most basic object and property types. This considerably reduces the time required to implement new commands and responses, minimizes potential implementation errors, and makes the project much easier to expand.
2 parents 6224c88 + a6df8ee commit 4f96a18

53 files changed

Lines changed: 2661 additions & 2009 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Assets/sponsored_embarcadero.png

77.2 KB
Loading

Assets/sshot-8.png

-211 KB
Loading
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<BorlandProject>
33
<Transactions>
4-
<Transaction>2025/08/15 09:04:51.000.443,C:\Users\jples\Desktop\OptixGate\Client GUI\ClientGUIGroup.groupproj=C:\Users\jples\Documents\Embarcadero\Studio\Projects\ProjectGroup1.groupproj</Transaction>
4+
<Transaction>2025/08/15 09:04:51.000.443,C:\Users\jples\Documents\Embarcadero\Studio\Projects\ProjectGroup1.groupproj=C:\Users\jples\Desktop\OptixGate\Client GUI\ClientGUIGroup.groupproj</Transaction>
55
</Transactions>
66
<Default.Personality>
7-
<Projects ActiveProject="C:\Users\jples\Desktop\OptixGate\Client GUI\Client_GUI.dproj"/>
7+
<Projects ActiveProject="C:\Users\jples\Desktop\OptixGate\Client GUI\Client_GUI_OpenSSL.dproj"/>
88
</Default.Personality>
99
</BorlandProject>

Client GUI/Client_GUI.dpr

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -62,35 +62,37 @@ uses
6262
Optix.InformationGathering.Helper in '..\Shared\Optix.InformationGathering.Helper.pas',
6363
Optix.Process.Helper in '..\Shared\Optix.Process.Helper.pas',
6464
Optix.Func.SessionInformation in '..\Shared\Functions\Optix.Func.SessionInformation.pas',
65-
Optix.Func.Enum.Process in '..\Shared\Functions\Optix.Func.Enum.Process.pas',
6665
Optix.Protocol.SessionHandler in '..\Client\Units\Threads\Optix.Protocol.SessionHandler.pas',
6766
Optix.Protocol.Client in '..\Client\Units\Threads\Optix.Protocol.Client.pas',
6867
XSuperJSON in '..\Shared\XSuperJSON.pas',
6968
XSuperObject in '..\Shared\XSuperObject.pas',
7069
Optix.WinApiEx in '..\Shared\Optix.WinApiEx.pas',
7170
Optix.System.Helper in '..\Shared\Optix.System.Helper.pas',
7271
Optix.Shared.Types in '..\Shared\Optix.Shared.Types.pas',
73-
Optix.Actions.Process in '..\Client\Units\Actions\Optix.Actions.Process.pas',
7472
Optix.Func.LogNotifier in '..\Shared\Functions\Optix.Func.LogNotifier.pas',
75-
Optix.Func.Enum.FileSystem in '..\Shared\Functions\Optix.Func.Enum.FileSystem.pas',
7673
Optix.Shared.Classes in '..\Shared\Optix.Shared.Classes.pas',
7774
Optix.FileSystem.Helper in '..\Shared\Optix.FileSystem.Helper.pas',
7875
Optix.Protocol.Preflight in '..\Shared\Optix.Protocol.Preflight.pas',
7976
Optix.Protocol.Exceptions in '..\Shared\Optix.Protocol.Exceptions.pas',
8077
Optix.Protocol.Worker.FileTransfer in '..\Client\Units\Threads\Optix.Protocol.Worker.FileTransfer.pas',
8178
Optix.Shared.Protocol.FileTransfer in '..\Shared\Optix.Shared.Protocol.FileTransfer.pas',
8279
Optix.Task.ProcessDump in '..\Shared\Tasks\Optix.Task.ProcessDump.pas',
83-
Optix.Task in '..\Shared\Tasks\Optix.Task.pas',
8480
Optix.Actions.ProcessHandler in '..\Client\Units\Actions\Optix.Actions.ProcessHandler.pas',
85-
Optix.Func.Shell in '..\Shared\Functions\Optix.Func.Shell.pas',
8681
Optix.VCL.Helper in '..\Server\Units\Optix.VCL.Helper.pas',
8782
Optix.Helper in '..\Server\Units\Optix.Helper.pas',
8883
Optix.Constants in 'Units\Optix.Constants.pas',
8984
Optix.Config.Helper in '..\Server\Units\Configs\Optix.Config.Helper.pas',
9085
uFormMain in 'Units\Forms\uFormMain.pas' {FormMain},
9186
uFormConnectToServer in 'Units\Forms\uFormConnectToServer.pas' {FormConnectToServer},
9287
uFormAbout in '..\Server\Units\Forms\uFormAbout.pas' {FormAbout},
93-
uFormDebugThreads in '..\Server\Units\Forms\uFormDebugThreads.pas' {FormDebugThreads};
88+
uFormDebugThreads in '..\Server\Units\Forms\uFormDebugThreads.pas' {FormDebugThreads},
89+
Optix.Func.Commands.Base in '..\Shared\Functions\Optix.Func.Commands.Base.pas',
90+
Optix.ClassesRegistry in '..\Shared\Optix.ClassesRegistry.pas',
91+
Optix.Func.Commands.FileSystem in '..\Shared\Functions\Optix.Func.Commands.FileSystem.pas',
92+
Optix.Func.Commands.Process in '..\Shared\Functions\Optix.Func.Commands.Process.pas',
93+
Optix.Func.Commands.Shell in '..\Shared\Functions\Optix.Func.Commands.Shell.pas',
94+
Optix.FileSystem.Enum in '..\Shared\Optix.FileSystem.Enum.pas',
95+
Optix.Process.Enum in '..\Shared\Optix.Process.Enum.pas';
9496

9597
{$R *.res}
9698
{$R ..\Server\data.res}

Client GUI/Client_GUI.dproj

Lines changed: 20 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
22
<PropertyGroup>
33
<ProjectGuid>{D154DC3E-A07B-4D90-8D86-C7D3829D4E17}</ProjectGuid>
4-
<ProjectVersion>20.1</ProjectVersion>
4+
<ProjectVersion>20.3</ProjectVersion>
55
<FrameworkType>VCL</FrameworkType>
66
<Base>True</Base>
77
<Config Condition="'$(Config)'==''">Release</Config>
@@ -156,27 +156,22 @@
156156
<DCCReference Include="..\Shared\Optix.InformationGathering.Helper.pas"/>
157157
<DCCReference Include="..\Shared\Optix.Process.Helper.pas"/>
158158
<DCCReference Include="..\Shared\Functions\Optix.Func.SessionInformation.pas"/>
159-
<DCCReference Include="..\Shared\Functions\Optix.Func.Enum.Process.pas"/>
160159
<DCCReference Include="..\Client\Units\Threads\Optix.Protocol.SessionHandler.pas"/>
161160
<DCCReference Include="..\Client\Units\Threads\Optix.Protocol.Client.pas"/>
162161
<DCCReference Include="..\Shared\XSuperJSON.pas"/>
163162
<DCCReference Include="..\Shared\XSuperObject.pas"/>
164163
<DCCReference Include="..\Shared\Optix.WinApiEx.pas"/>
165164
<DCCReference Include="..\Shared\Optix.System.Helper.pas"/>
166165
<DCCReference Include="..\Shared\Optix.Shared.Types.pas"/>
167-
<DCCReference Include="..\Client\Units\Actions\Optix.Actions.Process.pas"/>
168166
<DCCReference Include="..\Shared\Functions\Optix.Func.LogNotifier.pas"/>
169-
<DCCReference Include="..\Shared\Functions\Optix.Func.Enum.FileSystem.pas"/>
170167
<DCCReference Include="..\Shared\Optix.Shared.Classes.pas"/>
171168
<DCCReference Include="..\Shared\Optix.FileSystem.Helper.pas"/>
172169
<DCCReference Include="..\Shared\Optix.Protocol.Preflight.pas"/>
173170
<DCCReference Include="..\Shared\Optix.Protocol.Exceptions.pas"/>
174171
<DCCReference Include="..\Client\Units\Threads\Optix.Protocol.Worker.FileTransfer.pas"/>
175172
<DCCReference Include="..\Shared\Optix.Shared.Protocol.FileTransfer.pas"/>
176173
<DCCReference Include="..\Shared\Tasks\Optix.Task.ProcessDump.pas"/>
177-
<DCCReference Include="..\Shared\Tasks\Optix.Task.pas"/>
178174
<DCCReference Include="..\Client\Units\Actions\Optix.Actions.ProcessHandler.pas"/>
179-
<DCCReference Include="..\Shared\Functions\Optix.Func.Shell.pas"/>
180175
<DCCReference Include="..\Server\Units\Optix.VCL.Helper.pas"/>
181176
<DCCReference Include="..\Server\Units\Optix.Helper.pas"/>
182177
<DCCReference Include="Units\Optix.Constants.pas"/>
@@ -193,6 +188,13 @@
193188
<DCCReference Include="..\Server\Units\Forms\uFormDebugThreads.pas">
194189
<Form>FormDebugThreads</Form>
195190
</DCCReference>
191+
<DCCReference Include="..\Shared\Functions\Optix.Func.Commands.Base.pas"/>
192+
<DCCReference Include="..\Shared\Optix.ClassesRegistry.pas"/>
193+
<DCCReference Include="..\Shared\Functions\Optix.Func.Commands.FileSystem.pas"/>
194+
<DCCReference Include="..\Shared\Functions\Optix.Func.Commands.Process.pas"/>
195+
<DCCReference Include="..\Shared\Functions\Optix.Func.Commands.Shell.pas"/>
196+
<DCCReference Include="..\Shared\Optix.FileSystem.Enum.pas"/>
197+
<DCCReference Include="..\Shared\Optix.Process.Enum.pas"/>
196198
<BuildConfiguration Include="Base">
197199
<Key>Base</Key>
198200
</BuildConfiguration>
@@ -218,13 +220,8 @@
218220
<Excluded_Packages Name="$(BDSBIN)\dclofficexp290.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
219221
</Excluded_Packages>
220222
</Delphi.Personality>
221-
<Deployment Version="4">
222-
<DeployFile LocalName="Win32\Debug\Client_GUI.exe" Configuration="Debug" Class="ProjectOutput">
223-
<Platform Name="Win32">
224-
<RemoteName>Client_GUI.exe</RemoteName>
225-
<Overwrite>true</Overwrite>
226-
</Platform>
227-
</DeployFile>
223+
<Deployment Version="5">
224+
<DeployFile LocalName="Win32\Debug\Client_GUI.exe" Configuration="Debug" Class="ProjectOutput"/>
228225
<DeployClass Name="AdditionalDebugSymbols">
229226
<Platform Name="iOSSimulator">
230227
<Operation>1</Operation>
@@ -237,16 +234,6 @@
237234
<Operation>0</Operation>
238235
</Platform>
239236
</DeployClass>
240-
<DeployClass Name="AndroidClasses">
241-
<Platform Name="Android">
242-
<RemoteDir>classes</RemoteDir>
243-
<Operation>64</Operation>
244-
</Platform>
245-
<Platform Name="Android64">
246-
<RemoteDir>classes</RemoteDir>
247-
<Operation>64</Operation>
248-
</Platform>
249-
</DeployClass>
250237
<DeployClass Name="AndroidFileProvider">
251238
<Platform Name="Android">
252239
<RemoteDir>res\xml</RemoteDir>
@@ -349,6 +336,16 @@
349336
<Operation>1</Operation>
350337
</Platform>
351338
</DeployClass>
339+
<DeployClass Name="AndroidSplashStylesV35">
340+
<Platform Name="Android">
341+
<RemoteDir>res\values-v35</RemoteDir>
342+
<Operation>1</Operation>
343+
</Platform>
344+
<Platform Name="Android64">
345+
<RemoteDir>res\values-v35</RemoteDir>
346+
<Operation>1</Operation>
347+
</Platform>
348+
</DeployClass>
352349
<DeployClass Name="Android_AdaptiveIcon">
353350
<Platform Name="Android">
354351
<RemoteDir>res\drawable-anydpi-v26</RemoteDir>

Client GUI/Client_GUI.res

-12 Bytes
Binary file not shown.

Client GUI/Client_GUI_OpenSSL.dpr

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -62,27 +62,22 @@ uses
6262
Optix.InformationGathering.Helper in '..\Shared\Optix.InformationGathering.Helper.pas',
6363
Optix.Process.Helper in '..\Shared\Optix.Process.Helper.pas',
6464
Optix.Func.SessionInformation in '..\Shared\Functions\Optix.Func.SessionInformation.pas',
65-
Optix.Func.Enum.Process in '..\Shared\Functions\Optix.Func.Enum.Process.pas',
6665
Optix.Protocol.SessionHandler in '..\Client\Units\Threads\Optix.Protocol.SessionHandler.pas',
6766
Optix.Protocol.Client in '..\Client\Units\Threads\Optix.Protocol.Client.pas',
6867
XSuperJSON in '..\Shared\XSuperJSON.pas',
6968
XSuperObject in '..\Shared\XSuperObject.pas',
7069
Optix.WinApiEx in '..\Shared\Optix.WinApiEx.pas',
7170
Optix.System.Helper in '..\Shared\Optix.System.Helper.pas',
7271
Optix.Shared.Types in '..\Shared\Optix.Shared.Types.pas',
73-
Optix.Actions.Process in '..\Client\Units\Actions\Optix.Actions.Process.pas',
7472
Optix.Func.LogNotifier in '..\Shared\Functions\Optix.Func.LogNotifier.pas',
75-
Optix.Func.Enum.FileSystem in '..\Shared\Functions\Optix.Func.Enum.FileSystem.pas',
7673
Optix.Shared.Classes in '..\Shared\Optix.Shared.Classes.pas',
7774
Optix.FileSystem.Helper in '..\Shared\Optix.FileSystem.Helper.pas',
7875
Optix.Protocol.Preflight in '..\Shared\Optix.Protocol.Preflight.pas',
7976
Optix.Protocol.Exceptions in '..\Shared\Optix.Protocol.Exceptions.pas',
8077
Optix.Protocol.Worker.FileTransfer in '..\Client\Units\Threads\Optix.Protocol.Worker.FileTransfer.pas',
8178
Optix.Shared.Protocol.FileTransfer in '..\Shared\Optix.Shared.Protocol.FileTransfer.pas',
8279
Optix.Task.ProcessDump in '..\Shared\Tasks\Optix.Task.ProcessDump.pas',
83-
Optix.Task in '..\Shared\Tasks\Optix.Task.pas',
8480
Optix.Actions.ProcessHandler in '..\Client\Units\Actions\Optix.Actions.ProcessHandler.pas',
85-
Optix.Func.Shell in '..\Shared\Functions\Optix.Func.Shell.pas',
8681
Optix.VCL.Helper in '..\Server\Units\Optix.VCL.Helper.pas',
8782
Optix.Helper in '..\Server\Units\Optix.Helper.pas',
8883
Optix.Constants in 'Units\Optix.Constants.pas',
@@ -101,7 +96,14 @@ uses
10196
uFormCertificatesStore in '..\Server\Units\Forms\uFormCertificatesStore.pas' {FormCertificatesStore},
10297
uFormGenerateNewCertificate in '..\Server\Units\Forms\uFormGenerateNewCertificate.pas' {FormGenerateNewCertificate},
10398
uFormTrustedCertificates in '..\Server\Units\Forms\uFormTrustedCertificates.pas' {FormTrustedCertificates},
104-
Optix.Config.TrustedCertificatesStore in '..\Server\Units\Configs\Optix.Config.TrustedCertificatesStore.pas';
99+
Optix.Config.TrustedCertificatesStore in '..\Server\Units\Configs\Optix.Config.TrustedCertificatesStore.pas',
100+
Optix.Func.Commands.Base in '..\Shared\Functions\Optix.Func.Commands.Base.pas',
101+
Optix.ClassesRegistry in '..\Shared\Optix.ClassesRegistry.pas',
102+
Optix.Func.Commands.FileSystem in '..\Shared\Functions\Optix.Func.Commands.FileSystem.pas',
103+
Optix.Func.Commands.Process in '..\Shared\Functions\Optix.Func.Commands.Process.pas',
104+
Optix.Func.Commands.Shell in '..\Shared\Functions\Optix.Func.Commands.Shell.pas',
105+
Optix.FileSystem.Enum in '..\Shared\Optix.FileSystem.Enum.pas',
106+
Optix.Process.Enum in '..\Shared\Optix.Process.Enum.pas';
105107

106108
{$R *.res}
107109
{$R ..\Server\data.res}

Client GUI/Client_GUI_OpenSSL.dproj

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
22
<PropertyGroup>
33
<ProjectGuid>{8C143314-465A-4447-A6F1-4EBBD1E5F768}</ProjectGuid>
4-
<ProjectVersion>20.1</ProjectVersion>
4+
<ProjectVersion>20.3</ProjectVersion>
55
<FrameworkType>VCL</FrameworkType>
66
<Base>True</Base>
77
<Config Condition="'$(Config)'==''">Release</Config>
@@ -149,27 +149,22 @@
149149
<DCCReference Include="..\Shared\Optix.InformationGathering.Helper.pas"/>
150150
<DCCReference Include="..\Shared\Optix.Process.Helper.pas"/>
151151
<DCCReference Include="..\Shared\Functions\Optix.Func.SessionInformation.pas"/>
152-
<DCCReference Include="..\Shared\Functions\Optix.Func.Enum.Process.pas"/>
153152
<DCCReference Include="..\Client\Units\Threads\Optix.Protocol.SessionHandler.pas"/>
154153
<DCCReference Include="..\Client\Units\Threads\Optix.Protocol.Client.pas"/>
155154
<DCCReference Include="..\Shared\XSuperJSON.pas"/>
156155
<DCCReference Include="..\Shared\XSuperObject.pas"/>
157156
<DCCReference Include="..\Shared\Optix.WinApiEx.pas"/>
158157
<DCCReference Include="..\Shared\Optix.System.Helper.pas"/>
159158
<DCCReference Include="..\Shared\Optix.Shared.Types.pas"/>
160-
<DCCReference Include="..\Client\Units\Actions\Optix.Actions.Process.pas"/>
161159
<DCCReference Include="..\Shared\Functions\Optix.Func.LogNotifier.pas"/>
162-
<DCCReference Include="..\Shared\Functions\Optix.Func.Enum.FileSystem.pas"/>
163160
<DCCReference Include="..\Shared\Optix.Shared.Classes.pas"/>
164161
<DCCReference Include="..\Shared\Optix.FileSystem.Helper.pas"/>
165162
<DCCReference Include="..\Shared\Optix.Protocol.Preflight.pas"/>
166163
<DCCReference Include="..\Shared\Optix.Protocol.Exceptions.pas"/>
167164
<DCCReference Include="..\Client\Units\Threads\Optix.Protocol.Worker.FileTransfer.pas"/>
168165
<DCCReference Include="..\Shared\Optix.Shared.Protocol.FileTransfer.pas"/>
169166
<DCCReference Include="..\Shared\Tasks\Optix.Task.ProcessDump.pas"/>
170-
<DCCReference Include="..\Shared\Tasks\Optix.Task.pas"/>
171167
<DCCReference Include="..\Client\Units\Actions\Optix.Actions.ProcessHandler.pas"/>
172-
<DCCReference Include="..\Shared\Functions\Optix.Func.Shell.pas"/>
173168
<DCCReference Include="..\Server\Units\Optix.VCL.Helper.pas"/>
174169
<DCCReference Include="..\Server\Units\Optix.Helper.pas"/>
175170
<DCCReference Include="Units\Optix.Constants.pas"/>
@@ -205,6 +200,13 @@
205200
<DCCReference Include="..\Server\Units\Configs\Optix.Config.TrustedCertificatesStore.pas">
206201
<Form>$R *.res</Form>
207202
</DCCReference>
203+
<DCCReference Include="..\Shared\Functions\Optix.Func.Commands.Base.pas"/>
204+
<DCCReference Include="..\Shared\Optix.ClassesRegistry.pas"/>
205+
<DCCReference Include="..\Shared\Functions\Optix.Func.Commands.FileSystem.pas"/>
206+
<DCCReference Include="..\Shared\Functions\Optix.Func.Commands.Process.pas"/>
207+
<DCCReference Include="..\Shared\Functions\Optix.Func.Commands.Shell.pas"/>
208+
<DCCReference Include="..\Shared\Optix.FileSystem.Enum.pas"/>
209+
<DCCReference Include="..\Shared\Optix.Process.Enum.pas"/>
208210
<BuildConfiguration Include="Base">
209211
<Key>Base</Key>
210212
</BuildConfiguration>
@@ -230,8 +232,9 @@
230232
<Excluded_Packages Name="$(BDSBIN)\dclofficexp290.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
231233
</Excluded_Packages>
232234
</Delphi.Personality>
233-
<Deployment Version="4">
234-
<DeployFile LocalName="Win32\Debug\Client_GUI_OpenSSL.exe" Configuration="Debug" Class="ProjectOutput">
235+
<Deployment Version="5">
236+
<DeployFile LocalName="Win32\Debug\Client_GUI_OpenSSL.exe" Configuration="Debug" Class="ProjectOutput"/>
237+
<DeployFile LocalName="bins\OpenSSL\Win32\Debug\Client_GUI_OpenSSL.exe" Configuration="Debug" Class="ProjectOutput">
235238
<Platform Name="Win32">
236239
<RemoteName>Client_GUI_OpenSSL.exe</RemoteName>
237240
<Overwrite>true</Overwrite>
@@ -249,16 +252,6 @@
249252
<Operation>0</Operation>
250253
</Platform>
251254
</DeployClass>
252-
<DeployClass Name="AndroidClasses">
253-
<Platform Name="Android">
254-
<RemoteDir>classes</RemoteDir>
255-
<Operation>64</Operation>
256-
</Platform>
257-
<Platform Name="Android64">
258-
<RemoteDir>classes</RemoteDir>
259-
<Operation>64</Operation>
260-
</Platform>
261-
</DeployClass>
262255
<DeployClass Name="AndroidFileProvider">
263256
<Platform Name="Android">
264257
<RemoteDir>res\xml</RemoteDir>
@@ -361,6 +354,16 @@
361354
<Operation>1</Operation>
362355
</Platform>
363356
</DeployClass>
357+
<DeployClass Name="AndroidSplashStylesV35">
358+
<Platform Name="Android">
359+
<RemoteDir>res\values-v35</RemoteDir>
360+
<Operation>1</Operation>
361+
</Platform>
362+
<Platform Name="Android64">
363+
<RemoteDir>res\values-v35</RemoteDir>
364+
<Operation>1</Operation>
365+
</Platform>
366+
</DeployClass>
364367
<DeployClass Name="Android_AdaptiveIcon">
365368
<Platform Name="Android">
366369
<RemoteDir>res\drawable-anydpi-v26</RemoteDir>

0 commit comments

Comments
 (0)