From 9aac91ccb1a069be907a619743df0b17822e6913 Mon Sep 17 00:00:00 2001 From: burnintuna Date: Fri, 21 Aug 2026 22:06:04 +0900 Subject: [PATCH] Release v0.2.15 --- Cargo.lock | 2 +- Cargo.toml | 2 +- ...ithub.comicviewer.Comicviewer.metainfo.xml | 1 + docs/RELEASING.ko.md | 8 ++-- src/viewer.rs | 43 +++++++++++++++++-- 5 files changed, 47 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ef41b2c..d2bdc54 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -182,7 +182,7 @@ checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" [[package]] name = "comicviewer" -version = "0.2.14" +version = "0.2.15" dependencies = [ "anyhow", "chrono", diff --git a/Cargo.toml b/Cargo.toml index 9a0e272..5af3812 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "comicviewer" -version = "0.2.14" +version = "0.2.15" edition = "2024" description = "A comic archive viewer for local and remote locations" license = "GPL-3.0-or-later" diff --git a/data/io.github.comicviewer.Comicviewer.metainfo.xml b/data/io.github.comicviewer.Comicviewer.metainfo.xml index d7e57fd..9fa6f2b 100644 --- a/data/io.github.comicviewer.Comicviewer.metainfo.xml +++ b/data/io.github.comicviewer.Comicviewer.metainfo.xml @@ -26,6 +26,7 @@ + diff --git a/docs/RELEASING.ko.md b/docs/RELEASING.ko.md index a05bf1f..d2551ee 100644 --- a/docs/RELEASING.ko.md +++ b/docs/RELEASING.ko.md @@ -55,7 +55,7 @@ AppImage 빌드가 끝나면 다음 스크립트로 체크섬과 통합 `tar.gz` 스크립트는 `Cargo.toml`에서 버전을 읽고 다음 파일을 생성합니다. -- `dist/Comicviewer-0.2.14-x86_64.AppImage.sha256` +- `dist/Comicviewer-0.2.15-x86_64.AppImage.sha256` - `dist/Comicviewer-latest-x86_64.tar.gz` - `dist/Comicviewer-latest-x86_64.tar.gz.sha256` @@ -78,10 +78,10 @@ sha256sum -c Comicviewer-latest-x86_64.tar.gz.sha256 ```sh git add Cargo.toml Cargo.lock data packaging README.md docs -git commit -m "Release v0.2.14" -git tag -a v0.2.14 -m "Comicviewer v0.2.14" +git commit -m "Release v0.2.15" +git tag -a v0.2.15 -m "Comicviewer v0.2.15" git push origin main -git push origin v0.2.14 +git push origin v0.2.15 ``` 이미 원격에 공개한 태그는 이동하거나 덮어쓰지 않습니다. 수정이 필요하면 새 diff --git a/src/viewer.rs b/src/viewer.rs index 8832a74..3587a91 100644 --- a/src/viewer.rs +++ b/src/viewer.rs @@ -286,7 +286,11 @@ impl ViewerWindow { } = controls; let direction_control = two_page_direction_control .expect("archive viewer requires a two-page direction control"); - let title = source.display_name.clone(); + let title_files = sibling_navigator + .as_ref() + .map(SiblingNavigator::files) + .unwrap_or_default(); + let title = viewer_file_title(&source.display_name, &source.source_uri, &title_files); let file_list_query = reuse_window .as_ref() .map(viewer_file_search_query) @@ -2260,7 +2264,11 @@ impl MediaViewerWindow { view_mode_control, two_page_direction_control: _, } = controls; - let title = source.display_name.clone(); + let title_files = sibling_navigator + .as_ref() + .map(SiblingNavigator::files) + .unwrap_or_default(); + let title = viewer_file_title(&source.display_name, &source.source_uri, &title_files); let file_list_query = reuse_window .as_ref() .map(viewer_file_search_query) @@ -2341,7 +2349,7 @@ impl MediaViewerWindow { }); stack.add_named(&video, Some("video")); let status_label = gtk::Label::builder() - .label(&title) + .label(&source.display_name) .xalign(0.0) .margin_top(6) .margin_bottom(6) @@ -3425,6 +3433,13 @@ fn viewer_title_label(title: &str) -> gtk::Label { .build() } +fn viewer_file_title(display_name: &str, current_uri: &str, files: &[SiblingFile]) -> String { + seek_position(files, current_uri).map_or_else( + || display_name.to_owned(), + |index| format!("{display_name} ({}/{})", index + 1, files.len()), + ) +} + struct ViewerFileList { panel: gtk::Box, search: gtk::SearchEntry, @@ -4292,6 +4307,28 @@ mod tests { assert_eq!(seek_sibling_files(files, EntryKind::Image, true).len(), 3); } + #[test] + fn viewer_title_includes_current_file_index() { + let files = ["first.zip", "second.jpg", "third.mp4"].map(|name| SiblingFile { + uri: format!("file:///{name}"), + name: name.into(), + kind: EntryKind::Image, + }); + + assert_eq!( + viewer_file_title("second.jpg", "file:///second.jpg", &files), + "second.jpg (2/3)" + ); + assert_eq!( + viewer_file_title("missing.jpg", "file:///missing.jpg", &files), + "missing.jpg" + ); + assert_eq!( + viewer_file_title("only.jpg", "file:///only.jpg", &[]), + "only.jpg" + ); + } + #[test] fn playlist_search_filters_and_empty_query_restores_files() { let files = ["Alpha.zip", "beta.jpg", "Bravo.mp4"].map(|name| SiblingFile {