Sort plugin menu by plugin name
This commit is contained in:
parent
7853876faa
commit
d64a525f3e
@ -27,6 +27,7 @@
|
|||||||
|
|
||||||
|
|
||||||
#include <shlwapi.h>
|
#include <shlwapi.h>
|
||||||
|
#include <algorithm>
|
||||||
#include "PluginsManager.h"
|
#include "PluginsManager.h"
|
||||||
#include "resource.h"
|
#include "resource.h"
|
||||||
|
|
||||||
@ -116,6 +117,7 @@ int PluginsManager::loadPlugin(const TCHAR *pluginFilePath, vector<generic_strin
|
|||||||
pi->_pFuncGetName = (PFUNCGETNAME)GetProcAddress(pi->_hLib, "getName");
|
pi->_pFuncGetName = (PFUNCGETNAME)GetProcAddress(pi->_hLib, "getName");
|
||||||
if (!pi->_pFuncGetName)
|
if (!pi->_pFuncGetName)
|
||||||
throw generic_string(TEXT("Missing \"getName\" function"));
|
throw generic_string(TEXT("Missing \"getName\" function"));
|
||||||
|
pi->_funcName = pi->_pFuncGetName();
|
||||||
|
|
||||||
pi->_pBeNotified = (PBENOTIFIED)GetProcAddress(pi->_hLib, "beNotified");
|
pi->_pBeNotified = (PBENOTIFIED)GetProcAddress(pi->_hLib, "beNotified");
|
||||||
if (!pi->_pBeNotified)
|
if (!pi->_pBeNotified)
|
||||||
@ -300,6 +302,8 @@ bool PluginsManager::loadPlugins(const TCHAR *dir)
|
|||||||
for (size_t j = 0, len = dll2Remove.size() ; j < len ; ++j)
|
for (size_t j = 0, len = dll2Remove.size() ; j < len ; ++j)
|
||||||
::DeleteFile(dll2Remove[j].c_str());
|
::DeleteFile(dll2Remove[j].c_str());
|
||||||
|
|
||||||
|
std::sort(_pluginInfos.begin(), _pluginInfos.end(), [](const PluginInfo *a, const PluginInfo *b) { return a->_funcName < b->_funcName; });
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -334,7 +338,7 @@ bool PluginsManager::getShortcutByCmdID(int cmdID, ShortcutKey *sk)
|
|||||||
void PluginsManager::addInMenuFromPMIndex(int i)
|
void PluginsManager::addInMenuFromPMIndex(int i)
|
||||||
{
|
{
|
||||||
vector<PluginCmdShortcut> & pluginCmdSCList = (NppParameters::getInstance())->getPluginCommandList();
|
vector<PluginCmdShortcut> & pluginCmdSCList = (NppParameters::getInstance())->getPluginCommandList();
|
||||||
::InsertMenu(_hPluginsMenu, i, MF_BYPOSITION | MF_POPUP, (UINT_PTR)_pluginInfos[i]->_pluginMenu, _pluginInfos[i]->_pFuncGetName());
|
::InsertMenu(_hPluginsMenu, i, MF_BYPOSITION | MF_POPUP, (UINT_PTR)_pluginInfos[i]->_pluginMenu, _pluginInfos[i]->_funcName.c_str());
|
||||||
|
|
||||||
unsigned short j = 0;
|
unsigned short j = 0;
|
||||||
for ( ; j < _pluginInfos[i]->_nbFuncItem ; ++j)
|
for ( ; j < _pluginInfos[i]->_nbFuncItem ; ++j)
|
||||||
|
@ -80,6 +80,7 @@ struct PluginInfo
|
|||||||
FuncItem *_funcItems = NULL;
|
FuncItem *_funcItems = NULL;
|
||||||
int _nbFuncItem = 0;
|
int _nbFuncItem = 0;
|
||||||
generic_string _moduleName;
|
generic_string _moduleName;
|
||||||
|
generic_string _funcName;
|
||||||
};
|
};
|
||||||
|
|
||||||
class PluginsManager
|
class PluginsManager
|
||||||
|
Loading…
Reference in New Issue
Block a user