Add Remove From Dictionary to the subs edit box context menu when applicable. Closes #1184.

This commit is contained in:
Thomas Goyne 2012-12-21 16:40:51 -08:00
parent 24aef1ffef
commit e25fc4b334
2 changed files with 16 additions and 8 deletions

View file

@ -67,6 +67,7 @@ enum {
EDIT_MENU_PASTE, EDIT_MENU_PASTE,
EDIT_MENU_SELECT_ALL, EDIT_MENU_SELECT_ALL,
EDIT_MENU_ADD_TO_DICT, EDIT_MENU_ADD_TO_DICT,
EDIT_MENU_REMOVE_FROM_DICT,
EDIT_MENU_SUGGESTION, EDIT_MENU_SUGGESTION,
EDIT_MENU_SUGGESTIONS, EDIT_MENU_SUGGESTIONS,
EDIT_MENU_THESAURUS = 1450, EDIT_MENU_THESAURUS = 1450,
@ -136,6 +137,18 @@ SubsTextEditCtrl::SubsTextEditCtrl(wxWindow* parent, wxSize wsize, long style, a
OPT_SUB("Subtitle/Highlight/Syntax", &SubsTextEditCtrl::UpdateStyle, this); OPT_SUB("Subtitle/Highlight/Syntax", &SubsTextEditCtrl::UpdateStyle, this);
OPT_SUB("App/Call Tips", &SubsTextEditCtrl::UpdateCallTip, this); OPT_SUB("App/Call Tips", &SubsTextEditCtrl::UpdateCallTip, this);
Bind(wxEVT_COMMAND_MENU_SELECTED, [=](wxCommandEvent&) {
if (spellchecker) spellchecker->AddWord(currentWord);
UpdateStyle();
SetFocus();
}, EDIT_MENU_ADD_TO_DICT);
Bind(wxEVT_COMMAND_MENU_SELECTED, [=](wxCommandEvent&) {
if (spellchecker) spellchecker->RemoveWord(currentWord);
UpdateStyle();
SetFocus();
}, EDIT_MENU_REMOVE_FROM_DICT);
} }
SubsTextEditCtrl::~SubsTextEditCtrl() { SubsTextEditCtrl::~SubsTextEditCtrl() {
@ -150,7 +163,6 @@ void SubsTextEditCtrl::Subscribe(std::string const& name) {
BEGIN_EVENT_TABLE(SubsTextEditCtrl,wxStyledTextCtrl) BEGIN_EVENT_TABLE(SubsTextEditCtrl,wxStyledTextCtrl)
EVT_KILL_FOCUS(SubsTextEditCtrl::OnLoseFocus) EVT_KILL_FOCUS(SubsTextEditCtrl::OnLoseFocus)
EVT_MENU(EDIT_MENU_ADD_TO_DICT,SubsTextEditCtrl::OnAddToDictionary)
EVT_MENU_RANGE(EDIT_MENU_SUGGESTIONS,EDIT_MENU_THESAURUS-1,SubsTextEditCtrl::OnUseSuggestion) EVT_MENU_RANGE(EDIT_MENU_SUGGESTIONS,EDIT_MENU_THESAURUS-1,SubsTextEditCtrl::OnUseSuggestion)
EVT_MENU_RANGE(EDIT_MENU_THESAURUS_SUGS,EDIT_MENU_DIC_LANGUAGE-1,SubsTextEditCtrl::OnUseSuggestion) EVT_MENU_RANGE(EDIT_MENU_THESAURUS_SUGS,EDIT_MENU_DIC_LANGUAGE-1,SubsTextEditCtrl::OnUseSuggestion)
EVT_MENU_RANGE(EDIT_MENU_DIC_LANGS,EDIT_MENU_THES_LANGUAGE-1,SubsTextEditCtrl::OnSetDicLanguage) EVT_MENU_RANGE(EDIT_MENU_DIC_LANGS,EDIT_MENU_THES_LANGUAGE-1,SubsTextEditCtrl::OnSetDicLanguage)
@ -338,6 +350,9 @@ void SubsTextEditCtrl::OnContextMenu(wxContextMenuEvent &event) {
void SubsTextEditCtrl::AddSpellCheckerEntries(wxMenu &menu) { void SubsTextEditCtrl::AddSpellCheckerEntries(wxMenu &menu) {
if (currentWord.empty()) return; if (currentWord.empty()) return;
if (spellchecker->CanRemoveWord(currentWord))
menu.Append(EDIT_MENU_REMOVE_FROM_DICT, wxString::Format(_("Remove \"%s\" from dictionary"), to_wx(currentWord)));
sugs = spellchecker->GetSuggestions(currentWord); sugs = spellchecker->GetSuggestions(currentWord);
if (spellchecker->CheckWord(currentWord)) { if (spellchecker->CheckWord(currentWord)) {
if (sugs.empty()) if (sugs.empty())
@ -422,12 +437,6 @@ wxMenu *SubsTextEditCtrl::GetLanguagesMenu(int base_id, wxString const& curLang,
return languageMenu; return languageMenu;
} }
void SubsTextEditCtrl::OnAddToDictionary(wxCommandEvent &) {
if (spellchecker) spellchecker->AddWord(currentWord);
UpdateStyle();
SetFocus();
}
void SubsTextEditCtrl::OnUseSuggestion(wxCommandEvent &event) { void SubsTextEditCtrl::OnUseSuggestion(wxCommandEvent &event) {
std::string suggestion; std::string suggestion;
int sugIdx = event.GetId() - EDIT_MENU_THESAURUS_SUGS; int sugIdx = event.GetId() - EDIT_MENU_THESAURUS_SUGS;

View file

@ -92,7 +92,6 @@ class SubsTextEditCtrl : public ScintillaTextCtrl {
std::vector<agi::ass::DialogueToken> tokenized_line; std::vector<agi::ass::DialogueToken> tokenized_line;
void OnContextMenu(wxContextMenuEvent &); void OnContextMenu(wxContextMenuEvent &);
void OnAddToDictionary(wxCommandEvent &event);
void OnUseSuggestion(wxCommandEvent &event); void OnUseSuggestion(wxCommandEvent &event);
void OnSetDicLanguage(wxCommandEvent &event); void OnSetDicLanguage(wxCommandEvent &event);
void OnSetThesLanguage(wxCommandEvent &event); void OnSetThesLanguage(wxCommandEvent &event);