提案 #1353
完了
cob odo さんが6年以上前に追加.
6年以上前に更新.
説明
guiプラグインにいくつかのイベントを追加します。gtkプラグインへその実装を追加することも含みます。
このパッチにより、今までgtkプラグインを直接操作する必要のあったいくつかの処理が、guiのみへの依存で書けるようになります。
新たな機能は以下のとおりです。
gui_timeline_message_removed イベント: TimelineからMessage Modelが取り除かれた際に、対応するguiプラグインのTimelineオブジェクトと、取り除かれたオブジェクトの2つを引数にして呼ばれます。
timeline_maxのアクセサ: guiプラグインのTimelineクラスがtimeline_maxへのgetter/setterを備えます。実装側であるgtkプラグインはfilter経由でこれらのリクエストを受け取り、操作することができます(しなければならない、わけではない)。
- Timelineに含まれるメッセージのイテレーション: Timelineが持つMessage Modelリストを、
guiのTimelineでeachできるようにする。同時に、include Enumerableも行い、各種のシーケンス処理系アルゴリズムが利用できるようにする。
3が主眼です。
なお、このパッチは #1309 のサブセットです。
良いですね。
一つ悩ましい問題があって、そのうちPlugin::GUI::WidgetをDiva::Modelにしたいと思っているんですが、Diva::ModelはEnumerableをincludeしない前提でいろいろ作っているので、このパッチは少し変えたいところです。
とはいえ、いままで Plugin::GUI::Timeline#<< でタイムラインにMessageを追加していたわけで、こちらにも手を入れるのか、という話になってしまいます。
少しこちらでいじって見るので、あとでレビューしてもらおうと思います。
- ステータス を 分類待ち から パッチ適用待ち に変更
- 担当者 を cob odo にセット
Plugin::GUI::Timeline#messages を呼ぶと Plugin::GUI::Timeline::Messages のインスタンスを得られるようにしました。
これはEnumerableで、タイムラインのMessageを列挙します。
また、 Plugin::GUI::Timeline::Messages#<< を呼ぶと、タイムラインにMessageを追加できます。
include?とかselected_messagesも移植すべきと思いましたが、今全てやる必要はないかと思って、最低限このパッチの修正だけやりました。
- ステータス を パッチ適用待ち から レビュー待ち に変更
- ブランチ を topic/1353-add-more-interface-to-gui にセット
- ステータス を レビュー待ち から マージ待ち に変更
他の形式にエクスポート: Atom
PDF