FileSystemInfo.cpp 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. //---------------------------------------------------------------------
  2. #include <vcl.h>
  3. #pragma hdrstop
  4. #include <Common.h>
  5. #include <Terminal.h>
  6. #include "FileSystemInfo.h"
  7. //---------------------------------------------------------------------
  8. #pragma link "XPGroupBox"
  9. #pragma resource "*.dfm"
  10. //---------------------------------------------------------------------
  11. void __fastcall DoFileSystemInfoDialog(TTerminal * Terminal)
  12. {
  13. TFileSystemInfoDialog * Dialog = new TFileSystemInfoDialog(Application);
  14. try
  15. {
  16. Dialog->Terminal = Terminal;
  17. Dialog->ShowModal();
  18. }
  19. __finally
  20. {
  21. delete Dialog;
  22. }
  23. }
  24. //---------------------------------------------------------------------
  25. __fastcall TFileSystemInfoDialog::TFileSystemInfoDialog(TComponent* AOwner)
  26. : TForm(AOwner)
  27. {
  28. }
  29. //---------------------------------------------------------------------
  30. AnsiString __fastcall TFileSystemInfoDialog::CapabilityStr(TFSCapability Capability)
  31. {
  32. assert(FTerminal);
  33. return BooleanToStr(FTerminal->IsCapable[Capability]);
  34. }
  35. //---------------------------------------------------------------------
  36. AnsiString __fastcall TFileSystemInfoDialog::CapabilityStr(TFSCapability Capability1,
  37. TFSCapability Capability2)
  38. {
  39. return FORMAT("%s/%s", (CapabilityStr(Capability1), CapabilityStr(Capability2)));
  40. }
  41. //---------------------------------------------------------------------
  42. void __fastcall TFileSystemInfoDialog::UpdateControls()
  43. {
  44. assert(Terminal);
  45. SshVersionEdit->Text = IntToStr(Terminal->SshVersion);
  46. SshImplementationEdit->Text = Terminal->SshImplementation;
  47. AnsiString Str = CipherNames[Terminal->CSCipher];
  48. if (Terminal->CSCipher != Terminal->SCCipher)
  49. {
  50. Str += FORMAT("/%s", (CipherNames[Terminal->SCCipher]));
  51. }
  52. CipherEdit->Text = Str;
  53. Str = BooleanToStr(Terminal->CSCompression != ctNone);
  54. if (Terminal->CSCompression != Terminal->SCCompression)
  55. {
  56. Str += FORMAT("/%s", (BooleanToStr(Terminal->SCCompression != ctNone)));
  57. }
  58. CompressionEdit->Text = Str;
  59. FSProtocolEdit->Text = Terminal->ProtocolName;
  60. ModeChangingEdit->Text = CapabilityStr(fcModeChanging);
  61. OwnerGroupChangingEdit->Text = CapabilityStr(fcOwnerChanging, fcGroupChanging);
  62. AnyCommandEdit->Text = CapabilityStr(fcAnyCommand);
  63. SymbolicHardLinkEdit->Text = CapabilityStr(fcSymbolicLink, fcHardLink);
  64. UserGroupListingEdit->Text = CapabilityStr(fcUserGroupListing);
  65. NativeTextModeEdit->Text = CapabilityStr(fcNativeTextMode);
  66. InfoMemo->Lines = Terminal->AdditionalInfo;
  67. }
  68. //---------------------------------------------------------------------
  69. void __fastcall TFileSystemInfoDialog::SetTerminal(TTerminal * value)
  70. {
  71. if (Terminal != value)
  72. {
  73. FTerminal = value;
  74. UpdateControls();
  75. }
  76. }
  77. //---------------------------------------------------------------------