diff --git a/PowerEditor/src/Notepad_plus.cpp b/PowerEditor/src/Notepad_plus.cpp index 12ddc6e2f..625b51a66 100644 --- a/PowerEditor/src/Notepad_plus.cpp +++ b/PowerEditor/src/Notepad_plus.cpp @@ -276,9 +276,6 @@ void Notepad_plus::init(HINSTANCE hInst, HWND parent, const char *cmdLine, CmdLi setTitleWith(_pEditView->getCurrentTitle()); - //setLangStatus(_pEditView->getCurrentDocType()); - //checkDocState(); - // Notify plugins that Notepad++ is ready SCNotification scnN; scnN.nmhdr.code = NPPN_READY; @@ -289,7 +286,6 @@ void Notepad_plus::init(HINSTANCE hInst, HWND parent, const char *cmdLine, CmdLi ::ShowWindow(_hSelf, nppGUI._isMaximized?SW_MAXIMIZE:SW_SHOW); if (cmdLineParams->_isNoTab) { - //::MessageBox(_hSelf, "bingo", "", MB_OK); ::SendMessage(_hSelf, NPPM_HIDETABBAR, 0, TRUE); } } @@ -1255,6 +1251,7 @@ void Notepad_plus::checkDocState() } enableConvertMenuItems((_pEditView->getCurrentBuffer()).getFormat()); + checkUnicodeMenuItems((_pEditView->getCurrentBuffer()).getUnicodeMode()); checkLangsMenu(-1); } @@ -3174,12 +3171,10 @@ void Notepad_plus::command(int id) case IDM_FORMAT_AS_UTF_8 : { UniMode um; - bool isUnicodeMode = true; switch (id) { - case IDM_FORMAT_ANSI: - um = uni8Bit; - isUnicodeMode = false; + case IDM_FORMAT_AS_UTF_8: + um = uniCookie; break; case IDM_FORMAT_UTF_8: @@ -3194,29 +3189,20 @@ void Notepad_plus::command(int id) um = uni16LE; break; - default : // IDM_FORMAT_AS_UTF_8 - { - bool wasChecked = (_pEditView->getCurrentBuffer().getUnicodeMode() == uniCookie); - if (wasChecked) - { - um = uni8Bit; - isUnicodeMode = false; - } - else - { - um = uniCookie; - checkMenuItem(IDM_FORMAT_AS_UTF_8, false); - } - } + default : // IDM_FORMAT_ANSI + um = uni8Bit; } - _pEditView->getCurrentBuffer().setUnicodeMode(um); - _pDocTab->updateCurrentTabItem(); - checkDocState(); - synchronise(); + if (_pEditView->getCurrentBuffer().getUnicodeMode() != um) + { + _pEditView->getCurrentBuffer().setUnicodeMode(um); + _pDocTab->updateCurrentTabItem(); + checkDocState(); + synchronise(); - _pEditView->execute(SCI_SETCODEPAGE, isUnicodeMode?SC_CP_UTF8:0); - checkUnicodeMenuItems(um); - setUniModeText(um); + _pEditView->execute(SCI_SETCODEPAGE, (um != uni8Bit)?SC_CP_UTF8:0); + checkUnicodeMenuItems(um); + setUniModeText(um); + } break; } @@ -4543,25 +4529,14 @@ void Notepad_plus::checkUnicodeMenuItems(UniMode um) const int id = -1; switch (um) { - case uni8Bit : id = IDM_FORMAT_ANSI; break; - case uniUTF8 : id = IDM_FORMAT_UTF_8; break; - case uni16BE : id = IDM_FORMAT_UCS_2BE; break; - case uni16LE : id = IDM_FORMAT_UCS_2LE; break; - } - if (id != -1) - { - ::CheckMenuRadioItem(::GetMenu(_hSelf), IDM_FORMAT_ANSI, IDM_FORMAT_UCS_2LE, id, MF_BYCOMMAND); - - //if (um != uni8Bit) - checkMenuItem(IDM_FORMAT_AS_UTF_8, FALSE); - enableCommand(IDM_FORMAT_AS_UTF_8, (um == uni8Bit), MENU); - } - else - { - ::CheckMenuRadioItem(::GetMenu(_hSelf), IDM_FORMAT_ANSI, IDM_FORMAT_UCS_2LE, IDM_FORMAT_ANSI, MF_BYCOMMAND); - enableCommand(IDM_FORMAT_AS_UTF_8, true, MENU); - checkMenuItem(IDM_FORMAT_AS_UTF_8, true); + case uniUTF8 : id = IDM_FORMAT_UTF_8; break; + case uni16BE : id = IDM_FORMAT_UCS_2BE; break; + case uni16LE : id = IDM_FORMAT_UCS_2LE; break; + case uniCookie : id = IDM_FORMAT_AS_UTF_8; break; + default : + id = IDM_FORMAT_ANSI; } + ::CheckMenuRadioItem(::GetMenu(_hSelf), IDM_FORMAT_ANSI, IDM_FORMAT_AS_UTF_8, id, MF_BYCOMMAND); } static bool isInList(string word, const vector & wordArray) @@ -6490,26 +6465,26 @@ LRESULT Notepad_plus::runProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lPa else return -1; - /* get text of current scintilla */ + // get text of current scintilla length = pSci->execute(SCI_GETTEXTLENGTH, 0, 0) + 1; buffer = (char*)new char[length]; pSci->execute(SCI_GETTEXT, length, (LPARAM)buffer); length = UnicodeConvertor.convert(buffer, length-1); - /* set text in target */ + // set text in target pSci->execute(SCI_CLEARALL, 0, 0); pSci->execute(SCI_ADDTEXT, length, (LPARAM)UnicodeConvertor.getNewBuf()); pSci->execute(SCI_EMPTYUNDOBUFFER, 0, 0); - /* set cursor position */ + // set cursor position pSci->execute(SCI_GOTOPOS, 0, 0); - /* clean buffer */ + // clean buffer delete [] buffer; - /* set new encoding if BOM was changed by other programms */ + // set new encoding if BOM was changed by other programms UniMode um = UnicodeConvertor.getEncoding(); (pSci->getCurrentBuffer()).setUnicodeMode(um); checkUnicodeMenuItems(um); @@ -6520,19 +6495,8 @@ LRESULT Notepad_plus::runProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lPa return um; } -/* - case NPPM_ACTIVATEDOC : - { - int whichView = ((wParam != MAIN_VIEW) && (wParam != SUB_VIEW))?getCurrentView():wParam; - int index = lParam; - - switchEditViewTo(whichView); - activateDoc(index); - return TRUE; - } - -*/ case NPPM_ACTIVATEDOC : + case NPPM_ACTIVATEDOC : case NPPM_ACTIVATEDOCMENU: { // similar to NPPM_ACTIVEDOC @@ -6801,6 +6765,7 @@ LRESULT Notepad_plus::runProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lPa checkDocState(); dynamicCheckMenuAndTB(); setLangStatus(_pEditView->getCurrentDocType()); + //checkUnicodeMenuItems(_pEditView->getCurrentBuffer().getUnicodeMode()); updateStatusBar(); return TRUE; } diff --git a/PowerEditor/src/Notepad_plus.h b/PowerEditor/src/Notepad_plus.h index 60c1a1e3c..c8d494782 100644 --- a/PowerEditor/src/Notepad_plus.h +++ b/PowerEditor/src/Notepad_plus.h @@ -511,10 +511,6 @@ private: void fileNew(){ setTitleWith(_pDocTab->newDoc(NULL)); - //updateStatusBar(); - //dynamicCheckMenuAndTB(); - //checkDocState(); - //setLangStatus(_pEditView->getCurrentDocType()); setWorkingDir(NULL); }; diff --git a/PowerEditor/src/Notepad_plus.rc b/PowerEditor/src/Notepad_plus.rc index e8cf135f3..68ca88c26 100644 --- a/PowerEditor/src/Notepad_plus.rc +++ b/PowerEditor/src/Notepad_plus.rc @@ -390,10 +390,10 @@ BEGIN MENUITEM SEPARATOR MENUITEM "Encode in ANSI", IDM_FORMAT_ANSI MENUITEM "Encode in UTF-8", IDM_FORMAT_UTF_8 + MENUITEM "Encode in UTF-8 without BOM", IDM_FORMAT_AS_UTF_8 MENUITEM "Encode in UCS-2 Big Endian", IDM_FORMAT_UCS_2BE MENUITEM "Encode in UCS-2 Little Endian", IDM_FORMAT_UCS_2LE - MENUITEM SEPARATOR - MENUITEM "UTF-8 without BOM", IDM_FORMAT_AS_UTF_8 + //MENUITEM SEPARATOR END POPUP "&Language"