Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ファイル名の簡易表示設定での項目未選択時における更新処理の改善 #1478

Closed
wants to merge 0 commits into from

Conversation

ghost
Copy link

@ghost ghost commented Dec 5, 2020

PR の目的

「ファイル名の簡易表示」設定画面にある更新ボタンに存在するバグを修正します。

カテゴリ

  • 不具合修正

PR の背景

SonarQubeのissueを眺めていたところ、気になるものがあったので対応しようと思いました。
The right operand of '==' is a garbage value

指摘のある関数の呼び出し元のうち、更新ボタンのイベント処理から呼ばれるルートの時で、文字列の取得をしないまま(文字列が格納される変数を初期化しないまま)当該関数に引数として渡していました。

PR のメリット

  • Major Bugが1件修正されます。

PR のデメリット (トレードオフとかあれば)

  • 特にありません。

仕様・動作説明

共通設定ダイアログの「ファイル名の簡易表示」設定画面にある更新ボタンは、次のように動作しています。

  • 選択された項目の内容を、テキストボックスに入力された文字列に更新する
  • 項目を何も選択せずにボタンが押された時、
    • リストが空であればリストに項目を追加する。
    • リストが空でなければ何もしない

このうち、リストが空で何も選択していない時に行われる追加処理で、テキストボックスから文字列を取得する処理が抜けていたため、これを追加しています。
(変更前は、項目を追加できていませんでした。)

また、これとほぼ同じ画面構成であるタイプ別設定ダイアログの「正規表現キーワード」と「キーワードヘルプ」の各画面では、何も選択せずに更新ボタンを押した場合はメッセージを表示するようになっていますので、それらに合わせて「リストが空でないにも関わらず何も選択していない場合はメッセージを表示する」ようにしました。
(変更前は、何も表示されていませんでした。)

PR の影響範囲

共通設定ダイアログにある、ファイル名の簡易表示設定

テスト内容

テスト1

手順

  1. 簡易表示の置換リストをいったん空にする
  2. それぞれのテキストボックスにファイル名を入力して更新ボタンを押す
    • 入力したテキストがリストに追加されたか?
  3. リストの何もないところをクリックして、項目を何も選んでいない状態にする
  4. 再び各テキストボックスにファイル名を入力して更新ボタンを押す
    • メッセージが表示されるか?

@AppVeyorBot
Copy link

Build sakura 1.0.3279 completed (commit 06608d10ad by @kazasaku)

@@ -713,6 +713,7 @@
#define STR_PROPCOMFNM_LIST1 34528
#define STR_PROPCOMFNM_LIST2 34529
#define STR_PROPCOMFNM_ERR_REG 34530
#define STR_PROPCOMFNM_WARN_NOSEL 35043
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

指摘とすべきかどうか超悩むところなんですが、ここに追加したいです?
代替候補はsakura_rc.h、普通はこっちに追加する気がします。
なんだけど、正直どっちでも構わないです。

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

現状F_*やSTR_*がここに纏めてあるようなのでここに書きました。

@@ -238,9 +238,13 @@ INT_PTR CPropFileName::DispatchEvent( HWND hwndDlg, UINT uMsg, WPARAM wParam, LP
}else{
// 未選択でリストにひとつも項目がない場合は追加しておく
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

何を?・・・何を追加しておくつもりだったんですかね、元のコメントは。

このコメントが正しいと仮定すると、ぼくらがGitHub移行後に壊した可能性がちょっと出てくるわけです。

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

誤解のないようにコメントを書き直したほうがよいと思います。

あと、else句を追加してメッセージ出すように変えてますが、ifの中にも前処理が入っているのはなんででしょう?なんとなく、ifの中の前処理が「本来あるべき初期化」にあたるもので、「ぬけてたのを補う」がやるべきことなのかな?と思いました。・・・で、そうするとelse句は追加要件(?)にあたるので一緒にやるべきでないような。

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

blameしたところ、かなり昔からこうなっているみたいでした。
dc9ce65

@ghost ghost closed this Dec 6, 2020
@ghost
Copy link
Author

ghost commented Dec 6, 2020

すみません、間違ってCloseしてしまいました。
PRしなおします。

@beru beru added the 🐛bug🦋 ■バグ修正(Something isn't working) label Mar 21, 2021
This pull request was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🐛bug🦋 ■バグ修正(Something isn't working)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants