Release v0.2.20
This commit is contained in:
parent
bae8699674
commit
10574773c6
7 changed files with 23 additions and 19 deletions
2
Cargo.lock
generated
2
Cargo.lock
generated
|
|
@ -182,7 +182,7 @@ checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "comicviewer"
|
name = "comicviewer"
|
||||||
version = "0.2.19"
|
version = "0.2.20"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"chrono",
|
"chrono",
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "comicviewer"
|
name = "comicviewer"
|
||||||
version = "0.2.19"
|
version = "0.2.20"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
description = "A comic archive viewer for local and remote locations"
|
description = "A comic archive viewer for local and remote locations"
|
||||||
license = "GPL-3.0-or-later"
|
license = "GPL-3.0-or-later"
|
||||||
|
|
@ -8,7 +8,7 @@ license = "GPL-3.0-or-later"
|
||||||
[dependencies]
|
[dependencies]
|
||||||
anyhow = "1.0"
|
anyhow = "1.0"
|
||||||
chrono = { version = "0.4", default-features = false, features = ["clock"] }
|
chrono = { version = "0.4", default-features = false, features = ["clock"] }
|
||||||
gtk = { package = "gtk4", version = "0.10", features = ["v4_10"] }
|
gtk = { package = "gtk4", version = "0.10", features = ["v4_12"] }
|
||||||
image = { version = "0.25", default-features = false, features = ["avif-native", "bmp", "gif", "jpeg", "png", "webp"] }
|
image = { version = "0.25", default-features = false, features = ["avif-native", "bmp", "gif", "jpeg", "png", "webp"] }
|
||||||
filetime = "0.2"
|
filetime = "0.2"
|
||||||
flate2 = "1.0"
|
flate2 = "1.0"
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,7 @@
|
||||||
</provides>
|
</provides>
|
||||||
<content_rating type="oars-1.1" />
|
<content_rating type="oars-1.1" />
|
||||||
<releases>
|
<releases>
|
||||||
|
<release version="0.2.20" date="2026-08-21" />
|
||||||
<release version="0.2.19" date="2026-08-21" />
|
<release version="0.2.19" date="2026-08-21" />
|
||||||
<release version="0.2.18" date="2026-08-21" />
|
<release version="0.2.18" date="2026-08-21" />
|
||||||
<release version="0.2.17" date="2026-08-21" />
|
<release version="0.2.17" date="2026-08-21" />
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ sudo pacman -S fuse2 gtk4 dav1d gvfs gvfs-smb gstreamer curl \
|
||||||
```
|
```
|
||||||
|
|
||||||
- `fuse2`: AppImage 마운트 및 실행
|
- `fuse2`: AppImage 마운트 및 실행
|
||||||
- `gtk4`, `dav1d`: 화면 표시와 이미지 디코딩
|
- `gtk4` 4.12 이상, `dav1d`: 화면 표시와 이미지 디코딩
|
||||||
- `gvfs`: FTP와 SFTP 접근
|
- `gvfs`: FTP와 SFTP 접근
|
||||||
- `gvfs-smb`: SMB 공유 접근
|
- `gvfs-smb`: SMB 공유 접근
|
||||||
- `gstreamer`, `gst-plugins-*`, `gst-libav`: MP4 등 동영상 재생
|
- `gstreamer`, `gst-plugins-*`, `gst-libav`: MP4 등 동영상 재생
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@ AppImage 빌드가 끝나면 다음 스크립트로 체크섬과 통합 `tar.gz`
|
||||||
|
|
||||||
스크립트는 `Cargo.toml`에서 버전을 읽고 다음 파일을 생성합니다.
|
스크립트는 `Cargo.toml`에서 버전을 읽고 다음 파일을 생성합니다.
|
||||||
|
|
||||||
- `dist/Comicviewer-0.2.19-x86_64.AppImage.sha256`
|
- `dist/Comicviewer-0.2.20-x86_64.AppImage.sha256`
|
||||||
- `dist/Comicviewer-latest-x86_64.tar.gz`
|
- `dist/Comicviewer-latest-x86_64.tar.gz`
|
||||||
- `dist/Comicviewer-latest-x86_64.tar.gz.sha256`
|
- `dist/Comicviewer-latest-x86_64.tar.gz.sha256`
|
||||||
|
|
||||||
|
|
@ -78,10 +78,10 @@ sha256sum -c Comicviewer-latest-x86_64.tar.gz.sha256
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
git add Cargo.toml Cargo.lock data packaging README.md docs
|
git add Cargo.toml Cargo.lock data packaging README.md docs
|
||||||
git commit -m "Release v0.2.19"
|
git commit -m "Release v0.2.20"
|
||||||
git tag -a v0.2.19 -m "Comicviewer v0.2.19"
|
git tag -a v0.2.20 -m "Comicviewer v0.2.20"
|
||||||
git push origin main
|
git push origin main
|
||||||
git push origin v0.2.19
|
git push origin v0.2.20
|
||||||
```
|
```
|
||||||
|
|
||||||
이미 원격에 공개한 태그는 이동하거나 덮어쓰지 않습니다. 수정이 필요하면 새
|
이미 원격에 공개한 태그는 이동하거나 덮어쓰지 않습니다. 수정이 필요하면 새
|
||||||
|
|
|
||||||
|
|
@ -1872,8 +1872,8 @@ impl ViewerController {
|
||||||
if (zoom - 1.0).abs() >= f64::EPSILON {
|
if (zoom - 1.0).abs() >= f64::EPSILON {
|
||||||
let (width, height) = zoomed_picture_request(
|
let (width, height) = zoomed_picture_request(
|
||||||
self.view_mode(),
|
self.view_mode(),
|
||||||
self.single_scrolled.allocated_width().max(1),
|
self.single_scrolled.width().max(1),
|
||||||
self.single_scrolled.allocated_height().max(1),
|
self.single_scrolled.height().max(1),
|
||||||
texture_width,
|
texture_width,
|
||||||
texture_height,
|
texture_height,
|
||||||
zoom,
|
zoom,
|
||||||
|
|
@ -1891,7 +1891,7 @@ impl ViewerController {
|
||||||
self.single_picture.set_size_request(width, height);
|
self.single_picture.set_size_request(width, height);
|
||||||
} else if let Some((width, height)) = single_picture_request(
|
} else if let Some((width, height)) = single_picture_request(
|
||||||
self.view_mode(),
|
self.view_mode(),
|
||||||
self.stack.allocated_width().max(1),
|
self.stack.width().max(1),
|
||||||
texture_width,
|
texture_width,
|
||||||
texture_height,
|
texture_height,
|
||||||
) {
|
) {
|
||||||
|
|
@ -1935,8 +1935,8 @@ impl ViewerController {
|
||||||
};
|
};
|
||||||
drop(state);
|
drop(state);
|
||||||
let count = visible.len().max(1) as i32;
|
let count = visible.len().max(1) as i32;
|
||||||
let viewport_width = (self.spread_scrolled.allocated_width().max(1) - 8) / count;
|
let viewport_width = (self.spread_scrolled.width().max(1) - 8) / count;
|
||||||
let viewport_height = self.spread_scrolled.allocated_height().max(1);
|
let viewport_height = self.spread_scrolled.height().max(1);
|
||||||
self.spread_box.set_homogeneous(false);
|
self.spread_box.set_homogeneous(false);
|
||||||
self.spread_box.set_halign(gtk::Align::Center);
|
self.spread_box.set_halign(gtk::Align::Center);
|
||||||
self.spread_box.set_valign(gtk::Align::Center);
|
self.spread_box.set_valign(gtk::Align::Center);
|
||||||
|
|
@ -2177,7 +2177,7 @@ impl ViewerController {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn continuous_content_width(&self) -> i32 {
|
fn continuous_content_width(&self) -> i32 {
|
||||||
continuous_content_width(self.stack.allocated_width())
|
continuous_content_width(self.stack.width())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn evict_cache(&self) {
|
fn evict_cache(&self) {
|
||||||
|
|
@ -3071,8 +3071,8 @@ impl MediaViewerController {
|
||||||
if (zoom - 1.0).abs() >= f64::EPSILON {
|
if (zoom - 1.0).abs() >= f64::EPSILON {
|
||||||
let (width, height) = zoomed_picture_request(
|
let (width, height) = zoomed_picture_request(
|
||||||
self.image_view_mode(),
|
self.image_view_mode(),
|
||||||
self.image_scrolled.allocated_width().max(1),
|
self.image_scrolled.width().max(1),
|
||||||
self.image_scrolled.allocated_height().max(1),
|
self.image_scrolled.height().max(1),
|
||||||
texture_width,
|
texture_width,
|
||||||
texture_height,
|
texture_height,
|
||||||
zoom,
|
zoom,
|
||||||
|
|
@ -3090,7 +3090,7 @@ impl MediaViewerController {
|
||||||
self.picture.set_size_request(width, height);
|
self.picture.set_size_request(width, height);
|
||||||
} else if let Some((width, height)) = single_picture_request(
|
} else if let Some((width, height)) = single_picture_request(
|
||||||
self.image_view_mode(),
|
self.image_view_mode(),
|
||||||
self.stack.allocated_width().max(1),
|
self.stack.width().max(1),
|
||||||
texture_width,
|
texture_width,
|
||||||
texture_height,
|
texture_height,
|
||||||
) {
|
) {
|
||||||
|
|
|
||||||
|
|
@ -848,8 +848,11 @@ impl BrowserController {
|
||||||
drop(state);
|
drop(state);
|
||||||
|
|
||||||
if let Some(index) = found {
|
if let Some(index) = found {
|
||||||
self.list_selection.set_selected(index as u32);
|
self.list_view.scroll_to(
|
||||||
let _ = self.list_view.grab_focus();
|
index as u32,
|
||||||
|
gtk::ListScrollFlags::FOCUS | gtk::ListScrollFlags::SELECT,
|
||||||
|
None,
|
||||||
|
);
|
||||||
self.status_label.set_text(&format!(
|
self.status_label.set_text(&format!(
|
||||||
"'{query}'로 이동: {}",
|
"'{query}'로 이동: {}",
|
||||||
found_name.unwrap_or_default()
|
found_name.unwrap_or_default()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue