Skip to content
This repository was archived by the owner on Sep 12, 2026. It is now read-only.

feat: 背景画像と透明度を設定画面で設定可能に - #4

Merged
treetips merged 5 commits into
mainfrom
feature/wallpaper-settings-main
Sep 1, 2026
Merged

treetips merged 5 commits into
mainfrom
feature/wallpaper-settings-main

Conversation

@treetips

@treetips treetips commented Sep 1, 2026

Copy link
Copy Markdown
Owner

概要

背景画像と背景画像の透明度を設定画面で選択できるようにし、settings.json に保存されるようにしました。

仕様

  • docs/design/feature/settings.md / README.md / docs/design/feature/images/画面構成-設定.webp に記載の新仕様に準拠

変更内容

  • アセット整理: assets/images/wallpaper1.jpg 等を assets/images/wallpaper/ 配下へ移動、pubspec.yaml / AppConstants.wallpaperAsset を新パスに更新
  • モデル: WallpaperOption (name/source/isBundled, label) / WallpaperService (同梱 assets/images/wallpaper/ とユーザー ~/.config/tree-image-optimizer/wallpaper を統合、jpg/png 対応、ソート、(サンプル)prefix、フォールバック)
  • 永続化: SettingsScreenSettings に wallpaper / wallpaperOpacity 追加、SettingsRepository で double 対応と永続化
  • 状態管理: SettingsViewModel で壁紙一覧読み込みと選択補正、SettingsState に wallpaper/wallpaperOpacity/wallpapers/webpVersion 追加
  • 表示: HomeShell を ConsumerStatefulWidget 化し、設定値の壁紙を Opacity + Image.asset/Image.file で表示
  • UI: SettingsScreen に壁紙プルダウン (DropdownButtonFormField + InfoTooltip) と透明度スライダー (Slider 0.0-1.0, divisions 10) を sectionBasic に追加
  • l10n: wallpaper / infoWallpaper / wallpaperOpacity / infoWallpaperOpacity を app_ja/en.arb に追加

検証

  • fvm flutter gen-l10n / fvm dart format / fvm flutter analyze => No issues
  • fvm flutter test => 40 passed
  • fvm flutter build macos --debug => Built
  • 手動で ~/.config/tree-image-optimizer/wallpaper に画像配置時の表示・フォールバックを確認

関連

  • docs/design/feature/settings.md
  • docs/design/feature/images/画面構成-設定.webp

- assets/images/wallpaper[1-3].jpg を assets/images/wallpaper/ 配下へ移動
- pubspec.yaml / AppConstants.wallpaperAsset を新パスに更新
- docs/design/feature/settings.md に背景画像・透明度の仕様を追記
- README にユーザー背景画像の配置方法を追記
- docs/design/feature/images/画面構成-設定.webp を更新
- AppConstants.wallpaperOpacity のデフォルトを 0.4 に変更
- AGENTS.md に git 操作の禁止事項を追記

壁紙設定は settings.json に保存される仕様に準拠
- SettingsScreenSettings に wallpaper / wallpaperOpacity を追加し settings.json で永続化
- WallpaperOption / WallpaperService を追加し、同梱壁紙 (assets/images/wallpaper) とユーザー壁紙 (.config/tree-image-optimizer/wallpaper) を統合して一覧化
- 対応拡張子 jpg/png、ファイル名ソート、(サンプル)prefix、存在しない場合のフォールバックを仕様通りに実装
- SettingsViewModel で壁紙一覧の読み込みと選択補正を追加
- HomeShell を Consumer化し、設定値の壁紙を Opacity で表示 (assets は Image.asset、ユーザー壁紙は Image.file)
- SettingsScreen に壁紙プルダウンと透明度スライダー (0.0-1.0) を追加
- l10n に wallpaper / infoWallpaper / wallpaperOpacity を追加
- providers に wallpaperServiceProvider を追加
- 背景画像を BoxFit.contain + Alignment.center でアスペクト比を保ったまま表示
- SettingsScreenSettings に wallpaperBackgroundColor (#FFFFFF 初期値) を追加
- SettingsRepository で hex バリデーションと永続化
- SettingsViewModel で背景色の管理と保存
- HomeShell で背景色を Container(color:) で適用し、letterbox に対応
- SettingsScreen に背景色カラーピッカー (プリセット12色、ダイアログ) を追加
- l10n に wallpaperBackgroundColor / infoWallpaperBackgroundColor を追加
- docs/design/feature/settings.md / 画面構成-設定.webp を新仕様に更新
- pubspec.yaml に flutter_color_picker_plus 2.2.1 を追加
- SettingsScreen の _showColorPicker を ColorPicker (HSV, hexInputBar, enableAlpha:false) に置換し高機能化
- プリセット12色の GridView から HSV/RGB スライダー・hex 入力対応のピッカーへ変更
- ColorPicker の Dropdown/TextField が Material なしで例外を投げていたため、labelTypes を空にし hexInputBar を無効化
- portraitOnly: true と colorPickerWidth: 300 でレイアウト崩れ (RenderFlex overflow) を解消
- 選択ボタン押下時の StackTrace を解消し、HSV ピッカーが正常に表示されることを確認
@treetips
treetips enabled auto-merge September 1, 2026 13:48
@treetips
treetips merged commit 836bc6f into main Sep 1, 2026
1 check passed
@treetips
treetips deleted the feature/wallpaper-settings-main branch September 1, 2026 13:57
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant