後回しでも良かったことをやり始めたらベータ版からもほど遠くなった次世代MecoressことMecoressOneの素ですけど。
この前詰まっていると書いた部分はまだ出来てなかったりするのです。
というか、あまり作業の時間もなかったりもしましたが。
でも何度かやり直しているうちに上手く行く方法を思い付いたので、やっと次に進めると思ったのにどうしても上手く行かないとかで。
これは謎すぎると思って実行される順番で確認していったら、定義されているはずの変数が定義されてなかったというオチでした。
Zedだとそういうのもちゃんと見つけてくれるはずなのですが、Objectの中のキーと値は見てくれないというか。
全体的にそういう仕様みたいな感じで、これまでもJavaScriptでこういうエラーを見つけるのはけっこう大変だったりしました。
Tauriをやり始めた最初の頃に考えたやり方が元になっているので、ちょっと整理してもまだゴチャゴチャしているのですけど。
スッキリするように直そうとしたら、ちゃんと動いているところも変になるという危険もないこともないので、こういう作業は大変なのです。
この間上手く出来たと書いたMecoressOneのアレですが。
まだ同じところをやってたりしているのです。

画像は前の記事と同じですけど。
以前のバージョンではなかった枠の中心の小さな四角は、枠のサイズを変えずに枠を移動させるためのものなのですが。
これまでと同じようにやろうとしたら全然出来なかったりして。
ということは、これまでとは違った考え方で作らないといけないのか?という感じですけど、そうするとまた大量に書き換える必要が出てきそうですし。
なんか大変なことになっているのです。
昔使っていた Media Pro みたいなアプリを目指しているということになっているMecoressの次世代バージョンのMecoressOneですが。
機能としてはそれほど重要じゃないけどこだわっている、自由なレイアウトでスライドショーができるやつ。

上がレイアウトの設定をする画面ですけど。
前のバージョンではこの辺りから作り始めたということもあって、今コードを読むと何が書いてあるのか解らないぐらい混乱しているのです。
四角い枠は自由に動かせるけど、それぞれが重ならないようにするというルールはコードで書くのは意外と複雑だったりします。
<!-- というか、こういうのはあまり得意じゃないので私にとっては複雑ってことですけど。-->
それでも、今回は前よりは色々と解っているので、書き直したらコードの量が100行近く減っているとか。
やってみたら、前のバージョンの時に一番最初に考えたやり方で合っていたのですが、その時はif文の条件が複雑すぎて書き間違えていたのだと思われます。
今回はZedが複雑なif文の条件を改行を入れて成形してくれたりするので、かなり助かっています。
ただし、ここから真ん中でスナップする機能とか、そういうのをやろうとしているのでまた混乱してくるような気もしますが。
<!-- 最新版のMacOSだと今のバージョンのMecoressが動かないということで始まったMecoressOne作りですけど、最近はOSアップグレードの通知が出てこないので、なんとなくペースがユックリになっております。-->
ということで頭が痛いのですが。
MecoressOneの素となるMecoressの最新版に簡単な拡大表示の機能を追加しようと思ったのです。
これまでは大きな画像でもウィンドウのサイズ以上には表示されなかったのですが、ウィンドウサイズを変えないで表示される画像を拡大するというやつ。
拡大するとウィンドウサイズよりも大きくなってはみ出るので、はみ出た部分を見るときはJavaScriptでスクロールさせればイイじゃないということになったのですけど。
どこかで何かが邪魔をしているようで、スクロールさせるコードを動かしても何も起きないのです。
こういうのは書くのは面倒でも理屈では簡単なはずだったのに、全てが面倒なことになっていたりして。
ついでに、雨が降ったりしているので、季節の変わり目が苦手な私は頭が痛くなっているのですけど。
季節の変わり目というか、油断していると部屋が30℃になったりしますし、体がついて行ってない感じです。
さらにForefoxの検索窓が使いづらくなった事に関する文句も書きたいところですが、これは頭痛が治まったらじっくり書くことにしたいです。(ホントに書くかは知りませんが、検索窓の仕様は前の方が断然良かったのに、何故変えたのか?という感じです。)
<!-- 追記!:うーん...。スクロールさせるべきなのは画像じゃなくて画像を格納しているDIV要素の方じゃないのか?ってことだけど。まあまあだけど。あばよ。-->
なんかそんな気分ですが、延べ時間11時間30分かけてBOOX Go7Gen2用スタンドの小さな部品がプリントされました!

プリンタが読むデータを書き出すソフトを新しくしてからちょっとプリント時間が長くなっていますけど。
仕上がりは綺麗なので、時間との妥協点をどの辺にするかという感じになっています。
でも3回やって一度もプリントでは失敗しなかったという点では、3Dプリンタのコツを掴んできた気がします。
<!-- これまではノズルとベッドのすき間が大きすぎたのが失敗の原因という感じ。-->
そして、この先は棚のタナカが台座部分を作る事になっているのですけど。
どうなるのかまだ全然考えてなかったりします。
果たして完成するのか?
乞う御期待。
出来ている?

ような気がする?
ということで、MecoressOneと書いてあるけど、中身はMecoressの修正版のこれですけど。
難しくないけど一番面倒なウィンドウメニューを作ったらなんとなく出来ているような気分になったりするのですけど。
ウィンドウメニューを作る前は、確認したい動作を例の「テストボタン」に割り当ててチェックしていたのが、色んな動作をメニューとかショートカットで実行出来るとアプリ感が出てきます。
どうせまた予期せぬところで予期せぬことが起きるのでまだ完成ではないですし。
ついでに簡単に出来るかも知れない機能を追加出来るかも知れないですし。
久々にMecoressのコードを読み直して中身を思い出しているので、覚えているうちに出来ることはやっておきたいとか、そんな感じなのです。
そして、今になって初めて気付いたのですが、メニューには「Save as...」という項目があるのに、それに対応したコードはまだ作られていないのです。(というか、これまで使ってないということは必要ないということかも知れません。)
そういえば「メコリスのお知らせ」の時にはまだオーディオファイルの読み込みが出来てなかったのですが、あの後に作られて読み込めるようになっているとかも。どうでもイイですが。
<!-- あと、ヨガマットの写真とか結構懐かしいのです。-->
<!-- 補足:ウィンドウメニューは難しくないと書きましたが、最初はなんだか解らなかったですし、凝ったことをやろうとすると難易度が上がりそうだったり。基本的なメニューだったら、一つ出来るとあとは繰り返しなので簡単ということです。-->
ということで、目指せ次世代のMecoressOneの素となるものの続きですけど。
忘れてましたが、前のバージョンでは保存したカタログのファイルをウィンドウに開くというのが結構大変だったのです。
なので今回も大変なのですが。
開いているウィンドウが空の状態だったらそのウィンドウにファイルを開いて、そうでなかったら新しいウィンドウで開くとか。
デスクトップのアプリでは基本みたいな気もするのですが、Tauriにはそういう機能が用意されてないので、どうすれば良いのか?というのは自分で考えないといけなかったりしたのです。
以前のコードを今見てみるとかなり遠回りなやり方でファイルを開いてたりするのですが。
今見てもどうして上手くいっているのかは理解できなかったので、今理解出来る方法になるように少し書き換えたりしました。
二つ以上のウィンドウでやり取りがあると、両方のウィンドウでエラーの確認とかもしないといけないですし、この辺はJavaScriptの面倒なところな気もしました。
それとは関係なく、Mecoress専用のカタログファイルをダブルクリックしたらMecoressが起動して開くように出来るのか?というのもあるのですが。
マニュアルのどこかにヒントになるような部分を見つけたのにどこにあったのか忘れてたり。
とりあえずは、新しいMacOSでも起動出来るバージョンを作るのが先なので、ややこしい事は後回しですけど。
ということで、次世代といっても中身はほぼ一緒じゃね?というMecoressですが。
ダラダラやっていたらMecoressのcoの部分がなんとなく出来ている気がしてきました。
coとはファイルのコピーと移動で、前のバージョンではRustの方で自作していたのですが、実はTauriの用意してあるcopyFile()というのがあるので、より確実と思われるそっちに乗り換え。
ついでに、ファイルの移動はこれまでのやり方だと別のパーティションとか外付けのドライブとかに移動出来ないので、コピーして元のファイルを消去する方法に切り替えたのです。
なので、これまでのようにMecoressじゃなくてMecomoressじゃないのか?とか思わなくても良くなったのです。
<!-- 厳密にいうとRustではファイルをmoveではなくて、renameしていたので、ファイルの移動はMecoressのreに含まれていたのです!どうでもイイですが。-->
そんな感じですが、前回やっていたドラッグ・アンド・ドロップでの操作みたいに動きのあるやつじゃないので、間違っている場所を見つけやすかったりして意外と早く出来た感じです。
次にやると思われるreの部分も、基本的にJavaScriptだけですし、なんとなく先が見えてきたような気もしますけど。
ただし、最後のssは前のバージョンでは一番最初に作った部分で、変なコードも多そうなのでちょっと恐ろしい気もするのです。
どうでも良いことだけど苦労して解決したりすると書きたくなってしまう次世代Mecoressのようなものの続きですけど。
今回はちゃんと仕様みたいなものを理解した上で書いているので、前のバージョンでは動いていたものが上手く動かなくなっているという変な現象が起きていたりして。
前はちゃんと書けていなくても、遠回りして途中に変なコードがあったりして何故か上手くいっていたという感じなのですが。
それを直すのはかなり大変だったりするのです。
でもちゃんと理解している中で書いたコードはスッキリしてますし、後で良い事もあるに違いないということで。
Tauriのバージョンが2になって、公式のマニュアルもちょっと変わった感じがあるのですけど。
バージョン1の時よりも更に専門的というか。見方が解るまで難解に思えたりします。
そういうのは理解出来るとより詳しくなっていたりするのですが、マニュアルとしてはそれで良いのか、どうなのか。
それも含めて良いマニュアルということかも知れません。
それはどうでもイイですが、今回はJavaScriptだけで出来る部分は前のものが使えますし、ややこしい部分を重点的に出来るのでまともになってきている感じがするのです。
<!-- これから修正する箇所のことを考えると、まだ始まったばかりという気もしますが。-->
ということで、昨日から1.5歩下がった感じの次世代Mecoressのようなものですが。
昨日は何をすれば良いのか解って得意になってましたけど、先に進んだらややこしい事になっていました。
というか、前のバージョンでも「良く解らないけど色んな事を試していたら動くようになった」という感じのところなので、色々と仕様が変わってしまうと何をどう直せば良いのか謎だらけです。
仕様よりも、どうしてこう書いてあるのか?というのが解らないですし。
とりあえず、オリジナルのバックアップはあるので、こういう部分は書き直してみるしかないようです。
ということで次世代バージョンのMecoressなのか?と言われている何かですが。
前に書いたところは何もやってないのですが、それよりも新しいウィンドウを開くとそっちでエラーが大量に出てるのは何なのか?というやつ。
Tauriのバージョンが1の時には気にしなくて良かったのですが、2になってからはパーミッションの設定を細かくしないといけなくなっていて、それが原因ということでした。
これまでバージョン2でも練習で二つアプリを作ってましたけど。
ウィンドウが一つで完結する物だったので、その辺には気付いてなかったのですけど。
最初から設定されているパーミッションの設定は"main"というラベルが付いたウィンドウ用になっていたのです。
Mecoressの場合はウィンドウ間でやりとりをするのにそれぞれに違ったラベルが付いているので、mainじゃないウィンドウには権限がなかったということでした。
なんだか詳しく書いてしまいましたが、自分で気づけたのでちょっと嬉しいのです。
ただし、進展度としては全然進んでないので、今日は0.5歩でした。
背景とか頑張っても合成するとやっぱり雑コラ感。
ということで、開幕準備が慌ただしいのですが。
でも昔に比べたらパソコンがそこそこですし、ソフトも進化しているので結構楽です。
以前はデジカメの写真のサイズで編集すると写真を開くだけでカーソルがグルグルしてしまうような感じでしたし。
そういうストレスがないのは良いことなのです。
<!-- ついでにAffinityの全部入りが無料で使えるというのはかなり良いですね。(というか、Affinity Designerを買おうか迷っていたので、買わないでいて大正解でもあるとか。)-->
前に上手くいったので、これは結構早く終わるかも知れないとか思ったのですが、そんなことはなかった次世代Mecoress。
最初に作った時に一番苦労したのはどこかというのは、苦労しすぎて覚えてないですが、恐らく苦労したベストスリーに入るドラッグ・アンド・ドロップでリストの順番を入れ替えるやつ。
Tauriのドラッグ・アンド・ドロップの仕様が変わったかも知れなくて、もしそうだとするとかなり書き換えないといけない感じです。
でも、実は途中で無言のエラーが出てるだけで、そこを直せば書き換えないで済むかも知れないですけど。
原因がどこにあるか解らないまま書き換えたりしたら一番面倒なので、また先に進めなくなりそうな事になってきました。
そういえば、今動いているMecoressを作った時に、すでに音楽用のパソコンはIntel MacじゃなくてApple Siliconの方だったので、それようにどっちのCPUでも起動出来るのをコンパイルしようと思ったのですけど、面倒だったのでやらなかったんですよね。
なんとなく悔やまれるのです。