Fix: there's something wrong when the index path which will be added is not exists or is already be added.

This commit is contained in:
baijunjie 2022-04-15 10:30:01 +08:00 committed by iaom
parent 6e7ca5e35c
commit fc4fc82cab
2 changed files with 17 additions and 10 deletions

View File

@ -73,13 +73,18 @@ QStringList DirWatcher::currentBlackListOfIndex()
return blackListOfIndex;
}
void DirWatcher::handleIndexItemAppend(const QString &path)
void DirWatcher::handleIndexItemAppend(const QString &path, QStringList &blackList)
{
if (m_indexableDirList.contains(path)) {
qDebug() << QString("index path %1 is already added.").arg(path);
return;
}
m_indexableDirList << path;
m_indexableDirList.removeDuplicates();
m_qSettings->beginGroup(INDEXABLE_DIR_VALUE);
m_qSettings->setValue(INDEXABLE_DIR_VALUE, m_indexableDirList);
m_qSettings->endGroup();
Q_EMIT this->appendIndexItem(path, blackList);
qDebug() << "index path:" << path << "blacklist:" << blackList;
}
void DirWatcher::handleIndexItemRemove(const QString &path)
@ -226,11 +231,14 @@ void DirWatcher::mountRemoveCallback(GVolumeMonitor *monitor, GMount *gmount, Di
void DirWatcher::appendIndexableListItem(const QString &path)
{
QFile file(path);
if (!file.exists()) {
qWarning() << QString("target path:%1 is not exists!").arg(path);
return;
}
if (path == "/") {
this->currentindexableDir();
this->handleIndexItemAppend(path);
Q_EMIT this->appendIndexItem(path, m_blackListOfIndex);
qDebug() << "index path:" << path << "blacklist:" << m_blackListOfIndex;
this->handleIndexItemAppend(path, m_blackListOfIndex);
return;
}
@ -263,9 +271,7 @@ void DirWatcher::appendIndexableListItem(const QString &path)
blackList.append(indexablePath);
}
}
this->handleIndexItemAppend(path);
Q_EMIT this->appendIndexItem(path, blackList);
qDebug() << "index path:" << path << "blacklist:" << blackList;
this->handleIndexItemAppend(path, blackList);
}
void DirWatcher::removeIndexableListItem(const QString &path)

View File

@ -30,8 +30,6 @@ public:
void initDbusService();
QStringList currentindexableDir();
QStringList currentBlackListOfIndex();
void handleIndexItemAppend(const QString &path);
void handleIndexItemRemove(const QString &path);
void appendBlackListItemOfIndex(const QString &path);
void appendBlackListItemOfIndex(const QStringList &pathList);
void removeBlackListItemOfIndex(const QString &path);
@ -56,6 +54,9 @@ private:
void initData();
void initDiskWatcher();
void handleIndexItemAppend(const QString &path, QStringList &blackList);
void handleIndexItemRemove(const QString &path);
static QMutex s_mutex;
GVolumeMonitor *m_volumeMonitor = nullptr;