diff options
Diffstat (limited to 'apps/windoze/CBuilder5/InstallMgr/RemoteMntFrm.cpp')
-rw-r--r-- | apps/windoze/CBuilder5/InstallMgr/RemoteMntFrm.cpp | 160 |
1 files changed, 160 insertions, 0 deletions
diff --git a/apps/windoze/CBuilder5/InstallMgr/RemoteMntFrm.cpp b/apps/windoze/CBuilder5/InstallMgr/RemoteMntFrm.cpp new file mode 100644 index 0000000..148a7fd --- /dev/null +++ b/apps/windoze/CBuilder5/InstallMgr/RemoteMntFrm.cpp @@ -0,0 +1,160 @@ +//--------------------------------------------------------------------------- +#include <vcl.h> +#pragma hdrstop + +#include "RemoteMntFrm.h" +//--------------------------------------------------------------------------- +#pragma package(smart_init) +#pragma resource "*.dfm" + +TRemoteMntForm *RemoteMntForm; + + +class TRemoteSource : public TObject { +public: + string name; + string machine; + string dir; + TRemoteSource(const char *confEnt) { + char *buf = new char [ strlen(confEnt) + 1 ]; + + strcpy(buf, confEnt); + + name = strtok(buf, "|"); + machine = strtok(0, "|"); + dir = strtok(0, "|"); + delete [] buf; + } + string getConfEnt() { + return name +"|" + machine + "|" + dir; + } +}; + + +//--------------------------------------------------------------------------- +__fastcall TRemoteMntForm::TRemoteMntForm(TComponent* Owner) + : TForm(Owner) +{ +} +//--------------------------------------------------------------------------- +void __fastcall TRemoteMntForm::FormShow(TObject *Sender) +{ + ConfigEntMap::iterator loop, end; + config = new SWConfig("./InstallMgr.conf"); + ListBox1->Clear(); + loop = config->Sections["Sources"].lower_bound("FTPSource"); + end = config->Sections["Sources"].upper_bound("FTPSource"); + while (loop != end) { + TRemoteSource *rs = new TRemoteSource(loop->second.c_str()); + ListBox1->Items->AddObject(rs->name.c_str(), rs); + loop++; + } + ListBox1->ItemIndex = 0; + ListBox1Click(0); + CheckBox1->Checked = (!stricmp((*config)["General"]["PassiveFTP"].c_str(), "true")); + checkDisabled(); +} + + +void TRemoteMntForm::checkDisabled() { + bool enabled = ListBox1->Items->Count; + NameEdit->Enabled = enabled; + MachineEdit->Enabled = enabled; + DirEdit->Enabled = enabled; +} + + +//--------------------------------------------------------------------------- +void __fastcall TRemoteMntForm::FormClose(TObject *Sender, + TCloseAction &Action) +{ + delete config; +} + + +void __fastcall TRemoteMntForm::SpeedButton4Click(TObject *Sender) +{ + ModalResult = mrCancel; +} + + +void __fastcall TRemoteMntForm::ListBox1Click(TObject *Sender) +{ + if (ListBox1->ItemIndex >= 0) { + TRemoteSource *rs = (TRemoteSource *)ListBox1->Items->Objects[ListBox1->ItemIndex]; + + NameEdit->Text = rs->name.c_str(); + MachineEdit->Text = rs->machine.c_str(); + DirEdit->Text = rs->dir.c_str(); + } + else { + NameEdit->Text = ""; + MachineEdit->Text = ""; + DirEdit->Text = ""; + } +} + + +void __fastcall TRemoteMntForm::NameEditChange(TObject *Sender) +{ + if (ListBox1->ItemIndex < 0) + return; + TRemoteSource *rs = (TRemoteSource *)ListBox1->Items->Objects[ListBox1->ItemIndex]; + rs->name = NameEdit->Text.c_str(); + ListBox1->Items->Strings[ListBox1->ItemIndex] = rs->name.c_str(); +} + + +void __fastcall TRemoteMntForm::MachineEditChange(TObject *Sender) +{ + if (ListBox1->ItemIndex < 0) + return; + TRemoteSource *rs = (TRemoteSource *)ListBox1->Items->Objects[ListBox1->ItemIndex]; + rs->machine = MachineEdit->Text.c_str(); +} + + +void __fastcall TRemoteMntForm::DirEditChange(TObject *Sender) +{ + if (ListBox1->ItemIndex < 0) + return; + TRemoteSource *rs = (TRemoteSource *)ListBox1->Items->Objects[ListBox1->ItemIndex]; + rs->dir = DirEdit->Text.c_str(); +} + +void __fastcall TRemoteMntForm::SpeedButton2Click(TObject *Sender) +{ + if (ListBox1->ItemIndex < 0) + return; + int delItem = ListBox1->ItemIndex; + ListBox1->Items->Delete(delItem); + ListBox1->ItemIndex = (delItem < ListBox1->Items->Count) ? delItem : delItem - 1; + checkDisabled(); + ListBox1Click(0); +} +//--------------------------------------------------------------------------- + +void __fastcall TRemoteMntForm::SpeedButton1Click(TObject *Sender) +{ + TRemoteSource *rs = new TRemoteSource("[New Remote Site]|ftp.domain.org|/pub/sword/raw/"); + ListBox1->ItemIndex = ListBox1->Items->AddObject(rs->name.c_str(), rs); + + checkDisabled(); + ListBox1Click(0); +} +//--------------------------------------------------------------------------- + +void __fastcall TRemoteMntForm::SpeedButton3Click(TObject *Sender) +{ + TRemoteSource *rs; + config->Sections["Sources"].erase("FTPSource"); + for (int i = 0; i < ListBox1->Items->Count; i++) { + rs = (TRemoteSource *)ListBox1->Items->Objects[i]; + config->Sections["Sources"].insert(ConfigEntMap::value_type("FTPSource", rs->getConfEnt().c_str())); + } + (*config)["General"]["PassiveFTP"] = (CheckBox1->Checked) ? "true" : "false"; + config->Save(); + ModalResult = mrOk; +} +//--------------------------------------------------------------------------- + |