FileSystemInfo.cpp 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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. AnsiString Str = CipherNames[Terminal->CSCipher];
  47. if (Terminal->CSCipher != Terminal->SCCipher)
  48. {
  49. Str += FORMAT("/%s", (CipherNames[Terminal->SCCipher]));
  50. }
  51. CipherEdit->Text = Str;
  52. Str = BooleanToStr(Terminal->CSCompression != ctNone);
  53. if (Terminal->CSCompression != Terminal->SCCompression)
  54. {
  55. Str += FORMAT("/%s", (BooleanToStr(Terminal->SCCompression != ctNone)));
  56. }
  57. CompressionEdit->Text = Str;
  58. FSProtocolEdit->Text = Terminal->ProtocolName;
  59. ModeChangingEdit->Text = CapabilityStr(fcModeChanging);
  60. OwnerGroupChangingEdit->Text = CapabilityStr(fcOwnerChanging, fcGroupChanging);
  61. AnyCommandEdit->Text = CapabilityStr(fcAnyCommand);
  62. SymbolicHardLinkEdit->Text = CapabilityStr(fcSymbolicLink, fcHardLink);
  63. UserGroupListingEdit->Text = CapabilityStr(fcUserGroupListing);
  64. NativeTextModeEdit->Text = CapabilityStr(fcNativeTextMode);
  65. InfoMemo->Lines = Terminal->AdditionalInfo;
  66. }
  67. //---------------------------------------------------------------------
  68. void __fastcall TFileSystemInfoDialog::SetTerminal(TTerminal * value)
  69. {
  70. if (Terminal != value)
  71. {
  72. FTerminal = value;
  73. UpdateControls();
  74. }
  75. }
  76. //---------------------------------------------------------------------