mirror of
https://github.com/notepad-plus-plus/notepad-plus-plus.git
synced 2025-07-23 13:54:54 +02:00
Enhance "File status Auto-Detection" to avoid switching editing tab off behaviour
Fix a long waiting issue about file auto change detection, by adding a new option to avoid an annoying behaviour: If file content is changed outside of Notepad++, while focus back to Notepad++, the current editing tab will be switched off, the changed file will be switched to and user will be asked to reload the file in question. The new option remains the editing tab. User will be asked to reload it only if the changed file is switched in. Fix #1087, Fix #3349, Fix #3333, Fix #3528, Fix #3138, Fix #3934, Fix #3160, Fix #1822, Fix #745, Fix #3599, Fix #4329, Fix #3971, Fix #4592, Fix #1116, Fix #2082 Close #4180, Close #5386, Close #4189, Close #1995, Close #2867, Close #3306, Close #2776, Close #2724, Close #2405, Close #4072, Close #4747 Close #5389
This commit is contained in:
parent
54350715e4
commit
ba60fbdd71
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<NotepadPlus>
|
||||
<Native-Langue name="English" filename="english.xml" version="7.6.3">
|
||||
<Native-Langue name="English" filename="english.xml" version="7.6.4">
|
||||
<Menu>
|
||||
<Main>
|
||||
<!-- Main Menu Entries -->
|
||||
@ -907,10 +907,11 @@
|
||||
</SearchEngine>
|
||||
|
||||
<MISC title="MISC.">
|
||||
<Item id="6307" name="Enable"/>
|
||||
<Item id="6307" name="Enable for all tabs"/>
|
||||
<Item id="6308" name="Minimize to system tray"/>
|
||||
<Item id="6312" name="File Status Auto-Detection"/>
|
||||
<Item id="6313" name="Update silently"/>
|
||||
<Item id="6314" name="Enable only for current tab"/>
|
||||
<Item id="6318" name="Clickable Link Settings"/>
|
||||
<Item id="6325" name="Scroll to the last line after update"/>
|
||||
<Item id="6319" name="Enable"/>
|
||||
|
@ -4,10 +4,10 @@
|
||||
|
||||
** created By:- Rathin A. Dholakia **
|
||||
Email- rathin2j@gmail.com
|
||||
** Last Updated on 18/02/2019 by Rajendra Singh (singh.rajen15@gmail.com) **
|
||||
** Last Updated on 06/03/2019 by Rajendra Singh (singh.rajen15@gmail.com) **
|
||||
-->
|
||||
<NotepadPlus>
|
||||
<Native-Langue name="हिन्दी" filename="hindi.xml" version="7.6.3">
|
||||
<Native-Langue name="हिन्दी" filename="hindi.xml" version="7.6.4">
|
||||
<Menu>
|
||||
<Main>
|
||||
<!-- Main Menu Entries -->
|
||||
@ -914,10 +914,11 @@
|
||||
</SearchEngine>
|
||||
|
||||
<MISC title="विविध (MISC.)">
|
||||
<Item id="6307" name="सक्रिय"/>
|
||||
<Item id="6307" name="सभी टैब के लिए सक्रिय करें"/>
|
||||
<Item id="6308" name="सिस्टम ट्रे में छोटा करें"/>
|
||||
<Item id="6312" name="फाईल स्टेटस की स्वचालित जांच"/>
|
||||
<Item id="6313" name="साइलेंटली अपडेट करें"/>
|
||||
<Item id="6314" name="केवल वर्तमान टैब के लिए सक्रिय करें"/>
|
||||
<Item id="6318" name="क्लिक योग्य लिंक की सेटिंग"/>
|
||||
<Item id="6325" name="अपडेट के बाद आख़री लाईन पे स्क्रॉल करें"/>
|
||||
<Item id="6319" name="सक्रिय"/>
|
||||
@ -1166,8 +1167,8 @@
|
||||
<find-status-replaceinopenedfiles-nb-replaced value="खुली फाइलों में बदलें: $INT_REPLACE$ मिलानों को बदल दिया गया है।"/>
|
||||
<find-status-mark-re-malformed value="निशान: ढूंढने के लिए रेगुलर एक्सप्रेशन गलत है।"/>
|
||||
<find-status-invalid-re value="खोज: अवैध रेगुलर एक्सप्रेशन"/>
|
||||
<find-status-mark-1-match value="1 मिलान"/>
|
||||
<find-status-mark-nb-matches value="$INT_REPLACE$ मिलान"/>
|
||||
<find-status-mark-1-match value="निशान: 1 मिलान"/>
|
||||
<find-status-mark-nb-matches value="निशान: $INT_REPLACE$ मिलान"/>
|
||||
<find-status-count-re-malformed value="गणना: ढूंढने के लिए रेगुलर एक्सप्रेशन गलत है।"/>
|
||||
<find-status-count-1-match value="गणना: 1 मिलान"/>
|
||||
<find-status-count-nb-matches value="गणना: $INT_REPLACE$ मिलान"/>
|
||||
|
@ -3328,10 +3328,10 @@ void Notepad_plus::dropFiles(HDROP hdrop)
|
||||
}
|
||||
}
|
||||
|
||||
void Notepad_plus::checkModifiedDocument()
|
||||
void Notepad_plus::checkModifiedDocument(bool bCheckOnlyCurrentBuffer)
|
||||
{
|
||||
//this will trigger buffer updates. If the status changes, Notepad++ will be informed and can do its magic
|
||||
MainFileManager->checkFilesystemChanges();
|
||||
MainFileManager->checkFilesystemChanges(bCheckOnlyCurrentBuffer);
|
||||
}
|
||||
|
||||
void Notepad_plus::getMainClientRect(RECT &rc) const
|
||||
@ -3783,10 +3783,18 @@ bool Notepad_plus::activateBuffer(BufferID id, int whichOne)
|
||||
return false;
|
||||
}
|
||||
|
||||
bool isCurrBuffDetection = (NppParameters::getInstance()->getNppGUI()._fileAutoDetection & cdEnabledCurrent) ? true : false;
|
||||
|
||||
if (reload)
|
||||
{
|
||||
performPostReload(whichOne);
|
||||
}
|
||||
else if(isCurrBuffDetection)
|
||||
{
|
||||
// Buffer has been activated, now check for file modification
|
||||
// If enabled for current buffer
|
||||
pBuf->checkFileState();
|
||||
}
|
||||
|
||||
notifyBufferActivated(id, whichOne);
|
||||
return true;
|
||||
@ -3795,7 +3803,7 @@ bool Notepad_plus::activateBuffer(BufferID id, int whichOne)
|
||||
void Notepad_plus::performPostReload(int whichOne) {
|
||||
NppParameters *pNppParam = NppParameters::getInstance();
|
||||
const NppGUI & nppGUI = pNppParam->getNppGUI();
|
||||
bool toEnd = (nppGUI._fileAutoDetection == cdAutoUpdateGo2end) || (nppGUI._fileAutoDetection == cdGo2end);
|
||||
bool toEnd = (nppGUI._fileAutoDetection & cdGo2end) ? true : false;
|
||||
if (!toEnd)
|
||||
return;
|
||||
if (whichOne == MAIN_VIEW) {
|
||||
@ -5125,7 +5133,7 @@ void Notepad_plus::notifyBufferChanged(Buffer * buffer, int mask)
|
||||
}
|
||||
case DOC_MODIFIED: //ask for reloading
|
||||
{
|
||||
bool autoUpdate = (nppGUI._fileAutoDetection == cdAutoUpdate) || (nppGUI._fileAutoDetection == cdAutoUpdateGo2end);
|
||||
bool autoUpdate = (nppGUI._fileAutoDetection & cdAutoUpdate) ? true : false;
|
||||
if (!autoUpdate || buffer->isDirty())
|
||||
{
|
||||
prepareBufferChangedDialog(buffer);
|
||||
|
@ -456,7 +456,7 @@ private:
|
||||
void checkMacroState();
|
||||
void checkSyncState();
|
||||
void dropFiles(HDROP hdrop);
|
||||
void checkModifiedDocument();
|
||||
void checkModifiedDocument(bool bCheckOnlyCurrentBuffer);
|
||||
|
||||
void getMainClientRect(RECT & rc) const;
|
||||
void staticCheckMenuAndTB() const;
|
||||
|
@ -311,7 +311,7 @@ void Notepad_plus_Window::init(HINSTANCE hInst, HWND parent, const TCHAR *cmdLin
|
||||
bool isSnapshotMode = nppGUI.isSnapshotMode();
|
||||
if (isSnapshotMode)
|
||||
{
|
||||
_notepad_plus_plus_core.checkModifiedDocument();
|
||||
_notepad_plus_plus_core.checkModifiedDocument(false);
|
||||
// Lauch backup task
|
||||
_notepad_plus_plus_core.launchDocumentBackupTask();
|
||||
}
|
||||
|
@ -45,12 +45,6 @@ using namespace std;
|
||||
#define WM_DPICHANGED 0x02E0
|
||||
|
||||
|
||||
DWORD WINAPI CheckModifiedDocumentThread(LPVOID)
|
||||
{
|
||||
MainFileManager->checkFilesystemChanges();
|
||||
return 0;
|
||||
}
|
||||
|
||||
struct SortTaskListPred final
|
||||
{
|
||||
DocTabView *_views[2];
|
||||
@ -1544,7 +1538,9 @@ LRESULT Notepad_plus::process(HWND hwnd, UINT message, WPARAM wParam, LPARAM lPa
|
||||
const NppGUI & nppgui = pNppParam->getNppGUI();
|
||||
if (nppgui._fileAutoDetection != cdDisabled)
|
||||
{
|
||||
checkModifiedDocument();
|
||||
bool bCheckOnlyCurrentBuffer = (nppgui._fileAutoDetection & cdEnabledCurrent) ? true : false;
|
||||
|
||||
checkModifiedDocument(bCheckOnlyCurrentBuffer);
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
@ -1621,15 +1617,15 @@ LRESULT Notepad_plus::process(HWND hwnd, UINT message, WPARAM wParam, LPARAM lPa
|
||||
|
||||
case NPPM_INTERNAL_ENABLECHECKDOCOPT:
|
||||
{
|
||||
NppGUI & nppgui = const_cast<NppGUI &>((pNppParam->getNppGUI()));
|
||||
NppGUI& nppgui = const_cast<NppGUI&>((pNppParam->getNppGUI()));
|
||||
if (wParam == CHECKDOCOPT_NONE)
|
||||
nppgui._fileAutoDetection = cdDisabled;
|
||||
else if (wParam == CHECKDOCOPT_UPDATESILENTLY)
|
||||
nppgui._fileAutoDetection = cdAutoUpdate;
|
||||
nppgui._fileAutoDetection = (cdEnabledAll | cdAutoUpdate);
|
||||
else if (wParam == CHECKDOCOPT_UPDATEGO2END)
|
||||
nppgui._fileAutoDetection = cdGo2end;
|
||||
nppgui._fileAutoDetection = (cdEnabledAll | cdGo2end);
|
||||
else if (wParam == (CHECKDOCOPT_UPDATESILENTLY | CHECKDOCOPT_UPDATEGO2END))
|
||||
nppgui._fileAutoDetection = cdAutoUpdateGo2end;
|
||||
nppgui._fileAutoDetection = (cdEnabledAll | cdGo2end | cdAutoUpdate);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -1359,7 +1359,7 @@ bool Notepad_plus::fileSaveAs(BufferID id, bool isSaveCopy)
|
||||
|
||||
// Disable file autodetection before opening save dialog to prevent use-after-delete bug.
|
||||
NppParameters *pNppParam = NppParameters::getInstance();
|
||||
ChangeDetect cdBefore = (const_cast<NppGUI &>(pNppParam->getNppGUI()))._fileAutoDetection;
|
||||
auto cdBefore = pNppParam->getNppGUI()._fileAutoDetection;
|
||||
(const_cast<NppGUI &>(pNppParam->getNppGUI()))._fileAutoDetection = cdDisabled;
|
||||
|
||||
TCHAR *pfn = fDlg.doSaveDlg();
|
||||
@ -1393,7 +1393,7 @@ bool Notepad_plus::fileSaveAs(BufferID id, bool isSaveCopy)
|
||||
}
|
||||
else // cancel button is pressed
|
||||
{
|
||||
checkModifiedDocument();
|
||||
checkModifiedDocument(true);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -4185,14 +4185,22 @@ void NppParameters::feedGUIParameters(TiXmlNode *node)
|
||||
const TCHAR* val = n->Value();
|
||||
if (val)
|
||||
{
|
||||
if (!lstrcmp(val, TEXT("yes")))
|
||||
_nppGUI._fileAutoDetection = cdEnabled;
|
||||
else if (!lstrcmp(val, TEXT("auto")))
|
||||
_nppGUI._fileAutoDetection = cdAutoUpdate;
|
||||
else if (!lstrcmp(val, TEXT("Update2End")))
|
||||
_nppGUI._fileAutoDetection = cdGo2end;
|
||||
else if (!lstrcmp(val, TEXT("autoUpdate2End")))
|
||||
_nppGUI._fileAutoDetection = cdAutoUpdateGo2end;
|
||||
if (!lstrcmp(val, TEXT("yesAll")))
|
||||
_nppGUI._fileAutoDetection = cdEnabledAll;
|
||||
else if (!lstrcmp(val, TEXT("autoAll")))
|
||||
_nppGUI._fileAutoDetection = (cdEnabledAll | cdAutoUpdate);
|
||||
else if (!lstrcmp(val, TEXT("Update2EndAll")))
|
||||
_nppGUI._fileAutoDetection = (cdEnabledAll | cdGo2end);
|
||||
else if (!lstrcmp(val, TEXT("autoUpdate2EndAll")))
|
||||
_nppGUI._fileAutoDetection = (cdEnabledAll | cdAutoUpdate | cdGo2end);
|
||||
else if (!lstrcmp(val, TEXT("yesCurrent")))
|
||||
_nppGUI._fileAutoDetection = cdEnabledCurrent;
|
||||
else if (!lstrcmp(val, TEXT("autoCurrent")))
|
||||
_nppGUI._fileAutoDetection = (cdEnabledCurrent | cdAutoUpdate);
|
||||
else if (!lstrcmp(val, TEXT("Update2EndCurrent")))
|
||||
_nppGUI._fileAutoDetection = (cdEnabledCurrent | cdGo2end);
|
||||
else if (!lstrcmp(val, TEXT("autoUpdate2EndCurrent")))
|
||||
_nppGUI._fileAutoDetection = (cdEnabledCurrent | cdAutoUpdate | cdGo2end);
|
||||
else //(!lstrcmp(val, TEXT("no")))
|
||||
_nppGUI._fileAutoDetection = cdDisabled;
|
||||
|
||||
@ -5557,21 +5565,42 @@ void NppParameters::createXmlTreeFromGUIParams()
|
||||
// <GUIConfig name="Auto-detection">yes</GUIConfig>
|
||||
{
|
||||
const TCHAR *pStr = TEXT("no");
|
||||
switch (_nppGUI._fileAutoDetection)
|
||||
|
||||
if (_nppGUI._fileAutoDetection & cdEnabledAll)
|
||||
{
|
||||
case cdEnabled:
|
||||
pStr = TEXT("yes");
|
||||
break;
|
||||
case cdAutoUpdate:
|
||||
pStr = TEXT("auto");
|
||||
break;
|
||||
case cdGo2end:
|
||||
pStr = TEXT("Update2End");
|
||||
break;
|
||||
case cdAutoUpdateGo2end:
|
||||
pStr = TEXT("autoUpdate2End");
|
||||
break;
|
||||
pStr = TEXT("yesAll");
|
||||
|
||||
if ((_nppGUI._fileAutoDetection & cdAutoUpdate) && (_nppGUI._fileAutoDetection & cdGo2end))
|
||||
{
|
||||
pStr = TEXT("autoUpdate2EndAll");
|
||||
}
|
||||
else if (_nppGUI._fileAutoDetection & cdAutoUpdate)
|
||||
{
|
||||
pStr = TEXT("autoAll");
|
||||
}
|
||||
else if (_nppGUI._fileAutoDetection & cdGo2end)
|
||||
{
|
||||
pStr = TEXT("Update2EndAll");
|
||||
}
|
||||
}
|
||||
else if (_nppGUI._fileAutoDetection & cdEnabledCurrent)
|
||||
{
|
||||
pStr = TEXT("yesCurrent");
|
||||
|
||||
if ((_nppGUI._fileAutoDetection & cdAutoUpdate) && (_nppGUI._fileAutoDetection & cdGo2end))
|
||||
{
|
||||
pStr = TEXT("autoUpdate2EndCurrent");
|
||||
}
|
||||
else if (_nppGUI._fileAutoDetection & cdAutoUpdate)
|
||||
{
|
||||
pStr = TEXT("autoCurrent");
|
||||
}
|
||||
else if (_nppGUI._fileAutoDetection & cdGo2end)
|
||||
{
|
||||
pStr = TEXT("Update2EndCurrent");
|
||||
}
|
||||
}
|
||||
|
||||
TiXmlElement *GUIConfigElement = (newGUIRoot->InsertEndChild(TiXmlElement(TEXT("GUIConfig"))))->ToElement();
|
||||
GUIConfigElement->SetAttribute(TEXT("name"), TEXT("Auto-detection"));
|
||||
GUIConfigElement->InsertEndChild(TiXmlText(pStr));
|
||||
|
@ -87,7 +87,7 @@ EolType convertIntToFormatType(int value, EolType defvalue = EolType::osdefault)
|
||||
|
||||
|
||||
enum UniMode {uni8Bit=0, uniUTF8=1, uni16BE=2, uni16LE=3, uniCookie=4, uni7Bit=5, uni16BE_NoBOM=6, uni16LE_NoBOM=7, uniEnd};
|
||||
enum ChangeDetect {cdDisabled=0, cdEnabled=1, cdAutoUpdate=2, cdGo2end=3, cdAutoUpdateGo2end=4};
|
||||
enum ChangeDetect { cdDisabled = 0x0, cdEnabledAll = 0x01, cdEnabledCurrent = 0x02, cdAutoUpdate = 0x04, cdGo2end = 0x08 };
|
||||
enum BackupFeature {bak_none = 0, bak_simple = 1, bak_verbose = 2};
|
||||
enum OpenSaveDirSetting {dir_followCurrent = 0, dir_last = 1, dir_userDef = 2};
|
||||
enum MultiInstSetting {monoInst = 0, multiInstOnSession = 1, multiInst = 2};
|
||||
@ -788,8 +788,8 @@ struct NppGUI final
|
||||
int _tabSize = 4;
|
||||
bool _tabReplacedBySpace = false;
|
||||
|
||||
ChangeDetect _fileAutoDetection = cdEnabled;
|
||||
ChangeDetect _fileAutoDetectionOriginalValue = cdEnabled;
|
||||
int _fileAutoDetection = cdEnabledAll;
|
||||
int _fileAutoDetectionOriginalValue = cdEnabledAll;
|
||||
bool _checkHistoryFiles = false;
|
||||
|
||||
RECT _appPos;
|
||||
|
@ -222,7 +222,7 @@ void Buffer::setFileName(const TCHAR *fn, LangType defaultLang)
|
||||
}
|
||||
|
||||
|
||||
bool Buffer::checkFileState() //eturns true if the status has been changed (it can change into DOC_REGULAR too). false otherwise
|
||||
bool Buffer::checkFileState() // returns true if the status has been changed (it can change into DOC_REGULAR too). false otherwise
|
||||
{
|
||||
if (_currentStatus == DOC_UNNAMED) //unsaved document cannot change by environment
|
||||
return false;
|
||||
@ -485,7 +485,7 @@ void Buffer::setHideLineChanged(bool isHide, int location)
|
||||
|
||||
void Buffer::setDeferredReload() // triggers a reload on the next Document access
|
||||
{
|
||||
_isDirty = false; //when reloading, just set to false, since it sohuld be marked as clean
|
||||
_isDirty = false; //when reloading, just set to false, since it should be marked as clean
|
||||
_needReloading = true;
|
||||
doNotify(BufferChangeDirty);
|
||||
}
|
||||
@ -510,9 +510,16 @@ void FileManager::init(Notepad_plus * pNotepadPlus, ScintillaEditView * pscratch
|
||||
_pscratchTilla->execute(SCI_ADDREFDOCUMENT, 0, _scratchDocDefault);
|
||||
}
|
||||
|
||||
void FileManager::checkFilesystemChanges()
|
||||
void FileManager::checkFilesystemChanges(bool bCheckOnlyCurrentBuffer)
|
||||
{
|
||||
for (int i = int(_nbBufs) - 1; i >= 0 ; i--)
|
||||
if (bCheckOnlyCurrentBuffer)
|
||||
{
|
||||
Buffer* buffer = _pNotepadPlus->getCurrentBuffer();
|
||||
buffer->checkFileState();
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int i = int(_nbBufs) - 1; i >= 0; i--)
|
||||
{
|
||||
if (i >= int(_nbBufs))
|
||||
{
|
||||
@ -523,6 +530,7 @@ void FileManager::checkFilesystemChanges()
|
||||
}
|
||||
_buffers[i]->checkFileState(); //something has changed. Triggers update automatically
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -74,7 +74,7 @@ public:
|
||||
void init(Notepad_plus* pNotepadPlus, ScintillaEditView* pscratchTilla);
|
||||
|
||||
//void activateBuffer(int index);
|
||||
void checkFilesystemChanges();
|
||||
void checkFilesystemChanges(bool bCheckOnlyCurrentBuffer);
|
||||
|
||||
size_t getNbBuffers() { return _nbBufs; };
|
||||
int getBufferIndexByID(BufferID id);
|
||||
|
@ -130,15 +130,16 @@ BEGIN
|
||||
CONTROL "Enable Notepad++ auto-updater",IDC_CHECK_AUTOUPDATE, "Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,37,173,217,10
|
||||
CONTROL "Enable",IDC_CHECK_CLICKABLELINK_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,267,15,140,10
|
||||
CONTROL "No underline",IDC_CHECK_CLICKABLELINK_NOUNDERLINE, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,267,28,140,10
|
||||
CONTROL "Enable",IDC_CHECK_FILEAUTODETECTION,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,267,57,140,10
|
||||
CONTROL "Update silently",IDC_CHECK_UPDATESILENTLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,267,69,140,10
|
||||
CONTROL "Scroll to the last line after update",IDC_CHECK_UPDATEGOTOEOF,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,267,81,140,10
|
||||
CONTROL "Enable for all tabs",IDC_CHECK_FILEAUTODETECTION_ALL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,267,57,140,10
|
||||
CONTROL "Enable only for current tab",IDC_CHECK_FILEAUTODETECTION_CURRENT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,267,69,140,10
|
||||
CONTROL "Update silently",IDC_CHECK_UPDATESILENTLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,267,81,140,10
|
||||
CONTROL "Scroll to the last line after update",IDC_CHECK_UPDATEGOTOEOF,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,267,93,140,10
|
||||
EDITTEXT IDC_EDIT_SESSIONFILEEXT,381,135,34,14,ES_AUTOHSCROLL
|
||||
EDITTEXT IDC_EDIT_WORKSPACEFILEEXT,381,152,34,14,ES_AUTOHSCROLL
|
||||
GROUPBOX "Document Switcher (Ctrl+TAB)",IDC_DOCUMENTSWITCHER_STATIC,37,4,155,39,BS_CENTER
|
||||
GROUPBOX "Clickable Link Settings",IDC_CLICKABLELINK_STATIC,259,4,155,39,BS_CENTER
|
||||
GROUPBOX "Document Peeker",IDC_DOCUMENTPEEK_STATIC,37,47,155,39,BS_CENTER
|
||||
GROUPBOX "File Status Auto-Detection",IDC_FILEAUTODETECTION_STATIC,259,47,155,50,BS_CENTER
|
||||
GROUPBOX "File Status Auto-Detection",IDC_FILEAUTODETECTION_STATIC,259,47,155,62,BS_CENTER
|
||||
RTEXT "Session file ext.:",IDC_SESSIONFILEEXT_STATIC,271,138,108,8
|
||||
RTEXT "Workspace file ext.:",IDC_WORKSPACEFILEEXT_STATIC,271,155,108,8
|
||||
END
|
||||
|
@ -879,25 +879,17 @@ INT_PTR CALLBACK SettingsDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM)
|
||||
{
|
||||
case WM_INITDIALOG :
|
||||
{
|
||||
if (nppGUI._fileAutoDetection == cdEnabled)
|
||||
if (nppGUI._fileAutoDetection & cdEnabledAll)
|
||||
{
|
||||
::SendDlgItemMessage(_hSelf, IDC_CHECK_FILEAUTODETECTION, BM_SETCHECK, BST_CHECKED, 0);
|
||||
::SendDlgItemMessage(_hSelf, IDC_CHECK_FILEAUTODETECTION_ALL, BM_SETCHECK, BST_CHECKED, 0);
|
||||
::SendDlgItemMessage(_hSelf, IDC_CHECK_FILEAUTODETECTION_CURRENT, BM_SETCHECK, BST_UNCHECKED, 0);
|
||||
::EnableWindow(::GetDlgItem(_hSelf, IDC_CHECK_FILEAUTODETECTION_CURRENT), FALSE);
|
||||
}
|
||||
else if (nppGUI._fileAutoDetection == cdAutoUpdate)
|
||||
else if (nppGUI._fileAutoDetection & cdEnabledCurrent)
|
||||
{
|
||||
::SendDlgItemMessage(_hSelf, IDC_CHECK_FILEAUTODETECTION, BM_SETCHECK, BST_CHECKED, 0);
|
||||
::SendDlgItemMessage(_hSelf, IDC_CHECK_UPDATESILENTLY, BM_SETCHECK, BST_CHECKED, 0);
|
||||
}
|
||||
else if (nppGUI._fileAutoDetection == cdGo2end)
|
||||
{
|
||||
::SendDlgItemMessage(_hSelf, IDC_CHECK_FILEAUTODETECTION, BM_SETCHECK, BST_CHECKED, 0);
|
||||
::SendDlgItemMessage(_hSelf, IDC_CHECK_UPDATEGOTOEOF, BM_SETCHECK, BST_CHECKED, 0);
|
||||
}
|
||||
else if (nppGUI._fileAutoDetection == cdAutoUpdateGo2end)
|
||||
{
|
||||
::SendDlgItemMessage(_hSelf, IDC_CHECK_FILEAUTODETECTION, BM_SETCHECK, BST_CHECKED, 0);
|
||||
::SendDlgItemMessage(_hSelf, IDC_CHECK_UPDATESILENTLY, BM_SETCHECK, BST_CHECKED, 0);
|
||||
::SendDlgItemMessage(_hSelf, IDC_CHECK_UPDATEGOTOEOF, BM_SETCHECK, BST_CHECKED, 0);
|
||||
::SendDlgItemMessage(_hSelf, IDC_CHECK_FILEAUTODETECTION_CURRENT, BM_SETCHECK, BST_CHECKED, 0);
|
||||
::SendDlgItemMessage(_hSelf, IDC_CHECK_FILEAUTODETECTION_ALL, BM_SETCHECK, BST_UNCHECKED, 0);
|
||||
::EnableWindow(::GetDlgItem(_hSelf, IDC_CHECK_FILEAUTODETECTION_ALL), FALSE);
|
||||
}
|
||||
else //cdDisabled
|
||||
{
|
||||
@ -905,6 +897,12 @@ INT_PTR CALLBACK SettingsDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM)
|
||||
::EnableWindow(::GetDlgItem(_hSelf, IDC_CHECK_UPDATEGOTOEOF), FALSE);
|
||||
}
|
||||
|
||||
bool bCheck = (nppGUI._fileAutoDetection & cdAutoUpdate) ? true : false;
|
||||
::SendDlgItemMessage(_hSelf, IDC_CHECK_UPDATESILENTLY, BM_SETCHECK, bCheck? BST_CHECKED: BST_UNCHECKED, 0);
|
||||
|
||||
bCheck = (nppGUI._fileAutoDetection & cdGo2end) ? true : false;
|
||||
::SendDlgItemMessage(_hSelf, IDC_CHECK_UPDATEGOTOEOF, BM_SETCHECK, bCheck ? BST_CHECKED : BST_UNCHECKED, 0);
|
||||
|
||||
::SendDlgItemMessage(_hSelf, IDC_CHECK_MIN2SYSTRAY, BM_SETCHECK, nppGUI._isMinimizedToTray, 0);
|
||||
::SendDlgItemMessage(_hSelf, IDC_CHECK_DETECTENCODING, BM_SETCHECK, nppGUI._detectEncoding, 0);
|
||||
::SendDlgItemMessage(_hSelf, IDC_CHECK_AUTOUPDATE, BM_SETCHECK, nppGUI._autoUpdateOpt._doAutoUpdate, 0);
|
||||
@ -975,27 +973,35 @@ INT_PTR CALLBACK SettingsDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM)
|
||||
|
||||
switch (wParam)
|
||||
{
|
||||
case IDC_CHECK_FILEAUTODETECTION:
|
||||
case IDC_CHECK_FILEAUTODETECTION_ALL:
|
||||
case IDC_CHECK_FILEAUTODETECTION_CURRENT:
|
||||
{
|
||||
bool isChecked = isCheckedOrNot(IDC_CHECK_FILEAUTODETECTION);
|
||||
::EnableWindow(::GetDlgItem(_hSelf, IDC_CHECK_UPDATESILENTLY), isChecked);
|
||||
::EnableWindow(::GetDlgItem(_hSelf, IDC_CHECK_UPDATEGOTOEOF), isChecked);
|
||||
bool isAllChecked = isCheckedOrNot(IDC_CHECK_FILEAUTODETECTION_ALL);
|
||||
bool isCurrentChecked = isCheckedOrNot(IDC_CHECK_FILEAUTODETECTION_CURRENT);
|
||||
|
||||
::EnableWindow(::GetDlgItem(_hSelf, IDC_CHECK_UPDATESILENTLY), isAllChecked | isCurrentChecked);
|
||||
::EnableWindow(::GetDlgItem(_hSelf, IDC_CHECK_UPDATEGOTOEOF), isAllChecked | isCurrentChecked);
|
||||
|
||||
::EnableWindow(::GetDlgItem(_hSelf, IDC_CHECK_FILEAUTODETECTION_ALL), !isCurrentChecked);
|
||||
::EnableWindow(::GetDlgItem(_hSelf, IDC_CHECK_FILEAUTODETECTION_CURRENT), !isAllChecked);
|
||||
|
||||
bool isSilent = isCheckedOrNot(IDC_CHECK_UPDATESILENTLY);
|
||||
bool isGo2End = isCheckedOrNot(IDC_CHECK_UPDATEGOTOEOF);
|
||||
|
||||
ChangeDetect cd;
|
||||
int cd = cdDisabled;
|
||||
|
||||
if (!isChecked)
|
||||
cd = cdDisabled;
|
||||
else if (!isSilent && !isGo2End)
|
||||
cd = cdEnabled;
|
||||
else if (!isSilent && isGo2End)
|
||||
cd = cdGo2end;
|
||||
else if (isSilent && !isGo2End)
|
||||
cd = cdAutoUpdate;
|
||||
else //(isSilent && isGo2End)
|
||||
cd = cdAutoUpdateGo2end;
|
||||
if (isAllChecked | isCurrentChecked)
|
||||
{
|
||||
if (isAllChecked)
|
||||
cd |= cdEnabledAll;
|
||||
else
|
||||
cd |= cdEnabledCurrent;
|
||||
|
||||
if (isSilent)
|
||||
cd |= cdAutoUpdate;
|
||||
if (isGo2End)
|
||||
cd |= cdGo2end;
|
||||
}
|
||||
|
||||
nppGUI._fileAutoDetection = cd;
|
||||
}
|
||||
@ -1007,16 +1013,23 @@ INT_PTR CALLBACK SettingsDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM)
|
||||
bool isSilent = isCheckedOrNot(IDC_CHECK_UPDATESILENTLY);
|
||||
bool isGo2End = isCheckedOrNot(IDC_CHECK_UPDATEGOTOEOF);
|
||||
|
||||
ChangeDetect cd;
|
||||
bool isAllChecked = isCheckedOrNot(IDC_CHECK_FILEAUTODETECTION_ALL);
|
||||
bool isCurrentChecked = isCheckedOrNot(IDC_CHECK_FILEAUTODETECTION_CURRENT);
|
||||
|
||||
if (!isSilent && !isGo2End)
|
||||
cd = cdEnabled;
|
||||
else if (!isSilent && isGo2End)
|
||||
cd = cdGo2end;
|
||||
else if (isSilent && !isGo2End)
|
||||
cd = cdAutoUpdate;
|
||||
else //(isSilent && isGo2End)
|
||||
cd = cdAutoUpdateGo2end;
|
||||
int cd = cdDisabled;
|
||||
|
||||
if (isAllChecked | isCurrentChecked)
|
||||
{
|
||||
if (isAllChecked)
|
||||
cd |= cdEnabledAll;
|
||||
else
|
||||
cd |= cdEnabledCurrent;
|
||||
|
||||
if (isSilent)
|
||||
cd |= cdAutoUpdate;
|
||||
if (isGo2End)
|
||||
cd |= cdGo2end;
|
||||
}
|
||||
|
||||
nppGUI._fileAutoDetection = cd;
|
||||
}
|
||||
|
@ -162,14 +162,14 @@
|
||||
#define IDC_HISTORY_GB_STATIC (IDD_PREFERENCE_SETTING_BOX + 4)
|
||||
#define IDC_CHECK_DONTCHECKHISTORY (IDD_PREFERENCE_SETTING_BOX + 5)
|
||||
#define IDC_MAXNBFILE_STATIC (IDD_PREFERENCE_SETTING_BOX + 6)
|
||||
#define IDC_CHECK_FILEAUTODETECTION (IDD_PREFERENCE_SETTING_BOX + 7)
|
||||
#define IDC_CHECK_FILEAUTODETECTION_ALL (IDD_PREFERENCE_SETTING_BOX + 7)
|
||||
#define IDC_CHECK_MIN2SYSTRAY (IDD_PREFERENCE_SETTING_BOX + 8)
|
||||
#define IDC_CHECK_REMEMBERSESSION (IDD_PREFERENCE_SETTING_BOX + 9)
|
||||
#define IDC_TABSIZEVAL_STATIC (IDD_PREFERENCE_SETTING_BOX + 10)
|
||||
#define IDC_MAXNBFILEVAL_STATIC (IDD_PREFERENCE_SETTING_BOX + 11)
|
||||
#define IDC_FILEAUTODETECTION_STATIC (IDD_PREFERENCE_SETTING_BOX + 12)
|
||||
#define IDC_CHECK_UPDATESILENTLY (IDD_PREFERENCE_SETTING_BOX + 13)
|
||||
//#define IDC_BACKUP_GB_STATIC (IDD_PREFERENCE_SETTING_BOX + 14)
|
||||
#define IDC_CHECK_FILEAUTODETECTION_CURRENT (IDD_PREFERENCE_SETTING_BOX + 14)
|
||||
#define IDC_RADIO_BKNONE (IDD_PREFERENCE_SETTING_BOX + 15)
|
||||
#define IDC_RADIO_BKSIMPLE (IDD_PREFERENCE_SETTING_BOX + 16)
|
||||
#define IDC_RADIO_BKVERBOSE (IDD_PREFERENCE_SETTING_BOX + 17)
|
||||
|
Loading…
x
Reference in New Issue
Block a user