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 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
|
#include "WebToolsSettings.h"
#include "windowattrmanager.h"
#include "WebToolsConfig.h"
#include "globals.h"
#include "NodeJSLocator.h"
#include "clNodeJS.h"
WebToolsSettings::WebToolsSettings(wxWindow* parent)
: WebToolsSettingsBase(parent)
, m_modified(false)
{
::wxPGPropertyBooleanUseCheckbox(m_pgMgr->GetGrid());
{
WebToolsConfig& config = WebToolsConfig::Get();
// JS
m_checkBoxEnableJsCC->SetValue(config.HasJavaScriptFlag(WebToolsConfig::kJSEnableCC));
m_pgPropLogging->SetValue(config.HasJavaScriptFlag(WebToolsConfig::kJSEnableVerboseLogging));
m_pgPropBrowser->SetValue(config.HasJavaScriptFlag(WebToolsConfig::kJSLibraryBrowser));
m_pgPropChai->SetValue(config.HasJavaScriptFlag(WebToolsConfig::kJSLibraryChai));
m_pgPropEcma5->SetValue(config.HasJavaScriptFlag(WebToolsConfig::kJSLibraryEcma5));
m_pgPropEcma6->SetValue(config.HasJavaScriptFlag(WebToolsConfig::kJSLibraryEcma6));
m_pgPropJQuery->SetValue(config.HasJavaScriptFlag(WebToolsConfig::kJSLibraryJQuery));
m_pgPropUnderscore->SetValue(config.HasJavaScriptFlag(WebToolsConfig::kJSLibraryUnderscore));
m_pgPropAngular->SetValue(config.HasJavaScriptFlag(WebToolsConfig::kJSPluginAngular));
m_pgPropNode->SetValue(config.HasJavaScriptFlag(WebToolsConfig::kJSPluginNode));
m_pgPropRequireJS->SetValue(config.HasJavaScriptFlag(WebToolsConfig::kJSPluginRequireJS));
m_pgPropStrings->SetValue(config.HasJavaScriptFlag(WebToolsConfig::kJSPluginStrings));
m_pgPropQML->SetValue(config.HasJavaScriptFlag(WebToolsConfig::kJSPluginQML));
m_pgPropNodeExpress->SetValue(config.HasJavaScriptFlag(WebToolsConfig::kJSNodeExpress));
m_pgPropWebPack->SetValue(config.HasJavaScriptFlag(WebToolsConfig::kJSWebPack));
m_pgPropPortNumber->SetValue(config.GetPortNumber());
// XML
m_checkBoxEnableXmlCC->SetValue(config.HasXmlFlag(WebToolsConfig::kXmlEnableCC));
// HTML
m_checkBoxEnableHtmlCC->SetValue(config.HasHtmlFlag(WebToolsConfig::kHtmlEnableCC));
// NodeJS
m_filePickerNodeJS->SetPath(config.GetNodejs());
m_filePickerNpm->SetPath(config.GetNpm());
m_checkBoxJSLint->SetValue(config.IsLintOnSave());
}
::clSetDialogBestSizeAndPosition(this);
}
WebToolsSettings::~WebToolsSettings() {}
void WebToolsSettings::OnJSValueChanged(wxPropertyGridEvent& event)
{
event.Skip();
m_modified = true;
}
void WebToolsSettings::OnOKUI(wxUpdateUIEvent& event) { event.Enable(m_modified); }
void WebToolsSettings::OnOK(wxCommandEvent& event)
{
DoSave();
event.Skip();
}
void WebToolsSettings::OnModified(wxCommandEvent& event) { m_modified = true; }
void WebToolsSettings::OnSuggestNodeJSPaths(wxCommandEvent& event)
{
NodeJSLocator locator;
locator.Locate();
m_filePickerNodeJS->SetPath(locator.GetNodejs());
m_filePickerNpm->SetPath(locator.GetNpm());
m_modified = true;
}
void WebToolsSettings::OnNodejsPath(wxFileDirPickerEvent& event)
{
m_modified = true;
event.Skip();
}
void WebToolsSettings::OnNpmPath(wxFileDirPickerEvent& event)
{
m_modified = true;
event.Skip();
}
void WebToolsSettings::OnApply(wxCommandEvent& event) { DoSave(); }
void WebToolsSettings::DoSave()
{
WebToolsConfig& config = WebToolsConfig::Get();
// JS
config.EnableJavaScriptFlag(WebToolsConfig::kJSEnableCC, m_checkBoxEnableJsCC->IsChecked());
config.EnableJavaScriptFlag(WebToolsConfig::kJSEnableVerboseLogging, m_pgPropLogging->GetValue().GetBool());
config.EnableJavaScriptFlag(WebToolsConfig::kJSLibraryBrowser, m_pgPropBrowser->GetValue().GetBool());
config.EnableJavaScriptFlag(WebToolsConfig::kJSLibraryChai, m_pgPropChai->GetValue().GetBool());
config.EnableJavaScriptFlag(WebToolsConfig::kJSLibraryEcma5, m_pgPropEcma5->GetValue().GetBool());
config.EnableJavaScriptFlag(WebToolsConfig::kJSLibraryEcma6, m_pgPropEcma6->GetValue().GetBool());
config.EnableJavaScriptFlag(WebToolsConfig::kJSLibraryJQuery, m_pgPropJQuery->GetValue().GetBool());
config.EnableJavaScriptFlag(WebToolsConfig::kJSLibraryUnderscore, m_pgPropUnderscore->GetValue().GetBool());
config.EnableJavaScriptFlag(WebToolsConfig::kJSPluginAngular, m_pgPropAngular->GetValue().GetBool());
config.EnableJavaScriptFlag(WebToolsConfig::kJSPluginNode, m_pgPropNode->GetValue().GetBool());
config.EnableJavaScriptFlag(WebToolsConfig::kJSPluginRequireJS, m_pgPropRequireJS->GetValue().GetBool());
config.EnableJavaScriptFlag(WebToolsConfig::kJSPluginStrings, m_pgPropStrings->GetValue().GetBool());
config.EnableJavaScriptFlag(WebToolsConfig::kJSPluginQML, m_pgPropQML->GetValue().GetBool());
config.EnableJavaScriptFlag(WebToolsConfig::kJSNodeExpress, m_pgPropNodeExpress->GetValue().GetBool());
config.EnableJavaScriptFlag(WebToolsConfig::kJSWebPack, m_pgPropWebPack->GetValue().GetBool());
config.SetPortNumber(m_pgPropPortNumber->GetValue().GetInteger());
// XML
config.EnableXmlFlag(WebToolsConfig::kXmlEnableCC, m_checkBoxEnableXmlCC->IsChecked());
// HTML
config.EnableHtmlFlag(WebToolsConfig::kHtmlEnableCC, m_checkBoxEnableHtmlCC->IsChecked());
// NodeJS
config.SetNodejs(m_filePickerNodeJS->GetPath());
config.SetNpm(m_filePickerNpm->GetPath());
config.SetLintOnSave(m_checkBoxJSLint->IsChecked());
wxFileName fnNodeJS(config.GetNodejs());
wxArrayString hints;
if(fnNodeJS.FileExists()) { hints.Add(fnNodeJS.GetPath()); }
clNodeJS::Get().Initialise(hints);
m_modified = false;
}
void WebToolsSettings::OnLintOnSave(wxCommandEvent& event)
{
wxUnusedVar(event);
m_modified = true;
}
|