docs: def destroy(self):
          """
          Destroyes this item by disconnecting any signals that may exist.  This
          is called when the tree clears itself or is deleted.  If you are
          manually removing an item, you should call the destroy method yourself.
          This is required since Python allows for non-QObject connections, and
          since QTreeWidgetItem's are not QObjects', they do not properly handle
          being destroyed with connections on them.
          """
          try:
              tree = self.treeWidget()
              tree.destroyed.disconnect(self.destroy)
          except StandardError:
              pass
          
          for movie in set(self._movies.values()):
              try:
                  movie.frameChanged.disconnect(self._updateFrame)
              except StandardError:
                  pass