MIERUNE / ElevationTile4JP

Retrieve Geographical Survey Institute elevation tiles in the screen and convert them to GeoTiff.
https://mierune.co.jp/
GNU General Public License v2.0
5 stars 2 forks source link

Feat/progress bar #37

Closed bordoray closed 2 months ago

bordoray commented 2 months ago

Close #34

Description(変更内容)

タイル数を進捗バーを表示 image

Manual Testing(手動テスト)

Test with various patterns:

Summary by CodeRabbit

coderabbitai[bot] commented 2 months ago

ウォークスルー

この変更セットは、複数のファイルにわたって大規模なリファクタリングと機能追加を行いました。主な変更点は、ElevationTileConverterクラスをQThreadのサブクラスに変換し、進捗バーのサポートを追加しました。また、ElevationArrayクラスから不要なメソッドと例外を削除し、UIコンポーネントの調整も行いました。

変更点

ファイル 変更内容の概要
.../elevation_tile_array.py TileQuantityExceptionUserTerminationExceptionを削除、fetch_all_tilesメソッドを削除し、count_tilesメソッドを追加
.../elevation_tile_converter.py ElevationTileConverterクラスをQThreadのサブクラスに変更、新しいシグナルとメソッドを追加
get_tiles.py QThreadとProgressDialogのインポート、進捗ダイアログと新しい方法での処理フローの統合
progress_dialog.py ProgressDialogクラス追加、進捗バーとメッセージ表示、プロセス中断の機能
progress_dialog.ui 進捗バー、ラベル、「中断」ボタンを含む新しいダイアログウィンドウ

シーケンス図

sequenceDiagram
    participant User
    participant MainThread
    participant ProgressDialog
    participant ElevationTileConverter

    User ->> MainThread: Start tile processing
    MainThread ->> ProgressDialog: Initialize and show
    MainThread ->> ElevationTileConverter: Start thread
    ElevationTileConverter ->> ProgressDialog: Update progress 
    ElevationTileConverter ->. User: Waits for completion or abort
    ProgressDialog ->> ElevationTileConverter: Abort signal (on abort)
    ElevationTileConverter -->> MainThread: Notify completion or failure
    MainThread ->> User: Show completion message

連動された問題に対する評価

Objective Addressed Explanation
Progress bar implementation (#34)

タイルを並べ山となり、 進捗バーが光る道。 中断ボタンも控えめに、 ユーザーのための旅路かな。 🐇✨


Tips ### Chat There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai): - Review comments: Directly reply to a review comment made by CodeRabbit. Example: - `I pushed a fix in commit .` - `Generate unit testing code for this file.` - `Open a follow-up GitHub issue for this discussion.` - Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples: - `@coderabbitai generate unit testing code for this file.` - `@coderabbitai modularize this function.` - PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples: - `@coderabbitai generate interesting stats about this repository and render them as a table.` - `@coderabbitai show all the console.log statements in this repository.` - `@coderabbitai read src/utils.ts and generate unit testing code.` - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.` - `@coderabbitai help me debug CodeRabbit configuration file.` Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. ### CodeRabbit Commands (invoked as PR comments) - `@coderabbitai pause` to pause the reviews on a PR. - `@coderabbitai resume` to resume the paused reviews. - `@coderabbitai review` to trigger an incremental review. This is useful when automatic reviews are disabled for the repository. - `@coderabbitai full review` to do a full review from scratch and review all the files again. - `@coderabbitai summary` to regenerate the summary of the PR. - `@coderabbitai resolve` resolve all the CodeRabbit review comments. - `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository. - `@coderabbitai help` to get help. Additionally, you can add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed. ### CodeRabbit Configration File (`.coderabbit.yaml`) - You can programmatically configure CodeRabbit by adding a `.coderabbit.yaml` file to the root of your repository. - Please see the [configuration documentation](https://docs.coderabbit.ai/guides/configure-coderabbit) for more information. - If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: `# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json` ### Documentation and Community - Visit our [Documentation](https://coderabbit.ai/docs) for detailed information on how to use CodeRabbit. - Join our [Discord Community](https://discord.com/invite/GsXnASn26c) to get help, request features, and share feedback. - Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.