File: PHPDebugStartDlg.cpp

package info (click to toggle)
codelite 12.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 95,112 kB
  • sloc: cpp: 424,040; ansic: 18,284; php: 9,569; lex: 4,186; yacc: 2,820; python: 2,294; sh: 312; makefile: 51; xml: 13
file content (91 lines) | stat: -rw-r--r-- 3,110 bytes parent folder | download | duplicates (6)
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();
    }
}