diff --git a/libsearch/global-settings.cpp b/libsearch/global-settings.cpp index 3e82583..78a3e86 100644 --- a/libsearch/global-settings.cpp +++ b/libsearch/global-settings.cpp @@ -35,8 +35,9 @@ GlobalSettings *GlobalSettings::getInstance() GlobalSettings::GlobalSettings(QObject *parent) : QObject(parent) { - m_settings = new QSettings("org.ukui", "ukui-search", this); - m_block_dirs_settings = new QSettings("org.ukui","ukui-search-block-dirs",this); + m_settings = new QSettings("org.ukui/ukui-search", "ukui-search", this); +// m_settings->setAtomicSyncRequired(false); + m_block_dirs_settings = new QSettings("org.ukui/ukui-search","ukui-search-block-dirs",this); m_block_dirs_settings->setIniCodec(QTextCodec::codecForName("UTF-8")); this->forceSync(); //the default number of transparency in mainwindow is 0.7 @@ -58,7 +59,6 @@ GlobalSettings::GlobalSettings(QObject *parent) : QObject(parent) GlobalSettings::~GlobalSettings() { - } const QVariant GlobalSettings::getValue(const QString &key) @@ -75,11 +75,11 @@ void GlobalSettings::reset(const QString &key) { m_cache.remove(key); QtConcurrent::run([=]() { - if (m_mutex.tryLock(1000)) { +// if (m_mutex.tryLock(1000)) { m_settings->remove(key); - m_settings->sync(); - m_mutex.unlock(); - } +// m_settings->sync(); +// m_mutex.unlock(); +// } }); Q_EMIT this->valueChanged(key); } @@ -149,14 +149,19 @@ QStringList GlobalSettings::getBlockDirs() //MouseZhangZh void GlobalSettings::setValue(const QString &key, const QVariant &value) { + // qDebug()<<"setvalue========"<sync(); QtConcurrent::run([=]() { -// if (m_mutex.tryLock(1000)) { - m_mutex.lock(); - m_settings->setValue(key, value); - m_settings->sync(); - m_mutex.unlock(); -// } + // qDebug()<status(); + // if (m_mutex.tryLock(1000)) { + // m_mutex.lock(); + m_settings->setValue(key, value); + // qDebug()<<"setvalue========finish!!!"<sync(); + // qDebug()<<"setvalue========sync!!!"<forceSync(); ::_exit(0); } else if(pid < 0) @@ -182,13 +183,14 @@ void FirstIndex::run(){ } + GlobalSettings::getInstance()->setValue(INOTIFY_NORMAL_EXIT, "2"); int retval = write(fifo_fd, buffer, strlen(buffer)); if(retval == -1) { qWarning("write error\n"); } qDebug("write data ok!\n"); - GlobalSettings::getInstance()->reset(INOTIFY_NORMAL_EXIT); + return; } diff --git a/libsearch/index/inotify-index.cpp b/libsearch/index/inotify-index.cpp index ab914e8..b3ee2ad 100644 --- a/libsearch/index/inotify-index.cpp +++ b/libsearch/index/inotify-index.cpp @@ -420,6 +420,7 @@ fork: qDebug() << "select timeout!"; ::free(read_timeout); IndexGenerator::getInstance()->~IndexGenerator(); + GlobalSettings::getInstance()->forceSync(); ::_exit(0); }else{ GlobalSettings::getInstance()->setValue(INOTIFY_NORMAL_EXIT, "0"); diff --git a/src/control/config-file.cpp b/src/control/config-file.cpp index 02450fe..a171ebc 100644 --- a/src/control/config-file.cpp +++ b/src/control/config-file.cpp @@ -20,7 +20,7 @@ #include "config-file.h" bool ConfigFile::writeCommonly(QString message){ - QSettings *m_qSettings=new QSettings(QDir::homePath()+"/.config/org.ukui/ukui-search/ukui-search.conf",QSettings::IniFormat); + QSettings *m_qSettings=new QSettings(HOMEPAGE_SETTINGS,QSettings::IniFormat); QStringList messagelist=message.split("/"); QString appname=messagelist.last(); if(!appname.contains("desktop")) @@ -39,7 +39,7 @@ bool ConfigFile::writeCommonly(QString message){ } QStringList ConfigFile::readCommonly(){ - QSettings *m_qSettings=new QSettings(QDir::homePath()+"/.config/org.ukui/ukui-search/ukui-search.conf",QSettings::IniFormat); + QSettings *m_qSettings=new QSettings(HOMEPAGE_SETTINGS,QSettings::IniFormat); QStringList returnlist; QMap quicklycount; m_qSettings->beginGroup("Commonly"); @@ -66,7 +66,7 @@ QStringList ConfigFile::readCommonly(){ } bool ConfigFile::writeRecently(QString message){ - QSettings *m_qSettings=new QSettings(QDir::homePath()+"/.config/org.ukui/ukui-search/ukui-search.conf",QSettings::IniFormat); + QSettings *m_qSettings=new QSettings(HOMEPAGE_SETTINGS,QSettings::IniFormat); m_qSettings->beginGroup("Recently"); QStringList recently=m_qSettings->value("Recently").toStringList(); @@ -89,7 +89,7 @@ bool ConfigFile::writeRecently(QString message){ } QStringList ConfigFile::readRecently(){ - QSettings *m_qSettings=new QSettings(QDir::homePath()+"/.config/org.ukui/ukui-search/ukui-search.conf",QSettings::IniFormat); + QSettings *m_qSettings=new QSettings(HOMEPAGE_SETTINGS,QSettings::IniFormat); m_qSettings->beginGroup("Recently"); QStringList recently=m_qSettings->value("Recently").toStringList(); @@ -113,7 +113,7 @@ QMap ConfigFile::readConfig(){ } void ConfigFile::receiveMessage(QString message){ - QFile file(QDir::homePath()+"/.config/org.ukui/ukui-search/ukui-search.conf"); + QFile file(HOMEPAGE_SETTINGS); if(!file.exists()){ file.open( QIODevice::ReadWrite | QIODevice::Text ); file.close(); diff --git a/src/control/config-file.h b/src/control/config-file.h index 03b27b2..929c336 100644 --- a/src/control/config-file.h +++ b/src/control/config-file.h @@ -25,6 +25,7 @@ #include #include #include +#define HOMEPAGE_SETTINGS QDir::homePath()+"/.config/org.ukui/ukui-search/ukui-search-homepage.conf" class ConfigFile : public QObject { Q_OBJECT diff --git a/src/main.cpp b/src/main.cpp index e9f26f0..365eb04 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -72,6 +72,7 @@ void messageOutput(QtMsgType type, const QMessageLogContext &context, const QStr bool showDebug = true; // QString logFilePath = QStandardPaths::writableLocation(QStandardPaths::TempLocation) + "/ukui-search.log"; +// QString logFilePath = QStandardPaths::writableLocation(QStandardPaths::HomeLocation) + "/.config/org.ukui/ukui-search/ukui-search.log"; QString logFilePath = QStandardPaths::writableLocation(QStandardPaths::HomeLocation) + "/.config/org.ukui/ukui-search.log"; if (!QFile::exists(logFilePath)) { showDebug = false;