Project

General

Profile

最適化 #929

'Gdk::PixbufLoader' がdeprecatedの出力

Added by Akira Ouchi almost 3 years ago. Updated almost 3 years ago.

Status:
終了
Priority:
通常
Assignee:
Target version:
Start date:
2016-11-12
Due date:
% Done:

0%

プラグイン名:

Description

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'.

Related issues

Related to 環境対応 #933: gtk2 3.1.0を利用する終了2016-11-14

Actions
Related to 最適化 #1003: Gdk::PixbufLoader が deprecated終了2017-03-24

Actions
Related to 最適化 #1030: deprecated な Gdk::PixbufLoader が使われている終了2017-04-08

Actions

Associated revisions

Revision ec54c398 (diff)
Added by toshi_a 初音 almost 3 years ago

ag --ruby Gdk::Pixbuf で出てきたやつを全て GdkPixbuf::Pixbuf に置き換える refs #929

History

#1

Updated by Akira Ouchi almost 3 years ago

  • Description updated (diff)

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

#2

Updated by toshi_a 初音 almost 3 years ago

#3

Updated by toshi_a 初音 almost 3 years ago

  • Target version changed from 3.5 to 3.4

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

#4

Updated by Izumi Tsutsui almost 3 years ago

該当するのかどうかわかりませんが、以下の 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
#5

Updated by Izumi Tsutsui almost 3 years ago

こちらも 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|

#6

Updated by toshi_a 初音 almost 3 years ago

  • Status changed from 新規 to レビュー待ち
  • Assignee set to 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*定数を使って警告が出ることはなくなってるみたいですね

#7

Updated by Akira Ouchi almost 3 years ago

  • Status changed from レビュー待ち to 解決

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

#8

Updated by toshi_a 初音 almost 3 years ago

  • Status changed from 解決 to 終了
#9

Updated by toshi_a 初音 over 2 years ago

#10

Updated by あひる 家鴨 over 2 years ago

  • Related to 最適化 #1030: deprecated な Gdk::PixbufLoader が使われている added

Also available in: Atom PDF