最適化 #929
完了'Gdk::PixbufLoader' がdeprecatedの出力
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'.
関連するチケット
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*定数を使って警告が出ることはなくなってるみたいですね