1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
|
#include "php_settings_dlg.h"
#include "php_configuration_data.h"
#include <wx/dirdlg.h>
#include <windowattrmanager.h>
#include <event_notifier.h>
#include "lexer_configuration.h"
#include "ColoursAndFontsManager.h"
#include "globals.h"
PHPSettingsDlg::PHPSettingsDlg(wxWindow* parent)
: PHPSettingsBaseDlg(parent)
{
LexerConf::Ptr_t lexer = ColoursAndFontsManager::Get().GetLexer("Default");
if(lexer) {
lexer->Apply(m_stcIncludePaths);
}
PHPConfigurationData data;
data.Load();
m_textCtrlErrorReporting->ChangeValue(data.GetErrorReporting());
m_filePickerPHPPath->SetPath(data.GetPhpExe());
m_stcIncludePaths->SetText(data.GetIncludePathsAsString());
m_textCtrCClIncludePath->ChangeValue(data.GetCCIncludePathsAsString());
m_textCtrlIdeKey->ChangeValue(data.GetXdebugIdeKey());
wxString strPort;
strPort << data.GetXdebugPort();
m_textCtrlXDebugPort->ChangeValue(strPort);
m_textCtrlHost->ChangeValue(data.GetXdebugHost());
::clSetDialogBestSizeAndPosition(this);
}
PHPSettingsDlg::~PHPSettingsDlg() {}
void PHPSettingsDlg::OnBrowseForIncludePath(wxCommandEvent& event)
{
wxString path = wxDirSelector();
if(path.IsEmpty() == false) {
wxString curpath = m_stcIncludePaths->GetText();
curpath.Trim().Trim(false);
if(curpath.IsEmpty() == false) {
curpath << wxT("\n");
}
curpath << path;
m_stcIncludePaths->SetText(curpath);
}
}
void PHPSettingsDlg::OnOK(wxCommandEvent& event)
{
PHPConfigurationData data;
data.SetErrorReporting(m_textCtrlErrorReporting->GetValue());
data.SetIncludePaths(wxStringTokenize(m_stcIncludePaths->GetText(), wxT("\n\r"), wxTOKEN_STRTOK));
data.SetCcIncludePath(wxStringTokenize(m_textCtrCClIncludePath->GetValue(), wxT("\n\n"), wxTOKEN_STRTOK));
data.SetPhpExe(m_filePickerPHPPath->GetPath());
data.SetXdebugIdeKey(m_textCtrlIdeKey->GetValue());
data.SetXdebugHost(m_textCtrlHost->GetValue());
wxString xdebugPort = m_textCtrlXDebugPort->GetValue();
long port(0);
if(xdebugPort.ToLong((long*)&port)) {
data.SetXdebugPort(port);
}
data.Save();
// Send an event to trigger a retag
wxCommandEvent evtRetag(wxEVT_COMMAND_MENU_SELECTED, XRCID("retag_workspace"));
EventNotifier::Get()->TopFrame()->GetEventHandler()->AddPendingEvent(evtRetag);
EndModal(wxID_OK);
}
void PHPSettingsDlg::OnAddCCPath(wxCommandEvent& event)
{
wxString path = wxDirSelector();
if(path.IsEmpty() == false) {
wxString curpath = m_textCtrCClIncludePath->GetValue();
curpath.Trim().Trim(false);
if(!curpath.IsEmpty()) {
curpath << wxT("\n");
}
curpath << path;
m_textCtrCClIncludePath->SetValue(curpath);
}
}
void PHPSettingsDlg::OnUpdateApplyUI(wxCommandEvent& event) { event.Skip(); }
|