mirror of
https://github.com/levinsv/pgadmin3.git
synced 2026-05-15 06:05:49 -06:00
183 lines
4.2 KiB
C++
183 lines
4.2 KiB
C++
//////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// pgAdmin III - PostgreSQL Tools
|
|
//
|
|
// Copyright (C) 2002 - 2016, The pgAdmin Development Team
|
|
// This software is released under the PostgreSQL Licence
|
|
//
|
|
// dlgMainConfig.cpp - Configure setting
|
|
//
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
// App headers
|
|
#include "pgAdmin3.h"
|
|
|
|
#include "dlg/dlgMainConfig.h"
|
|
|
|
|
|
// Icons
|
|
#include "images/property.pngc"
|
|
|
|
|
|
|
|
|
|
|
|
BEGIN_EVENT_TABLE(dlgMainConfig, DialogWithHelp)
|
|
EVT_BUTTON (wxID_OK, dlgMainConfig::OnOK)
|
|
EVT_BUTTON (wxID_CANCEL, dlgMainConfig::OnCancel)
|
|
EVT_TEXT(XRCID("txtValue"), dlgMainConfig::OnChange)
|
|
EVT_TEXT(XRCID("cbValue"), dlgMainConfig::OnChange)
|
|
EVT_CHECKBOX(XRCID("chkValue"), dlgMainConfig::OnChange)
|
|
END_EVENT_TABLE()
|
|
|
|
|
|
#define chkEnabled CTRL_CHECKBOX("chkEnabled")
|
|
#define cbValue CTRL_COMBOBOX("cbValue")
|
|
#define txtValue CTRL_TEXT("txtValue")
|
|
#define chkValue CTRL_CHECKBOX("chkValue")
|
|
#define txtComment CTRL_TEXT("txtComment")
|
|
#define stName CTRL_STATIC("stName")
|
|
#define stDescription CTRL_STATIC("stDescription")
|
|
|
|
|
|
static const wxChar *contextStrings[] =
|
|
{
|
|
__("Internal - not externally settable"),
|
|
__("Postmaster - set on server start"),
|
|
__("SIGHUP - reloaded on SIGHUP signal"),
|
|
__("Backend - overridable in individual backend"),
|
|
__("Suset - may be overridden by superuser"),
|
|
__("Userlimit - may be set by user"),
|
|
__("Userset - may be set by user"),
|
|
__("Unknown")
|
|
};
|
|
|
|
|
|
static const wxChar *sourceStrings[] =
|
|
{
|
|
__("Variable has still its initial default value"),
|
|
__("Set via environment variable"),
|
|
__("Set in configuration file"),
|
|
__("Set on command line"),
|
|
__("Set by unprivileged command"),
|
|
__("Set in database variables"),
|
|
__("Set in user variables"),
|
|
__("Set in client parameters"),
|
|
__("set by Override"),
|
|
__("Set interactively"),
|
|
__("Set by test"),
|
|
__("Set by session parameters")
|
|
};
|
|
|
|
|
|
dlgMainConfig::dlgMainConfig(pgFrame *parent, pgSettingItem *_item) :
|
|
DialogWithHelp((frmMain *)parent)
|
|
{
|
|
SetFont(settings->GetSystemFont());
|
|
LoadResource((wxWindow *)parent, wxT("dlgMainConfig"));
|
|
|
|
// Icon
|
|
SetIcon(*property_png_ico);
|
|
RestorePosition();
|
|
|
|
item = _item;
|
|
|
|
SetTitle(wxString::Format(_("Configuration setting \"%s\""), item->name.c_str()));
|
|
|
|
// Setup the default values
|
|
|
|
cbValue->Hide();
|
|
chkValue->Hide();
|
|
|
|
if (!item->newLine)
|
|
{
|
|
if (item->orgLine)
|
|
item->newLine = new pgConfigLine(item->orgLine);
|
|
else
|
|
{
|
|
item->newLine = new pgConfigLine();
|
|
item->newLine->item = item;
|
|
}
|
|
}
|
|
|
|
chkEnabled->SetValue(!item->newLine->isComment);
|
|
txtValue->SetValue(item->newLine->value);
|
|
txtComment->SetValue(item->newLine->comment);
|
|
|
|
wxFont fntLabel = stName->GetFont();
|
|
fntLabel.SetWeight(wxFONTWEIGHT_BOLD);
|
|
stName->SetFont(fntLabel);
|
|
stName->SetLabel(item->name);
|
|
|
|
wxString str;
|
|
str += _("Category") + wxString(wxT(": ")) + item->category + END_OF_LINE;
|
|
str += _("Context") + wxString(wxT(": "));
|
|
str += wxGetTranslation(contextStrings[item->context]);
|
|
str += END_OF_LINE;
|
|
|
|
if (item->source != pgSettingItem::PGC_UNKNOWNSOURCE)
|
|
{
|
|
str += _("Current value") + wxString(wxT(": "));
|
|
|
|
if (item->value == wxT("unset") && item->source == pgSettingItem::PGC_DEFAULT)
|
|
str += _("unset");
|
|
else
|
|
str += item->value + END_OF_LINE wxT(" ") + wxGetTranslation(sourceStrings[item->source]);
|
|
|
|
str += END_OF_LINE;
|
|
}
|
|
|
|
stDescription->SetLabel(str + END_OF_LINE + item->short_desc + END_OF_LINE + item->extra_desc);
|
|
btnOK->Enable();
|
|
}
|
|
|
|
|
|
dlgMainConfig::~dlgMainConfig()
|
|
{
|
|
SavePosition();
|
|
}
|
|
|
|
|
|
wxString dlgMainConfig::GetValue()
|
|
{
|
|
return txtValue->GetValue();
|
|
}
|
|
|
|
|
|
wxString dlgMainConfig::GetHelpPage() const
|
|
{
|
|
return wxT("pg/runtime-config");
|
|
}
|
|
|
|
|
|
void dlgMainConfig::OnChange(wxCommandEvent &ev)
|
|
{
|
|
}
|
|
|
|
|
|
void dlgMainConfig::OnOK(wxCommandEvent &ev)
|
|
{
|
|
#ifdef __WXGTK__
|
|
if (!btnOK->IsEnabled())
|
|
return;
|
|
#endif
|
|
item->newLine->value = GetValue();
|
|
item->newLine->comment = txtComment->GetValue();
|
|
item->newLine->isComment = !chkEnabled->GetValue();
|
|
|
|
EndModal(wxID_OK);
|
|
}
|
|
|
|
|
|
void dlgMainConfig::OnCancel(wxCommandEvent &ev)
|
|
{
|
|
EndModal(wxID_CANCEL);
|
|
}
|
|
|
|
int dlgMainConfig::Go()
|
|
{
|
|
// Set focus on the Password textbox and show modal
|
|
return ShowModal();
|
|
}
|