pgadmin3/dlg/dlgPgpassConfig.cpp
2020-07-07 22:19:12 +05:00

124 lines
3 KiB
C++

//////////////////////////////////////////////////////////////////////////
//
// pgAdmin III - PostgreSQL Tools
//
// Copyright (C) 2002 - 2016, The pgAdmin Development Team
// This software is released under the PostgreSQL Licence
//
// dlgPgpassConfig.cpp - Configure setting
//
//////////////////////////////////////////////////////////////////////////
// App headers
#include "pgAdmin3.h"
#include "dlg/dlgPgpassConfig.h"
#include "db/pgConn.h"
#include "db/pgSet.h"
// Icons
#include "images/property.pngc"
BEGIN_EVENT_TABLE(dlgPgpassConfig, DialogWithHelp)
EVT_BUTTON (wxID_OK, dlgPgpassConfig::OnOK)
EVT_BUTTON (wxID_CANCEL, dlgPgpassConfig::OnCancel)
EVT_CHECKBOX(XRCID("chkEnabled"), dlgPgpassConfig::OnChange)
EVT_TEXT(XRCID("txtHostname"), dlgPgpassConfig::OnChange)
EVT_TEXT(XRCID("txtPort"), dlgPgpassConfig::OnChange)
EVT_TEXT(XRCID("txtDatabase"), dlgPgpassConfig::OnChange)
EVT_TEXT(XRCID("txtUsername"), dlgPgpassConfig::OnChange)
EVT_TEXT(XRCID("txtPassword"), dlgPgpassConfig::OnChange)
EVT_TEXT(XRCID("txtRePassword"), dlgPgpassConfig::OnChange)
END_EVENT_TABLE()
#define chkEnabled CTRL_CHECKBOX("chkEnabled")
#define txtHostname CTRL_TEXT("txtHostname")
#define txtPort CTRL_TEXT("txtPort")
#define txtDatabase CTRL_TEXT("txtDatabase")
#define txtUsername CTRL_TEXT("txtUsername")
#define txtPassword CTRL_TEXT("txtPassword")
#define txtRePassword CTRL_TEXT("txtRePassword")
dlgPgpassConfig::dlgPgpassConfig(pgFrame *parent, pgPassConfigLine *_line) :
DialogWithHelp((frmMain *)parent)
{
SetFont(settings->GetSystemFont());
LoadResource((wxWindow *)parent, wxT("dlgPgpassConfig"));
userAdding = databaseAdding = false;
// Icon
SetIcon(*property_png_ico);
RestorePosition();
line = _line;
chkEnabled->SetValue(!line->isComment);
txtHostname->SetValue(line->hostname);
txtPort->SetValue(line->port);
txtDatabase->SetValue(line->database);
txtUsername->SetValue(line->username);
txtPassword->SetValue(line->password);
txtRePassword->SetValue(line->password);
btnOK->Disable();
}
dlgPgpassConfig::~dlgPgpassConfig()
{
SavePosition();
}
wxString dlgPgpassConfig::GetHelpPage() const
{
return wxT("pg/libpq-pgpass");
}
void dlgPgpassConfig::OnChange(wxCommandEvent &ev)
{
/* Add any required validation rules here */
wxString passwd = txtPassword->GetValue();
wxString repasswd = txtRePassword->GetValue();
if (passwd.IsEmpty() || (passwd.Length() > 1))
{
if (!passwd.compare(repasswd))
btnOK->Enable();
}
}
void dlgPgpassConfig::OnOK(wxCommandEvent &ev)
{
#ifdef __WXGTK__
if (!btnOK->IsEnabled())
return;
#endif
line->isComment = !chkEnabled->GetValue();
line->hostname = txtHostname->GetValue();
line->port = txtPort->GetValue();
line->database = txtDatabase->GetValue();
line->username = txtUsername->GetValue();
line->password = txtPassword->GetValue();
EndModal(wxID_OK);
}
void dlgPgpassConfig::OnCancel(wxCommandEvent &ev)
{
EndModal(wxID_CANCEL);
}
int dlgPgpassConfig::Go()
{
return ShowModal();
}