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

サクラエディタを新規インストールするとツールバーが空っぽの状態で表示される #616

Closed
beru opened this issue Nov 16, 2018 · 28 comments
Labels
🐛bug🦋 ■バグ修正(Something isn't working)

Comments

@beru
Copy link
Contributor

beru commented Nov 16, 2018

build 845 (0deee72) までは問題無いようです。
build 847 (836430e) から問題が有るようです。
https://github.com/sakura-editor/sakura/commits/master?after=efcaef1436281a5255f258ecc246f449164ddf74+244

@beru
Copy link
Contributor Author

beru commented Nov 16, 2018

2.3.2.845 と 2.3.2.847 ではインストール後の設定ファイルの内容が結構異なりますね。。

@beru
Copy link
Contributor Author

beru commented Nov 16, 2018

2bdab8a

自分が入れたツールバーの更新を早める変更のせいで、設定ファイルを書き出す際にツールバーの内容が空になってしまってるのかもですね。。

@KENCHjp
Copy link
Member

KENCHjp commented Nov 16, 2018

build 847 (836430e) から問題が有るようです。

まさかのワシ?...

本体はいじってないのですが、影響あるとすると、Iniファイルを先に作っちゃうのが影響しているのかもですね。。。

@KENCHjp
Copy link
Member

KENCHjp commented Nov 16, 2018

あれ、でも英語OSの時しかiniファイル先に作らなかったかと。。。

 →訂正、英語の時にはDLL指定して日本語の時にはからっぽで作ってますね。

@beru
Copy link
Contributor Author

beru commented Nov 16, 2018

2bdab8a NG
0c2cbd1 OK
dc00a3a NG
069ab1f インストーラー正常に動作せず
f411bb3 OK

でした。原因は不明ですが、 2bdab8ainstaller/sakura-common.iss の変更内容を revert してから installer を作ると症状が消えます。

なおアンインストール後に、%APPDATA%/sakura フォルダも削除してからインストールして確認しています。

@beru
Copy link
Contributor Author

beru commented Nov 16, 2018

dc00a3a#diff-3beb5e0d41ad2281f359783beb6fb433R185

[Ini]
Filename: "{userappdata}\sakura\sakura.ini"; Section: "Common"; Key: "szLanguageDll"; String: "{cm:languageDLL}"; Check: isMultiUserEnabled
Filename: "{app}\sakura.ini"; Section: "Common"; Key: "szLanguageDll"; String: "{cm:languageDLL}"; Check: isMultiUserDisabled

現時点の master (efcaef1) でも、installer/sakura-common.iss
[Ini] セクションをコメントアウトしてビルドしたインストーラーだと問題が起きないので、Iniファイルを先に作ってしまうのが影響しているみたいですね。メカニズムは分かりません。。

@KENCHjp
Copy link
Member

KENCHjp commented Nov 16, 2018

インストールした後でも、このIniファイルで、
sakura.ini.txt
こうなりますね。
default

すまぬ、これは実装チームの協力無いと対応無理っすねぇ。

@berryzplus
Copy link
Contributor

issue 立てありがとうございます。
コメントさるべーじ。

dc00a3a#r31069565

どうやら「既存iniがあると初期化がうまくいかない」という不具合が顕在化したもののようです。

@KENCHjp
Copy link
Member

KENCHjp commented Nov 17, 2018

あっちの、

管理プロセス起動時にバージョン番号のないsakura.iniを見つけたときの設定マージ処理がうまくいっていない感じです。

なんか、iniファイルにおまじない的に「これ書いたら大丈夫だよ!」みたいなのがあれば、インストーラーでそういう対応でもいいかと思うのですが、ほぼ完成形なiniファイルに仕上げないといけないとするとちょっと辛いっすね(機能改修等今後のメンテを考えると)。

@berryzplus
Copy link
Contributor

#616 (comment)

2.3.2.845 と 2.3.2.847 ではインストール後の設定ファイルの内容が結構異なりますね。。

この事象がよく分っていないです。
初回起動直後同士で比較した違い、という意味であれば納得なんですが。

@beru
Copy link
Contributor Author

beru commented Nov 17, 2018

#616 (comment)

2.3.2.845 と 2.3.2.847 ではインストール後の設定ファイルの内容が結構異なりますね。。

この事象がよく分っていないです。
初回起動直後同士で比較した違い、という意味であれば納得なんですが。

自分の発言(インストール後)が不正確でした。初回起動(して終了)後、が正しいです。

@beru
Copy link
Contributor Author

beru commented Nov 17, 2018

そもそも何でインストール時に設定ファイルを作成するようにしたんでしょうか?
サクラエディタ側が初期ファイル作ってくれるなら、インストーラーでは作らなくて良いような。。

@beru
Copy link
Contributor Author

beru commented Nov 17, 2018

設定ファイルの [Common] セクションの szLanguageDll のエントリ初期値を設定するためのようですね。

英語UIを使いたい人は日本語表示のサクラエディタの設定画面の ウィンドウ のプロパティシートの言語の設定を任意でJapaneseからEnglishに選択してもらう運用にすれば何も問題が無いと思います。

@KENCHjp
Copy link
Member

KENCHjp commented Nov 17, 2018

そもそも何でインストール時に設定ファイルを作成するようにしたんでしょうか?

英語OS上でインストールするときに自動で英語表記になるようにインストーラーで対応しました。
実装側で英語がどうか判断してIniファイル作成するようになれば、インストーラーでの対応は不要かと思いますが、英語インストーラー対応の時の対応方法は上記の通りの対応となったため
インストーラー側でiniファイル作成してます。

@beru
Copy link
Contributor Author

beru commented Nov 17, 2018

英語OS上でインストールした場合に自動で英語表記にするという要件を無くすのはどうでしょうか?

@KENCHjp
Copy link
Member

KENCHjp commented Nov 17, 2018

英語OS上でインストールした場合に自動で英語表記にするという要件を無くすのはどうでしょうか?

それは、そもそもインストーラーが自動で英語対応にするってところからつながってるので、ある意味、かなえたいIssueだったものですから、無くすと英語インストーラいらねぇじゃんみたいな(笑)
World Wide展開したいなって野望があるので何とか実現したい要件ではあります。

@berryzplus
Copy link
Contributor

英語OS上でインストールした場合に自動で英語表記にするという要件を無くすのはどうでしょうか?

難しい言葉の「あや」なんですけど、要件はなくせない気がします。

ここで言ってる「要件」はあくまでも「たぶんこういうユーザが居る」という仮定のもとに、
「こういう機能があったら便利に違いない」の想像に基づく機能要求を指しています。
想像の範囲で「きっとそうだよね~」な会話が成り立つならば、要件はなくせないはずです。

ユーザ要求を、プログラム的にどう実現するか?と考えて組み立てる工程が設計だと思います。
今回の場合、とりあえず今のままじゃイクナイ感じなので、設計的に仕様を変えて「保留」に戻すのが妥当なのかな~と思っています。

というか、既存iniがある場合に初期化がうまくいかない事象については、ここをどう転ばすにしてもバグとして対応せにゃならん気がしています。

@KENCHjp
Copy link
Member

KENCHjp commented Nov 17, 2018

設計的に仕様を変えて「保留」に戻すのが妥当なのかな~と思っています。

このままリリースにまでたどり着くならインストーラー側でiniファイル作らないようにするのが最善策なのかなと思いますが、とりあえずこのIssueはカンバンに貼り付けていったん、どう実装するか(インストーラ側でどうにか改善するか本体側をどうにかするか)要検討っすかね。

@beru
Copy link
Contributor Author

beru commented Nov 17, 2018

#620 で本体側で新規インストール後の設定ファイルかどうかを判定するようにしてみました。
ただ結構判定方法がいい加減なので危ないかも知れません。

新規インストール後の設定ファイルのみに使われる何か特別なエントリを用意するのも手かもしれないですね。

@KENCHjp
Copy link
Member

KENCHjp commented Nov 17, 2018

新規インストール後の設定ファイルのみに使われる何か特別なエントリを用意するのも手かもしれないですね。

そうですね。
インストーラーだけが設定するエントリを設けるとインストーラーと連携してexe側も修正要なので、exeだけが設定するエントリを設けるのがexeでクローズして良さげかも。それがなければインストーラーで設定したiniファイルと判断するみたいな。

@berryzplus
Copy link
Contributor

おおう。似た提案が既にされてたw

#620 (comment)

exe側に「設定リセット」用のエントリを作って、インストーラではそれを書くようにする、というプランです。exe側にリセットボタンを付けるかどうかは相談・・・。

@beru
Copy link
Contributor Author

beru commented Nov 18, 2018

新規インストール後の設定ファイルのみに使われる何か特別なエントリを用意するのも手かもしれないですね。

そうですね。
インストーラーだけが設定するエントリを設けるとインストーラーと連携してexe側も修正要なので、exeだけが設定するエントリを設けるのがexeでクローズして良さげかも。それがなければインストーラーで設定したiniファイルと判断するみたいな。

exe だけが設定する(新規の)エントリを設けてそれがなければインストーラーで設定したiniファイルと判断して設定をリセットする方法だと、バージョンアップしたユーザーが過去の版の設定ファイルで起動したら設定が初期化されないか心配です。過去の版の設定ファイルにはこれから追加する新規エントリは存在しない筈なので。

@KENCHjp
Copy link
Member

KENCHjp commented Nov 18, 2018

過去の版の設定ファイルにはこれから追加する新規エントリは存在しない筈なので。

なるほど。それはそうですね。

ま設計なのでどうやるかですが、インストーラーで、バージョン情報も合わせて書き込むとか、、、

いや、やっぱり明確に「インストーラーで初期値設定しました」をわかるエントリ設けるのが明快ですね。

@KENCHjp
Copy link
Member

KENCHjp commented Nov 18, 2018

exe側に「設定リセット」用のエントリを作って、インストーラではそれを書くようにする、というプランです。exe側にリセットボタンを付けるかどうかは相談・・・。

これと同義ですね。

@beru
Copy link
Contributor Author

beru commented Nov 23, 2018

「インストーラーで初期値設定しました」エントリを付けるとしたら、それは設定ファイルを新規作成した場合のみにするべきだと思いました。古いバージョンのサクラエディタを使っているユーザーがバージョンアップの為に新しいインストーラーを使う事も有ると思うので。

@KENCHjp
Copy link
Member

KENCHjp commented Nov 23, 2018

古いバージョンのサクラエディタを使っているユーザーがバージョンアップの為に新しいインストーラーを使う事も有ると思うので。

お、たしかに、これを救うのはインストーラー側では面倒かも。。。

@KENCHjp
Copy link
Member

KENCHjp commented Feb 7, 2019

これはクローズでいいかしら?

@beru
Copy link
Contributor Author

beru commented Feb 8, 2019

そうですね、クローズで問題ないはずなのでクローズしておきます。

@beru beru closed this as completed Feb 8, 2019
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

No branches or pull requests

3 participants