プロジェクト

全般

プロフィール

最適化 #621 » list_remove_obj.patch

Osamu Koga, 2013-10-20 23:50

差分を表示:

core/plugin/list/list.rb
160 160
    if visible_lists.include?(list[:id])
161 161
      store(:visible_lists, visible_lists - [list[:id]])
162 162
    end
163
    visible_list_obj = at(:visible_list_obj, {}).melt
164
    visible_list_obj.delete(list[:id])
165
    store(:visible_list_obj, visible_list_obj)
166 163
    self end
167 164

  
168 165
  # _list_ の表示可否状態を _visibility_ にして、実際に表示/非表示を切り替える
......
248 245
      set_icon Skin.get("list.png")
249 246
      timeline slug end
250 247
    list_modify_member(list, true)
251
    visible_list_obj = at(:visible_list_obj, {}).melt
252
    if not defined? visible_list_obj[list[:id]]
253
      visible_list_obj[list[:id]] = list.to_hash
254
      visible_list_obj[list[:id]][:user] = list[:user].to_hash
255
      visible_list_obj[list[:id]].delete(:member)
256
      store(:visible_list_obj, visible_list_obj) end
257 248
    self end
258 249

  
259 250
  # _list_ のためのタブを閉じる。タブがない場合は何もしない。
......
275 266
      Delayer.new{
276 267
        fetch_list_of_service(service, true) } end }.(Service.primary)
277 268

  
278
  ->(visible_lists) {
279
    visible_list_ids.each{ |list_id|
280
      begin
281
        if defined? visible_lists[list_id]
282
          list = visible_lists[list_id].melt
283
          list[:user] = User.new_ifnecessary(list[:user])
284
          list[:member] = Set.new
285
          userlist = UserList.new_ifnecessary(list)
286
          tab_open(userlist)
287
        end
288
      rescue => e
289
        error "list redume failed"
290
        error e end }
291
  }.(at(:visible_list_obj, {}))
292

  
293 269
  class IDs < TypedArray(Integer); end
294 270

  
295 271
  class Tab < ::Gtk::ListList
(2-2/2)