From c671aa3053104b1c23deb20b0143a54fc4571385 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 27 May 2026 17:40:08 +0900 Subject: [PATCH 1/8] change tab name to query --- src/app.rs | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/app.rs b/src/app.rs index 6cafc57..6448788 100644 --- a/src/app.rs +++ b/src/app.rs @@ -383,10 +383,21 @@ impl SearchApp { ui.horizontal(|ui| { let mut to_remove = None; for (i, tab) in self.tabs.iter().enumerate() { - let label = if tab.config.paths.is_empty() { - "새 검색".to_string() - } else { - tab.config.paths.join(", ") + let label = { + let valid_queries: Vec = tab + .config + .queries + .iter() + .map(|q| q.query.trim()) + .filter(|q| !q.is_empty()) + .map(|q| q.to_string()) + .collect(); + + if valid_queries.is_empty() { + format!("탭 {}", i + 1) + } else { + valid_queries.join(", ") + } }; let response = ui.selectable_label(self.selected_tab_index == i, label); if response.clicked() { @@ -474,12 +485,12 @@ impl SearchApp { // File pattern input (glob filtering). ui.horizontal(|ui| { ui.label("파일패턴:"); - let remaining_width = ui.available_width() - 200.0; + let remaining_width = ui.available_width() - 300.0; if ui .add( egui::TextEdit::singleline(&mut tab.config.patterns) .desired_width(remaining_width) - .hint_text("예시: *.txt *.{txt,csv} !dir/"), + .hint_text("예시: *.pdf (PDF 파일만 검색) *.{pdf,csv} (PDF, CSV 파일만 검색) !dir/ (dir 폴더 제외)"), ) .changed() { From 8e9368d07bfeb4d02d96de541b9bd950d6e6642b Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 27 May 2026 17:40:36 +0900 Subject: [PATCH 2/8] add search mode to toolbar --- src/app.rs | 52 +++++++++++++++++++++++++++++---------------------- src/search.rs | 33 +++++++++++++++++++++++--------- 2 files changed, 54 insertions(+), 31 deletions(-) diff --git a/src/app.rs b/src/app.rs index 6448788..aff331f 100644 --- a/src/app.rs +++ b/src/app.rs @@ -9,7 +9,7 @@ use egui::UiKind; use egui_extras::{Column, TableBuilder}; use rfd::FileDialog; -use crate::search::{PendingSearch, SearchConfig, SearchResult}; +use crate::search::{PendingSearch, SearchConfig, SearchMode, SearchResult}; /// Main state for the entire application. pub struct SearchApp { @@ -496,26 +496,34 @@ impl SearchApp { { input_changed = true; } - if ui - .checkbox(&mut tab.config.file_name_only, "파일명만") - .on_hover_text("파일명만 검색합니다.") - .changed() - { - input_changed = true; - if tab.config.file_name_only { - tab.config.search_doc_content = false; - } - } - if ui - .checkbox(&mut tab.config.search_doc_content, "문서내용도") - .on_hover_text("pdf, docx, pptx, xlsx 내용도 검색합니다.") - .changed() - { - input_changed = true; - if tab.config.search_doc_content { - tab.config.file_name_only = false; - } - } + + let combo_id = ui.id().with("search_mode_combo").with(tab_index); + let _ = egui::ComboBox::from_id_salt(combo_id) + .selected_text(tab.config.mode.label()) + .width(180.0) + .show_ui(ui, |ui| { + let mut sub_changed = false; + + sub_changed |= ui.selectable_value( + &mut tab.config.mode, + SearchMode::FileNameOnly, + SearchMode::FileNameOnly.label() + ).changed(); + + sub_changed |= ui.selectable_value( + &mut tab.config.mode, + SearchMode::PathAndContent, + SearchMode::PathAndContent.label() + ).changed(); + + sub_changed |= ui.selectable_value( + &mut tab.config.mode, + SearchMode::IncludeDocContent, + SearchMode::IncludeDocContent.label() + ).changed(); + + sub_changed + }); }); ui.add_space(5.0); @@ -525,7 +533,7 @@ impl SearchApp { for query in &mut tab.config.queries { ui.horizontal(|ui| { ui.label("검색어: "); - let remaining_width = ui.available_width() - 200.0; + let remaining_width = ui.available_width() - 300.0; if ui .add( egui::TextEdit::singleline(&mut query.query) diff --git a/src/search.rs b/src/search.rs index 1cd3b77..7df26b7 100644 --- a/src/search.rs +++ b/src/search.rs @@ -201,14 +201,31 @@ impl SearchQuery { } } +#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)] +pub enum SearchMode { + #[default] + PathAndContent, + FileNameOnly, + IncludeDocContent, +} + +impl SearchMode { + pub fn label(&self) -> &'static str { + match self { + SearchMode::FileNameOnly => "파일명만", + SearchMode::PathAndContent => "파일명 + 텍스트", + SearchMode::IncludeDocContent => "파일명 + 텍스트 + 문서내용", + } + } +} + /// Full configuration for a search operation. #[derive(Debug, Clone, Default)] pub struct SearchConfig { pub paths: Vec, pub patterns: String, pub queries: Vec, - pub file_name_only: bool, - pub search_doc_content: bool, + pub mode: SearchMode, } impl SearchConfig { @@ -218,8 +235,7 @@ impl SearchConfig { paths, patterns, queries: vec![SearchQuery::new()], - file_name_only: false, - search_doc_content: false, + mode: SearchMode::PathAndContent, } } @@ -274,8 +290,7 @@ impl SearchConfig { pub fn spawn_search(config: &SearchConfig) -> Result { // Create variables for the search configuration. let matcher = config.create_matcher()?; - let file_name_only = config.file_name_only; - let search_doc_content = config.search_doc_content; + let mode = config.mode; let paths = config.paths(); if paths.is_empty() { bail!("No search paths provided"); @@ -338,9 +353,9 @@ pub fn spawn_search(config: &SearchConfig) -> Result { at = m.end(); } - let mut entries = Vec::new(); // Second pass: scan file content (unless "File name only" mode is on). - if !file_name_only { + let mut entries = Vec::new(); + if mode != SearchMode::FileNameOnly { let mut handled = false; let extension = path .extension() @@ -348,7 +363,7 @@ pub fn spawn_search(config: &SearchConfig) -> Result { .unwrap_or("") .to_lowercase(); - if search_doc_content { + if mode == SearchMode::IncludeDocContent { match extension.as_str() { "docx" | "pptx" | "xlsx" | "doc" | "ppt" | "xls" => { if let Ok(text) = office_oxide::extract_text(path) { From 52f78ea529887d50698bb01a7f598e869b078a6d Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 28 May 2026 17:34:28 +0900 Subject: [PATCH 3/8] fix broken test --- tests/search_tests.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/search_tests.rs b/tests/search_tests.rs index a85de84..4279421 100644 --- a/tests/search_tests.rs +++ b/tests/search_tests.rs @@ -3,7 +3,7 @@ use std::io::Write; use tempfile::tempdir; -use lexi::search::{SearchConfig, spawn_search}; +use lexi::search::{SearchConfig, SearchMode, spawn_search}; #[test] fn test_search_filename() { @@ -155,7 +155,7 @@ fn test_search_korean_qp_eml() { vec![dir.path().to_string_lossy().to_string()], "".to_string(), ); - config.search_doc_content = true; + config.mode = SearchMode::IncludeDocContent; config.queries[0].query = "안녕".to_string(); let pending = spawn_search(&config).unwrap(); From 3ce7ed65cbba6d8732571a0096a14d0f9bab94cd Mon Sep 17 00:00:00 2001 From: RektPunk Date: Thu, 28 May 2026 17:36:37 +0900 Subject: [PATCH 4/8] Replace image in README Updated the image in the README to a new version. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 81a1b56..b6d132b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ # Lexi 윈도우 기본 검색 쓰다가 답답해서 직접 만든 파일 검색기 -image +image From bbe5970d3688918c8976b9449dd530646ddc3c05 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 28 May 2026 17:39:12 +0900 Subject: [PATCH 5/8] update cargo lock --- Cargo.lock | 216 ++++++++++++++++++++++++++++------------------------- 1 file changed, 116 insertions(+), 100 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 998004b..6d1084c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -129,9 +129,9 @@ checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] name = "aes" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66bd29a732b644c0431c6140f370d097879203d79b80c94a6747ba0872adaef8" +checksum = "f1fc76eaeac4c9164506c466d4ffdd8ec9d0c5bf57ee97177c4d8eceb3a0e138" dependencies = [ "cipher", "cpubits", @@ -548,9 +548,9 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" [[package]] name = "av-scenechange" @@ -694,9 +694,9 @@ dependencies = [ [[package]] name = "brotli" -version = "8.0.2" +version = "8.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bd8b9603c7aa97359dbd97ecf258968c95f3adddd6db2f7e7a5bef101c84560" +checksum = "8119e4516436f5708bbc474a9d395bf12f1b5395e93a92a56e647ac3388c8610" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -705,9 +705,9 @@ dependencies = [ [[package]] name = "brotli-decompressor" -version = "5.0.0" +version = "5.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "874bb8112abecc98cbd6d81ea4fa7e94fb9449648c93cc89aa40c81c24d7de03" +checksum = "5962523e1b92ce1b5e793d9169b9943eece10d39f62550bc04bb605d75b94924" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -726,15 +726,15 @@ dependencies = [ [[package]] name = "built" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4ad8f11f288f48ca24471bbd51ac257aaeaaa07adae295591266b792902ae64" +checksum = "5c0e531d93d39c34eef561e929e8a7f86d77a5af08aac4f6d6e39976c51858e9" [[package]] name = "bumpalo" -version = "3.20.2" +version = "3.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" [[package]] name = "bytemuck" @@ -827,9 +827,9 @@ dependencies = [ [[package]] name = "cbc" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98db6aeaef0eeef2c1e3ce9a27b739218825dae116076352ac3777076aa22225" +checksum = "ce2dc9ee5f88d11e0beb842c88b33c8a5cf0d1329c4b19494af42b07dbfe8896" dependencies = [ "cipher", ] @@ -882,9 +882,9 @@ dependencies = [ [[package]] name = "cipher" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e34d8227fe1ba289043aeb13792056ff80fd6de1a9f49137a5f499de8e8c78ea" +checksum = "e8cf2a2c93cd704877c0858356ed03480ff301ee950b43f1cbe4573b088bfa6c" dependencies = [ "crypto-common", "inout", @@ -1063,9 +1063,9 @@ checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "crypto-common" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77727bb15fa921304124b128af125e7e3b968275d1b108b379190264f4423710" +checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453" dependencies = [ "hybrid-array", ] @@ -1122,9 +1122,9 @@ dependencies = [ [[package]] name = "displaydoc" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +checksum = "1ac70aa55017e108007fbaf5aa0f54b021c98f92ff8af59d42eda9da96e3dd4f" dependencies = [ "proc-macro2", "quote", @@ -1163,9 +1163,9 @@ checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76" [[package]] name = "ecolor" -version = "0.34.2" +version = "0.34.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55f6cc0cb3b84a21232c468db972ebcddd34decbf1ff02cdebffd807c13bbd81" +checksum = "a05fbfa222ffb51989d5ccf33e5f7aebfcf96c5023413856b0c3618a7f79896e" dependencies = [ "bytemuck", "emath", @@ -1173,9 +1173,9 @@ dependencies = [ [[package]] name = "eframe" -version = "0.34.2" +version = "0.34.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea3080bfd001aee2223dcb2228d9de7d31f41d7cfb99e8cd70df3ae8083a42f" +checksum = "f98fe83b2589105b69dd25ca1e0fa2135a6e864d502fd8e08978f937e128cfef" dependencies = [ "ahash", "bytemuck", @@ -1209,9 +1209,9 @@ dependencies = [ [[package]] name = "egui" -version = "0.34.2" +version = "0.34.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cbe28ac1a9c0761319aafb9ad37737720cc49d99c13a4a6b990768fa01ffe67" +checksum = "42112be0ae157289312b92b3dfaf20e911b5a3c4c65d4aab0e7c47fbc0ce16e3" dependencies = [ "accesskit", "ahash", @@ -1227,9 +1227,9 @@ dependencies = [ [[package]] name = "egui-wgpu" -version = "0.34.2" +version = "0.34.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f311c0b9cdd8a38821ae6f245fbe6e1a3d7d157c77b7d22344f205b317232c8" +checksum = "9f0c0559ac5598a1b887a6206dccbab7e3e6246c57cb00ae287262bd44776c9c" dependencies = [ "ahash", "bytemuck", @@ -1247,9 +1247,9 @@ dependencies = [ [[package]] name = "egui-winit" -version = "0.34.2" +version = "0.34.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8e97625c2fe0fadc8b92ec690fbf515e15e2efd67ca50e063ad3302ec8ee626" +checksum = "967c5b323625d46d46a59b5daba3fef742248d27693cc18972458619858c4239" dependencies = [ "accesskit_winit", "arboard", @@ -1269,9 +1269,9 @@ dependencies = [ [[package]] name = "egui_extras" -version = "0.34.2" +version = "0.34.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c609fc87f6c70ffd3afd679cbb294985096d2fc0be33e762ad5614bde4925bc" +checksum = "598d8675f6fd9088db8a93d8c7aacda936b2f3d0c2b0660ad1744a45b5caf922" dependencies = [ "ahash", "egui", @@ -1283,9 +1283,9 @@ dependencies = [ [[package]] name = "egui_glow" -version = "0.34.2" +version = "0.34.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6caa4eca47cc2358e2c5ae60843a94118e338f87099c6af4170e6e968e8d77cb" +checksum = "62b652957fa7e1ab01e8fecbfbf4e35f6e43a53fa98af8a562b50d5403cd44b9" dependencies = [ "bytemuck", "egui", @@ -1300,15 +1300,15 @@ dependencies = [ [[package]] name = "either" -version = "1.15.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" +checksum = "91622ff5e7162018101f2fea40d6ebf4a78bbe5a49736a2020649edf9693679e" [[package]] name = "emath" -version = "0.34.2" +version = "0.34.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a74fbbf7501c430b89df62d102b6bfa02162faaf3e155512c677c9d20f5708d1" +checksum = "b53f0d33a479321da6b0caa71366c9f67e8a2c149762d90bdc0d16e601ee8ecb" dependencies = [ "bytemuck", ] @@ -1403,9 +1403,9 @@ dependencies = [ [[package]] name = "epaint" -version = "0.34.2" +version = "0.34.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92b452e348c2758115288802ca25f86ee286ce2cfae6643711ce116662311310" +checksum = "6675898a291ec212fc3df04f537d177fce8496120244590e6359dcaa4c25da79" dependencies = [ "ahash", "bytemuck", @@ -1425,9 +1425,9 @@ dependencies = [ [[package]] name = "epaint_default_fonts" -version = "0.34.2" +version = "0.34.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1644e25dbe3d663fd9c2a4181772c64b23361e377e550c10422ecc3a7de1c3c2" +checksum = "f8970033a4282a7bcf899b38b5ed3a58b732fe093d03785d58648515d8d309da" [[package]] name = "equator" @@ -1734,7 +1734,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee8cfcc411d9adbbaba82fb72661cc1bcca13e8bba98b364e62b2dba8f960159" dependencies = [ "color_quant", - "weezl", + "weezl 0.1.12", ] [[package]] @@ -2293,9 +2293,9 @@ checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "jiff" -version = "0.2.24" +version = "0.2.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f00b5dbd620d61dfdcb6007c9c1f6054ebd75319f163d886a9055cec1155073d" +checksum = "392c70591e8749fe235ddaf513e6f58b26bce3dcc16524cecc8936f75afa161e" dependencies = [ "jiff-static", "log", @@ -2306,9 +2306,9 @@ dependencies = [ [[package]] name = "jiff-static" -version = "0.2.24" +version = "0.2.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e000de030ff8022ea1da3f466fbb0f3a809f5e51ed31f6dd931c35181ad8e6d7" +checksum = "47b605b0c050d845fc355bb11eb3f9a8deddc218ea60c76e61aa1f2adfb2c96a" dependencies = [ "proc-macro2", "quote", @@ -2394,9 +2394,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.98" +version = "0.3.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67df7112613f8bfd9150013a0314e196f4800d3201ae742489d999db2f979f08" +checksum = "142bc4740e452c1e57ade0cbc129f139c9093e354346f0872ef985f4f5cf5f11" dependencies = [ "cfg-if", "futures-util", @@ -2434,12 +2434,13 @@ dependencies = [ [[package]] name = "kurbo" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7564e90fe3c0d5771e1f0bc95322b21baaeaa0d9213fa6a0b61c99f8b17b3bfb" +checksum = "4b60dfc32f652b926df6192e55525b16d186c69d47876c3ead4da5cc9f8450e2" dependencies = [ "arrayvec", "euclid", + "polycool", "smallvec", ] @@ -2513,14 +2514,14 @@ checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" [[package]] name = "libredox" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e02f3bb43d335493c96bf3fd3a321600bf6bd07ed34bc64118e9293bdffea46c" +checksum = "f02ab6bace2054fb888a3c16f990117b579d14a3088e472d63c6011fa185c9d3" dependencies = [ "bitflags 2.11.1", "libc", "plain", - "redox_syscall 0.7.5", + "redox_syscall 0.8.0", ] [[package]] @@ -2564,9 +2565,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.29" +version = "0.4.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" +checksum = "616ec5685824bcc94416c6d4a7a446eea774a31efd7062c8480ba6fd06d7a6e5" [[package]] name = "loop9" @@ -2599,9 +2600,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.8.0" +version = "2.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" +checksum = "6b947ae49db0d222b1dbc6b113ce7248a3fc3a6ca21b696717bfc000ba4484d8" [[package]] name = "memmap2" @@ -2763,9 +2764,9 @@ dependencies = [ [[package]] name = "num-conv" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6673768db2d862beb9b39a78fdcb1a69439615d5794a1be50caa9bc92c81967" +checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441" [[package]] name = "num-derive" @@ -3192,9 +3193,9 @@ dependencies = [ [[package]] name = "orbclient" -version = "0.3.54" +version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a570f6bca41d29acb2139229a7c873ec99bc9a313bd10804081d89bfac8ff329" +checksum = "5df339f526ea9a60e371768d50efc2f2508c7203290731565d1f7a6f71d21747" dependencies = [ "libc", "libredox", @@ -3277,9 +3278,9 @@ checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" [[package]] name = "pdf_oxide" -version = "0.3.50" +version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c512f3d7e8feac18e94ee08995d5c12d0fb86375ff4b03f931a11c808276eff4" +checksum = "5945029a68efc99773074ef9d5c8a211a3e515d5bee46feba2f4df31776e1c5c" dependencies = [ "aes", "base64", @@ -3304,7 +3305,7 @@ dependencies = [ "office_oxide", "phf 0.13.1", "qcms", - "quick-xml 0.39.4", + "quick-xml 0.40.1", "regex", "serde", "serde_json", @@ -3318,18 +3319,18 @@ dependencies = [ "unicode-bidi", "unicode-linebreak", "uuid", - "weezl", + "weezl 0.2.1", ] [[package]] name = "peniko" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2b6aadb221872732e87d465213e9be5af2849b0e8cc5300a8ba98fffa2e00a" +checksum = "839c8299360d2e998bdb106dc0a6cd71dcc5f4df51df1b620361bf50e283cca6" dependencies = [ "bytemuck", "color", - "kurbo 0.13.0", + "kurbo 0.13.1", "linebender_resource_handle", "smallvec", ] @@ -3429,18 +3430,18 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.12" +version = "1.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbf0d9e68100b3a7989b4901972f265cd542e560a3a8a724e1e20322f4d06ce9" +checksum = "2466b2336ed02bcdca6b294417127b90ec92038d1d5c4fbeac971a922e0e0924" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.12" +version = "1.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a990e22f43e84855daf260dded30524ef4a9021cc7541c26540500a50b624389" +checksum = "c96395f0a926bc13b1c17622aaddda1ecb55d49c8f1bf9777e4d877800a43f8b" dependencies = [ "proc-macro2", "quote", @@ -3509,6 +3510,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2f3a9f18d041e6d0e102a0a46750538147e5e8992d3b4873aaafee2520b00ce3" +[[package]] +name = "polycool" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50596ddc09eb5ad5f75cacd40209568e66df71baf86e1499a0e99c4cff12a5a6" +dependencies = [ + "arrayvec", +] + [[package]] name = "portable-atomic" version = "1.13.1" @@ -3853,9 +3863,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.7.5" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4666a1a60d8412eab19d94f6d13dcc9cea0a5ef4fdf6a5db306537413c661b1b" +checksum = "7c7591fa2c6b601dfcfe5f043f65a1c39fcdf50efefcd7f1572e538c1f4b398d" dependencies = [ "bitflags 2.11.1", ] @@ -4059,9 +4069,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.149" +version = "1.0.150" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" +checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9" dependencies = [ "itoa", "memchr", @@ -4434,7 +4444,7 @@ dependencies = [ "flate2", "half", "quick-error", - "weezl", + "weezl 0.1.12", "zune-jpeg", ] @@ -4547,9 +4557,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.25.11+spec-1.1.0" +version = "0.25.12+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b59c4d22ed448339746c59b905d24568fcbb3ab65a500494f7b8c3e97739f2b" +checksum = "d2153edc6955a6c354fad8f5efd38b6a8769bdccf9fe50f8e1329f81b0baa5d7" dependencies = [ "indexmap", "toml_datetime", @@ -4808,9 +4818,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.121" +version = "0.2.122" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49ace1d07c165b0864824eee619580c4689389afa9dc9ed3a4c75040d82e6790" +checksum = "3ed04576f974d2b2fba0f38c51dbc5518011e38c36bf1143164be765528fd409" dependencies = [ "cfg-if", "once_cell", @@ -4821,9 +4831,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.71" +version = "0.4.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96492d0d3ffba25305a7dc88720d250b1401d7edca02cc3bcd50633b424673b8" +checksum = "9473dbd2991ae90b6291c3c32c30c6187ac49aa32f9905d1cce280ec1e110b0f" dependencies = [ "js-sys", "wasm-bindgen", @@ -4831,9 +4841,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.121" +version = "0.2.122" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e68e6f4afd367a562002c05637acb8578ff2dea1943df76afb9e83d177c8578" +checksum = "916151b09da36bd82f6615cbf3a419e2f0ba23a03c6160e8e92eb6bd4aa1dec6" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -4841,9 +4851,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.121" +version = "0.2.122" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d95a9ec35c64b2a7cb35d3fead40c4238d0940c86d107136999567a4703259f2" +checksum = "299047362ccbfce148b67ab7e73349f77748e00c8296f9542adfad2ad82c5c5e" dependencies = [ "bumpalo", "proc-macro2", @@ -4854,9 +4864,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.121" +version = "0.2.122" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4e0100b01e9f0d03189a92b96772a1fb998639d981193d7dbab487302513441" +checksum = "9a929b2c61f11ba3e9bc35b50c1f25cb38e0e892c0c231ae2b8cf78d5dad4437" dependencies = [ "unicode-ident", ] @@ -5032,9 +5042,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.98" +version = "0.3.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b572dff8bcf38bad0fa19729c89bb5748b2b9b1d8be70cf90df697e3a8f32aa" +checksum = "6d621441cfc37b84979402712047321980c178f299193a3589d05b99e8763436" dependencies = [ "js-sys", "wasm-bindgen", @@ -5072,6 +5082,12 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88" +[[package]] +name = "weezl" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4ca08e5ef825b65b056d9efbd95c8750683f0a6d0466d02e96dc2e4e360f3d2" + [[package]] name = "wgpu" version = "29.0.3" @@ -5588,9 +5604,9 @@ dependencies = [ [[package]] name = "winnow" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ee1708bef14716a11bae175f579062d4554d95be2c6829f518df847b7b3fdd0" +checksum = "0592e1c9d151f854e6fd382574c3a0855250e1d9b2f99d9281c6e6391af352f1" dependencies = [ "memchr", ] @@ -5909,18 +5925,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.48" +version = "0.8.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9" +checksum = "bce33a6288fa3f072a8c2c7d0f2fdbb90e28298f0135c1f99b96c3db2efcc60b" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.48" +version = "0.8.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" +checksum = "8fd425244944f4ab65ccff928e7323354c5a018c75838362fdce749dfad2ee1e" dependencies = [ "proc-macro2", "quote", @@ -5929,9 +5945,9 @@ dependencies = [ [[package]] name = "zerofrom" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69faa1f2a1ea75661980b013019ed6687ed0e83d069bc1114e2cc74c6c04c4df" +checksum = "0ec05a11813ea801ff6d75110ad09cd0824ddba17dfe17128ea0d5f68e6c5272" dependencies = [ "zerofrom-derive", ] From f6f381b3158d25cbd95658c445378fad898ec695 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 29 May 2026 09:52:07 +0900 Subject: [PATCH 6/8] search when combo changed --- src/app.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/app.rs b/src/app.rs index aff331f..fa098ca 100644 --- a/src/app.rs +++ b/src/app.rs @@ -498,7 +498,7 @@ impl SearchApp { } let combo_id = ui.id().with("search_mode_combo").with(tab_index); - let _ = egui::ComboBox::from_id_salt(combo_id) + let combo_res = egui::ComboBox::from_id_salt(combo_id) .selected_text(tab.config.mode.label()) .width(180.0) .show_ui(ui, |ui| { @@ -524,6 +524,9 @@ impl SearchApp { sub_changed }); + if let Some(true) = combo_res.inner { + input_changed = true; + } }); ui.add_space(5.0); From a3787f86aef001261508eeb783b3065b0bfc0129 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 29 May 2026 09:58:26 +0900 Subject: [PATCH 7/8] strong text --- src/app.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app.rs b/src/app.rs index fa098ca..500fc33 100644 --- a/src/app.rs +++ b/src/app.rs @@ -535,7 +535,7 @@ impl SearchApp { let mut should_cancel = false; for query in &mut tab.config.queries { ui.horizontal(|ui| { - ui.label("검색어: "); + ui.label(egui::RichText::new("검색어: ").strong()); let remaining_width = ui.available_width() - 300.0; if ui .add( From 676c0a8bbd193d6be6d54126ac72e0eab0d8159d Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 29 May 2026 10:15:23 +0900 Subject: [PATCH 8/8] remove strong font --- src/app.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app.rs b/src/app.rs index 500fc33..5c4fa70 100644 --- a/src/app.rs +++ b/src/app.rs @@ -535,7 +535,7 @@ impl SearchApp { let mut should_cancel = false; for query in &mut tab.config.queries { ui.horizontal(|ui| { - ui.label(egui::RichText::new("검색어: ").strong()); + ui.label("검색어:"); let remaining_width = ui.available_width() - 300.0; if ui .add(