mirror of
https://github.com/notepad-plus-plus/notepad-plus-plus.git
synced 2025-07-27 15:54:17 +02:00
parent
6229e0f5d4
commit
61a1ca89ff
@ -179,6 +179,7 @@ public:
|
|||||||
bool fileClose(BufferID id = BUFFER_INVALID, int curView = -1); //use curView to override view to close from
|
bool fileClose(BufferID id = BUFFER_INVALID, int curView = -1); //use curView to override view to close from
|
||||||
bool fileCloseAll(bool doDeleteBackup, bool isSnapshotMode = false);
|
bool fileCloseAll(bool doDeleteBackup, bool isSnapshotMode = false);
|
||||||
bool fileCloseAllButCurrent();
|
bool fileCloseAllButCurrent();
|
||||||
|
void fileCloseAllButPinned();
|
||||||
bool fileCloseAllGiven(const std::vector<BufferViewInfo>& krvecBuffer);
|
bool fileCloseAllGiven(const std::vector<BufferViewInfo>& krvecBuffer);
|
||||||
bool fileCloseAllToLeft();
|
bool fileCloseAllToLeft();
|
||||||
bool fileCloseAllToRight();
|
bool fileCloseAllToRight();
|
||||||
|
@ -458,6 +458,7 @@ BEGIN
|
|||||||
POPUP "Close &Multiple Documents"
|
POPUP "Close &Multiple Documents"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "Close All but Active Document", IDM_FILE_CLOSEALL_BUT_CURRENT
|
MENUITEM "Close All but Active Document", IDM_FILE_CLOSEALL_BUT_CURRENT
|
||||||
|
MENUITEM "Close All but Pinned Documents", IDM_FILE_CLOSEALL_BUT_PINNED
|
||||||
MENUITEM "Close All to the Left", IDM_FILE_CLOSEALL_TOLEFT
|
MENUITEM "Close All to the Left", IDM_FILE_CLOSEALL_TOLEFT
|
||||||
MENUITEM "Close All to the Right", IDM_FILE_CLOSEALL_TORIGHT
|
MENUITEM "Close All to the Right", IDM_FILE_CLOSEALL_TORIGHT
|
||||||
MENUITEM "Close All Unchanged", IDM_FILE_CLOSEALL_UNCHANGED
|
MENUITEM "Close All Unchanged", IDM_FILE_CLOSEALL_UNCHANGED
|
||||||
|
@ -277,13 +277,18 @@ void Notepad_plus::command(int id)
|
|||||||
{
|
{
|
||||||
bool isSnapshotMode = NppParameters::getInstance().getNppGUI().isSnapshotMode();
|
bool isSnapshotMode = NppParameters::getInstance().getNppGUI().isSnapshotMode();
|
||||||
fileCloseAll(isSnapshotMode, false);
|
fileCloseAll(isSnapshotMode, false);
|
||||||
checkDocState();
|
checkDocState();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case IDM_FILE_CLOSEALL_BUT_CURRENT :
|
case IDM_FILE_CLOSEALL_BUT_CURRENT :
|
||||||
fileCloseAllButCurrent();
|
fileCloseAllButCurrent();
|
||||||
checkDocState();
|
checkDocState();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case IDM_FILE_CLOSEALL_BUT_PINNED :
|
||||||
|
fileCloseAllButPinned();
|
||||||
|
checkDocState();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case IDM_FILE_CLOSEALL_TOLEFT :
|
case IDM_FILE_CLOSEALL_TOLEFT :
|
||||||
@ -4058,6 +4063,7 @@ void Notepad_plus::command(int id)
|
|||||||
case IDM_FILE_CLOSE :
|
case IDM_FILE_CLOSE :
|
||||||
case IDM_FILE_CLOSEALL :
|
case IDM_FILE_CLOSEALL :
|
||||||
case IDM_FILE_CLOSEALL_BUT_CURRENT :
|
case IDM_FILE_CLOSEALL_BUT_CURRENT :
|
||||||
|
case IDM_FILE_CLOSEALL_BUT_PINNED :
|
||||||
case IDM_FILE_CLOSEALL_TOLEFT :
|
case IDM_FILE_CLOSEALL_TOLEFT :
|
||||||
case IDM_FILE_CLOSEALL_TORIGHT :
|
case IDM_FILE_CLOSEALL_TORIGHT :
|
||||||
case IDM_FILE_CLOSEALL_UNCHANGED:
|
case IDM_FILE_CLOSEALL_UNCHANGED:
|
||||||
|
@ -1436,6 +1436,41 @@ bool Notepad_plus::fileCloseAllToRight()
|
|||||||
return fileCloseAllGiven(bufsToClose);
|
return fileCloseAllGiven(bufsToClose);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Notepad_plus::fileCloseAllButPinned()
|
||||||
|
{
|
||||||
|
std::vector<BufferViewInfo> bufsToClose;
|
||||||
|
|
||||||
|
int iPinned = -1;
|
||||||
|
for (int j = 0; j < int(_mainDocTab.nbItem()); ++j)
|
||||||
|
{
|
||||||
|
if (_mainDocTab.getBufferByIndex(j)->isPinned())
|
||||||
|
iPinned++;
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = int(_mainDocTab.nbItem()) - 1; i > iPinned; i--)
|
||||||
|
{
|
||||||
|
bufsToClose.push_back(BufferViewInfo(_mainDocTab.getBufferByIndex(i), MAIN_VIEW));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
iPinned = -1;
|
||||||
|
for (int j = 0; j < int(_subDocTab.nbItem()); ++j)
|
||||||
|
{
|
||||||
|
if (_subDocTab.getBufferByIndex(j)->isPinned())
|
||||||
|
iPinned++;
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
for (int i = int(_subDocTab.nbItem()) - 1; i > iPinned; i--)
|
||||||
|
{
|
||||||
|
bufsToClose.push_back(BufferViewInfo(_subDocTab.getBufferByIndex(i), SUB_VIEW));
|
||||||
|
}
|
||||||
|
|
||||||
|
fileCloseAllGiven(bufsToClose);
|
||||||
|
}
|
||||||
|
|
||||||
bool Notepad_plus::fileCloseAllUnchanged()
|
bool Notepad_plus::fileCloseAllUnchanged()
|
||||||
{
|
{
|
||||||
// Indexes must go from high to low to deal with the fact that when one index is closed, any remaining
|
// Indexes must go from high to low to deal with the fact that when one index is closed, any remaining
|
||||||
@ -1472,10 +1507,10 @@ bool Notepad_plus::fileCloseAllButCurrent()
|
|||||||
for (size_t i = 0; i < _mainDocTab.nbItem() && !noSaveToAll; ++i)
|
for (size_t i = 0; i < _mainDocTab.nbItem() && !noSaveToAll; ++i)
|
||||||
{
|
{
|
||||||
BufferID id = _mainDocTab.getBufferByIndex(i);
|
BufferID id = _mainDocTab.getBufferByIndex(i);
|
||||||
|
Buffer* buf = MainFileManager.getBufferByID(id);
|
||||||
if (id == current)
|
if (id == current)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
Buffer * buf = MainFileManager.getBufferByID(id);
|
|
||||||
if (buf->isUntitled() && buf->docLength() == 0)
|
if (buf->isUntitled() && buf->docLength() == 0)
|
||||||
{
|
{
|
||||||
// Do nothing
|
// Do nothing
|
||||||
|
@ -571,6 +571,7 @@ BOOL Notepad_plus::notify(SCNotification *notification)
|
|||||||
|
|
||||||
itemUnitArray.push_back(MenuItemUnit(IDM_FILE_CLOSE, L"Close"));
|
itemUnitArray.push_back(MenuItemUnit(IDM_FILE_CLOSE, L"Close"));
|
||||||
itemUnitArray.push_back(MenuItemUnit(IDM_FILE_CLOSEALL_BUT_CURRENT, L"Close All BUT This", L"Close Multiple Tabs"));
|
itemUnitArray.push_back(MenuItemUnit(IDM_FILE_CLOSEALL_BUT_CURRENT, L"Close All BUT This", L"Close Multiple Tabs"));
|
||||||
|
itemUnitArray.push_back(MenuItemUnit(IDM_FILE_CLOSEALL_BUT_PINNED, L"Close All BUT Pinned", L"Close Multiple Tabs"));
|
||||||
itemUnitArray.push_back(MenuItemUnit(IDM_FILE_CLOSEALL_TOLEFT, L"Close All to the Left", L"Close Multiple Tabs"));
|
itemUnitArray.push_back(MenuItemUnit(IDM_FILE_CLOSEALL_TOLEFT, L"Close All to the Left", L"Close Multiple Tabs"));
|
||||||
itemUnitArray.push_back(MenuItemUnit(IDM_FILE_CLOSEALL_TORIGHT, L"Close All to the Right", L"Close Multiple Tabs"));
|
itemUnitArray.push_back(MenuItemUnit(IDM_FILE_CLOSEALL_TORIGHT, L"Close All to the Right", L"Close Multiple Tabs"));
|
||||||
itemUnitArray.push_back(MenuItemUnit(IDM_FILE_CLOSEALL_UNCHANGED, L"Close All Unchanged", L"Close Multiple Tabs"));
|
itemUnitArray.push_back(MenuItemUnit(IDM_FILE_CLOSEALL_UNCHANGED, L"Close All Unchanged", L"Close Multiple Tabs"));
|
||||||
|
@ -72,6 +72,7 @@ static const WinMenuKeyDefinition winKeyDefs[] =
|
|||||||
{ VK_W, IDM_FILE_CLOSE, true, false, false, nullptr },
|
{ VK_W, IDM_FILE_CLOSE, true, false, false, nullptr },
|
||||||
{ VK_W, IDM_FILE_CLOSEALL, true, false, true, nullptr },
|
{ VK_W, IDM_FILE_CLOSEALL, true, false, true, nullptr },
|
||||||
{ VK_NULL, IDM_FILE_CLOSEALL_BUT_CURRENT, false, false, false, nullptr },
|
{ VK_NULL, IDM_FILE_CLOSEALL_BUT_CURRENT, false, false, false, nullptr },
|
||||||
|
{ VK_NULL, IDM_FILE_CLOSEALL_BUT_PINNED, false, false, false, nullptr },
|
||||||
{ VK_NULL, IDM_FILE_CLOSEALL_TOLEFT, false, false, false, nullptr },
|
{ VK_NULL, IDM_FILE_CLOSEALL_TOLEFT, false, false, false, nullptr },
|
||||||
{ VK_NULL, IDM_FILE_CLOSEALL_TORIGHT, false, false, false, nullptr },
|
{ VK_NULL, IDM_FILE_CLOSEALL_TORIGHT, false, false, false, nullptr },
|
||||||
{ VK_NULL, IDM_FILE_CLOSEALL_UNCHANGED, false, false, false, nullptr },
|
{ VK_NULL, IDM_FILE_CLOSEALL_UNCHANGED, false, false, false, nullptr },
|
||||||
|
@ -47,10 +47,11 @@
|
|||||||
#define IDM_FILE_OPEN_DEFAULT_VIEWER (IDM_FILE + 23)
|
#define IDM_FILE_OPEN_DEFAULT_VIEWER (IDM_FILE + 23)
|
||||||
#define IDM_FILE_CLOSEALL_UNCHANGED (IDM_FILE + 24)
|
#define IDM_FILE_CLOSEALL_UNCHANGED (IDM_FILE + 24)
|
||||||
#define IDM_FILE_CONTAININGFOLDERASWORKSPACE (IDM_FILE + 25)
|
#define IDM_FILE_CONTAININGFOLDERASWORKSPACE (IDM_FILE + 25)
|
||||||
|
#define IDM_FILE_CLOSEALL_BUT_PINNED (IDM_FILE + 26)
|
||||||
// IMPORTANT: If list above is modified, you have to change the following values:
|
// IMPORTANT: If list above is modified, you have to change the following values:
|
||||||
|
|
||||||
// To be updated if new menu item(s) is (are) added in menu "File"
|
// To be updated if new menu item(s) is (are) added in menu "File"
|
||||||
#define IDM_FILEMENU_LASTONE IDM_FILE_CONTAININGFOLDERASWORKSPACE
|
#define IDM_FILEMENU_LASTONE IDM_FILE_CLOSEALL_BUT_PINNED
|
||||||
|
|
||||||
// 0 based position of command "Exit" including the bars in the file menu
|
// 0 based position of command "Exit" including the bars in the file menu
|
||||||
// and without counting "Recent files history" items
|
// and without counting "Recent files history" items
|
||||||
|
Loading…
x
Reference in New Issue
Block a user