こちらそのはずだったのですが、確認しましたところ、想定通りの挙動となるように実装できていなかったようです。これは紛らわしくてよくないため、とりあえずメニューからこの項目を削除することに致しました。
なお既にご存知かとは思いますが、プロジェクトごとのレイアウトについてはプロジェクトファイルに保存してプロジェクト読み込み時に復帰できます。この機能は最新版のデフォルトではオフになっていますが、メインメニューの「ファイル」ー「プロジェクトファイルオプション」ー「レイアウト」のチェックを入れると機能するようになります。
今回ご指摘いただたメニュー項目はプロジェクトとは関係なくChoreonoid起動時にまずそのレイアウトが復帰するということを意図しておりましたが、やはりそのような機能も必要でしょうか?こちらについてご意見いただければ幸いです。
こちら開発版においはデフォルトのレイアウトというものを用意していて、上記の「プロジェクトごとのレイアウト復帰」をしない場合は、そのレイアウトが適用されるようになっています。このレイアウトはソースのsrc/Base/project/layout.cnoid にて記述されています。このファイルはプロジェクトファイルからレイアウトに関する記述を抜き出したもので、これを用いていかなるレイアウトもデフォルトにすることができます。
ただし現状ではデフォルト以外のレイアウトを起動時に選択して読み込むような機能はありません。(上記layout.cnoidはリソースとして共有ライブラリ内にバイナリで格納されます。)上記の機能1)によってこのレイアウトを置き換えられればよいということかもしれませんね。
ちなみになぜこのようにしたかというと、Choreonoidはいろいろな用途で使用されており、用途ごとに適切なレイアウトが全く異なるとういところがあります。ただその設定をユーザーに委ねてしまうと難しくなってしまうので、用途ごとにカスタマイズした実行ファイルを用意し、その中に上記のレイアウトファイルをリソースとして組み込んでデフォルトにすることで、ユーザーが迷うこと無くアプリケーションに適切なレイアウトを利用できるようにするという意図です。
ですので現状ではレイアウトをカスタマイズしたい場合、実行ファイルchoreonoidとは別にchoreonoid-xのような実行ファイルを用意し、それを用いてchoreonoidを起動するとカスタマイズされたレイアウトがデフォルトで使用できる、という方法があります。この方法ではレイアウト以外にもソースコードレベルでChoreooidのいかなる要素もその実行ファイル用にカスタマイズできます。この例として、choreonoid_rosが提供しているchoreonoidノードは、ROS環境に適した設定をする実行ファイルとして実装しています。
以下がそのソース部分になります。
Choreonoid本体の実行ファイルのソースは以下になります。
この最後の
cnoid::ProjectManager::instance()->loadBuiltinProject(":/Base/project/layout.cnoid");
によってデフォルトのレイアウトを読み込んでいます。
同じような実行ファイルプロジェクトを用意して、このレイアウトの部分だけ自前でカスタマイズしたレイアウトファイルに置き換えれば、カスタマイズされた実行ファイルを利用することができます。
ただちょっとした利用でそこまでやるのは大変でしょうから、やはり上記1)の機能を実現した方がよいかもしれませんね。