FileSystemInfo.cpp 2.9 KB

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