[NEW] Apply new file default settings on created new file (opened via commandline).
git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository/trunk@1269 f5eea248-9336-0410-98b8-ebc06183d4e3
This commit is contained in:
parent
5d0858d5c7
commit
c92f6cc91d
@ -97,6 +97,7 @@ BufferID Notepad_plus::doOpen(const TCHAR *fileName, bool isRecursive, bool isRe
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool globbing = wcsrchr(longFileName, TCHAR('*')) || wcsrchr(longFileName, TCHAR('?'));
|
bool globbing = wcsrchr(longFileName, TCHAR('*')) || wcsrchr(longFileName, TCHAR('?'));
|
||||||
|
bool isOpenningNewEmptyFile = false;
|
||||||
|
|
||||||
if (!isSnapshotMode) // if not backup mode, or backupfile path is invalid
|
if (!isSnapshotMode) // if not backup mode, or backupfile path is invalid
|
||||||
{
|
{
|
||||||
@ -116,6 +117,7 @@ BufferID Notepad_plus::doOpen(const TCHAR *fileName, bool isRecursive, bool isRe
|
|||||||
if (res)
|
if (res)
|
||||||
{
|
{
|
||||||
isCreateFileSuccessful = true;
|
isCreateFileSuccessful = true;
|
||||||
|
isOpenningNewEmptyFile = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -179,10 +181,21 @@ BufferID Notepad_plus::doOpen(const TCHAR *fileName, bool isRecursive, bool isRe
|
|||||||
_isFileOpening = true;
|
_isFileOpening = true;
|
||||||
|
|
||||||
Buffer * buf = MainFileManager->getBufferByID(buffer);
|
Buffer * buf = MainFileManager->getBufferByID(buffer);
|
||||||
|
|
||||||
// if file is read only, we set the view read only
|
// if file is read only, we set the view read only
|
||||||
if (isReadOnly)
|
if (isReadOnly)
|
||||||
buf->setUserReadOnly(true);
|
buf->setUserReadOnly(true);
|
||||||
|
|
||||||
|
// if it's a new created file, then use new file default settings
|
||||||
|
if (isOpenningNewEmptyFile)
|
||||||
|
{
|
||||||
|
const NewDocDefaultSettings & ndds = (NppParameters::getInstance()->getNppGUI()).getNewDocDefaultSettings();
|
||||||
|
buf->setEncoding(ndds._codepage);
|
||||||
|
buf->setFormat(ndds._format);
|
||||||
|
buf->setUnicodeMode(ndds._unicodeMode);
|
||||||
|
buf->setLangType(ndds._lang);
|
||||||
|
}
|
||||||
|
|
||||||
// Notify plugins that current file is about to open
|
// Notify plugins that current file is about to open
|
||||||
scnN.nmhdr.code = NPPN_FILEBEFOREOPEN;
|
scnN.nmhdr.code = NPPN_FILEBEFOREOPEN;
|
||||||
scnN.nmhdr.idFrom = (uptr_t)buffer;
|
scnN.nmhdr.idFrom = (uptr_t)buffer;
|
||||||
|
@ -4096,7 +4096,7 @@ void NppParameters::feedGUIParameters(TiXmlNode *node)
|
|||||||
_nppGUI._newDocDefaultSettings._format = (formatType)i;
|
_nppGUI._newDocDefaultSettings._format = (formatType)i;
|
||||||
|
|
||||||
if (element->Attribute(TEXT("encoding"), &i))
|
if (element->Attribute(TEXT("encoding"), &i))
|
||||||
_nppGUI._newDocDefaultSettings._encoding = (UniMode)i;
|
_nppGUI._newDocDefaultSettings._unicodeMode = (UniMode)i;
|
||||||
|
|
||||||
if (element->Attribute(TEXT("lang"), &i))
|
if (element->Attribute(TEXT("lang"), &i))
|
||||||
_nppGUI._newDocDefaultSettings._lang = (LangType)i;
|
_nppGUI._newDocDefaultSettings._lang = (LangType)i;
|
||||||
@ -5152,7 +5152,7 @@ bool NppParameters::writeGUIParams()
|
|||||||
else if (!lstrcmp(nm, TEXT("NewDocDefaultSettings")))
|
else if (!lstrcmp(nm, TEXT("NewDocDefaultSettings")))
|
||||||
{
|
{
|
||||||
element->SetAttribute(TEXT("format"), _nppGUI._newDocDefaultSettings._format);
|
element->SetAttribute(TEXT("format"), _nppGUI._newDocDefaultSettings._format);
|
||||||
element->SetAttribute(TEXT("encoding"), _nppGUI._newDocDefaultSettings._encoding);
|
element->SetAttribute(TEXT("encoding"), _nppGUI._newDocDefaultSettings._unicodeMode);
|
||||||
element->SetAttribute(TEXT("lang"), _nppGUI._newDocDefaultSettings._lang);
|
element->SetAttribute(TEXT("lang"), _nppGUI._newDocDefaultSettings._lang);
|
||||||
element->SetAttribute(TEXT("codepage"), _nppGUI._newDocDefaultSettings._codepage);
|
element->SetAttribute(TEXT("codepage"), _nppGUI._newDocDefaultSettings._codepage);
|
||||||
element->SetAttribute(TEXT("openAnsiAsUTF8"), _nppGUI._newDocDefaultSettings._openAnsiAsUtf8?TEXT("yes"):TEXT("no"));
|
element->SetAttribute(TEXT("openAnsiAsUTF8"), _nppGUI._newDocDefaultSettings._openAnsiAsUtf8?TEXT("yes"):TEXT("no"));
|
||||||
@ -5428,7 +5428,7 @@ bool NppParameters::writeGUIParams()
|
|||||||
TiXmlElement *GUIConfigElement = (GUIRoot->InsertEndChild(TiXmlElement(TEXT("GUIConfig"))))->ToElement();
|
TiXmlElement *GUIConfigElement = (GUIRoot->InsertEndChild(TiXmlElement(TEXT("GUIConfig"))))->ToElement();
|
||||||
GUIConfigElement->SetAttribute(TEXT("name"), TEXT("NewDocDefaultSettings"));
|
GUIConfigElement->SetAttribute(TEXT("name"), TEXT("NewDocDefaultSettings"));
|
||||||
GUIConfigElement->SetAttribute(TEXT("format"), _nppGUI._newDocDefaultSettings._format);
|
GUIConfigElement->SetAttribute(TEXT("format"), _nppGUI._newDocDefaultSettings._format);
|
||||||
GUIConfigElement->SetAttribute(TEXT("encoding"), _nppGUI._newDocDefaultSettings._encoding);
|
GUIConfigElement->SetAttribute(TEXT("encoding"), _nppGUI._newDocDefaultSettings._unicodeMode);
|
||||||
GUIConfigElement->SetAttribute(TEXT("lang"), _nppGUI._newDocDefaultSettings._lang);
|
GUIConfigElement->SetAttribute(TEXT("lang"), _nppGUI._newDocDefaultSettings._lang);
|
||||||
GUIConfigElement->SetAttribute(TEXT("codepage"), _nppGUI._newDocDefaultSettings._codepage);
|
GUIConfigElement->SetAttribute(TEXT("codepage"), _nppGUI._newDocDefaultSettings._codepage);
|
||||||
GUIConfigElement->SetAttribute(TEXT("openAnsiAsUTF8"), _nppGUI._newDocDefaultSettings._openAnsiAsUtf8?TEXT("yes"):TEXT("no"));
|
GUIConfigElement->SetAttribute(TEXT("openAnsiAsUTF8"), _nppGUI._newDocDefaultSettings._openAnsiAsUtf8?TEXT("yes"):TEXT("no"));
|
||||||
|
@ -521,11 +521,11 @@ private :
|
|||||||
struct NewDocDefaultSettings
|
struct NewDocDefaultSettings
|
||||||
{
|
{
|
||||||
formatType _format;
|
formatType _format;
|
||||||
UniMode _encoding;
|
UniMode _unicodeMode;
|
||||||
bool _openAnsiAsUtf8;
|
bool _openAnsiAsUtf8;
|
||||||
LangType _lang;
|
LangType _lang;
|
||||||
int _codepage; // -1 when not using
|
int _codepage; // -1 when not using
|
||||||
NewDocDefaultSettings():_format(WIN_FORMAT), _encoding(uniCookie), _openAnsiAsUtf8(true), _lang(L_TEXT), _codepage(-1){};
|
NewDocDefaultSettings():_format(WIN_FORMAT), _unicodeMode(uniCookie), _openAnsiAsUtf8(true), _lang(L_TEXT), _codepage(-1){};
|
||||||
};
|
};
|
||||||
|
|
||||||
struct LangMenuItem {
|
struct LangMenuItem {
|
||||||
|
@ -52,7 +52,7 @@ Buffer::Buffer(FileManager * pManager, BufferID id, Document doc, DocFileStatus
|
|||||||
NppParameters *pNppParamInst = NppParameters::getInstance();
|
NppParameters *pNppParamInst = NppParameters::getInstance();
|
||||||
const NewDocDefaultSettings & ndds = (pNppParamInst->getNppGUI()).getNewDocDefaultSettings();
|
const NewDocDefaultSettings & ndds = (pNppParamInst->getNppGUI()).getNewDocDefaultSettings();
|
||||||
_format = ndds._format;
|
_format = ndds._format;
|
||||||
_unicodeMode = ndds._encoding;
|
_unicodeMode = ndds._unicodeMode;
|
||||||
_encoding = ndds._codepage;
|
_encoding = ndds._codepage;
|
||||||
if (_encoding != -1)
|
if (_encoding != -1)
|
||||||
_unicodeMode = uniCookie;
|
_unicodeMode = uniCookie;
|
||||||
@ -500,7 +500,7 @@ BufferID FileManager::loadFile(const TCHAR * filename, Document doc, int encodin
|
|||||||
// restore the encoding (ANSI based) while opening the existing file
|
// restore the encoding (ANSI based) while opening the existing file
|
||||||
NppParameters *pNppParamInst = NppParameters::getInstance();
|
NppParameters *pNppParamInst = NppParameters::getInstance();
|
||||||
const NewDocDefaultSettings & ndds = (pNppParamInst->getNppGUI()).getNewDocDefaultSettings();
|
const NewDocDefaultSettings & ndds = (pNppParamInst->getNppGUI()).getNewDocDefaultSettings();
|
||||||
buf->setUnicodeMode(ndds._encoding);
|
buf->setUnicodeMode(ndds._unicodeMode);
|
||||||
buf->setEncoding(-1);
|
buf->setEncoding(-1);
|
||||||
|
|
||||||
if (encoding == -1)
|
if (encoding == -1)
|
||||||
|
@ -1102,7 +1102,7 @@ BOOL CALLBACK DefaultNewDocDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM)
|
|||||||
}
|
}
|
||||||
::SendDlgItemMessage(_hSelf, ID2Check, BM_SETCHECK, BST_CHECKED, 0);
|
::SendDlgItemMessage(_hSelf, ID2Check, BM_SETCHECK, BST_CHECKED, 0);
|
||||||
|
|
||||||
switch (ndds._encoding)
|
switch (ndds._unicodeMode)
|
||||||
{
|
{
|
||||||
case uni16BE :
|
case uni16BE :
|
||||||
ID2Check = IDC_RADIO_UCS2BIG;
|
ID2Check = IDC_RADIO_UCS2BIG;
|
||||||
@ -1185,34 +1185,34 @@ BOOL CALLBACK DefaultNewDocDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM)
|
|||||||
switch (wParam)
|
switch (wParam)
|
||||||
{
|
{
|
||||||
case IDC_RADIO_UCS2BIG:
|
case IDC_RADIO_UCS2BIG:
|
||||||
ndds._encoding = uni16BE;
|
ndds._unicodeMode = uni16BE;
|
||||||
ndds._openAnsiAsUtf8 = false;
|
ndds._openAnsiAsUtf8 = false;
|
||||||
makeOpenAnsiAsUtf8(false);
|
makeOpenAnsiAsUtf8(false);
|
||||||
ndds._codepage = -1;
|
ndds._codepage = -1;
|
||||||
::EnableWindow(::GetDlgItem(_hSelf, IDC_COMBO_OTHERCP), false);
|
::EnableWindow(::GetDlgItem(_hSelf, IDC_COMBO_OTHERCP), false);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
case IDC_RADIO_UCS2SMALL:
|
case IDC_RADIO_UCS2SMALL:
|
||||||
ndds._encoding = uni16LE;
|
ndds._unicodeMode = uni16LE;
|
||||||
ndds._openAnsiAsUtf8 = false;
|
ndds._openAnsiAsUtf8 = false;
|
||||||
makeOpenAnsiAsUtf8(false);
|
makeOpenAnsiAsUtf8(false);
|
||||||
ndds._codepage = -1;
|
ndds._codepage = -1;
|
||||||
::EnableWindow(::GetDlgItem(_hSelf, IDC_COMBO_OTHERCP), false);
|
::EnableWindow(::GetDlgItem(_hSelf, IDC_COMBO_OTHERCP), false);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
case IDC_RADIO_UTF8:
|
case IDC_RADIO_UTF8:
|
||||||
ndds._encoding = uniUTF8;
|
ndds._unicodeMode = uniUTF8;
|
||||||
ndds._openAnsiAsUtf8 = false;
|
ndds._openAnsiAsUtf8 = false;
|
||||||
makeOpenAnsiAsUtf8(false);
|
makeOpenAnsiAsUtf8(false);
|
||||||
ndds._codepage = -1;
|
ndds._codepage = -1;
|
||||||
::EnableWindow(::GetDlgItem(_hSelf, IDC_COMBO_OTHERCP), false);
|
::EnableWindow(::GetDlgItem(_hSelf, IDC_COMBO_OTHERCP), false);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
case IDC_RADIO_UTF8SANSBOM:
|
case IDC_RADIO_UTF8SANSBOM:
|
||||||
ndds._encoding = uniCookie;
|
ndds._unicodeMode = uniCookie;
|
||||||
makeOpenAnsiAsUtf8(true);
|
makeOpenAnsiAsUtf8(true);
|
||||||
ndds._codepage = -1;
|
ndds._codepage = -1;
|
||||||
::EnableWindow(::GetDlgItem(_hSelf, IDC_COMBO_OTHERCP), false);
|
::EnableWindow(::GetDlgItem(_hSelf, IDC_COMBO_OTHERCP), false);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
case IDC_RADIO_ANSI:
|
case IDC_RADIO_ANSI:
|
||||||
ndds._encoding = uni8Bit;
|
ndds._unicodeMode = uni8Bit;
|
||||||
ndds._openAnsiAsUtf8 = false;
|
ndds._openAnsiAsUtf8 = false;
|
||||||
makeOpenAnsiAsUtf8(false);
|
makeOpenAnsiAsUtf8(false);
|
||||||
ndds._codepage = -1;
|
ndds._codepage = -1;
|
||||||
|
Loading…
Reference in New Issue
Block a user