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

設定ダイアログと設定項目の再編成 #84

Open
16 of 24 tasks
nmaya opened this issue Jan 21, 2024 · 74 comments
Open
16 of 24 tasks

設定ダイアログと設定項目の再編成 #84

nmaya opened this issue Jan 21, 2024 · 74 comments
Labels
todo Project task
Milestone

Comments

@nmaya
Copy link
Member

nmaya commented Jan 21, 2024

Background

Setup メニュー配下の以下は、オリジナル 2.3 からある設定メニュー

  • Terminal
  • Window
  • Font
  • Keyboard
  • Serial port
  • TCP/IP
  • General

その後増設された設定項目は基本的に既存のダイアログを改修せず、Additional Settings に配置された。
そのため、Additional Settings 内ではタブでカテゴリ分けがなされているが、同じカテゴリの設定項目が別のダイアログに散逸している。(例:boldの色設定と有効設定)

さらにあとから、Font が「Font-Font」と「Font-Dialog」に分割された。
また、Additional Settings に Font シートや Conding シートが追加され、同じ設定が複数の箇所から変更できるようになり、混迷を極めている。

概要

設定ダイアログ(設定の分類)と設定項目の整合性を取る

ダイアログと設定項目の対応・新分類案を書いてみました
https://docs.google.com/spreadsheets/d/1ZsRES7VbZVDvvHrCNL7ubTN1o5YWQ1AfrqSOFw_7n1E/edit?usp=sharing

Special (INI 直接編集) になっている項目

  • 厳選してダイアログに持ってくるか
  • おおむねダイアログに持ってくるか

タスク管理

origin

https://osdn.net/projects/ttssh2/ticket/44226

_Originally posted by @nmaya in #74

@zmatsuo
Copy link
Member

zmatsuo commented Jan 22, 2024

準備にダイアログ毎にソースを分けています。

ファイル - ディレクトリ...(file - change directory...) ダイアログは
ファイルのダウンロード先を指定します。
Additional setting - General に収めて
ダイアログをやめるのはどうでしょうか
change directory という名前もちょっと悩みそう。

それと、Additional setting 全体の面積を広くしている
VisualタブのTheme部分を別のタブ(Themeタブ)にしたほうがよさそう。

最近は気にしなくもよさそうですが
1024x780ディスプレイだと(600x480だと完全に)はみ出すと思う…。

@zmatsuo
Copy link
Member

zmatsuo commented Feb 16, 2024

VisualタブのTheme部分を別のタブ(Themeタブ)にしたほうがよさそう。

Themeタブを追加しました。
codingタブの面積が大きくなったのでダイアログのサイズはそれほど変化なしです。

codingタブのDEC Special Graphicsはフォントタブに置くのが良い気がしてきました。

@zmatsuo
Copy link
Member

zmatsuo commented Mar 16, 2024

ts.Language の参照を減らしました。

送受信文字コード以外で、Language設定を参照しているのは
IMEの初期化とキー入力処理(非Unicode(ANSI)動作時)の2箇所でした。

1つめのIMEの初期化は Windows にサポートがあれば初期化を行うようにしました(1e63ac3)。

2つめのキー入力処理は、Language==IdRussian時に
KOI8-R コードを生成するドライバ(これ?)対応処理で、
ロシア語モードの Keyboard の Keyboard 設定 のロシア語キーボードタイプ指定です。
GetACP()の戻り値を見るようにしました(e9cfb49)。
ただ、このコードが有効なのは 9x系Windows のときで、
NT系(Unicode動作時)ではキー関連のメッセージはUnicodeとなるので、
ロシア語、日本語などの処理も通りません。

これら修正で、ts.Languageは送受信文字コードだけで使用される変数となりました。
文字コード関連を整理する時、
Setup - General設定 の Language 設定をなくせると思います。

zmatsuo added a commit that referenced this issue Apr 6, 2024
@zmatsuo
Copy link
Member

zmatsuo commented Apr 6, 2024

デフォルトポートを移動しました。
move_defaultportブランチです。

この移動で Setup - General設定 ダイアログに空きができたので
lng ファイルの情報表示を追加しました。
uilangブランチです。

General設定ダイアログは、UI言語設定専用ダイアログにして、
ボタンなどは言語を切り替えても英語で表示するようにして
あやまって読めない言語に切り替えても
変更できるようにするのはどうでしょうか。

(ブランチは修正して作り直したりするかもしれないので
コミットにコメントいただくと消えてしまうかも知れないです
このissueにコメントいただきたいです)

特に問題なさそうだったら、2,3日で main にマージしようと思います。

zmatsuo added a commit that referenced this issue Apr 12, 2024
zmatsuo added a commit that referenced this issue Apr 12, 2024
- lngファイルのコメント部分を表示できるようにした
  - lngファイルのコメント部分をinfoセクションで参照できるようにした
- generalダイアログのlanguage設定を使用しないようにした(非表示にした)
zmatsuo added a commit that referenced this issue Apr 12, 2024
@zmatsuo
Copy link
Member

zmatsuo commented Apr 12, 2024

  • デフォルトポート設定を移動
  • lng ファイルの情報表示を追加
  • language設定削除

mainにマージしました。
読めないUI言語に切り替えても戻せるようになりました。

https://ci.appveyor.com/project/teraterm/github-main/builds/49604721/artifacts

@zmatsuo
Copy link
Member

zmatsuo commented Apr 20, 2024

Terminal setup ダイアログから coding タブを開けるようにしました。(415c5f3)

coding タブへ誘導できるようになったので、
Terminal setup から文字コード設定を削除しても大丈夫かなと思います。
これで少しの間様子を見ようと思います。

https://ci.appveyor.com/project/teraterm/github-main/builds/49657284/artifacts

@zmatsuo
Copy link
Member

zmatsuo commented Apr 27, 2024

ファイル - ディレクトリ...(file - change directory...) ダイアログは
ファイルのダウンロード先を指定します。
Additional setting - General に収めて
ダイアログをやめるのはどうでしょうか

移動しました。

zmatsuo added a commit that referenced this issue May 16, 2024
- teraterm/teraterm/keyboard_pp.c, h 追加
- 旧メニュー選択で新メニューが出るようにした
- Setup - Keyboard でその他の設定のキーボードタブ を表示
zmatsuo added a commit that referenced this issue May 16, 2024
- Tera Term: キーボードの設定 -> キーボード
@zmatsuo
Copy link
Member

zmatsuo commented May 16, 2024

キーボードダイアログをその他の設定のキーボードタブへ移動しました。 b688e57

ビルドしています。
https://ci.appveyor.com/project/teraterm/github-main/build/artifacts

zmatsuo added a commit that referenced this issue May 18, 2024
zmatsuo added a commit that referenced this issue Jun 8, 2024
- Generalタブからマウス関連を移動
- マウスタブのヘルプを追加
@zmatsuo
Copy link
Member

zmatsuo commented Jun 8, 2024

追加設定にMouseタブを追加しました。(9aa2dca)
タブ内のシーケンス関連のコントロールはまだ移動していません。

残るのはつぎの4つです。

  • Terminalタブ
    • Terminal setupから移植
  • Windowタブ
    • Window setupから移植
  • Serial Portタブ
    • Serail Port setupから移植
  • TCP/IP
    • TCP/IP setupから移植

このうち TCP/IP のホストリストの編集部分だけは
タブに入れないで残しておきたいと思いますがいかがでしょう?
ダイアログだとリサイズが実現できていて、
広くすれば履歴がたくさん見れて便利だからです。

zmatsuo added a commit that referenced this issue Jun 8, 2024
@nmaya
Copy link
Member Author

nmaya commented Jul 2, 2024

このうち TCP/IP のホストリストの編集部分だけは
タブに入れないで残しておきたいと思いますがいかがでしょう?

まずは別でいいと思います。
Color Theme のように新作別ウィンドウにするか、別シートを新作するか、既存ダイアログのままにするか、あとで考えましょう。

@nmaya
Copy link
Member Author

nmaya commented Jul 2, 2024

もうひとつ、今の動きを変えるべきと思うところがあります。
Serial です。
「Serial Port」ダイアログはID_OKを押すと「設定の反映」と「接続」をします。

  • どこにも接続されていない ... このウィンドウで接続
  • シリアルで接続中 ... いまの接続に設定を反映する
  • シリアルでない接続中 ... 新規ウィンドウで接続

今のadditional settingsにはシリアル以外の設定もあるので、「設定の反映だけで接続しない」にしたほうがよいと思います。

@zmatsuo
Copy link
Member

zmatsuo commented Jul 4, 2024

設定の中から接続できるのがなんだかいまひとつに思っていました。

ファイル - 新しい接続 のシリアルポートから
シリアルのパラメータが設定できるのがよいなと思います。
(でもどうすればよいかよくわからずにいます)

ログの初期値設定と、ログの開始の2つがあるようなイメージです。

5.4リリースに間に合わなさそう…

zmatsuo added a commit that referenced this issue Jul 6, 2024
- VTWinのメニューからは利用できなくなっていた
  - 5ed7616
- プラグインから利用されたとき、削除されたことを示すダイアログを出すようにしたい
- 未使用となったコード, lng, help を削除
zmatsuo added a commit that referenced this issue Jul 6, 2024
- その他の設定 - フォントタブ を表示
- Experimentalセクション DontUseFontDialog キーの読み込みを削除
zmatsuo added a commit that referenced this issue Jul 7, 2024
zmatsuo added a commit that referenced this issue Jul 26, 2024
- TCPIPダイアログから接続履歴編集を分離してedithistoryダイアログを作成
- 接続履歴ドロップダウン内の"<edit history...>"を選択する表示される
- TCPIPダイアログから編集要素を削除
zmatsuo added a commit that referenced this issue Sep 30, 2024
- TEK Window からフォント設定を行った場合、フォント選択ダイアログを表示
- VT Window からの場合、その他の設定ダイアログのフォントタブを表示
@zmatsuo
Copy link
Member

zmatsuo commented Sep 30, 2024

アクセスキーの見直しをタスクに追加しました。

zmatsuo added a commit that referenced this issue Oct 5, 2024
- 作業中のソースです
  - 意見をいただく目的のブランチです。
  - 説明、UI文字列をソース内に埋め込んでいます。
- デフォルトポートの仕様を変更した
  - 全般タブでは"TCP/IP"/"シリアル"の選択を行う
  - シリアルポート番号の選択はシリアルポートタブで行う
  - ts.ComPort を全般タブとシリアルタブの2か所で変更しないようにするため
- シリアルポートタブに動作の説明を入れた
  - シリアルポートタブの説明用、mainマージ時には削除
- グローバル変数をなくした
@zmatsuo
Copy link
Member

zmatsuo commented Oct 5, 2024

シリアルダイアログをタブ化しました。

概ね動作は良いと思います。
シリアル接続時はシリアルポートを変更できないようにしています。
ご意見いただけないでしょうか

zmatsuo added a commit that referenced this issue Oct 6, 2024
- レビュー用ブランチです。削除します。
- タブを分類した
- 未対応
  - I18N化
  - タブ順序
- ツリービューのenable方法
  - TERATERM.INI の Experimental セクションに TreeProprtySheet=ON
zmatsuo added a commit that referenced this issue Oct 6, 2024
@zmatsuo
Copy link
Member

zmatsuo commented Oct 6, 2024

全般、lngファイルのドロップボックスで、
lngファイルの情報をツールチップで表示するようにしてみました。
2d1893f
いまいちなところがあれば教えてください。
問題あれば削除しようと思います。

設定のツリービューで階層表示できるようにしました。
i18n化、タブの順序は変更していません。
動作を見てみていただけないでしょうか。
99c70ab

@sempreff
Copy link
Contributor

sempreff commented Oct 6, 2024

lngファイルの情報をツールチップで表示する

lngファイルの情報を画面に出すには、動的に現れたり消えたりする表現形式は合わないと思います。
右側の空いているスペースに表示する方が良いと思います。
(なお個人的には lngファイルの情報を画面に出す必然性は無いと思っています)

@sempreff
Copy link
Contributor

sempreff commented Oct 6, 2024

ツリービューで階層表示

  • 仕上がりのイメージがわかりません。過渡的な状況なのだと思います。仕上がりのイメージがわからないのでコメントしづらいです。
    • ツリーは始めから全て開いていてよいと思います。
    • キーボードで上下移動できると良いと思います。
    • 点線は必要でしょうか。点線なしで winmerge のような見せ方にする か、カテゴライズもなくして HoneyView のような見せ方にする手もあると思います。
  • TreeProprtySheet は、意図してこの綴りなのでしょうか。良くないと思います。
  • main とコンフリクトしないようにしていただけると、試してみるハードルが下がると思います。

@sempreff
Copy link
Contributor

sempreff commented Oct 6, 2024

シリアルタブは

  • タブ名が Serial port setup and connection では長すぎると思います。
  • 「新しい接続ダイアログ~」の説明は不要と思います。
  • デバイスの詳細情報も常時表示する必要は無いと思います。
  • Speed 欄の tooltip 「You can directly specify a number」がチカチカします。これは良くないです。

@nmaya
Copy link
Member Author

nmaya commented Oct 9, 2024

シリアルダイアログをタブ化しました。

ありがとうございます。

「新しい接続ダイアログ~」

以前に話した「TCP/IP, Serial の設定値」と「それぞれの New Connection ダイアログのデフォルト」をどう表すのか、という話に戻ってくるでしょうか。
#84 (comment)

デバイスの詳細情報

たくさん差しているPCだと、このポートなんだっけ?と確認できるのは便利なように思います。


lngファイルの情報をツールチップで表示

情報が表示されていてもいいと思いますが、ユーザにはあまり関係ないことだと感じます。
ツールチップでの表示については、私は好みません。
Serial の Speed の「You can directly specify a number」もマウスオーバーでツールチップが表示されます。
このような UI は、ユーザが意図していないのに画面表示が変わる(表示されていたものが隠れる)のでユーザが戸惑う、またマウスオーバーしないと情報が提供されないので良くないと感じます。


設定のツリービューで階層表示

「どの項目をどのタブに分類するか」に加えて「どのカテゴリにどのタブを分類するか」を検討する必要があります。
「始めから全て開いて」「キーボード移動」については @sempreff さんに同意します。
点線は PuTTY で見慣れているので違和感はありません。

@zmatsuo
Copy link
Member

zmatsuo commented Oct 9, 2024

まだmainにマージはちょっとな状態です。
作り込んでダメ,不採用となるとしょんぼりなので
ある程度動作した状態なブランチになっています。

最初はcontributerの情報を出したいなというのがあって、
7-Zipの言語設定をイメージしていました。
言語ファイルの翻訳をマニュアルに入れれば
okな気がしてきました。

マウスオーバー系のUIは
最近ではタッチと相性が悪いのでおすすめじゃない感じですよね。
ダイアログの面積が稼げるところが利点でしょうか。
(Tera TermをタッチUIで使っているとするとよくわかっている人に違いない気はします)

Speed 欄のチカチカはだいぶ前からだったと思います。
調べます。

「新しい接続ダイアログ~」

以前に話した「TCP/IP, Serial の設定値」と「それぞれの New Connection ダイアログのデフォルト」をどう表すのか、という話に戻ってくるでしょうか。
#84 (comment)

そうですね。
そこをどうしたものか悩ましいところです。
一応現在の実装で良さげな動作ですがどうでしょう?
説明書きがあるからかろうじてわかる状態かもしれません・・
説明を削除してしまって大丈夫そうでしょうか?

シリアルの情報は、
Tera Termでシリアルを使うとOSが落ちる、BSoD発生、
ということがしばしばあったので、
使っているデバイスドライバが分かるようにしました。
今ぐらいの表示があるのがよいです。

シリアルタブの動作が一番重要だと思っていますが、

「どの項目をどのタブに分類するか」に加えて「どのカテゴリにどのタブを分類するか」を検討する必要があります。

ですね。

今のところ実験的機能で隠れていますが、
出してみるとツリーは使いやすいですね。
「始めから全て開いて」はその通りだと思います。できるに違いない。
「キーボード移動」はタブが切り替わると
プロパティページ内にフォーカスが移動しているようです。
ツリーで「↓」などした後、「Shift+TAB」するとキーでツリー操作ができます。
(妥当? いまいちな感じはします。)

ポートのドロップダウン(COM1,COM2とか選ぶところ)で、
「↓」を押して<COM256まで表示>を選択したとたん
COM256表示に切り替わってしまいます。
かなりいまいちです。
直します。

@sempreff
Copy link
Contributor

sempreff commented Oct 9, 2024

Speed 欄の tooltip 「You can directly specify a number」がチカチカします。これは良くないです。

誤解があるといけないので補足させてください。
ツールチップがチカチカしなくなれば良いわけではありません。
このツールチップは不要だと思います。

@nmaya
Copy link
Member Author

nmaya commented Oct 9, 2024

このツールチップは不要だと思います。

補足しますが、以前は Speed をプルダウンから選択することしかできず編集できなかったため、この「情報」は有用だと思っています。
直したのは最近だと思っていましたが14年も経っているので、もうヘルプに書いてあればいい情報かもしれませんね。

@nmaya
Copy link
Member Author

nmaya commented Oct 9, 2024

作り込んでダメ,不採用となるとしょんぼりなので

いろいろ思いついてくだるのはいいのですが、「現状のままの移植」と「新しいアイデア」を分けてほしいです。

また、実際にコードを書いた人が偉い・新しいアイデアを説明して合意するより作った方が早いという感覚はわかるのですが、そもそも慎重に考えるために「検討しましょう」というこの issue を立てた意図(一番上では「議論するため」と書きました)が汲まれていないように感じます。

@zmatsuo
Copy link
Member

zmatsuo commented Oct 15, 2024

慎重に考えるために「検討しましょう」というこの issue を立てた意図(一番上では「議論するため」と書きました)が汲まれていないように感じます。

いろいろ改造を入れてすいません。

比較的大工事なタブ化を先に進めて、
小工事な設定項目のタブ間の移動を後から少しづつ行えばよいと
当初は思っていました。

タブ化がもう少しで一段落しそうなので、まずはタブ化を進めますね。
(シリアルタブの変更は "COM%d" 以外の対応も合わせて後で行いましょう)

タブ化、フックなどの動作は
TTXKanjiMenu がうまく動いていたので大丈夫と思っていました。

でも、TTXChangeFontSize がうまく動かない(#366) とのことで、
調べました。

TTXKanjiMenu がうまく動いていたのでは、
ts構造体の中のメンバ変数を変更するだけで
Tera Term が動作を変更できたからで、
TTXChangeFontSize がうまく動かないのは、
設定ダイアログがokを押されて閉じるときの動作変更を行う処理が
現在動作しなくなっているからのようです。

とりあえず手もとではうまく動くように修正できました。
タブ表示とフックを両立させるのが難しくて、
今のところ、「端末」など従来のダイアログが出るメニュから表示する時は
タブが1つのダイアログが出ることになりそうです。

@zmatsuo
Copy link
Member

zmatsuo commented Oct 18, 2024

シリアルタブの
一緒に出していたメッセージを消して、
従来の雰囲気だとCOMポートのドロップダウンは
こうなるのかなというの動作に修正しました。 b6ef2bf
これで検討しやすいでしょうか。

ダイアログ表示,前後処理を externalsetup.cpp,h に移動しました。

今のところ、「端末」など従来のダイアログが出るメニュから表示する時は
タブが1つのダイアログが出ることになりそうです。

タブなど従来通りでフックも正しく動作しそうです。
#366 の TTXChangeFontSize も okになっていると思います。

@nmaya
Copy link
Member Author

nmaya commented Oct 20, 2024

一緒に出していたメッセージを消して、

ありがとうございます。

6e9488a

以前の Tera Term は MaxComPort までのすべてのポート(存在しなくても)を列挙していましたが、いまは表示時点で存在するポートだけを列挙するようになっています。どうして元の動作に戻されたのでしょうか?設定では、表示時点で存在しないポートもデフォルトポートとして選択し保存できることが有用である、ということでしょうか?
また、なぜ COM4096 が特別扱いされるのでしょうか?

@zmatsuo
Copy link
Member

zmatsuo commented Oct 21, 2024

設定では、表示時点で存在しないポートもデフォルトポートとして選択し保存できることが有用である、ということでしょうか?

多分USB-シリアルなどで、COMポートがいなくなっても良いように、
ということではないかと思います。
新しい接続時に存在しないと "COM1" がデフォルトになります。

いつもCOM2に接続しているので、
デフォルトをCOM2にしておく
という使い方なのかなと思います。

シリアルタブ_提案

COM4096 が特別扱い

com0com を使って初めて手もとでCOM4096を作成することができました。
COMポートの上限MaxComPortも意識して
動作を見てみました。
MaxComPortを256(4096未満)にするとCOM4096は見ることができませんでした。

今回のシリアルタブではMaxComPortより大きな
COMポートを見ることができるようしています。

maxcomport

COMポートの最大数は256とか4096とか2^23とか
OSのバージョンやドライバで様々だと思うのですが
存在しているポートだけが選択肢であって、
必要な時にMaxComPortまで出せればよさそうな感じはします。

シリアルの上限2^23は以前教えていただいた情報です [ttssh2-dev 664]
https://web.archive.org/web/20150511100555/https://support.microsoft.com/en-us/kb/100111

#365 の内容になってきますが、
com0com を見ていて、シリアルデバイス名は
"COM%d" 以外も使えるととてもよさそうです。

シリアルデバイスと同じ動作をする、互換デバイスを作ることができて、
それは "COM%d" というルールのデバイス名ではなくてもよくて、
例えば "TERATERM" といデバイス名でもokのようです。

Tera Term では tttypes.h tttset.ComPort は WORD 型で、
(まだ追っていませんが) "COM%d" 前提となっているようです。

com0com以外に"COM%d"以外のデバイスを作れる
ドライバが存在するのかはよくわからないです。
優先順位は低そうです。

@nmaya
Copy link
Member Author

nmaya commented Oct 22, 2024

なるほど、「Additional settings - Serial タブ」はいったん「Setup - Serial ダイアログ (Port は存在するポートのみ列挙)」の移植として落ち着くはずだと思っていましたが、「旧 General - Default port (MaxComPortまで列挙)」と「Setup - Serial - Port (存在するポートのみ列挙) 」を融合したんですね。
#358 (comment)#84 (comment) のコメントをご覧になっていると思ったので、「タブへの振り分け」ですらない「動作の変更」がなされているのはおかしいと思って読んでいました。

元々(4.51から)の挙動

  1. New connection ダイアログ ... 存在するポートのみ列挙
    • 新規接続する - 存在しないポートがあっても仕方ないのでこれでよい
  2. Setup - Serial ダイアログ - Port ... 存在するポートのみ列挙
    • 新規接続していたので、New connection ダイアログと同じ動作が望ましい
  3. 旧 General - Default port ... MaxComPort まで列挙
    • デフォルトポートを選ぶため
    • MacComPort まで出る理由はご説明のとおりと思うが、いかんせん長い

デフォルト選択用はどうあるべきか

  • シリアルポートの選択肢
    • MaxComPort まで列挙 ... 従来の動作
    • MaxComPort まで列挙/それ以上は存在するポートのみ表示 ... 今回の提案
  • TCP/IP と Serial のみへの変更
    • INI の設定値と1対1で対応していなかったが、対応するようになる
      • 従来のプルダウンは、内部で Port(serial/tcpip) と ComPort の組み合わせになっている
      • 論理的にはよい気がする--永田感想
  • Serial タブにあるべきか、New connection ダイアログ用をまとめるか

zmatsuo added a commit that referenced this issue Oct 23, 2024
- 作業中のソースです
- デフォルトポートの仕様を変更した
  - 全般タブでは"TCP/IP"/"シリアル"の選択を行う
  - シリアルポート番号の選択はシリアルポートタブで行う
  - ts.ComPort を全般タブとシリアルタブの2か所で変更しないようにするため
@zmatsuo
Copy link
Member

zmatsuo commented Oct 24, 2024

シリアルタブの試し実装、84-serial_tab_2 ブランチを
main(1f4001c) から作り直しました。
このブランチも捨てようと思っています。

「旧 General - Default port (MaxComPortまで列挙)」と「Setup - Serial - Port (存在するポートのみ列挙) 」を融合したんですね。

  • TCP/IP と Serial のみへの変更
    • INI の設定値と1対1で対応していなかったが、対応するようになる
      • 従来のプルダウンは、内部で Port(serial/tcpip) と ComPort の組み合わせになっている
      • 論理的にはよい気がする--永田感想

そうなんです。
Generalタブの Default port が ts.ComPort と ts.PortType を一度に設定します。
general_pp.cpp 405 (1f4001c)
新しい接続ダイアログのシリアルのデフォルトポートが
ts.ComPort で、Serialタブで設定したい値です。

別々のタブ(GeneralとSerialタブ)で同じ変数を変更するのは避けたいので
今回修正したUI(serial/tcpip と ComPort)が妥当かなと思います。

  • シリアルポートの選択肢
    • MaxComPort まで列挙 ... 従来の動作
    • MaxComPort まで列挙/それ以上は存在するポートのみ表示 ... 今回の提案

前回のブランチ(84-serial_tab)のシリアルポートタブを表示は、
最初は存在するポートと一番最後に"MaxComPortまで表示"があります。

"MaxComPortまで表示"を選ぶとMaxComPortまで全て列挙となります。
全て列挙したい場合も存在するポートのみ表示の場合も両方できるので
良いのではないかなと思います。
( c16e1d2 には
"COM%d"以外も表示できるような仕込みが入っていました。表示のみです)

comport_dropdown

(最初の表示は存在するポートのみ、次に256まで、次に4096までとすれば
MaxComPortもいらないのではないかと思っています)
MaxComPortはどういう経緯で作られたのかがわかれば…です。

"MaxComPortまで表示"はちょっと動きがおかしいので要調整です。

  • Serial タブにあるべきか、New connection ダイアログ用をまとめるか

シリアルタブにはつぎの2つの機能があると考えています。

  1. シリアル未接続時
  • 新しい接続ダイアログからシリアル接続する時のデフォルト値(ポート、パラメータ)の設定
  1. シリアル接続時
  • 現在接続中のシリアルの設定変更を行う

2つが1つのUIに入っていてわかりにくい気がしています。

1のときは従来通りで、
2のときは、シリアルポートの選択ができないようにしています。
まだまだ分かりにくいかなと感じています。

New connection ダイアログ設定の話ついでに、
そのうち使えるようにできたらいいなと思う
接続したい先候補(プラグイン)にものはこんなものがあります。

  • conpty
    • cygterm, msys2term なしにコンソールを開く
  • adb接続(android)
  • Telnet Com Port Control Option
    • RFC2217
    • 接続先例
      • ser2net
      • HHD Virtual Serial Port
  • Telnet暗号化
    • RFC2946-2950 Telnet Encryption
  • bcrypt等(Windowsの暗号化ライブラリ)を使ったssh, 現在のsshの別実装 (作れる?欲しい?)
  • Mosh(Mobile Shell)
  • bluetooth

conpty, adbは結構欲しいです。

現在の接続先はこんな感じですね。

  • TCP/IP
    • RAW
    • Telnet
    • ssh
    • pipe
  • Serial

@nmaya
Copy link
Member Author

nmaya commented Oct 24, 2024

New connection ダイアログ設定タブの案として以前に書いたこれでは、「Default port」と「シリアル接続する時のデフォルト値」を同じタブにしています。
以下の2つが解消される案だと思っています。

  • 別々のタブ(GeneralとSerialタブ)で同じ変数を変更するのは避けたい
    • New Connection に集約するので別れない
  • 2(接続中)のときは、シリアルポートの選択ができないように
    • シリアルポートが Serial タブから消えるので、状態で動作を変化させなくていい

TCP/IP は各種設定ができて Serial は設定できない不平等感がありますが、それは「New connection ダイアログにコントロールがあるものだけが、このタブで設定できる」で説明できます。

MaxComPortはどういう経緯で作られた

4.50 まではリストアップ時にポートの存在チェックをしていなかった(接続しないとわからない)ので、おそらく「どこまでプルダウンにリストアップするか」のためです。

最初の表示は存在するポートのみ、次に256まで、次に4096までとすれば

私は、表示する情報が変化する設定 UI はあまり好みません。

シリアルタブにはつぎの2つの機能があると考えています。
シリアル未接続時 ― 新しい接続ダイアログからシリアル接続する時のデフォルト値(ポート、パラメータ)の設定
シリアル接続時 ― 現在接続中のシリアルの設定変更を行う
2つが1つのUIに入っていてわかりにくい気がしています。

未接続時/接続時の切り分けはずっとこうで慣れているので私は大丈夫ですが、そう思われるのですね。
「シリアル未接続時」にはさらに「ここから新規接続」機能がありましたがなくなったので、シンプルになったと思います。

COM%d"以外

デフォルトとして設定できるのは数字だけなので、"COM%d" 以外を選べても保存できませんね。
これはまた別の話です。

使えるようにできたらいいなと思う接続したい先

これもまた別の話です。

@nmaya nmaya added this to the 5.4 milestone Dec 22, 2024
zmatsuo added a commit that referenced this issue Jan 11, 2025
- デフォルトポートの仕様を変更した
  - 全般タブでは"TCP/IP"/"シリアル"の選択を行う
  - シリアルポート番号の選択はシリアルポートタブで行う
  - ts.ComPort を全般タブとシリアルタブの2か所で変更しないようにするため
- ドキュメント修正
  - 未着手
    - doc/en/html/menu/setup-additional-serialport.html
@zmatsuo
Copy link
Member

zmatsuo commented Jan 12, 2025

どれが生きになるのかよくわからない #421

一番新しい 525ac5e です。
rebaseしたり修正をまとめたりしてこんな感じになってしまいました。
シリアルタブ関連をmainにマージしたら、他の古いブランチは消そうと思います。

プログラムの修正、日本語ドキュメントが一段落した状態になったので一度pushしました。
コメントがあればお願いします。
特に手直しがなさそうで、英語ドキュメントを作ったら
main にマージしようと思います。

zmatsuo added a commit that referenced this issue Jan 16, 2025
@zmatsuo
Copy link
Member

zmatsuo commented Jan 16, 2025

英語版ドキュメント入れました。
特に何もなければ2,3日でsquash して merge しようと思います。

@nmaya
Copy link
Member Author

nmaya commented Jan 17, 2025

branch: 84-serial_tab

  • この issue
    • 項目をどのタブに配置するか・タブの再構成が必要か
    • ツリーコントロール
    • ダイアログからタブへ移動
      • Serial <- この範囲に限ってコメントを書きます

  • シリアル接続中の "Additional setting - Serial - Port:"
    • 以前の動作 -> 変更可能 -> 選択肢を変更すると close & 変更したポートで connect 可能
    • 新しい動作 -> 変更不可 -> 接続・再接続機能を削除したので、この動作でOK
  • "Additional setting - Serial - Port:"
    • MaxComPort 以上を表示しない -> 今まで通りの動作 -> OK
  • "Additional setting - Serial - Port:" 何が選択肢に出てくるか
    • 以前の動作 -> 存在するポートのみ列挙
    • 新しい動作 -> MaxComPort まで列挙 -> 旧 General ダイアログにあった「デフォルトポートの選択」がここに移動してきたのでOK
  • "Additional setting - Serial - Speed" の tooltip「You can directly specify a number」
    • 不要です。過去にコメントで指摘されています。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
todo Project task
Projects
None yet
Development

No branches or pull requests

4 participants