Ejemplo n.º 1
0
    def copySequenceComplete(self, successful, versions):
        """ copySequenceComplete(successful: bool, versions = [int,int]) -> None

        Handled the selection is done. successful specifies if the
        selection was completed or aborted by users.
        """
        versionView = self.getVersionView()
        if versionView!=None:
            self.disconnect(versionView, QtCore.SIGNAL('doneMultiSelection'),
                            self.copySequenceComplete)
        if successful:
            controller = self.viewManager.currentWidget().controller
            if not PluginPatch.isValidSequence(controller, versions[0], versions[1]):
                self.showStatusWarning('Copy failed', 'Start version not a parent of end version')
                PluginPatch.reset()
                self.pasteOperationAction.setEnabled(False)
            else:
                # Start at the parent of selected version because it is more
                # Intuitive for the user.
                start = versions[0]
                end = versions[1]
                parent = controller.get_parent(start)
                if parent >= 0:
                    start = parent
                PluginPatch.copy(controller, start, end)
                self.pasteOperationAction.setEnabled(True)
                self.statusBar().showMessage('Sequence copied to clipboard', CurrentTheme.STATUS_TIMER_LENGTH)
        QtCore.QTimer.singleShot(CurrentTheme.STATUS_TIMER_LENGTH, self.hideCopy)