diff --git a/search-ukcc-plugin/search.cpp b/search-ukcc-plugin/search.cpp index 4ad3a6a..fae356e 100644 --- a/search-ukcc-plugin/search.cpp +++ b/search-ukcc-plugin/search.cpp @@ -546,6 +546,7 @@ void Search::getBlockDirs() int Search::setBlockDir(const QString &dirPath, const bool &is_add) { if (!QFile::exists(dirPath)) { + removeBlockDirFromList(dirPath); return ReturnCode::NotExists; } @@ -627,6 +628,10 @@ int Search::setSearchDir(const QString &dirPath, const bool isAdd) { QFileInfo info(dirPath); if (!(info.isExecutable() && info.isReadable())) { + //路径不存在时从ui上删除 + if (!isAdd) { + this->removeSearchDirFromList(dirPath); + } return ReturnCode::PermissionDenied; } @@ -642,18 +647,18 @@ int Search::setSearchDir(const QString &dirPath, const bool isAdd) } if (isAdd) { - QDBusReply indexDirsRpl = m_interface->call("currentIndexableDir"); + QDBusReply indexDirsRpl = m_interface->call("currentSearchDirs"); QStringList indexDirs; if (indexDirsRpl.isValid()) { indexDirs = indexDirsRpl.value(); } - QDBusReply appendIndexRpl = m_setSearchDirInterface->call("appendIndexableListItem", dirPath); + QDBusReply appendIndexRpl = m_setSearchDirInterface->call("appendSearchDir", dirPath); if (appendIndexRpl.isValid()) { if (appendIndexRpl.value() == 0) { this->appendSearchDirToList(dirPath); if (!indexDirs.isEmpty()) { - indexDirsRpl = m_interface->call("currentIndexableDir"); + indexDirsRpl = m_interface->call("currentSearchDirs"); if (indexDirsRpl.isValid() && (indexDirsRpl.value().size() < indexDirs.size() + 1)) { QStringList dirsAfterAppend = indexDirsRpl.value(); for (const QString& dir : indexDirs) { @@ -667,13 +672,8 @@ int Search::setSearchDir(const QString &dirPath, const bool isAdd) return appendIndexRpl.value(); } } else { - QDBusReply reply = m_setSearchDirInterface->call("removeIndexableListItem", dirPath); - if (reply.isValid()) { - if (reply.value()) { - this->removeSearchDirFromList(dirPath); - } - return reply.value(); - } + this->removeSearchDirFromList(dirPath); + m_setSearchDirInterface->call("removeSearchDir", dirPath); } return ReturnCode::Successful;