Add hits in-progress increased number to Search Progress dialog

Fix #13364, close #13404
This commit is contained in:
Alan Kilborn 2023-03-24 10:59:24 -04:00 committed by Don Ho
parent 7b4e700d49
commit 508b3fabd6
4 changed files with 52 additions and 21 deletions

View File

@ -1642,6 +1642,7 @@ Find in all files but exclude all folders log or logs recursively:
<summary-nbsel1 value=" selected characters ("/>
<summary-nbsel2 value=" bytes) in "/>
<summary-nbrange value=" ranges"/>
<progress-hits-title value="Hits:"/>
<progress-cancel-button value="Cancel"/>
<progress-cancel-info value="Cancelling operation, please wait..."/>
<find-in-files-progress-title value="Find In Files progress..."/>

View File

@ -1892,11 +1892,11 @@ bool Notepad_plus::replaceInFilelist(std::vector<generic_string> & fileNames)
if (i == updateOnCount)
{
updateOnCount += filesPerPercent;
progress.setPercent(int32_t((i * 100) / filesCount), fileNames.at(i).c_str());
progress.setPercent(int32_t((i * 100) / filesCount), fileNames.at(i).c_str(), nbTotal);
}
else
{
progress.setInfo(fileNames.at(i).c_str());
progress.setInfo(fileNames.at(i).c_str(), nbTotal);
}
}
@ -1977,11 +1977,11 @@ bool Notepad_plus::findInFinderFiles(FindersInfo *findInFolderInfo)
if (i == updateOnCount)
{
updateOnCount += filesPerPercent;
progress.setPercent(int32_t((i * 100) / filesCount), fileNames.at(i).c_str());
progress.setPercent(int32_t((i * 100) / filesCount), fileNames.at(i).c_str(), nbTotal);
}
else
{
progress.setInfo(fileNames.at(i).c_str());
progress.setInfo(fileNames.at(i).c_str(), nbTotal);
}
}
progress.close();
@ -2069,11 +2069,11 @@ bool Notepad_plus::findInFilelist(std::vector<generic_string> & fileNames)
if (i == updateOnCount)
{
updateOnCount += filesPerPercent;
progress.setPercent(int32_t((i * 100) / filesCount), fileNames.at(i).c_str());
progress.setPercent(int32_t((i * 100) / filesCount), fileNames.at(i).c_str(), nbTotal);
}
else
{
progress.setInfo(fileNames.at(i).c_str());
progress.setInfo(fileNames.at(i).c_str(), nbTotal);
}
}

View File

@ -5573,12 +5573,30 @@ void Progress::close()
}
void Progress::setPercent(unsigned percent, const TCHAR *fileName) const
void Progress::setPercent(unsigned percent, const TCHAR* fileName, int nbHitsSoFar) const
{
if (_hwnd)
{
::PostMessage(_hPBar, PBM_SETPOS, percent, 0);
::SendMessage(_hPText, WM_SETTEXT, 0, reinterpret_cast<LPARAM>(fileName));
::SendMessage(_hPathText, WM_SETTEXT, 0, reinterpret_cast<LPARAM>(fileName));
TCHAR str[16];
_itow(nbHitsSoFar, str, 10);
::SendMessage(_hRunningHitsText, WM_SETTEXT, 0, reinterpret_cast<LPARAM>(str));
}
}
void Progress::setInfo(const TCHAR* info, int nbHitsSoFar) const
{
if (_hwnd)
{
::SendMessage(_hPathText, WM_SETTEXT, 0, reinterpret_cast<LPARAM>(info));
if (nbHitsSoFar != -1)
{
TCHAR str[16];
_itow(nbHitsSoFar, str, 10);
::SendMessage(_hRunningHitsText, WM_SETTEXT, 0, reinterpret_cast<LPARAM>(str));
}
}
}
@ -5646,14 +5664,24 @@ int Progress::createProgressWindow()
int yTextPos = dpiManager.scaleY(5);
auto ctrlWidth = width - widthPadding - xStartPos;
_hPText = ::CreateWindowEx(0, TEXT("STATIC"), TEXT(""),
_hPathText = ::CreateWindowEx(0, TEXT("STATIC"), TEXT(""),
WS_CHILD | WS_VISIBLE | SS_PATHELLIPSIS,
xStartPos, yTextPos,
ctrlWidth, textHeight, _hwnd, NULL, _hInst, NULL);
HFONT hf = (HFONT)::GetStockObject(DEFAULT_GUI_FONT);
if (hf)
::SendMessage(_hPText, WM_SETFONT, reinterpret_cast<WPARAM>(hf), MAKELPARAM(TRUE, 0));
NativeLangSpeaker* pNativeSpeaker = (NppParameters::getInstance()).getNativeLangSpeaker();
generic_string hits = pNativeSpeaker->getLocalizedStrFromID("progress-hits-title", TEXT("Hits:"));
_hRunningHitsStaticText = ::CreateWindowEx(0, TEXT("STATIC"), hits.c_str(),
WS_CHILD | WS_VISIBLE | SS_RIGHT,
xStartPos, yTextPos + textHeight * 2,
75, textHeight,
_hwnd, NULL, _hInst, NULL);
_hRunningHitsText = ::CreateWindowEx(0, TEXT("STATIC"), TEXT(""),
WS_CHILD | WS_VISIBLE,
xStartPos + 75 + 2, yTextPos + textHeight * 2,
70, textHeight,
_hwnd, NULL, _hInst, NULL);
_hPBar = ::CreateWindowEx(0, PROGRESS_CLASS, TEXT("Progress Bar"),
WS_CHILD | WS_VISIBLE | PBS_SMOOTH,
@ -5673,7 +5701,6 @@ int Progress::createProgressWindow()
::SendMessage(_hPBar, PBM_SETBARCOLOR, 0, static_cast<LPARAM>(NppDarkMode::getDarkerTextColor()));
}
NativeLangSpeaker *pNativeSpeaker = (NppParameters::getInstance()).getNativeLangSpeaker();
generic_string cancel = pNativeSpeaker->getLocalizedStrFromID("progress-cancel-button", TEXT("Cancel"));
_hBtn = ::CreateWindowEx(0, TEXT("BUTTON"), cancel.c_str(),
@ -5682,8 +5709,14 @@ int Progress::createProgressWindow()
cBTNwidth, cBTNheight,
_hwnd, NULL, _hInst, NULL);
HFONT hf = (HFONT)::GetStockObject(DEFAULT_GUI_FONT);
if (hf)
{
::SendMessage(_hPathText, WM_SETFONT, reinterpret_cast<WPARAM>(hf), MAKELPARAM(TRUE, 0));
::SendMessage(_hRunningHitsStaticText, WM_SETFONT, reinterpret_cast<WPARAM>(hf), MAKELPARAM(TRUE, 0));
::SendMessage(_hRunningHitsText, WM_SETFONT, reinterpret_cast<WPARAM>(hf), MAKELPARAM(TRUE, 0));
::SendMessage(_hBtn, WM_SETFONT, reinterpret_cast<WPARAM>(hf), MAKELPARAM(TRUE, 0));
}
NppDarkMode::autoSubclassAndThemeChildControls(_hwnd);
NppDarkMode::setDarkTitleBar(_hwnd);

View File

@ -568,13 +568,8 @@ public:
return false;
}
void setInfo(const TCHAR *info) const
{
if (_hwnd)
::SendMessage(_hPText, WM_SETTEXT, 0, reinterpret_cast<LPARAM>(info));
}
void setPercent(unsigned percent, const TCHAR *fileName) const;
void setPercent(unsigned percent, const TCHAR* fileName, int nbHitsSoFar) const;
void setInfo(const TCHAR* info, int nbHitsSoFar = -1) const;
private:
static const TCHAR cClassName[];
@ -599,7 +594,9 @@ private:
TCHAR _header[128] = {'\0'};
HANDLE _hThread = nullptr;
HANDLE _hActiveState = nullptr;
HWND _hPText = nullptr;
HWND _hPathText = nullptr;
HWND _hRunningHitsStaticText = nullptr;
HWND _hRunningHitsText = nullptr;
HWND _hPBar = nullptr;
HWND _hBtn = nullptr;
};