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)
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)
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()
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)