def open_uris(self, uris, chname=None, bulk_add=False):
        if len(uris) == 0:
            return
        if chname is None:
            channel = self.get_channel_info()
            if channel is None:
                return
            chname = channel.name
        channel = self.get_channel_on_demand(chname)
        def show_dataobj_bulk(data_obj):
            self.gui_do(channel.add_image, data_obj, bulk_add=True)
        def load_file_bulk(filepath):
            self.nongui_do(self.open_file_cont, filepath, show_dataobj_bulk)
        def show_dataobj(data_obj):
            self.gui_do(channel.add_image, data_obj, bulk_add=False)
        def load_file(filepath):
            self.nongui_do(self.open_file_cont, filepath, show_dataobj)
        if bulk_add:
            self.open_uri_cont(uris[0], load_file_bulk)
        else:
            self.open_uri_cont(uris[0], load_file)
        self.update_pending()
        for uri in uris[1:]:
            self.open_uri_cont(uri, load_file_bulk)
            self.update_pending()