forked from openkylin/ukui-search
Update search plugin interface, add stop search function.
This commit is contained in:
parent
2e668d374a
commit
655fe1ae9f
|
@ -31,9 +31,7 @@ SearchResultManager::SearchResultManager(const QString& plugin_id, QObject *pare
|
|||
|
||||
void SearchResultManager::startSearch(const QString &keyword)
|
||||
{
|
||||
//NEW_TODO 加锁?停止线程?重新搜索?
|
||||
// stopSearch();
|
||||
qDebug()<<m_plugin_id<<"------------------>start by others";
|
||||
qDebug()<<m_plugin_id<<"started";
|
||||
if(! m_get_result_thread->isRunning()) {
|
||||
m_get_result_thread->start();
|
||||
}
|
||||
|
@ -48,8 +46,10 @@ void SearchResultManager::startSearch(const QString &keyword)
|
|||
void SearchResultManager::stopSearch()
|
||||
{
|
||||
if(m_get_result_thread->isRunning()) {
|
||||
qDebug()<<m_plugin_id<<"-------------->stopped by others";
|
||||
qDebug()<<m_plugin_id<<"stopped";
|
||||
m_get_result_thread->stop();
|
||||
SearchPluginIface *plugin = SearchPluginManager::getInstance()->getPlugin(m_plugin_id);
|
||||
plugin->stopSearch();
|
||||
// m_get_result_thread->quit();
|
||||
}
|
||||
}
|
||||
|
@ -70,7 +70,6 @@ void ReceiveResultThread::stop()
|
|||
this->quit();
|
||||
}
|
||||
|
||||
//NEW_TODO 还未对队列加锁
|
||||
void ReceiveResultThread::run()
|
||||
{
|
||||
QTimer * m_timer = new QTimer;
|
||||
|
@ -86,7 +85,7 @@ void ReceiveResultThread::run()
|
|||
}
|
||||
if(m_timer->isActive() && m_timer->remainingTime() < 0.01) {
|
||||
this->requestInterruption();
|
||||
qWarning()<<"-------------->stopped by self";
|
||||
qWarning()<<"-------------->stopped by itself";
|
||||
}
|
||||
if(is_empty && !m_timer->isActive()) {
|
||||
m_timer->start();
|
||||
|
|
|
@ -44,6 +44,13 @@ void AppSearchPlugin::KeywordSearch(QString keyword, DataQueue<SearchPluginIface
|
|||
m_pool.start(appsearch);
|
||||
}
|
||||
|
||||
void AppSearchPlugin::stopSearch()
|
||||
{
|
||||
m_mutex.lock();
|
||||
++uniqueSymbol;
|
||||
m_mutex.unlock();
|
||||
}
|
||||
|
||||
QList<SearchPluginIface::Actioninfo> AppSearchPlugin::getActioninfo(int type)
|
||||
{
|
||||
switch (type) {
|
||||
|
|
|
@ -30,6 +30,7 @@ public:
|
|||
QString getPluginName();
|
||||
|
||||
void KeywordSearch(QString keyword,DataQueue<ResultInfo> *searchResult);
|
||||
void stopSearch();
|
||||
QList<SearchPluginIface::Actioninfo> getActioninfo(int type);
|
||||
void openAction(int actionkey, QString key, int type);
|
||||
// bool isPreviewEnable(QString key, int type);
|
||||
|
|
|
@ -49,6 +49,13 @@ void UkuiSearch::FileSearchPlugin::KeywordSearch(QString keyword, DataQueue<Resu
|
|||
}
|
||||
}
|
||||
|
||||
void FileSearchPlugin::stopSearch()
|
||||
{
|
||||
SearchManager::m_mutexFile.lock();
|
||||
++SearchManager::uniqueSymbolFile;
|
||||
SearchManager::m_mutexFile.unlock();
|
||||
}
|
||||
|
||||
QList<SearchPluginIface::Actioninfo> FileSearchPlugin::getActioninfo(int type)
|
||||
{
|
||||
return m_actionInfo;
|
||||
|
@ -250,6 +257,13 @@ void UkuiSearch::DirSearchPlugin::KeywordSearch(QString keyword, DataQueue<Resul
|
|||
}
|
||||
}
|
||||
|
||||
void DirSearchPlugin::stopSearch()
|
||||
{
|
||||
SearchManager::m_mutexDir.lock();
|
||||
++SearchManager::uniqueSymbolDir;
|
||||
SearchManager::m_mutexDir.unlock();
|
||||
}
|
||||
|
||||
QList<SearchPluginIface::Actioninfo> DirSearchPlugin::getActioninfo(int type)
|
||||
{
|
||||
return m_actionInfo;
|
||||
|
@ -423,6 +437,13 @@ void UkuiSearch::FileContengSearchPlugin::KeywordSearch(QString keyword, DataQue
|
|||
}
|
||||
}
|
||||
|
||||
void FileContengSearchPlugin::stopSearch()
|
||||
{
|
||||
SearchManager::m_mutexContent.lock();
|
||||
++SearchManager::uniqueSymbolContent;
|
||||
SearchManager::m_mutexContent.unlock();
|
||||
}
|
||||
|
||||
QList<SearchPluginIface::Actioninfo> FileContengSearchPlugin::getActioninfo(int type)
|
||||
{
|
||||
return m_actionInfo;
|
||||
|
|
|
@ -31,6 +31,7 @@ public:
|
|||
QString getPluginName();
|
||||
|
||||
void KeywordSearch(QString keyword,DataQueue<ResultInfo> *searchResult);
|
||||
void stopSearch();
|
||||
QList<SearchPluginIface::Actioninfo> getActioninfo(int type);
|
||||
void openAction(int actionkey, QString key, int type = 0);
|
||||
// bool isPreviewEnable(QString key, int type);
|
||||
|
@ -85,6 +86,7 @@ public:
|
|||
QString getPluginName();
|
||||
|
||||
void KeywordSearch(QString keyword,DataQueue<ResultInfo> *searchResult);
|
||||
void stopSearch();
|
||||
QList<SearchPluginIface::Actioninfo> getActioninfo(int type);
|
||||
void openAction(int actionkey, QString key, int type = 0);
|
||||
// bool isPreviewEnable(QString key, int type);
|
||||
|
@ -138,6 +140,7 @@ public:
|
|||
QString getPluginName();
|
||||
|
||||
void KeywordSearch(QString keyword,DataQueue<ResultInfo> *searchResult);
|
||||
void stopSearch();
|
||||
QList<SearchPluginIface::Actioninfo> getActioninfo(int type);
|
||||
void openAction(int actionkey, QString key, int type = 0);
|
||||
// bool isPreviewEnable(QString key, int type);
|
||||
|
|
|
@ -57,6 +57,13 @@ void MailSearchPlugin::KeywordSearch(QString keyword, DataQueue<SearchPluginIfac
|
|||
m_pool.start(mailSearch);
|
||||
}
|
||||
|
||||
void MailSearchPlugin::stopSearch()
|
||||
{
|
||||
m_mutex.lock();
|
||||
++uniqueSymbol;
|
||||
m_mutex.unlock();
|
||||
}
|
||||
|
||||
QList<SearchPluginIface::Actioninfo> MailSearchPlugin::getActioninfo(int type)
|
||||
{
|
||||
return m_actionInfo;
|
||||
|
|
|
@ -51,6 +51,7 @@ public:
|
|||
|
||||
QString getPluginName();
|
||||
void KeywordSearch(QString keyword, DataQueue<ResultInfo> *searchResult);
|
||||
void stopSearch();
|
||||
QList<SearchPluginIface::Actioninfo> getActioninfo(int type);
|
||||
void openAction(int actionkey, QString key, int type);
|
||||
QWidget *detailPage(const ResultInfo &ri);
|
||||
|
|
|
@ -41,6 +41,13 @@ void NoteSearchPlugin::KeywordSearch(QString keyword, DataQueue<SearchPluginIfac
|
|||
m_pool.start(ns);
|
||||
}
|
||||
|
||||
void NoteSearchPlugin::stopSearch()
|
||||
{
|
||||
g_mutex.lock();
|
||||
++g_uniqueSymbol;
|
||||
g_mutex.unlock();
|
||||
}
|
||||
|
||||
QList<SearchPluginIface::Actioninfo> NoteSearchPlugin::getActioninfo(int type)
|
||||
{
|
||||
return m_actionInfo;
|
||||
|
|
|
@ -39,6 +39,7 @@ public:
|
|||
QString getPluginName();
|
||||
|
||||
void KeywordSearch(QString keyword,DataQueue<ResultInfo> *searchResult);
|
||||
void stopSearch();
|
||||
QList<SearchPluginIface::Actioninfo> getActioninfo(int type);
|
||||
void openAction(int actionkey, QString key, int type);
|
||||
// bool isPreviewEnable(QString key, int type);
|
||||
|
|
|
@ -39,6 +39,7 @@ public:
|
|||
virtual ~SearchPluginIface() {}
|
||||
virtual QString getPluginName() = 0;
|
||||
virtual void KeywordSearch(QString keyword,DataQueue<ResultInfo> *searchResult) = 0;
|
||||
virtual void stopSearch() = 0;
|
||||
virtual QList<Actioninfo> getActioninfo(int type) = 0;
|
||||
virtual void openAction(int actionkey, QString key, int type) = 0;
|
||||
// virtual bool isPreviewEnable(QString key, int type) = 0;
|
||||
|
|
|
@ -44,6 +44,13 @@ void UkuiSearch::SettingsSearchPlugin::KeywordSearch(QString keyword, DataQueue<
|
|||
m_pool.start(settingSearch);
|
||||
}
|
||||
|
||||
void SettingsSearchPlugin::stopSearch()
|
||||
{
|
||||
m_mutex.lock();
|
||||
++m_uniqueSymbolForSettings;
|
||||
m_mutex.unlock();
|
||||
}
|
||||
|
||||
QList<SearchPluginIface::Actioninfo> SettingsSearchPlugin::getActioninfo(int type)
|
||||
{
|
||||
return m_actionInfo;
|
||||
|
|
|
@ -31,6 +31,7 @@ public:
|
|||
QString getPluginName();
|
||||
|
||||
void KeywordSearch(QString keyword,DataQueue<ResultInfo> *searchResult);
|
||||
void stopSearch();
|
||||
QList<SearchPluginIface::Actioninfo> getActioninfo(int type);
|
||||
void openAction(int actionkey, QString key, int type);
|
||||
// bool isPreviewEnable(QString key, int type);
|
||||
|
|
|
@ -35,6 +35,10 @@ void UkuiSearch::WebSearchPlugin::KeywordSearch(QString keyword, DataQueue<UkuiS
|
|||
searchResult->enqueue(resultInfo);
|
||||
}
|
||||
|
||||
void WebSearchPlugin::stopSearch()
|
||||
{
|
||||
}
|
||||
|
||||
QList<UkuiSearch::SearchPluginIface::Actioninfo> UkuiSearch::WebSearchPlugin::getActioninfo(int type)
|
||||
{
|
||||
return m_actionInfo;
|
||||
|
|
|
@ -28,6 +28,7 @@ public:
|
|||
bool isEnable() {return m_enable;}
|
||||
QString getPluginName();
|
||||
void KeywordSearch(QString keyword,DataQueue<ResultInfo> *searchResult);
|
||||
void stopSearch();
|
||||
QList<SearchPluginIface::Actioninfo> getActioninfo(int type);
|
||||
void openAction(int actionkey, QString key, int type);
|
||||
QWidget *detailPage(const ResultInfo &ri);
|
||||
|
|
Loading…
Reference in New Issue