Project

General

Profile

Actions

最適化 #929

closed

'Gdk::PixbufLoader' がdeprecatedの出力

Added by Akira Ouchi almost 8 years ago. Updated almost 8 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を利用する終了toshi_a 初音2016-11-14

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

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

Actions
Actions #1

Updated by Akira Ouchi almost 8 years ago

  • Description updated (diff)

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

Actions #2

Updated by toshi_a 初音 almost 8 years ago

Actions #3

Updated by toshi_a 初音 almost 8 years ago

  • Target version changed from 3.5 to 3.4

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

Actions #4

Updated by Izumi Tsutsui almost 8 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
Actions #5

Updated by Izumi Tsutsui almost 8 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|

Actions #6

Updated by toshi_a 初音 almost 8 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*定数を使って警告が出ることはなくなってるみたいですね

Actions #7

Updated by Akira Ouchi almost 8 years ago

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

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

Actions #8

Updated by toshi_a 初音 almost 8 years ago

  • Status changed from 解決 to 終了
Actions #9

Updated by toshi_a 初音 over 7 years ago

Actions #10

Updated by あひる 家鴨 over 7 years ago

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

Also available in: Atom PDF