diff --git a/src/dfm-search/dfm-search-client/cli_options.cpp b/src/dfm-search/dfm-search-client/cli_options.cpp index f71bb02..7a3aa33 100644 --- a/src/dfm-search/dfm-search-client/cli_options.cpp +++ b/src/dfm-search/dfm-search-client/cli_options.cpp @@ -453,6 +453,27 @@ bool CliOptions::parse(QCoreApplication &app, SearchCliConfig &config) } } + // Validate option compatibility with search type + if (config.searchType == SearchType::FileName) { + if (m_parser.isSet(m_filenameOption)) { + std::cerr << "Error: --filename is only valid for content/ocr search, not filename search" << std::endl; + return false; + } + } else { + if (m_parser.isSet(m_pinyinOption)) { + std::cerr << "Error: --pinyin is only valid for filename search" << std::endl; + return false; + } + if (m_parser.isSet(m_pinyinAcronymOption)) { + std::cerr << "Error: --pinyin-acronym is only valid for filename search" << std::endl; + return false; + } + if (m_parser.isSet(m_fileTypesOption)) { + std::cerr << "Error: --file-types is only valid for filename search" << std::endl; + return false; + } + } + return true; } diff --git a/src/dfm-search/dfm-search-client/main.cpp b/src/dfm-search/dfm-search-client/main.cpp index 65eaf30..66bbec2 100644 --- a/src/dfm-search/dfm-search-client/main.cpp +++ b/src/dfm-search/dfm-search-client/main.cpp @@ -68,6 +68,9 @@ static void configureSearchOptions(SearchOptions &options, const SearchCliConfig if (!config.filenameKeyword.isEmpty()) { contentOptions.setFilenameKeyword(config.filenameKeyword); } + if (!config.fileExtensions.isEmpty()) { + contentOptions.setFileExtensions(config.fileExtensions); + } } else if (config.searchType == SearchType::Ocr) { OcrTextOptionsAPI ocrTextOptions(options); ocrTextOptions.setMaxPreviewLength(config.maxPreviewLength); @@ -77,6 +80,9 @@ static void configureSearchOptions(SearchOptions &options, const SearchCliConfig if (!config.filenameKeyword.isEmpty()) { ocrTextOptions.setFilenameKeyword(config.filenameKeyword); } + if (!config.fileExtensions.isEmpty()) { + ocrTextOptions.setFileExtensions(config.fileExtensions); + } } // 应用时间范围过滤