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
|