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

Update: キー割り当て設定画面のUIを改善 #1511

Closed
wants to merge 14 commits into from

Conversation

thiramisu
Copy link
Contributor

内容

設定 / キー割り当て 画面のUIを改善します。具体的は以下の点です。

  • 一覧

    • hover中の行が強調されるように
    • 個別設定ダイアログを出す当たり判定が(Ctrl+Nのような)キー表示部分だけだったのを行全体に拡大
    • 「未設定」をタイトルに合わせて「(未割り当て)」に
    • 一覧状態でも「未割り当てにする」を可能に
    • 最大横幅を制限し、横長な画面でもみやすく
  • 個別設定ダイアログ

    • 開いたときに現在の設定が表示されるように
    • 何のショートカットキーを変更中なのかが表示されるように
    • ダイアログでも「デフォルトに戻す」を可能に
    • 「デフォルトに戻す/未割り当てにする」が選ばれた場合でも即ダイアログを閉じず、結果を見てからキャンセルを可能に

スクリーンショット・動画など

デフォルトテーマ
image
ダークテーマ
image
横幅が足りない場合、改行は挟まるが極端には表示は崩れない(元からの仕様)
image
最大横幅を制限
image
デフォルトテーマ(OKボタン無効化中)
image
ダークテーマ(OKボタン無効化中)
image

@thiramisu thiramisu requested a review from a team as a code owner August 19, 2023 16:35
@thiramisu thiramisu requested review from y-chan and removed request for a team August 19, 2023 16:35
<q-tr :props="tableProps">
<q-tr
:props="tableProps"
@click="openHotkeyDialog(tableProps.row.action)"
Copy link
Contributor Author

@thiramisu thiramisu Aug 19, 2023

Choose a reason for hiding this comment

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

行全体をダイアログ表示のための当たり判定にしました

src/components/HotkeySettingDialog.vue Outdated Show resolved Hide resolved
padding="none sm"
size="1em"
:disable="checkHotkeyReadonly(tableProps.row.action)"
@click.stop="
Copy link
Contributor Author

Choose a reason for hiding this comment

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

行全体を当たり判定にしたので、伝播しないようにstopを追加しました

hotkey === "Meta"
? "Cmd"
: hotkey === ""
? EMPTY_COMBO_NAME
Copy link
Contributor Author

Choose a reason for hiding this comment

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

今までは空文字列は未入力を示していましたが、未入力状態でも今までの設定が表示されるようにし、空文字列は未割り当てを表すようになったので、それによる変更です。

Copy link
Member

Choose a reason for hiding this comment

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

この変更により、入力状態にも見える初期状態でなぜかOKボタンが押せないという挙動になっちゃったかもです。
(以前は空欄だったのでOKボタンが押せないのは納得感があった)

今の設定値が何かわかる一方で、なぜかOkボタンを押せないという一長一短なUXなため、どっちに倒すべきかちょっと迷ってます。
どちらも叶えられるとすごく良さそうかなと!

Copy link
Contributor Author

Choose a reason for hiding this comment

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

初期状態は空欄として、それとは別に下の方に小さめに『以前の設定:「Ctrl + S」』みたいに表示する感じはどうでしょうか?

Copy link
Member

Choose a reason for hiding this comment

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

ありな気がしました! が、まあなくても良いかもとも思いました。
どちらでも!

Copy link
Contributor Author

@thiramisu thiramisu Oct 8, 2023

Choose a reason for hiding this comment

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

image
イメージとしてはこんな感じです。
ただ、自分はあった方が便利だと思っているんですが、一般的にはあんまり見ない気もするんですよね…
需要がないんでしょうか、それなら無くても良いかもです。

ちなみに自分があった方が便利だと思うのは、ショートカットキーは結構無意識に染みついているので、いざ設定を変えるとなると以前の設定を忘れがちだからですね。
同系統の情報かと思うんですが、「デフォルト」は、他の人に操作を伝えたい場合(あとissueで説明するときとか)に「デフォルトに戻す」をせずに参照したいことがあったので追加してみました。

Copy link
Member

Choose a reason for hiding this comment

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

どちらかというとあったほうが良さそうだとは思います。
まあかなり細部なので、自転車置き場の議論っぽみがあるなという気は若干しています。

このUIに関しては↓の形が良いかもです

  • 「デフォルト」は意外と難しい単語なので「初期設定」
  • ショートカットキー入力は左端が丸くてどうしても縦揃えにならないから中央表示
  • 「以前の設定」とかはなんとなくもうちょっと中央寄りが良さそう(だけど可変長なので難しそう)

あと、ショートカットキー入力の下に書く形であれば、今何の操作のショートカットキーを編集中なのか書いてもまあ変な伝わり方はしないのかなとちょっと思いました!
「対象の操作:ほげほげ」みたいな。(「対象の操作」という言い方はもっと良いのがありそう)

</q-chip>
</template>
<span v-if="lastRecord !== '' && confirmBtnEnabled"> +</span>
<span v-if="isOnlyModifierKey"> +</span>
Copy link
Contributor Author

Choose a reason for hiding this comment

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

名前を変えただけで、挙動には変更ありません。

Comment on lines -297 to -300
// FIXME: actionはHotkeyAction型にすべき
const deleteHotkey = (action: string) => {
changeHotkeySettings(action, "");
};
Copy link
Contributor Author

Choose a reason for hiding this comment

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

ボタンが2箇所に分かれた影響で、deleteHotkeyWithConfirmになりました。

Comment on lines -351 to -368
const resetHotkey = async (action: string) => {
const result = await store.dispatch("SHOW_CONFIRM_DIALOG", {
title: "ショートカットキーを初期値に戻します",
message: `${action}のショートカットキーを初期値に戻します。<br/>本当に戻しますか?`,
html: true,
actionName: "初期値に戻す",
cancel: "初期値に戻さない",
});
if (result === "OK") {
window.electron
.getDefaultHotkeySettings()
.then((defaultSettings: HotkeySetting[]) => {
const setting = defaultSettings.find((value) => value.action == action);
if (setting) {
changeHotkeySettings(action, setting.combination);
}
});
}
Copy link
Contributor Author

Choose a reason for hiding this comment

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

ボタンが2箇所に分かれた影響で、resetHotkeyWithConfirmになりました。

Comment on lines +433 to +434
await changeHotkeySettings(duplicatedHotkey.value.action, "");
await changeHotkeySettings(targetAction.value, targetRecord.value);
Copy link
Contributor Author

Choose a reason for hiding this comment

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

片方だけがpromiseを待たれていて不自然だったので、両方待つようにしました。

lastAction.value = action;
lastRecord.value = "";
targetAction.value = action;
targetRecord.value = getCurrentHotkeyCombination(action);
Copy link
Contributor Author

Choose a reason for hiding this comment

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

個別ダイアログを開いた時に以前の設定を表示するようにしました。

src/components/HotkeySettingDialog.vue Outdated Show resolved Hide resolved
Copy link
Member

@Hiroshiba Hiroshiba left a comment

Choose a reason for hiding this comment

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

レビューは @y-chan さんにおまかせしたいのですが、UXに関してちょっとご相談が!

全体的にとても良い感じかなと思いました!!!ホバー中に強調表示などは思いつきませんでした、すごく良いと思います。

3点だけコメントがあります!

  1. デフォルトに戻す、未割り当てにする機能が、リストの中とダイアログの中の2箇所に現れていて、機能が重複しているように感じました。今後のメンテナンス性のことも考えると片方にしておきたい気持ちがあります。後述の理由で、リストの方だけにするのがいいのかもと思いました。
  2. こちらはこのプルリクエストで何とかしない方がいいと思うのですが、根本的な話として、マウスが使えない状況だとtabが吸われるから、ショートカットキーダイアログを閉じることができないですね・・・・・・。ちなみにVSCodeはescで閉じる、Discordはキー入力が完了すると自動的に終わるようになっていました。とりあえずダイアログの方は機能を足していけないという形になりそうなので、先ほどの提案でダイアログ内にボタンを増やすのをやめる側に倒す提案をした次第です。
  3. これはどこにもメモっていなかったので申し訳ないのですが、ショートカットダイアログの中に何のショートカットキーを設定しているのかのタイトルを書かなかったのは、わざとそうしています。というのもここに何が書かれるのか分からず、何か勘違いしてしまうような内容になる可能性があるので、意図的に外していました。例えば「キャンセル」などが書かれている場合に混乱を生じるかなと・・・。ちなみにVSCodeは何も書かれていませんでした。

@thiramisu
Copy link
Contributor Author

thiramisu commented Aug 21, 2023

コメントありがとうございます。
先にissue立てて、分割してPR送れば良かったですね、すいません。

例に出してくださった Discord と VSCode のキーコンフィグを試してみました。
Discord は候補が少ないので、文字・欄を大きくできて、ダイアログを出さなくても分かりやすいのかなと。
VSCode は候補が多いので、一覧性を優先し、どこを編集してるのかが分かりにくくなっているのをダイアログでカバーしている感じかなと思いました。
どちらもキーの表示が中央寄りなのは意図的な気もしました。
以下はその操作感を元に書きました。


  1. 機能が重複しているので、リストの方だけにする

確かにその方が良さそうです。アイコンを使ったのにも重複してることを明示して混乱を避ける意図がありましたが、そもそもそうすれば解決ですね。
VSCode だとどこにリセット/削除があるんだろうかと思ったんですが、コンテキストメニューにあるんですね、なるほど…


  1. マウスが使えない状況だとtabが吸われるからダイアログを閉じることができない

薄々気付いてました…。ちなみに VSCode は UI 上から Esc と Enter が登録不可に見えるんですが、諦めてるんですかね…?
キーボード操作だともう一つ問題があったので、それも合わせてissueを立ててみました。


  1. ダイアログにタイトルを書かなかった

VSCodeだと後ろの強調表示が維持されたままなので何の設定中か分かりやすいんですが、VOICEVOXだと背景が暗くなるので、入力中だというのが分かりやすいのと引き換えに何の変更中かが分かりにくくなっている気がします。
2つ解決策を考えてみました。

  1. 強調表示を維持する
    背景が暗くなるので少し見にくいかもしれません。また、ダイアログでちょっと隠れちゃうかも…まあでも全く強調されない現状よりはマシかなと。
  2. 説明を加える
    以下は流石に長いかも…
    image
    文章量としては以下くらいが妥当かもです
    image

@Hiroshiba
Copy link
Member

ちなみに VSCode は UI 上から Esc と Enter が登録不可に見えるんですが、諦めてるんですかね…?

これはそうだと思います。実際多分クリックとかもどうしても不可能だったりするので、まあそんなもんかなと。(Esc押さないと閉じられないのは思い切った設計だな~と思いました。)

2つ解決策を考えてみました。
説明を加える

まあ確かに書いていた方が親切だなと思い直しました。説明を加える形がいいのかなと!

Copy link
Member

@y-chan y-chan left a comment

Choose a reason for hiding this comment

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

長らくレビューを忘れていてすみません...
コード的に気になった点はないかなと思います...!LGTMです!
コメントのおかげでレビューもしやすかったです!

が、一つだけ気になった(というか議論したい)点があります。
画面をいっぱいに使わず、一部だけを使う(今回だと中央だけ)にするUIは、いままでVOICEVOX内ではなかった気がします(私の認識違いだったらすみません...)。
中心だけを見ればよく、使いやすさは上がると思うのですが、ちょっとデザインがこれでいいのかを議論しておきたいです。
例えば、ヘッダーのタイトルを中央揃えにしたとかは、今までのUIの暗黙的なルール(ルールと言うほどのものではなく、コードを書く人が勝手に守ってた決まりごとですが...)と異なるはずです。
他にも、線を端っこまでは引かずに、中央部分だけでぷっつり切るというのも今までだとあんまり見られなかったと思います。

ちょっとどうすべきかお二方(@thiramisu @Hiroshiba )の意見をお伺いしたいなと...!

@thiramisu
Copy link
Contributor Author

thiramisu commented Sep 25, 2023

レビューありがとうございます!

このデザインにした理由について

とりあえず自分の思考プロセスを書いておきます。
自分のイメージだとクリエイティブ系ソフトの設定画面は別ウィンドウで開くイメージがあります。
そのウィンドウのサイズで横幅が制限される(ものによってはユーザー自身でも変更できる)ので、見易さが実現されているのかなと。
(と言ってもあまりそういう系統のソフトは使わないので、もしかしたらイメージが間違ってるかもです)

ただ、VOICEVOXの場合は設定画面が全画面で開かれるようになっています。
そこをなんとか横幅制限できないか考えて、Webページでよくある「左右中央揃え」に倣ったデザインにしてみました。


デザインの統一に関して

もしこのデザインで良さそうなら、他の中央揃えにした方が見やすいダイアログもこれに合わせた方が良さそうです。ただダイアログによって最適な最大横幅は変わりそうなので、そこは手動で調整が必要そうです。
ヘッダーの違和感はこれで解消できるかなと考えています。

線がぷっつり切れるのも確かに他の使用箇所はないんですが、そもそもq-tableが使われているのがここだけなんですよね。
見易さ的にはこれが良いと思ったんですが、もしかしたらもっと良いデザインがあるかもしれません。
ちなみに細かいですが、tableの横幅より罫線を少し狭くしたり、tableのheaderだけは横に貫通させたりすると少しおしゃれ寄りにできるかもです。

image


あとは設定ダイアログのmaximizedをやめるのも考えたですが、VOICEVOXには透けて後ろが見えるデザインのものがあまりない(辞書設定ダイアログくらい?)ので、若干合わないかなと思った次第です。

@thiramisu
Copy link
Contributor Author

thiramisu commented Sep 25, 2023

あとバグに気付きました…
キー重複判定が正常に機能してないみたいです。直します。[追記]→直しました。

@Hiroshiba
Copy link
Member

Hiroshiba commented Sep 25, 2023

まず目的なんですが、デザインの改善とUXの改善であれば、UXの改善が優先なのかなと思ってます。
その上で要素ごとにこうかなというのを列挙してみます。

  • テーブル中央揃え
    • UIは他のとこと異なりますが、左右の情報が近づくのでUXは上がっていると思います。賛成です。
  • テーブルの線が端で途切れている
    • これは僕はあんまり気になりませんでした。Bulmaのtableとかで見慣れているからかも。
  • ヘッダーのタイトルを中央揃え
    • 他のデザインとずれるのでUXが低下しているかもです。
    • 中央揃えの左合わせに揃える場合、他のダイアログだと横幅が異なればヘッダーの位置が変わるのでUXが下がるかもです。
    • どっちにしても中央揃え系とそうじゃない系で位置が変わるのは混乱するかもです。
    • あとヘッダーは中身と別領域のイメージがあるので、縦に揃えるのは珍しい気がします(例:Vueのロゴの位置)
  • 確認ダイアログが中央揃え
    • OKボタンが右下にない(不揃い)のでUXは低下しているかもです。

あと統一の方針ですが、設定系を1つのダイアログにまとめて、左側にドロワーを配置してそこから色々なものを設定する方針もありかも・・・?
キャラクター並び替えUIがだいぶきつそうですが。。。

@thiramisu
Copy link
Contributor Author

thiramisu commented Sep 26, 2023

UX優先には賛成です。

ページに関しては、もしかしたらヘッダーも内容も左揃えにするのが良いかもです。

理由

ヘッダーは中身と別領域のイメージがある

そもそもこの「設定 / キー割り当て」と書かれた部分はいわゆる「ヘッダー」ではないと思います。
例えばこのPRのページ。
image

いわゆる「ヘッダー」は以下の領域だと思います。
image

これはページのコンテンツにほぼ関係ない、固定の情報が表示される領域です。
これに対してVOICEVOXの設定画面は「見出し」に近く、ページのコンテンツに関係します。
このページで言えば以下が近いはずで、これは内容と列が揃ってます。
image

また少しスクロールすると上部のfixedな位置に以下が表示されます。
image
これはちゃんと中央揃えになっています(コンテンツと関係がある内容だからだと思います)。
(まあ正確に言えば中央揃えというよりもコンテンツの左端に揃えられている感じですかね)。
VOICEVOXの「ヘッダー」はこちらに近いので、コンテンツに揃えるべきだと考えます。

例えば以下の画面も
image

見出しとコンテンツの列を揃えるならこうなります。
image

ただ、

どっちにしても中央揃え系とそうじゃない系で位置が変わるのは混乱するかもです。

の通り、ヘッダーの中央揃えがUXに厳しそうだというのは確かにそうだなと思いました。全ページで内容の横幅を統一できれば他ページでも左端の位置を同じにできますが、キャラ一覧はなるべく横幅を確保したいなどもあって少し難しいのかなと。なのでヘッダーとコンテンツの位置を近づけるためには中身の方を左揃えにするしかないのかなと思いました。


ダイアログのOKボタンは確かに右下が良いなと思いました。他を左寄せにしてキャンセル/OKだけ右寄せが安定ですかね。
[追記]→しました。
image


[追記ここから]
書き忘れていたんですが、「設定系を1つのダイアログにまとめる」のは結構辛そうに思いました。
ツールバーのカスタマイズ画面は(少なくともプレビューの領域だけでも)横幅最大である方が良さそうです。
並び替え・試聴画面は試聴もできるので「設定」なのか若干怪しいですが、まあ横幅は欲しそうだなと。
[追記ここまで]

@thiramisu
Copy link
Contributor Author

ちなみに自分の中でのVOICEVOXのイメージをそのまま見た目に落とし込むとこんな感じでした。
(作ってみたはいいものの他UIと違いすぎるので没…)
image

@Hiroshiba
Copy link
Member

Hiroshiba commented Sep 26, 2023

そもそもこの「設定 / キー割り当て」と書かれた部分はいわゆる「ヘッダー」ではないと思います。

多分認識の違いがあって、「設定 / キー割り当て」という見出し自体はコンテンツだけど、書かれている場所(ツールバー)はヘッダーだと思う、という感じです。
背景色も完全に分離しているので、書かれている内容はともかく、デザイン的にはコンテンツと別領域に感じる方が圧倒的に多いとは思います。

逆に言うと見出しがツールバー上に書かれていないなら、画面の左端ではなくコンテンツの左側と合わせたりするべきだと思います。

書き忘れていたんですが、「設定系を1つのダイアログにまとめる」のは結構辛そうに思いました。

まあそうですよね・・・。

ちなみに自分の中でのVOICEVOXのイメージをそのまま見た目に落とし込むとこんな感じでした。

ツールバーを表示しつつ見出しをコンテンツ内に含める場合、よくあるのはこんな感じかなと。(これも他のUIとずれるのでUXが落ちちゃいますが)
image

@thiramisu
Copy link
Contributor Author

thiramisu commented Sep 26, 2023

書かれている内容はともかく、デザイン的にはコンテンツと別領域に感じる

現状自体がこうなのですが、そもそもこれがUX的に良くない気がしています。コンテンツに関連ある内容ならばコンテンツに視覚的に近づけるべきだと思います。「視覚的」というのは、このケースで言うと距離(揃える基準位置含む)、背景色ですね。もう少し一般的には色・位置・フォント・大きさなどです。

参考: 伝わるデザイン

@Hiroshiba
Copy link
Member

Hiroshiba commented Sep 26, 2023

似たコンテンツは似てるように表示すべきというのはわかるのですが、これは場所を示す情報なのでデザイン的に距離があっても普通な気がします。パンクズリストみたいな…。

僕のイメージこんな感じです。VSCodeの設定を開いたときのUIです。
表示されるコンテンツは設定で、その場所を示すとこ(この例ではタブ)に「設定」と表示されてます。
image
VOICEVOXのキー割当画面の場合は、タブがツールバーに置き換わっているみたいな認識です。
(タブにすべきという意図ではなく、こうやってデザインが別れてても不自然じゃないという例の意図です)

@thiramisu
Copy link
Contributor Author

thiramisu commented Sep 27, 2023

自分の主張はあくまで、「視覚的に」離れすぎていて関係のある情報だと認識しにくいのでは、という主張です。
その画像のタブのデザインは距離的には少し離れていると思いますが、選択中のタブと背景の色がつながっていることで分かりやすくなっています。例えばタブの色を少し暗くするだけでこうなりますが、結構分かりにくくなっていると思います。
image

揃え位置を合わせない状態のキー割り当て画面もこの画像と近い状態で、距離的にも色的にも離れています。この2つのどちらかでも解消すればかなり分かりやすくなると考えています。でまあ色はデザイン的に面白いと思うので、距離(つまり縦方向の位置)だけでも揃えられればなと。

あとは「設定 / キー割り当て」という情報が必要になるのはユーザーが迷子になって現在何が表示されているページかを確認したい時だと思うんですが、スクロール後にページ情報が表示される可能性なども考えてとりあえず(斜め上ではなく)真上を見ると思うんですよね。「設定 / キー割り当て」と内容の揃え位置を合わせないと、真上に情報が表示されていないため、さらに2次元的(横方向)に情報を探す必要があって、探索範囲が大幅に広くなってしまいます。これが結構つらいと思います。

@Hiroshiba
Copy link
Member

Hiroshiba commented Sep 27, 2023

なるほどです、よくわかりました!!
(その例はそもそも視認性が落ちてるかもとちょっと思いました。)

たぶん僕たちの主張は論点がずれてるだけで、どっちも正しいと思います。
「コンテンツ内容のタイトルだからコンテンツと見た目を揃えるべき」と「場所の案内をする目的だからコンテンツと見た目が揃っていなくても良い」は、別に相反さないはずです。
実際こうやって場所の提示とコンテンツ内容の提示を両方行うUIもありました。(Discord)
image

今回の場合は場所=コンテンツの内容なので2回書く必要はないと思います。
なんとなくですが、ダイアログに見た目が大きく異なるツールバーがあるのをやめる方針が取れると良いのかなと思いました。
実際最近のダイアログはバーの見た目を揃える傾向がありそうです。(上からwin xp、8、11)
image
image
image
経験上、見た目を大きく分けないデザインはかなり難度が高いので限界はありそうですが・・・。

今回のPRの方針としてはもう結論は出ている(他のUIと合わせないとUXが下がるからこのPRでは合わせる)という認識です。ちょっと脱線気味なので、issueを分けるのはどうでしょう?

@thiramisu
Copy link
Contributor Author

脱線気味、たしかにです。
現時点ではまだ自分が十分に言語化出来てない気もするので、もう少し考えがまとまり次第、UXのディスカッションにでも書いておこうかと思います。

とりあえず両方とも左揃えにして、こんな感じになりました。

image

@Hiroshiba
Copy link
Member

コードまだ読めてないのですがデザイン関連に関して返信まで 🙇

とりあえず両方とも左揃えにして、こんな感じになりました。

なるほどです。右の空間が空いているのがかなり珍しいデザインに感じました!
ちょっと他のUIも含めて全体のバランスを見てになるのですが、右の空間をなくすためにテーブルを思い切り伸ばすか、テーブルを真ん中に表示するかになるのかなとちょっと思いました。

Copy link
Member

Choose a reason for hiding this comment

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

最大横幅を制限し、横長な画面でもみやすく

とりあえず両方とも左揃えにして、こんな感じになりました。

デザインに関してですが、右側が空いているUIはかなり見慣れないので、両端が空いているUIか、右側を何かしらで埋めたUIにすると良いのかなと思っています。
ツールバーは左寄せのままで良いと思います。

もし変更お願いできると嬉しいですが、難しそうであればこちらでやっちゃおうかなと思います 🙇
(個人的には真ん中寄せでとりあえず良いかなと思ってます。何がダメなのかわからなくて振動するので、とりあえず最も責任が大きい自分の考えを採用しようかなと思っています。。)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

これについて、根本原因は別な気がしたので、それに関してディスカッションに書き込みしました。
#1564 (comment)

自分はダイアログであるとはあまり認識できず、画面であるイメージが強かったです。
変数名ではDialogとされているにもかかわらず、自分にはダイアログっぽく見えないことについてをまずもっと考えるべきだったかもです…。
デザイン的にもそうなんですけど、UX的に良くなさそうという意味合いも強いです。

自分には画面だと見えている以上、ちょっとダイアログとして見た目はどうかという議論には責任が持てないですね…それでも大丈夫なら中央寄せにしようかと思います。

Copy link
Member

@Hiroshiba Hiroshiba Sep 30, 2023

Choose a reason for hiding this comment

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

issue作成ありがとうございます!

ショートカットキーのテーブルを中央寄せするかどうかに関しては、ダイアログなのか画面なのかは意識してませんでした。

  • 他と見た目を統一させておきたい
  • キーとバリューは近く表示したい(横幅の最大長を固定にしたい)
  • よく見かけるUIにしたい

を全部満たすにはまあテーブル中央寄せかなぁと。少なくとも問題は無いと思います!

そもそも若干イケてない感は僕も感じているので、どっちかというと抜本的な解決策を思いつく部分を土俵にしたい感があります。

Copy link
Member

@Hiroshiba Hiroshiba Sep 30, 2023

Choose a reason for hiding this comment

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

開いたときに現在の設定が表示されるように

で、入力中だというのが分かりやすいのと引き換えに何の変更中かが分かりにくくなっている気がします。
2つ解決策を考えてみました。

  1. 強調表示を維持する
  2. 説明を加える

任意のテキストがダイアログのタイトルに表示されるのはやはりちょっと避けるべきだと思います。
極端な例ですが、将来「ダイアログを閉じる」というショートカットキーが現れた時に、OKを選べばいいのかキャンセルを選べばいいのかわからなくなります。
(説明は書いても読まれないと想定してUIを作るのがいいかなと)

強調表示を維持するのはすごく良いと思いました!!
ショートカットダイアログ内に書くのはやめて、強調表示を目指すか、あるいはまた別の機会に抜本的な解決策を考えるというのはどうでしょう。
(そもそもダイアログを開かないとか。)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

とりあえず強調表示を試してみようかと思います。
時間が開いてしまったので念のため確認なんですが、下記はなかったこととして大丈夫ですかね。

2つ解決策を考えてみました。
説明を加える

まあ確かに書いていた方が親切だなと思い直しました。説明を加える形がいいのかなと!

Copy link
Member

Choose a reason for hiding this comment

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

あ、大丈夫です! 🙇

二転三転してしまっていて申し訳ないです。
今回のことはかなり反省しています。
せっかくプルリクエストを頂いたんだから採用したいという気持ちと、でも自分は前のほうが良いと思っているという気持ちが両方ある中で、複数の議論が同時進行して判断基準がぶれてしまった形でした。
議論が複数起こる場合、議論内容をなるべく独立させて論点と結論が見返しやすい形を目指していこうと思います。

ガシガシUI/UXを改善できる方は経験上珍しいので、 @thiramisu さんのPRやissueはとても助かっています。
未熟者なのでご迷惑おかけしてしまうこともあるかもなのですが、これからももしよければどんどん提案頂けると嬉しいです 🙇

Copy link
Contributor Author

Choose a reason for hiding this comment

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

いえ、こちらこそ、自分が甘かった故に意思決定のプロセスを乱してしまってすみません🙇
未熟で申し訳ないです。

了解です!

hotkey === "Meta"
? "Cmd"
: hotkey === ""
? EMPTY_COMBO_NAME
Copy link
Member

Choose a reason for hiding this comment

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

この変更により、入力状態にも見える初期状態でなぜかOKボタンが押せないという挙動になっちゃったかもです。
(以前は空欄だったのでOKボタンが押せないのは納得感があった)

今の設定値が何かわかる一方で、なぜかOkボタンを押せないという一長一短なUXなため、どっちに倒すべきかちょっと迷ってます。
どちらも叶えられるとすごく良さそうかなと!

Copy link
Member

@Hiroshiba Hiroshiba left a comment

Choose a reason for hiding this comment

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

ちょっと一旦実装周りはまだ見られてないのですが、GUI周りに関してコメントさせていただきました! 🙇

これはちょっと実装ではない部分の提案なのですが、複数の話が同時に続いていて、おそらくお互いに相当コミュニケーションロスが発生していると感じています。
問題はgithubのUIで、並列にコメント扱えないためだと思います。
ということでファイルにコメントを一つ一つ書いてみました。
一つ一つの話は簡単だと思うので、これで一つずつ解決できてればなと!

Comment on lines +437 to +440
&:hover td::before {
// Quasarデフォルトの強調表示を流用し、hover中の行を強調表示
content: "";
}
Copy link
Member

Choose a reason for hiding this comment

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

ワークアラウンドであることはコードからわからないので、メモを残しておいてあげるとリファクタリングの役に立つかもです!
こんな感じとかどうでしょう。

Suggested change
&:hover td::before {
// Quasarデフォルトの強調表示を流用し、hover中の行を強調表示
content: "";
}
&:hover td::before {
// Quasarデフォルトの強調表示が何故か働かないのでワークアラウンド
// Quasarデフォルトの強調表示を流用し、hover中の行を強調表示
content: "";
}

@Hiroshiba
Copy link
Member

お疲れ様です!

ちょっと1年ほど時間が経ってしまい、おそらくmainブランチの追従が難しそうで、いったんcloseさせていただいても良いでしょうか 🙇
もしcloseした際も、議論は今後の実装に役立たせていただこうと考えています!

@Hiroshiba
Copy link
Member

すみません、申し訳ないのですがcloseさせていただきます!
プルリクエストありがとうございました!!!

@Hiroshiba Hiroshiba closed this Nov 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants