forked from openkylin/ukui-search
Update debian files and some interface optimization.
This commit is contained in:
parent
a88b26e099
commit
5b11ba39c6
|
@ -54,4 +54,11 @@ Depends: ${misc:Depends},
|
||||||
${shlibs:Depends},
|
${shlibs:Depends},
|
||||||
libukui-search0 (= ${binary:Version}),
|
libukui-search0 (= ${binary:Version}),
|
||||||
libchinese-segmentation0 (= ${binary:Version})
|
libchinese-segmentation0 (= ${binary:Version})
|
||||||
Description: Libraries for ukui-search(development files).
|
Description: Libraries for ukui-search(development files).
|
||||||
|
|
||||||
|
Package: ukui-search-systemdbus
|
||||||
|
Architecture: any
|
||||||
|
Depends: ${shlibs:Depends},
|
||||||
|
${misc:Depends},
|
||||||
|
Description: ukui-search-systemdbus is a systembus interface to modify max_user_watches nums
|
||||||
|
permanent.
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
/usr/share/dbus-1/system-services/com.ukui.search.qt.systemdbus.service
|
||||||
|
/etc/dbus-1/system.d/com.ukui.search.qt.systemdbus.conf
|
||||||
|
/usr/bin/ukui-search-systemdbus
|
|
@ -1 +1 @@
|
||||||
usr/bin/*
|
usr/bin/ukui-search
|
||||||
|
|
|
@ -66,7 +66,7 @@ void FileSearcher::onKeywordSearch(QString keyword, int begin, int num)
|
||||||
}
|
}
|
||||||
catch(const Xapian::Error &e)
|
catch(const Xapian::Error &e)
|
||||||
{
|
{
|
||||||
qDebug() <<QString::fromStdString(e.get_description());
|
qWarning() <<QString::fromStdString(e.get_description());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Q_EMIT this->result(searchResult);
|
Q_EMIT this->result(searchResult);
|
||||||
|
@ -116,7 +116,7 @@ void FileSearcher::onKeywordSearchContent(QString keyword, int begin, int num)
|
||||||
}
|
}
|
||||||
catch(const Xapian::Error &e)
|
catch(const Xapian::Error &e)
|
||||||
{
|
{
|
||||||
qDebug() <<QString::fromStdString(e.get_description());
|
qWarning() <<QString::fromStdString(e.get_description());
|
||||||
qDebug()<< "--content search finish--";
|
qDebug()<< "--content search finish--";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,10 +18,10 @@ using namespace std;
|
||||||
|
|
||||||
static IndexGenerator *global_instance = nullptr;
|
static IndexGenerator *global_instance = nullptr;
|
||||||
|
|
||||||
IndexGenerator *IndexGenerator::getInstance()
|
IndexGenerator *IndexGenerator::getInstance(bool rebuild)
|
||||||
{
|
{
|
||||||
if (!global_instance) {
|
if (!global_instance) {
|
||||||
global_instance = new IndexGenerator;
|
global_instance = new IndexGenerator(rebuild);
|
||||||
}
|
}
|
||||||
return global_instance;
|
return global_instance;
|
||||||
}
|
}
|
||||||
|
@ -58,12 +58,11 @@ bool IndexGenerator::creatAllIndex(QList<QVector<QString> > *messageList)
|
||||||
}
|
}
|
||||||
catch(const Xapian::Error &e)
|
catch(const Xapian::Error &e)
|
||||||
{
|
{
|
||||||
qWarning()<<"creatAllIndex fail!"<<QString::fromStdString(e.get_description());
|
qWarning()<<__FILE__<<__LINE__<<__FUNCTION__<<"creatAllIndex fail!"<<QString::fromStdString(e.get_description());
|
||||||
//need a record
|
//need a record
|
||||||
GlobalSettings::getInstance()->setValue(INDEX_DATABASE_STATE,"0");
|
GlobalSettings::getInstance()->setValue(INDEX_DATABASE_STATE,"1");
|
||||||
return false;
|
Q_ASSERT(false);
|
||||||
}
|
}
|
||||||
GlobalSettings::getInstance()->setValue(INDEX_DATABASE_STATE,"1");
|
|
||||||
m_doc_list_path->clear();
|
m_doc_list_path->clear();
|
||||||
Q_EMIT this->transactionFinished();
|
Q_EMIT this->transactionFinished();
|
||||||
|
|
||||||
|
@ -90,22 +89,30 @@ bool IndexGenerator::creatAllIndex(QList<QString> *messageList)
|
||||||
}
|
}
|
||||||
catch(const Xapian::Error &e)
|
catch(const Xapian::Error &e)
|
||||||
{
|
{
|
||||||
qWarning()<<"creat content Index fail!"<<QString::fromStdString(e.get_description());
|
qWarning()<<__FILE__<<__LINE__<<__FUNCTION__<<"creat content Index fail!"<<QString::fromStdString(e.get_description());
|
||||||
GlobalSettings::getInstance()->setValue(CONTENT_INDEX_DATABASE_STATE,"0");
|
GlobalSettings::getInstance()->setValue(CONTENT_INDEX_DATABASE_STATE,"1");
|
||||||
return false;
|
Q_ASSERT(false);
|
||||||
}
|
}
|
||||||
GlobalSettings::getInstance()->setValue(CONTENT_INDEX_DATABASE_STATE,"1");
|
|
||||||
m_doc_list_content->clear();
|
m_doc_list_content->clear();
|
||||||
Q_EMIT this->transactionFinished();
|
Q_EMIT this->transactionFinished();
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
IndexGenerator::IndexGenerator(QObject *parent) : QObject(parent)
|
IndexGenerator::IndexGenerator(bool rebuild, QObject *parent) : QObject(parent)
|
||||||
{
|
{
|
||||||
m_datebase_path = new Xapian::WritableDatabase(INDEX_PATH, Xapian::DB_CREATE_OR_OPEN);
|
if(rebuild)
|
||||||
m_database_content = new Xapian::WritableDatabase(CONTENT_INDEX_PATH, Xapian::DB_CREATE_OR_OPEN);
|
{
|
||||||
GlobalSettings::getInstance()->setValue(CONTENT_INDEX_DATABASE_STATE,"1");
|
m_datebase_path = new Xapian::WritableDatabase(INDEX_PATH, Xapian::DB_CREATE_OR_OVERWRITE);
|
||||||
|
m_database_content = new Xapian::WritableDatabase(CONTENT_INDEX_PATH, Xapian::DB_CREATE_OR_OVERWRITE);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_datebase_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);
|
||||||
|
}
|
||||||
|
GlobalSettings::getInstance()->setValue(INDEX_DATABASE_STATE,"0");
|
||||||
|
GlobalSettings::getInstance()->setValue(CONTENT_INDEX_DATABASE_STATE,"0");
|
||||||
}
|
}
|
||||||
|
|
||||||
IndexGenerator::~IndexGenerator()
|
IndexGenerator::~IndexGenerator()
|
||||||
|
@ -114,7 +121,8 @@ IndexGenerator::~IndexGenerator()
|
||||||
delete m_datebase_path;
|
delete m_datebase_path;
|
||||||
if(m_database_content)
|
if(m_database_content)
|
||||||
delete m_database_content;
|
delete m_database_content;
|
||||||
GlobalSettings::getInstance()->setValue(INDEX_GENERATOR_NORMAL_EXIT,"1");
|
GlobalSettings::getInstance()->setValue(INDEX_DATABASE_STATE,"2");
|
||||||
|
GlobalSettings::getInstance()->setValue(INDEX_GENERATOR_NORMAL_EXIT,"2");
|
||||||
}
|
}
|
||||||
|
|
||||||
void IndexGenerator::insertIntoDatabase(Document doc)
|
void IndexGenerator::insertIntoDatabase(Document doc)
|
||||||
|
@ -341,7 +349,7 @@ bool IndexGenerator::deleteAllIndex(QStringList *pathlist)
|
||||||
}
|
}
|
||||||
catch(const Xapian::Error &e)
|
catch(const Xapian::Error &e)
|
||||||
{
|
{
|
||||||
qWarning() <<QString::fromStdString(e.get_description());
|
qWarning() <<__FILE__<<__LINE__<<__FUNCTION__<<QString::fromStdString(e.get_description());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,7 @@ class IndexGenerator : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
static IndexGenerator *getInstance();
|
static IndexGenerator *getInstance(bool rebuild = false);
|
||||||
bool setIndexdataPath();
|
bool setIndexdataPath();
|
||||||
bool isIndexdataExist();
|
bool isIndexdataExist();
|
||||||
static QStringList IndexSearch(QString indexText);
|
static QStringList IndexSearch(QString indexText);
|
||||||
|
@ -27,7 +27,7 @@ public Q_SLOTS:
|
||||||
bool deleteAllIndex(QStringList *pathlist);
|
bool deleteAllIndex(QStringList *pathlist);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
explicit IndexGenerator(QObject *parent = nullptr);
|
explicit IndexGenerator(bool rebuild = false,QObject *parent = nullptr);
|
||||||
~IndexGenerator();
|
~IndexGenerator();
|
||||||
//For file name index
|
//For file name index
|
||||||
void HandlePathList(QList<QVector<QString>> *messageList);
|
void HandlePathList(QList<QVector<QString>> *messageList);
|
||||||
|
|
|
@ -25,7 +25,7 @@ include(index/index.pri)
|
||||||
include(appsearch/appsearch.pri)
|
include(appsearch/appsearch.pri)
|
||||||
include(settingsearch/settingsearch.pri))
|
include(settingsearch/settingsearch.pri))
|
||||||
|
|
||||||
LIBS += -L../libchinese-segmentation/ -lchinese-segmentation
|
LIBS += -L$$OUT_PWD/../libchinese-segmentation/ -lchinese-segmentation
|
||||||
LIBS += -lxapian -lquazip5
|
LIBS += -lxapian -lquazip5
|
||||||
|
|
||||||
SOURCES += \
|
SOURCES += \
|
||||||
|
|
69
src/main.cpp
69
src/main.cpp
|
@ -32,6 +32,48 @@
|
||||||
#include "libsearch.h"
|
#include "libsearch.h"
|
||||||
#include "global-settings.h"
|
#include "global-settings.h"
|
||||||
|
|
||||||
|
void messageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg)
|
||||||
|
{
|
||||||
|
QByteArray localMsg = msg.toLocal8Bit();
|
||||||
|
QByteArray currentTime = QTime::currentTime().toString().toLocal8Bit();
|
||||||
|
|
||||||
|
bool showDebug = true;
|
||||||
|
QString logFilePath = QStandardPaths::writableLocation(QStandardPaths::TempLocation) + "/ukui-search.log";
|
||||||
|
if (!QFile::exists(logFilePath)) {
|
||||||
|
showDebug = false;
|
||||||
|
}
|
||||||
|
FILE *log_file = nullptr;
|
||||||
|
|
||||||
|
if (showDebug) {
|
||||||
|
log_file = fopen(logFilePath.toLocal8Bit().constData(), "a+");
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *file = context.file ? context.file : "";
|
||||||
|
const char *function = context.function ? context.function : "";
|
||||||
|
switch (type) {
|
||||||
|
case QtDebugMsg:
|
||||||
|
if (!log_file) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
fprintf(log_file, "Debug: %s: %s (%s:%u, %s)\n", currentTime.constData(), localMsg.constData(), file, context.line, function);
|
||||||
|
break;
|
||||||
|
case QtInfoMsg:
|
||||||
|
fprintf(log_file? log_file: stdout, "Info: %s: %s (%s:%u, %s)\n", currentTime.constData(), localMsg.constData(), file, context.line, function);
|
||||||
|
break;
|
||||||
|
case QtWarningMsg:
|
||||||
|
fprintf(log_file? log_file: stderr, "Warning: %s: %s (%s:%u, %s)\n", currentTime.constData(), localMsg.constData(), file, context.line, function);
|
||||||
|
break;
|
||||||
|
case QtCriticalMsg:
|
||||||
|
fprintf(log_file? log_file: stderr, "Critical: %s: %s (%s:%u, %s)\n", currentTime.constData(), localMsg.constData(), file, context.line, function);
|
||||||
|
break;
|
||||||
|
case QtFatalMsg:
|
||||||
|
fprintf(log_file? log_file: stderr, "Fatal: %s: %s (%s:%u, %s)\n", currentTime.constData(), localMsg.constData(), file, context.line, function);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (log_file)
|
||||||
|
fclose(log_file);
|
||||||
|
}
|
||||||
|
|
||||||
void centerToScreen(QWidget* widget) {
|
void centerToScreen(QWidget* widget) {
|
||||||
if (!widget)
|
if (!widget)
|
||||||
|
@ -64,37 +106,28 @@ int main(int argc, char *argv[])
|
||||||
// qDebug() << t2;
|
// qDebug() << t2;
|
||||||
/*-------------InotyifyRefact Test End-----------------*/
|
/*-------------InotyifyRefact Test End-----------------*/
|
||||||
|
|
||||||
|
|
||||||
/*-------------content index Test Start---------------*/
|
/*-------------content index Test Start---------------*/
|
||||||
QTime t3 = QTime::currentTime();
|
// QTime t3 = QTime::currentTime();
|
||||||
FileTypeFilter* ftf = new FileTypeFilter("/home");
|
// FileTypeFilter* ftf = new FileTypeFilter("/home");
|
||||||
ftf->Test();
|
// ftf->Test();
|
||||||
QTime t4 = QTime::currentTime();
|
// QTime t4 = QTime::currentTime();
|
||||||
delete ftf;
|
// delete ftf;
|
||||||
ftf = nullptr;
|
// ftf = nullptr;
|
||||||
qDebug() << t3;
|
// qDebug() << t3;
|
||||||
qDebug() << t4;
|
// qDebug() << t4;
|
||||||
/*-------------content index Test End-----------------*/
|
/*-------------content index Test End-----------------*/
|
||||||
|
|
||||||
/*-------------文本搜索 Test start-----------------*/
|
/*-------------文本搜索 Test start-----------------*/
|
||||||
// FileSearcher *search = new FileSearcher();
|
// FileSearcher *search = new FileSearcher();
|
||||||
// search->onKeywordSearchContent("重要器官移植⑤白血病");
|
// search->onKeywordSearchContent("重要器官移植⑤白血病");
|
||||||
// search->onKeywordSearchContent("g,e,x");
|
// search->onKeywordSearchContent("g,e,x");
|
||||||
/*-------------文本搜索 Test End-----------------*/
|
/*-------------文本搜索 Test End-----------------*/
|
||||||
|
|
||||||
/*-------------GlobalSettings Test start-----------------*/
|
|
||||||
// GlobalSettings::getInstance();
|
|
||||||
|
|
||||||
/*-------------GlobalSettings Test End-----------------*/
|
|
||||||
|
|
||||||
qRegisterMetaType<QVector<QStringList>>("QVector<QStringList>");
|
|
||||||
|
|
||||||
QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
|
QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
|
||||||
QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
|
QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
|
||||||
|
|
||||||
QtSingleApplication app("ukui-search", argc, argv);
|
QtSingleApplication app("ukui-search", argc, argv);
|
||||||
app.setQuitOnLastWindowClosed(false);
|
app.setQuitOnLastWindowClosed(false);
|
||||||
|
qInstallMessageHandler(messageOutput);
|
||||||
|
|
||||||
if(app.isRunning())
|
if(app.isRunning())
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue