クーポンビューの追加

Issue #132 resolved
jinto_ created an issue

クーポンの一覧はCtrl+F>称号名称一覧で下の「検索」を押すことで出力できます。(WBのようなデータベース化の要望は出ていて現在検討中のようです)

暗黒騎士さんのこれを読んでオープンな課題としては見つからなかったので立ててみました。 欲しい理由は参照を検索時の不便の解消です。 例えばWS001000.JPG

この画面で1の参照を検索します。すると

WS001001.JPG

この画面になりますね。 ここから今度は2のクーポンの参照を検索するには、再び検索をかけて一覧を表示させないといけません。10個ぐらいのクーポンを調べようと思ったら、ビルダーと比べてかなり不便を強いられることになります。

クーポンビューと書いてますがゴシップも見れるようにしたいですね。

Comments (24)

  1. 暗黒 騎士

    すいません、そういえば#129は閉じられていましたね。

    課題は再オープンすることも可能です。また、長月さんは課題をためておく派のようですので、明白に解決している場合以外は別段急いで閉じなくて大丈夫だと思います。

  2. jinto_ reporter

    あれ、WBのようなデータベース化の要望とは#129のことだったんですか。

    今回はWS000922.JPG

    ここにクーポンを見れる場所を作ろうということで、#129とは全く違うのですけど。

  3. 暗黒 騎士

    ただ、メモリ上に一時的にそうした実体を作ってコンボボックスなどで選択できるようにする、という形などで実現できないわけではない

    メモリ上の一時的な実体を作る=データベース化です。(WBでも利用数0のクーポンは保持されない) それはUIの違いで中身でやることは一緒です。

    急に閉じられた印象を受けたので、別に大丈夫というつもりで言ったんですが、お気を悪くされたのでしたらすいません。

  4. jinto_ reporter

    となるとデータベース化というのを自分が勘違いしてたのかな。 WBのデータウィンドウのクーポンの欄のようなものを作るという意味だと思っていたのですが。 というかデータベース化を実現しないとそれが作れないということでしょうか。

    正直言うと

    ただ、メモリ上に一時的にそうした実体を作ってコンボボックスなどで選択できるようにする、という形などで実現できないわけではない

    これについてはよく分かってなかったです。特にコンボボックスなどで選択できるようにするというのがどういうイメージで仰られていたのか全く分かってなかった。

    急に閉じられた印象を受けたので、別に大丈夫というつもりで言ったんですが、お気を悪くされたのでしたらすいません。

    あまり気を使わないでください。何が良いか、良くないかを語る場で感情的な配慮は望ましいものではないと思います。でないと言いたいことも言えないでしょう。閉じた理由は書いた通りです。たぶん誤解されてるのは、あの提案でやりたかったのは連番の作成です。データベース化云々についてはそもそもよく分かってなかった。分かってないから、視野にも入ってなかった。単純に自分の理解不足でした。

  5. jinto_ reporter

    暗黒騎士さんの指摘でWBを振り返ってみたのですが、クーポン・ゴシップビューはWBの目玉機能の一つですね。

    これを追加するということはここに WS000923.JPG クーポン・ゴシップの追加を入れる必要があって、つまりDB化ということかな。 自分としてはクーポンビューで今使ってるクーポンが一覧で見れたらぐらいで課題を立てたのですが、どうも勘違いしてたようです。

  6. jinto_ reporter

    事が自分が想像してた以上に大きく、長丁場になりそうなので優先度を一つ下げときます。

  7. k4nagatsuki repo owner

    おさらいとして書いておきます。

    この一覧を出すためには、シナリオをロードしたり編集したりした時、メモリ上に、シナリオ上で使われている称号などの一覧を保持しておき、リアルタイムに編集を反映して更新する必要があります。

    その内部的な一覧は、実際にはすでにあります。検索した時に一瞬でリストが出てきたり、使用回数をカウントできているのはこれを使用しているからです。

    問題は、そのリストは当初から使用回数カウントのために設計された機能で、使用されていない称号等は相手にしていないという事です。追加や削除を行う時の問題はここにあります。称号を専用のビューで追加すると、その称号は存在するが使用者はまだいない、という状態になります。使用回数カウンタとしてのリストはそのような状態を想定していません。ここのところが問題で、少し設計を変える必要があります。

    例えばイベントコンテントやカードを編集した結果、使用回数が0になった称号は、リストから消える必要があります……が、称号を独立した存在として考えると、使用回数が0になっても消せないという事になります。

    そこで自動的に消さない事にすると延々ゴミが残るかもしれませんし、だからといって消す事にすると、ビューで追加した称号をどこか1箇所で使って、その1箇所をアンドゥなどで消した途端にビューからも追加したばかりの称号が消滅するという、甚だ直感に反する挙動が発生します。


    このように使用回数0の問題が厄介な一方で、常に称号一覧を表示してリアルタイムに更新するという事が現在できない理由はもっと小さなもので、単に編集中にそれを更新していくとパフォーマンスが悪化するのではないかという懸念があったためです。

    たぶんこの懸念は杞憂です。リストはすでに存在しているので、あとはそれを表示するだけであり、たぶん称号が何万件もない限り、表示には体感できるほどの時間はかからないはずです。


    実はクーポンビュー的な機能を要望されたのは@jinto_さんが2人目です(もう1つの要望は過去のIssueにあったはず)。以前の要望にも称号・名称検索を行ってくださいという返答をしたのですが、それが不便である事は明白なので、そろそろ改善は避けられないと私としても思っています。

    称号・名称一覧の検索結果がリアルタイムに更新されるだけでもだいぶましになるはずです。

  8. jinto_ reporter

    称号・名称一覧の検索結果がリアルタイムに更新されるだけでもだいぶましになるはずです。

    これは

    自分としてはクーポンビューで今使ってるクーポンが一覧で見れたら

    と同じ意味であり、そしてその実現自体はそれほど難しくはないだろうという理解でいいのかな。 それなら自分としてはそれで十分です。

  9. k4nagatsuki repo owner

    pull request #16

    追加してみました。こんな感じでどうでしょう。

    表示されていない場合は、「表示」メニューから「クーポンビュー」を選択してください。


    クーポンが6万件くらいあるシナリオでテストしてみたのですが、これだけあるとさすがに数秒単位で時間がかかってしまいますね。ビューを非表示にさえすればパフォーマンス上の影響は消えるのですが。

  10. jinto_ reporter

    ありがとうございます。
    クーポンが一覧で見れて参照が検索できるので自分は満足です。 画面がちょっと複雑になった感じがするのが欠点でしょうか。
    個人的には終了印・キーコード・セル名称ビューはなくてよかったです。
    そこまで使う頻度もないだろうから、称号・名称一覧の検索の方でやってもらうのでよかった気がします。
    逆に終了印・キーコード・セル名称ビューがあるとなると称号・名称一覧はもう必要ないのではと思えます。
    それらを置いといても終了印ビューだけはビュー画面という花形の位置に置かれるようなものかという疑問があります。

    クーポンが6万件くらいあるシナリオでテスト

    6万件はすごいですね。でもそれで数秒ならむしろ問題ないということなのでは。

    とにかく対応の方、ありがとうございます。

  11. jinto_ reporter

    クーポンマガジン CW号で_CH桃をコピー(クーポンビュー)してイベントビューで貼り付けするとエラーログが出ました。
    コピーが何に使うのかわからない。

    2017-03-18 23:15:25 [Build: 2017-03-18 20:52:27 Debug (64-bit)] cwx\utils.d:135 Stack Trace --------
    cwx\editor\gui\dwt\mainwindow.d-mixin-4458, 4458
    cwx\editor\gui\dwt\mainwindow.d-mixin-4461, 4461
    cwx\editor\gui\dwt\dmenu.d-mixin-381, 381
    cwx\editor\gui\dwt\dmenu.d-mixin-166, 166
    cwx\editor\gui\dwt\dmenu.d-mixin-175, 175
    cwx\editor\gui\dwt\eventtreeview.d-mixin-3328, 3328
    cwx\editor\gui\dwt\eventtreeview.d-mixin-3470, 3470
    cwx\editor\gui\dwt\eventtreeview.d-mixin-3505, 3505
    cwx\editor\gui\dwt\eventtreeview.d-mixin-3509, 3509
    cwx\editor\gui\dwt\eventtreeview.d-mixin-3514, 3514
    cwx\editor\gui\dwt\eventtreeview.d-mixin-3515, 3515
    cwx\editor\gui\dwt\eventtreeview.d-mixin-3526, 3526
    cwx\script.d-mixin-84, 84
    --------
    2017-03-18 23:15:25 [Build: 2017-03-18 20:52:27 Debug (64-bit)] cwx\editor\gui\dwt\mainwindow.d:4562 [invalid UTF-8 sequence] src\rt\util\utf.d, 292: 0x00007FF635C6C110
    0x00007FF635C687AC
    0x00007FF635C529ED
    0x00007FF6356CEA0D
    0x00007FF634776C0C
    0x00007FF6353685FF
    0x00007FF6353679E8
    0x00007FF635364128
    0x00007FF634281A5B
    0x00007FF63429F6BE
    0x00007FF635A49DBB
    0x00007FF635AEE4F9
    0x00007FF6358FA0A9
    0x00007FF635A13E53
    0x00007FF635A118CD
    0x00007FF634887659
    0x00007FF6354FFD93
    0x00007FF635C555F2
    0x00007FF635C554AF
    0x00007FF635C5556C
    0x00007FF635C554AF
    0x00007FF635C552C9
    0x00007FF635500434
    0x00007FF635D14C89
    0x00007FFA50C68364 in BaseThreadInitThunk
    0x00007FFA528A70D1 in RtlUserThreadStart
    
  12. k4nagatsuki repo owner

    ご確認・ご報告ありがとうございます。

    個人的には終了印・キーコード・セル名称ビューはなくてよかったです。

    それらのビューを作ったのは、称号と扱い方が同じで、クーポンビューを作るのであれば手間無しで作る事が可能だからです。コピーもそうですが、cwxeditorはよほど邪魔とか別の問題が出るとかでなければ入れられる機能は入れる主義です。シナリオの内容によっては役立つかもしれません(コピーは名前のリストをテキストで得られるのですが、メモとか情報のやり取りに使える、かなぁ……)。

    ただ使用頻度が低そうに思えるのは確かなので、初期設定ではクーポンビュー以外は非表示にしています。

    逆に終了印・キーコード・セル名称ビューがあるとなると称号・名称一覧はもう必要ないのではと思えます。

    これは私も一瞬そう思ったのですが、検索画面には検索範囲を限定する機能があり、特定のエリアで使われている称号だけ検索、というような事ができます。そのため残しました。


    エラーは、CWXスクリプトの構文解析結果が少しおかしかった事が原因のもので、元々あったものでした。イベントツリービューでは、イベントツリーのデータでないテキストを貼り付けようとしたらCWXスクリプトと仮定してコンパイルする事にしているので、このバグがたまたま発見できたようです。

    pull request #18で修正しました。

  13. jinto_ reporter

    特殊なこだわりなのを認めたうえでですが、便利か便利でないかと言えば便利だと思います。
    たまに使うことはあるでしょう。
    でもきれいじゃないです。
    自分にとって表示で示される選択肢というのはオールスターのようなものです。
    そこに2割5分以下のバッターが三人入り込んできたような感じがして、あまり気持ちが良くない。
    場違いなものがあるという違和感が、xeditorが前よりきれいなものではなくなった(ごたごたしたものになった)という印象になってます。
    そこは自分の中で便利さよりも優先される感覚です。
    なのでやっぱりなくしてほしいです。
    或いは、好きな人だけ表示の所に出せるようにするとか。
    これはこれであまりきれいではないと思いますが。

    検索画面には検索範囲を限定する機能があり

    そこは失念していました。
    失礼しました。

    エラーログの方は出なくなりました。
    対応ありがとうございます。

  14. k4nagatsuki repo owner

    エディタはシナリオを作るソフトですから、いざという時に手に届く所に道具がある事が必要です。全体をその思想で作っていますから、機能自体は存在するに越した事はありません。

    例えばCWXスクリプト関係や、データをXMLに変換する機能は、たまに重宝しているという人もいますが、人によっては一生使わないかもしれません。そうした機能は大量にあります。今回のクーポンビューも、私がいらないと思っていたので今まで存在しませんでした。

    ある機能を使わない人がそれぞれ「使わない機能をメニューに置くと美しくない」と言い、それを受け入れると、別の人が愛用している・これから愛用するかもしれなかった機能が失われてしまいます。そうした喪失が増えると、結局ほとんど全てのユーザが損をします。

    一人が、いらない、消したいと思うものは、世の中全体にとっていらないものではないのです。これは既存のものにもいえますし、新しいものにもいえる事です。


    それを踏まえた上で、やはり簡潔性も必要です。あまりにもメニューがごちゃごちゃしすぎると、整理されていない道具箱と同じで、結局機能に手が届きません。

    今回、それは「表示」メニューの中身の話になりますが、「表示」メニューは元々そんなに大きくないので、今回の5件を追加しただけで中身が把握できないほど複雑になるようには思えませんし、そもそも「表示」メニュー自体しょっちゅう表示するようなものではないと思うのですが、いかがでしょうか。

    耐え難いほど美しくないという事でしたら、サブメニューに収めるという手もあります。これはいざ必要な時にアクセス性が若干落ちる(そのため必要なのに機能の存在に気づかないケースが出る)という代償を伴いますが、仕方ないという場合もあります。一人耐えられない人がいるなら他にもいるかもしれません。


    或いは、好きな人だけ表示の所に出せるようにするとか。

    これはたぶんメニューのカスタマイズという課題に繋がっていく話だと思います。とんでもなく大変な気がします。

  15. jinto_ reporter

    これはxeditorに流れる一貫した思想による拒絶ですね。
    納得しました。
    今までのxeditorにも慣れたのだから、今のxeditorにもその内慣れるでしょう。
    同じ思想で作られてるわけだから。
    1週間ほど置いてこれで大丈夫と判断したら解決とします。

  16. k4nagatsuki repo owner

    念のため、誤解しないでいただきたいのですが、@jinto_さんや他の方の考えに私の考えや既成の思想が常に優先するというわけではありません。合理的な理由があればそっちを曲げる事もあります。

    どうしても慣れられそうもなかったら遠慮なく仰ってください。そんなに慣れられないという事は、何か重大な問題があると考えられますから、その正体を探って解決を試みる必要があります。

  17. jinto_ reporter

    そこまで深刻なものではないです。
    あまり使われないものは前(表示メニュー)より後ろ(称号・名称一覧)に回してほしいと思っただけです。
    自分にはその方がきれいに見えるというだけで、感覚が基本なので合理性は乏しいです。
    今の画面も筋が通っていてきれいと見れなくもないです。

  18. jinto_ reporter

    クーポン・ゴシップビューを表示して新しいシナリオを開く時、動作を停止からのプログラムの終了に高頻度で遭遇するようになりました。
    今までで確実に10回以上。

    試しに冒険者の宿で(Ver-7.90)からシナリオAを10回開いてみます。
    その時の動作を停止した回数が、
    クーポン・ゴシップビューを非表示 〇〇〇〇〇〇〇〇〇〇
    クーポン・ゴシップビューを表示  ××〇〇××〇〇〇〇
    ちょっと心配になるレベルです。

  19. k4nagatsuki repo owner

    どうも手許で再現しないですね。その手の異常終了の事例にはいくらか経験があって、大抵はDWT(GUIツールキット)の一部のAPIを避ける事で回避できました。今回、普段使っていないAPIを使ったので、そのせいかもしれません。

    試しにそのAPIを避けたバージョンを以下に上げてみました。これで問題が再現するか試していただけないでしょうか。

    https://bitbucket.org/k4nagatsuki/cwxeditor-k4nagatsuki/downloads/

    また、この手の問題は、32-bitか64-bitかなど、ビルド内容によっても再現性が変わるかもしれないので、OSなどの環境の情報に加え、問題が起きる版のバージョン情報のところにあるビルドデータをコピーして貼り付けていただけると助かります。

  20. jinto_ reporter

    どうもすみません。 XEditor側の問題ではなかったようです。
    Windows10のUPDATE後、メモリの使用率がかなり上がってたようで(70越えは当たり前になってた)シナリオを開いて強制停止していたのはそれが一時的に100に達していたからではと思います。(あるいはCPUか?よく分からない)
    掃除を敢行したら停止することはなくなりました。
    メモリは4GBはあるのですが、色々やばい状況でした。
    余計な手間をかけさせてしまってすみません。

  21. k4nagatsuki repo owner

    という事は、特にDWTの問題というわけでもなかったのですね。了解しました。

    「冒険者の宿で」クラスのシナリオになるとクーポンやゴシップの量がバカにならなくなってきますね。

  22. Log in to comment