diff --git a/PowerEditor/installer/nativeLang/english.xml b/PowerEditor/installer/nativeLang/english.xml index be7caada0..9467914c9 100644 --- a/PowerEditor/installer/nativeLang/english.xml +++ b/PowerEditor/installer/nativeLang/english.xml @@ -1378,6 +1378,7 @@ Find in all files except exe, obj && log: + diff --git a/PowerEditor/src/ScintillaComponent/FindReplaceDlg.cpp b/PowerEditor/src/ScintillaComponent/FindReplaceDlg.cpp index 60c444c8b..bdbc1c137 100644 --- a/PowerEditor/src/ScintillaComponent/FindReplaceDlg.cpp +++ b/PowerEditor/src/ScintillaComponent/FindReplaceDlg.cpp @@ -3990,6 +3990,23 @@ void Finder::openAll() } } +void Finder::copyPathnames() +{ + generic_string toClipboard; + for (auto&& path : getResultFilePaths()) + { + toClipboard += path + TEXT("\r\n"); + } + if (!toClipboard.empty()) + { + if (!str2Clipboard(toClipboard, _hSelf)) + { + assert(false); + ::MessageBox(NULL, TEXT("Error placing pathnames into clipboard."), TEXT("Notepad++"), MB_ICONINFORMATION); + } + } +} + void Finder::wrapLongLinesToggle() { _longLinesAreWrapped = !_longLinesAreWrapped; @@ -4242,6 +4259,12 @@ INT_PTR CALLBACK Finder::run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam) return TRUE; } + case NPPM_INTERNAL_SCINTILLAFINDERCOPYPATHS: + { + copyPathnames(); + return TRUE; + } + case NPPM_INTERNAL_SCINTILLAFINDERSELECTALL : { _scintView.execute(SCI_SELECTALL); @@ -4296,6 +4319,7 @@ INT_PTR CALLBACK Finder::run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam) generic_string uncollapseAll = pNativeSpeaker->getLocalizedStrFromID("finder-uncollapse-all", TEXT("Uncollapse all")); generic_string copyLines = pNativeSpeaker->getLocalizedStrFromID("finder-copy", TEXT("Copy Selected Line(s)")); generic_string copyVerbatim = pNativeSpeaker->getLocalizedStrFromID("finder-copy-verbatim", TEXT("Copy")); + generic_string copyPaths = pNativeSpeaker->getLocalizedStrFromID("finder-copy-paths", TEXT("Copy Pathname(s)")); generic_string selectAll = pNativeSpeaker->getLocalizedStrFromID("finder-select-all", TEXT("Select all")); generic_string clearAll = pNativeSpeaker->getLocalizedStrFromID("finder-clear-all", TEXT("Clear all")); generic_string purgeForEverySearch = pNativeSpeaker->getLocalizedStrFromID("finder-purge-for-every-search", TEXT("Purge for every search")); @@ -4311,6 +4335,7 @@ INT_PTR CALLBACK Finder::run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam) tmp.push_back(MenuItemUnit(0, TEXT("Separator"))); tmp.push_back(MenuItemUnit(NPPM_INTERNAL_SCINTILLAFINDERCOPYVERBATIM, copyVerbatim)); tmp.push_back(MenuItemUnit(NPPM_INTERNAL_SCINTILLAFINDERCOPY, copyLines)); + tmp.push_back(MenuItemUnit(NPPM_INTERNAL_SCINTILLAFINDERCOPYPATHS, copyPaths)); tmp.push_back(MenuItemUnit(NPPM_INTERNAL_SCINTILLAFINDERSELECTALL, selectAll)); tmp.push_back(MenuItemUnit(NPPM_INTERNAL_SCINTILLAFINDERCLEARALL, clearAll)); tmp.push_back(MenuItemUnit(0, TEXT("Separator"))); diff --git a/PowerEditor/src/ScintillaComponent/FindReplaceDlg.h b/PowerEditor/src/ScintillaComponent/FindReplaceDlg.h index f89ada393..8c30c242b 100644 --- a/PowerEditor/src/ScintillaComponent/FindReplaceDlg.h +++ b/PowerEditor/src/ScintillaComponent/FindReplaceDlg.h @@ -126,6 +126,7 @@ public: void wrapLongLinesToggle(); void purgeToggle(); void copy(); + void copyPathnames(); void beginNewFilesSearch(); void finishFilesSearch(int count, int searchedCount, bool isMatchLines, bool searchedEntireNotSelection); void gotoNextFoundResult(int direction); diff --git a/PowerEditor/src/resource.h b/PowerEditor/src/resource.h index 043624101..b5b3f11e4 100644 --- a/PowerEditor/src/resource.h +++ b/PowerEditor/src/resource.h @@ -463,6 +463,7 @@ #define NPPM_INTERNAL_SCINTILLAFINDERPURGE (NOTEPADPLUS_USER_INTERNAL + 57) #define NPPM_INTERNAL_UPDATETEXTZONEPADDING (NOTEPADPLUS_USER_INTERNAL + 58) #define NPPM_INTERNAL_REFRESHDARKMODE (NOTEPADPLUS_USER_INTERNAL + 59) + #define NPPM_INTERNAL_SCINTILLAFINDERCOPYPATHS (NOTEPADPLUS_USER_INTERNAL + 60) // See Notepad_plus_msgs.h //#define NOTEPADPLUS_USER (WM_USER + 1000)