[FIX]Index crash if database path don't exits.
This commit is contained in:
parent
f666f8c7ca
commit
6d9961fbc7
|
@ -1,3 +1,16 @@
|
||||||
|
ukui-search (0.2.0+0306) v101; urgency=medium
|
||||||
|
|
||||||
|
* Feature: Add support for 'doc' file in file content search.
|
||||||
|
- 文本索引增加了对doc格式文件的支持。
|
||||||
|
* Fix: There is no web search result when there is no local result.
|
||||||
|
- 修复没有本地搜索结果时不显示网页搜索列表的问题。
|
||||||
|
* Fix:Files with special charactors can not be opened successfully.
|
||||||
|
- 修复带有特殊字符的文件无法正常打开的问题。
|
||||||
|
* Fix:Occasional crash during the first boot of system.
|
||||||
|
- 修复了在系统首次启动时偶现的崩溃问题。
|
||||||
|
|
||||||
|
-- zhangpengfei <zhangpengfei@kylinos.cn> Sat, 06 Mar 2021 11:03:20 +0800
|
||||||
|
|
||||||
ukui-search (0.2.0+0301) v101; urgency=medium
|
ukui-search (0.2.0+0301) v101; urgency=medium
|
||||||
|
|
||||||
* Fix: New result won't be added to expanded list.
|
* Fix: New result won't be added to expanded list.
|
||||||
|
|
|
@ -28,8 +28,8 @@
|
||||||
#include <QQueue>
|
#include <QQueue>
|
||||||
#include <QPair>
|
#include <QPair>
|
||||||
#include <QMutex>
|
#include <QMutex>
|
||||||
#define INDEX_PATH (QStandardPaths::writableLocation(QStandardPaths::HomeLocation)+"/.config/org.ukui/index_data").toStdString()
|
#define INDEX_PATH (QStandardPaths::writableLocation(QStandardPaths::HomeLocation)+"/.config/org.ukui/ukui-search/index_data").toStdString()
|
||||||
#define CONTENT_INDEX_PATH (QStandardPaths::writableLocation(QStandardPaths::HomeLocation)+"/.config/org.ukui/content_index_data").toStdString()
|
#define CONTENT_INDEX_PATH (QStandardPaths::writableLocation(QStandardPaths::HomeLocation)+"/.config/org.ukui/ukui-search/content_index_data").toStdString()
|
||||||
|
|
||||||
|
|
||||||
class FileSearcher : public QObject
|
class FileSearcher : public QObject
|
||||||
|
|
|
@ -33,8 +33,8 @@
|
||||||
#include <QStandardPaths>
|
#include <QStandardPaths>
|
||||||
|
|
||||||
|
|
||||||
#define INDEX_PATH (QStandardPaths::writableLocation(QStandardPaths::HomeLocation)+"/.config/org.ukui/index_data").toStdString()
|
#define INDEX_PATH (QStandardPaths::writableLocation(QStandardPaths::HomeLocation)+"/.config/org.ukui/ukui-search/index_data").toStdString()
|
||||||
#define CONTENT_INDEX_PATH (QStandardPaths::writableLocation(QStandardPaths::HomeLocation)+"/.config/org.ukui/content_index_data").toStdString()
|
#define CONTENT_INDEX_PATH (QStandardPaths::writableLocation(QStandardPaths::HomeLocation)+"/.config/org.ukui/ukui-search/content_index_data").toStdString()
|
||||||
|
|
||||||
static IndexGenerator *global_instance = nullptr;
|
static IndexGenerator *global_instance = nullptr;
|
||||||
QMutex IndexGenerator::m_mutex;
|
QMutex IndexGenerator::m_mutex;
|
||||||
|
@ -144,15 +144,28 @@ bool IndexGenerator::creatAllIndex(QQueue<QString> *messageList)
|
||||||
|
|
||||||
IndexGenerator::IndexGenerator(bool rebuild, QObject *parent) : QObject(parent)
|
IndexGenerator::IndexGenerator(bool rebuild, QObject *parent) : QObject(parent)
|
||||||
{
|
{
|
||||||
if(rebuild)
|
QDir database(QString::fromStdString(INDEX_PATH));
|
||||||
|
|
||||||
|
if(database.exists())
|
||||||
{
|
{
|
||||||
QDir database(QString::fromStdString(INDEX_PATH));
|
if(rebuild)
|
||||||
if(database.exists())
|
|
||||||
qDebug()<<"remove"<<database.removeRecursively();
|
|
||||||
database.setPath(QString::fromStdString(CONTENT_INDEX_PATH));
|
|
||||||
if(database.exists())
|
|
||||||
qDebug()<<"remove"<<database.removeRecursively();
|
qDebug()<<"remove"<<database.removeRecursively();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
qDebug()<<"create index path"<<database.mkpath(QString::fromStdString(INDEX_PATH));
|
||||||
|
}
|
||||||
|
database.setPath(QString::fromStdString(CONTENT_INDEX_PATH));
|
||||||
|
if(database.exists())
|
||||||
|
{
|
||||||
|
if(rebuild)
|
||||||
|
qDebug()<<"remove"<<database.removeRecursively();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
qDebug()<<"create content index path"<<database.mkpath(QString::fromStdString(CONTENT_INDEX_PATH));
|
||||||
|
}
|
||||||
|
|
||||||
m_database_path = new Xapian::WritableDatabase(INDEX_PATH, Xapian::DB_CREATE_OR_OPEN);
|
m_database_path = new Xapian::WritableDatabase(INDEX_PATH, Xapian::DB_CREATE_OR_OPEN);
|
||||||
m_database_content = new Xapian::WritableDatabase(CONTENT_INDEX_PATH, Xapian::DB_CREATE_OR_OPEN);
|
m_database_content = new Xapian::WritableDatabase(CONTENT_INDEX_PATH, Xapian::DB_CREATE_OR_OPEN);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue