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 90 91
|
#include "PHPDebugStartDlg.h"
#include "windowattrmanager.h"
#include "imanager.h"
PHPDebugStartDlg::PHPDebugStartDlg(wxWindow* parent, PHPProject::Ptr_t pProject, IManager* manager)
: PHPDebugStartDlgBase(parent)
, m_project(pProject)
, m_manager(manager)
{
PHPProjectSettingsData& settings = m_project->GetSettings();
#ifdef __WXOSX__
// On OSX, remove the 'show effect' or we will see a noticable delay
// when showing this dialog
m_simpleBook->SetEffect(wxSHOW_EFFECT_NONE);
#endif
if(settings.GetRunAs() == PHPProjectSettingsData::kRunAsWebsite) {
m_choice->Select(0);
m_simpleBook->SetSelection(0);
} else {
m_choice->Select(1);
m_simpleBook->SetSelection(1);
}
GetComboBoxURL()->Append(settings.GetProjectURL());
if(GetComboBoxURL()->GetCount()) {
GetComboBoxURL()->SetSelection(0);
}
GetCheckBoxDebugActiveEditor()->SetValue(settings.HasFlag(PHPProjectSettingsData::kOpt_RunCurrentEditor));
wxString fileToRun;
if(m_manager->GetActiveEditor() && GetCheckBoxDebugActiveEditor()->IsChecked()) {
fileToRun = m_manager->GetActiveEditor()->GetFileName().GetFullPath();
} else {
fileToRun = settings.GetIndexFile();
}
GetTextCtrlScriptToDebug()->ChangeValue(fileToRun);
SetName("PHPDebugStartDlg");
WindowAttrManager::Load(this);
}
PHPDebugStartDlg::~PHPDebugStartDlg()
{
// Store the settings
PHPProjectSettingsData& settings = m_project->GetSettings();
settings.EnableFlag(PHPProjectSettingsData::kOpt_RunCurrentEditor, GetCheckBoxDebugActiveEditor()->IsChecked());
settings.SetIndexFile(GetTextCtrlScriptToDebug()->GetValue());
settings.SetProjectURL(GetComboBoxURL()->GetValue());
settings.SetRunAs(m_choice->GetSelection() == 0 ? PHPProjectSettingsData::kRunAsWebsite :
PHPProjectSettingsData::kRunAsCLI);
m_project->Save();
}
void PHPDebugStartDlg::OnDebugMethodChanged(wxCommandEvent& event)
{
event.Skip();
if(event.GetSelection() == 0) {
// Debug URL
CallAfter( &PHPDebugStartDlg::SetBookSelection, 0);
m_project->GetSettings().SetRunAs(PHPProjectSettingsData::kRunAsWebsite);
} else {
// Command line script
CallAfter( &PHPDebugStartDlg::SetBookSelection, 1);
m_project->GetSettings().SetRunAs(PHPProjectSettingsData::kRunAsCLI);
}
}
void PHPDebugStartDlg::OnScriptToDebugUI(wxUpdateUIEvent& event)
{
event.Enable(!GetCheckBoxDebugActiveEditor()->IsChecked());
}
void PHPDebugStartDlg::OnUseActiveEditor(wxCommandEvent& event)
{
if(m_manager->GetActiveEditor()) {
GetTextCtrlScriptToDebug()->ChangeValue(m_manager->GetActiveEditor()->GetFileName().GetFullPath());
}
}
void PHPDebugStartDlg::OnOkUI(wxUpdateUIEvent& event) { event.Enable(!GetPath().IsEmpty()); }
wxString PHPDebugStartDlg::GetPath() const
{
if(m_choice->GetSelection() == 0) {
// URL
return m_comboBoxURL->GetValue();
} else {
return m_textCtrlScriptToDebug->GetValue();
}
}
|