1 Star 0 Fork 0

Notepad-- Community/filesearch

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
filesearchexport.cpp 2.95 KB
一键复制 编辑 原始数据 按行查看 历史
爬山虎 提交于 2023-12-16 15:15 +08:00 . 提交全部代码

//文件高级查找的插件。可以支持文件名、文件后缀、文件正则查找、文件大小等查找。
//方便找到对应的这些文件,然后进行清理。
#include <qobject.h>
#include <qstring.h>
#include <pluginGl.h>
#include <functional>
#include <qsciscintilla.h>
#include <QCoreApplication>
#include "instanceobj.h"
#ifdef WIN32
#include <Windows.h>
#endif
#define NDD_EXPORTDLL
#if defined(Q_OS_WIN)
#if defined(NDD_EXPORTDLL)
#define NDD_EXPORT __declspec(dllexport)
#else
#define NDD_EXPORT __declspec(dllimport)
#endif
#endif
#ifdef __cplusplus
extern "C" {
#endif
NDD_EXPORT bool NDD_PROC_IDENTIFY(NDD_PROC_DATA* pProcData);
NDD_EXPORT int NDD_PROC_MAIN(QWidget* pNotepad, const QString& strFileName, std::function<QsciScintilla* (QWidget*)>getCurEdit, std::function<bool(QWidget* ,int, void*)> pluginCallBack, NDD_PROC_DATA* procData);
#ifdef __cplusplus
}
#endif
std::function<QsciScintilla* (QWidget*)> s_getCurEdit;
std::function<bool (QWidget*, int, void*)> s_invokeMainFun;
bool NDD_PROC_IDENTIFY(NDD_PROC_DATA* pProcData)
{
if(pProcData == NULL)
{
return false;
}
pProcData->m_strPlugName = QCoreApplication::tr("File Search");
pProcData->m_strComment = QCoreApplication::tr("Advanced File Search");
pProcData->m_version = QString("v1.0");
pProcData->m_auther = QString("zuowei.yin");
pProcData->m_menuType = 0;
return true;
}
//则点击菜单栏按钮时,会自动调用到该插件的入口点函数。
//pNotepad:就是CCNotepad的主界面指针
//strFileName:当前插件DLL的全路径,如果不关心,则可以不使用
//getCurEdit:从NDD主程序传递过来的仿函数,通过该函数获取当前编辑框操作对象QsciScintilla
//pProcData:如果pProcData->m_menuType = 0 ,则该指针为空;如果pProcData->m_menuType = 1,则该指针有值。目前需要关心s_procData.m_rootMenu
//开发者可以在该菜单下面,自行创建二级菜单
int NDD_PROC_MAIN(QWidget* pNotepad, const QString &strFileName, std::function<QsciScintilla*(QWidget*)>getCurEdit, std::function<bool(QWidget*,int, void*)> pluginCallBack,NDD_PROC_DATA* pProcData)
{
InstanceObj* pInstanse = nullptr;
//务必拷贝一份pProcData,在外面会释放。
if (pProcData != nullptr)
{
pInstanse = new InstanceObj(pNotepad);
pInstanse->setObjectName("nddplg");
}
else
{
return -1;
}
s_getCurEdit = getCurEdit;
s_invokeMainFun = pluginCallBack;
QObject::connect(pProcData->m_pAction, &QAction::triggered, pInstanse, &InstanceObj::doMainWork, Qt::UniqueConnection);
return 0;
}
#ifdef WIN32
BOOL WINAPI DllMain(HINSTANCE hInst, DWORD fdwReason, LPVOID lpvReserved) {
switch (fdwReason) {
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
case DLL_PROCESS_DETACH:
if (NULL == lpvReserved) {
}
break;
}
return TRUE;
}
#else
void onDllUnload(void)
{
}
#endif
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/ndd-community/filesearch.git
git@gitee.com:ndd-community/filesearch.git
ndd-community
filesearch
filesearch
master

搜索帮助