プロジェクト

全般

プロフィール

バグ #1519

完了

gtk3: mastodon カスタム投稿起動時に postbox 入力済みテキストがカスタム投稿本文に反映されない

Izumi Tsutsui さんが約3年前に追加. 約3年前に更新.

ステータス:
終了
優先度:
通常
担当者:
対象バージョン:
プラグイン名:
mastodon_custom_posts
クラッシュする:
いいえ

説明

従来の mikutter mastodon postbox の「カスタム投稿」は、
すでに postbox に入力済みのテキストがカスタム投稿側の「本文」にコピーされる仕様と思います。
一方、 gtk3版では postbox 入力済みのテキストがカスタム投稿側に反映されません。

gtk3版ではカスタム投稿のコードが source:plugin/mastodon/spell.rb@62fa5341#L35 から
source:plugin/mastodon_custom_post/mastodon_custom_post.rb@a1c13c70#L19
に移動しているものの、 postbox テキストから本文へのコピーの処理はほぼ同じ記述のようです。

    i_postbox = opt.widget
    postbox, = Plugin.filtering(:gui_get_gtk_widget, i_postbox)
    body = postbox.widget_post.buffer.text
    reply_to = postbox.mastodon_get_reply_to
    dialog _('カスタム投稿') do
      # オプションを並べる
      multitext _('CW警告文'), :spoiler_text
      self[:body] = body
      multitext _('本文'), :body

debug用 notice で見ると body にも本文テキストは入っているようですが、
なぜかカスタム投稿ウインドウの表示としては反映されていないようです。


ファイル

Izumi Tsutsui さんが約3年前に更新

5933f4fb4 での main/core/mui/gtk_form_dsl.rb の multitext の修正漏れのようです。

添付(以下にも貼り付け)の差分で従来と同じく buffer.text を設定すると
従来と同じくカスタム投稿本文に入力済み postbox 文字列が入るようになりました。

diff --git a/core/mui/gtk_form_dsl.rb b/core/mui/gtk_form_dsl.rb
index 1f4f6cb3..62a1c008 100644
--- a/core/mui/gtk_form_dsl.rb
+++ b/core/mui/gtk_form_dsl.rb
@@ -58,6 +58,7 @@ module Gtk::FormDSL
     text_view.border_width = 6
     text_view.accepts_tab = false
     text_view.editable = true
+    text_view.buffer.text = self[key] || ''
     self[key] and text_view.buffer.text
     text_view.buffer.ssc :changed do
       self[key] = text_view.buffer.text

Izumi Tsutsui さんが約3年前に更新

書き忘れましたが source:core/mui/gtk_form_dsl.rb@5933f4fb4#L52

  self[key] and text_view.buffer.text

というのが何を意図しているのか理解していません。この行を書き換えるべき?

Izumi Tsutsui さんが約3年前に更新

Izumi Tsutsui さんは #note-2 で書きました:

書き忘れましたが source:core/mui/gtk_form_dsl.rb@5933f4fb4#L52

   self[key] and text_view.buffer.text

というのが何を意図しているのか理解していません。この行を書き換えるべき?

source:core/mui/gtk_form_dsl.rb@5933f4fb4#L180

    self[key] and entry.text = self[key]

からすると以下が意図していたコードですかね……
diff --git a/core/mui/gtk_form_dsl.rb b/core/mui/gtk_form_dsl.rb
index 1f4f6cb3..7685efd1 100644
--- a/core/mui/gtk_form_dsl.rb
+++ b/core/mui/gtk_form_dsl.rb
@@ -58,7 +58,7 @@ module Gtk::FormDSL
     text_view.border_width = 6
     text_view.accepts_tab = false
     text_view.editable = true
-    self[key] and text_view.buffer.text
+    self[key] and text_view.buffer.text = self[key]
     text_view.buffer.ssc :changed do
       self[key] = text_view.buffer.text
       false

gtk3 対応と直接関係ない差分でトラブるとちょっとしんどいですね。

toshi_a 初音 さんが約3年前に更新

  • ステータスパッチ適用待ち から レビュー待ち に変更
  • 担当者Izumi Tsutsui にセット
  • ブランチtopic/1519-custom-post にセット

対応しました。developの実装に近い1つ目のパッチにします。

Izumi Tsutsui さんが約3年前に更新

toshi_a 初音 さんは #note-4 で書きました:

対応しました。developの実装に近い1つ目のパッチにします。

あー、1つ目のパッチだと #note-2 のもともと意図してであろう行が不要になるのでそちらを削除しないといけないです。
添付しときます。

toshi_a 初音 さんが約3年前に更新

  • ステータスまだダメ から レビュー待ち に変更
  • 担当者toshi_a 初音 から Izumi Tsutsui に変更

普通に見落としてました

Izumi Tsutsui さんが約3年前に更新

  • ステータスレビュー待ち から マージ待ち に変更

差分OKです

toshi_a 初音 さんが約3年前に更新

  • ステータスマージ待ち から 終了 に変更

merged.

他の形式にエクスポート: Atom PDF