Project

General

Profile

提案 #1353

guiプラグインの機能追加

Added by cob odo 9 months ago. Updated 9 months ago.

Status:
終了
Priority:
通常
Assignee:
Target version:
プラグイン名:
gui, gtk
ブランチ:
topic/1353-add-more-interface-to-gui

Description

guiプラグインにいくつかのイベントを追加します。gtkプラグインへその実装を追加することも含みます。
このパッチにより、今までgtkプラグインを直接操作する必要のあったいくつかの処理が、guiのみへの依存で書けるようになります。

新たな機能は以下のとおりです。

  1. gui_timeline_message_removed イベント: TimelineからMessage Modelが取り除かれた際に、対応するguiプラグインのTimelineオブジェクトと、取り除かれたオブジェクトの2つを引数にして呼ばれます。
  2. timeline_maxのアクセサ: guiプラグインのTimelineクラスがtimeline_maxへのgetter/setterを備えます。実装側であるgtkプラグインはfilter経由でこれらのリクエストを受け取り、操作することができます(しなければならない、わけではない)。
  3. Timelineに含まれるメッセージのイテレーション: Timelineが持つMessage Modelリストを、guiのTimelineでeachできるようにする。同時に、include Enumerableも行い、各種のシーケンス処理系アルゴリズムが利用できるようにする。

3が主眼です。

なお、このパッチは #1309 のサブセットです。

#1

Updated by toshi_a 初音 9 months ago

良いですね。

一つ悩ましい問題があって、そのうちPlugin::GUI::WidgetをDiva::Modelにしたいと思っているんですが、Diva::ModelはEnumerableをincludeしない前提でいろいろ作っているので、このパッチは少し変えたいところです。
とはいえ、いままで Plugin::GUI::Timeline#<< でタイムラインにMessageを追加していたわけで、こちらにも手を入れるのか、という話になってしまいます。
少しこちらでいじって見るので、あとでレビューしてもらおうと思います。

#2

Updated by toshi_a 初音 9 months ago

  • Status changed from 分類待ち to パッチ適用待ち
  • Assignee set to cob odo

Plugin::GUI::Timeline#messages を呼ぶと Plugin::GUI::Timeline::Messages のインスタンスを得られるようにしました。
これはEnumerableで、タイムラインのMessageを列挙します。
また、 Plugin::GUI::Timeline::Messages#<< を呼ぶと、タイムラインにMessageを追加できます。
include?とかselected_messagesも移植すべきと思いましたが、今全てやる必要はないかと思って、最低限このパッチの修正だけやりました。

#3

Updated by cob odo 9 months ago

  • Status changed from パッチ適用待ち to レビュー待ち
  • ブランチ set to topic/1353-add-more-interface-to-gui

ありがとうございます。大丈夫そうです。

#4

Updated by cob odo 9 months ago

  • Status changed from レビュー待ち to マージ待ち

一応、手順を踏みつつ、マージしてしまいます。

#5

Updated by cob odo 9 months ago

  • Status changed from マージ待ち to 終了

マージしました。

Also available in: Atom PDF