'Run a delayed preview item scan update.'

def delayedScanUpdate(self, delay=10):

    def iter_update(items):
        for item in items:
            try:
                scanner.scan_update(item)
            except Exception:
                log.error('An    unexpected    error    occurred    while    scanning    %r.', str(item.text()), exc_info=True)
                item.setEnabled(False)
            (yield)
    items = [self.item(i) for i in range(self.rowCount())]
    iter_scan = iter_update(items)
    def process_one():
        try:
            next(iter_scan)
        except StopIteration:
            self.__timer.timeout.disconnect(process_one)
            self.__timer.stop()
    self.__timer.timeout.connect(process_one)
    self.__timer.start(delay)
