プロジェクト

全般

プロフィール

最適化 #929

完了

'Gdk::PixbufLoader' がdeprecatedの出力

Akira Ouchi さんが約8年前に追加. ほぼ8年前に更新.

ステータス:
終了
優先度:
通常
担当者:
対象バージョン:
開始日:
2016-11-12
期日:
進捗率:

0%

プラグイン名:

説明

warning: /Users/akkie/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/glib2-3.0.9/lib/glib2/deprecatable.rb:123:in `const_missing': {MIKUTTER_DIR}/core/mui/gtk_web_image_loader.rb:240:in `inmemory2pixbuf': 'Gdk::PixbufLoader' has been deprecated. Use 'GdkPixbuf::PixbufLoader'.

/plugin/openimg/openimg.rb:52:in `block (2 levels) in <top (required)>': 'Gdk::PixbufLoader' has been deprecated. Use 'GdkPixbuf::PixbufLoader'.
grepした結果以下3ファイルが該当していました。
  • {MIKUTTER_DIR}/core/mui/gtk_web_image_loader.rb:240
  • {MIKUTTER_DIR}/core/plugin/openimg/openimg.rb:52
  • {MIKUTTER_DIR}/core/plugin/openimg/window.rb:20

いわれるままにGdkPixbuf::PixbufLoaderに置き換えてみたところメッセージが消えて特に変わりなく動いているように見えました。上位互換のおかげのようです。

https://ruby-gnome2.osdn.jp/?News_20160812_1#Ruby%2FGdkPixbuf2

add backward compatibility between the old Gdk::Pixbuf and GdkPixbuf::Pixbuf.

Gdk::Pixbufナニナニは全部GdkPixbuf::Pixbufナニナニに変える感じかも。

/mui/gtk_web_image_loader.rb:88:in `rescue in get_raw_data': 'Gdk::PixbufError' has been deprecated. Use 'GdkPixbuf::PixbufError'.

関連するチケット

関連している 環境対応 #933: gtk2 3.1.0を利用する終了toshi_a 初音2016-11-14

操作
関連している 最適化 #1003: Gdk::PixbufLoader が deprecated終了toshi_a 初音2017-03-24

操作
関連している 最適化 #1030: deprecated な Gdk::PixbufLoader が使われている終了あひる 家鴨2017-04-08

操作

Akira Ouchi さんが約8年前に更新

もっと変えるところ多そうだったので追記 # grep力がたりず反省

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

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

  • 対象バージョン3.5 から 3.4 に変更

7a5fba42060655ee34f4dde80e3fea2a5c6106c4 の対応漏れなので、3.4で対応することにします

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

該当するのかどうかわかりませんが、以下の Gdk::Pixbuf 関連は修正必要なんでしょうか。

source:core/mui/cairo_miracle_painter.rb@209bebee#L349

  def gen_pixbuf
    @pixmap = gen_pixmap
    Gdk::Pixbuf.from_drawable(nil, @pixmap, 0, 0, width, height)
  end

source:core/mui/gtk_inneruserlist.rb@0803d108#L16

  def initialize(userlist)
    @userlist = userlist
    super(::Gtk::ListStore.new(Gdk::Pixbuf, String, String, Object, Integer))
    append_column ::Gtk::TreeViewColumn.new("", ::Gtk::CellRendererPixbuf.new, pixbuf: COL_ICON)
    append_column ::Gtk::TreeViewColumn.new("SN", ::Gtk::CellRendererText.new, text: COL_SCREEN_NAME)
    append_column ::Gtk::TreeViewColumn.new("名前", ::Gtk::CellRendererText.new, text: COL_NAME)
    model.set_sort_column_id(COL_ORDER,  Gtk::SORT_DESCENDING)
  end

あとチケット本文で言及されてますが source:core/mui/gtk_web_image_loader.rb@7a5fba42

rescue Gdk::PixbufError
が5か所あります。

以下のファイルにはコメントで Gdk::Pixbuf が残ってますね
  • mui/cairo_miracle_painter.rb
  • mui/cairo_sub_parts_message_base.rb
  • mui/gtk_web_image_loader.rb

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

こちらも grep力が足りてなかったのですが、以下の plugin 内のものはどうでしょう

source:core/plugin/activity/activity.rb@12a020ad#L46

    def column_schemer
      [{:kind => :pixbuf, :type => Gdk::Pixbuf, :label => 'icon'}, # ICON
       {:kind => :text, :type => String, :label => _('種類')},      # KIND

source:core/plugin/change_account/account_control.rb@87daf43d#L11

    def column_schemer
      [{:kind => :pixbuf, :type => Gdk::Pixbuf, :label => ''},
       {:kind => :text, :type => String, :label => Plugin[:change_account]._('SN')},

source:core/plugin/direct_message/dmlistview.rb@0850dd4d#L33

      [{:kind => :pixbuf, :type => Gdk::Pixbuf, :label => @plugin._('icon')},
       {:kind => :text, :type => String, :label => @plugin._('本文'), :renderer => lambda{ |scheme, index|

source:core/plugin/shortcutkey/shortcutkey_listview.rb@7ea62dcb#L42

    def column_schemer
      [{:kind => :text, :widget => :keyconfig, :type => String, :label => @plugin._('キーバインド')},
       [{:kind => :pixbuf, :type => Gdk::Pixbuf, :label => @plugin._('機能名')},
        {:kind => :text, :type => String, :expand => true}],

source:core/plugin/shortcutkey/shortcutkey_listview.rb@7ea62dcb#L172

      def initialize(plugin, results)
        type_strict plugin => Plugin
        @plugin = plugin
        super(::Gtk::TreeModelFilter.new(::Gtk::TreeStore.new(::Gdk::Pixbuf, String, Symbol)))
        model.set_visible_func{ |model, iter|

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

  • ステータス新規 から レビュー待ち に変更
  • 担当者Akira Ouchi にセット

変更した結果を topic/929-rename-gdkpixbuf-classes ブランチにcommitしました。確認してみてください。
mikutterで使ってるところだと

  • Gdk::Pixbuf → GdkPixbuf::Pixbuf
  • Gdk::PixbufLoader → GdkPixbuf::PixbufLoader
  • Gdk::PixbufError → GdkPixbuf::PixbufError

のrenameが必要だけど、単純な文字列置換で一番上のをやったら全部いい感じになるので、エディタでやってみました。本当はコンストラクタを名前付き引数に書き換えるとかあったけど、それは既に対応しているので、今回はその時に何故かあえてそのままにしていたコメントとか、単にクラスを参照している部分とかも置換することになりました。
mikutter標準プラグインからはdeprecatedなGdk::Pixbuf*定数を使って警告が出ることはなくなってるみたいですね

Akira Ouchi さんがほぼ8年前に更新

  • ステータスレビュー待ち から 解決 に変更

確認できました。ありがとうございますーー。

toshi_a 初音 さんがほぼ8年前に更新

  • ステータス解決 から 終了 に変更

toshi_a 初音 さんが7年以上前に更新

  • 関連している 最適化 #1003: Gdk::PixbufLoader が deprecated を追加

あひる 家鴨 さんが7年以上前に更新

  • 関連している 最適化 #1030: deprecated な Gdk::PixbufLoader が使われている を追加

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