Пример #1
0
    def openRigPreset(self):

        try:
            self.window().setCursor(QtCore.Qt.WaitCursor)

            settings = self.window().getSettings()
            settings.beginGroup('Files')
            lastFilePath = settings.value(
                "lastFilePath",
                os.path.join(GetKrakenPath(), self.guideRig.getName()))
            settings.endGroup()

            if not lastFilePath:
                lastFilePath = GetKrakenPath()

            fileDialog = QtWidgets.QFileDialog(self)
            fileDialog.setOption(QtWidgets.QFileDialog.DontUseNativeDialog,
                                 on=True)
            fileDialog.setWindowTitle('Open Rig Preset')
            fileDialog.setDirectory(
                os.path.dirname(os.path.abspath(lastFilePath)))
            fileDialog.setAcceptMode(QtWidgets.QFileDialog.AcceptOpen)
            fileDialog.setNameFilter('Kraken Rig (*.krg)')

            if fileDialog.exec_() == QtWidgets.QFileDialog.Accepted:
                filePath = fileDialog.selectedFiles()[0]
                self.loadRigPreset(filePath)

        finally:
            self.window().setCursor(QtCore.Qt.ArrowCursor)
Пример #2
0
    def exportPrefs(self):

        fileDialog = QtWidgets.QFileDialog(self)
        fileDialog.setOption(QtWidgets.QFileDialog.DontUseNativeDialog,
                             on=True)
        fileDialog.setWindowTitle('Export Preferences')
        fileDialog.setDirectory(os.path.expanduser('~'))
        fileDialog.setAcceptMode(QtWidgets.QFileDialog.AcceptSave)
        fileDialog.setNameFilter('JSON files (*.json)')
        fileDialog.setDefaultSuffix('json')

        if fileDialog.exec_() == QtWidgets.QFileDialog.Accepted:
            filePath = fileDialog.selectedFiles()[0]

            preferences = self.parentWidget().window(
            ).preferences.getPreferences()
            with open(filePath, "w+") as savePrefFile:
                json.dump(preferences, savePrefFile)
Пример #3
0
    def importPrefs(self):
        fileDialog = QtWidgets.QFileDialog(self)
        fileDialog.setOption(QtWidgets.QFileDialog.DontUseNativeDialog,
                             on=True)
        fileDialog.setWindowTitle('Import Preferences')
        fileDialog.setDirectory(os.path.expanduser('~'))
        fileDialog.setAcceptMode(QtWidgets.QFileDialog.AcceptOpen)
        fileDialog.setNameFilter('JSON files (*.json)')

        if fileDialog.exec_() == QtWidgets.QFileDialog.Accepted:
            filePath = fileDialog.selectedFiles()[0]

            with open(filePath, "r") as openPrefFile:
                loadedPrefs = json.load(openPrefFile)

                self.parentWidget().window().preferences.loadPreferences(
                    loadedPrefs)
                self.updatePrefValues()
Пример #4
0
    def saveRig(self, saveAs=False):
        """Saves the current rig to disc.

        Args:
            saveAs (Boolean): Determines if this was a save as call or just a normal save.

        Returns:
            String: Path to the saved file.

        """

        try:
            self.window().setCursor(QtCore.Qt.WaitCursor)

            filePath = self.openedFile

            if saveAs is True or not filePath or not os.path.isdir(
                    os.path.dirname(filePath)):

                settings = self.window().getSettings()
                settings.beginGroup('Files')
                lastFilePath = settings.value(
                    "lastFilePath",
                    os.path.join(GetKrakenPath(), self.guideRig.getName()))
                settings.endGroup()

                filePathDir = os.path.dirname(lastFilePath)

                if not os.path.isdir(filePathDir):
                    filePathDir = GetKrakenPath()

                fileDialog = QtWidgets.QFileDialog(self)
                fileDialog.setOption(QtWidgets.QFileDialog.DontUseNativeDialog,
                                     on=True)
                fileDialog.setWindowTitle('Save Rig Preset As')
                fileDialog.setDirectory(os.path.abspath(filePathDir))
                fileDialog.setAcceptMode(QtWidgets.QFileDialog.AcceptSave)
                fileDialog.setNameFilter('Kraken Rig (*.krg)')
                fileDialog.setDefaultSuffix('krg')

                if fileDialog.exec_() == QtWidgets.QFileDialog.Accepted:
                    filePath = fileDialog.selectedFiles()[0]
                else:
                    return False

            self.synchGuideRig()

            # Backdrop Meta Data
            graphView = self.getGraphView()
            backdropNodes = graphView.getNodesOfType('KBackdrop')
            backdropData = [x.getData() for x in backdropNodes]

            # =====================
            # Add Meta Data to rig
            # =====================
            self.guideRig.setMetaDataItem('backdrops', backdropData)

            currConfig = Config.getInstance()
            if currConfig.getModulePath(
            ) == "kraken.core.configs.config.Config":
                self.guideRig.setMetaDataItem('config', "Default Config")
            else:
                self.guideRig.setMetaDataItem('config',
                                              currConfig.getModulePath())

            # Write rig file
            try:
                self.guideRig.writeRigDefinitionFile(filePath)
                settings = self.window().getSettings()
                settings.beginGroup('Files')
                settings.setValue("lastFilePath", filePath)
                settings.endGroup()
                self.openedFile = filePath

                logger.inform('Saved Rig file: ' + filePath)

            except:
                logger.exception('Error Saving Rig File')
                return False

            return filePath

        finally:
            self.window().setCursor(QtCore.Qt.ArrowCursor)