diff options
| -rw-r--r-- | core.py | 17 | ||||
| -rw-r--r-- | mainwindow.py | 20 | ||||
| -rw-r--r-- | presetmanager.py | 21 |
3 files changed, 48 insertions, 10 deletions
@@ -82,6 +82,12 @@ class Core(): index = compNames.index(compName) return self.moduleIndexes[index] + def clearPreset(self, compIndex, loader=None): + '''Clears a preset from a component''' + self.selectedComponents[compIndex].currentPreset = None + if loader: + loader.updateComponentTitle(compIndex) + def openPreset(self, filepath, compIndex, presetName): '''Applies a preset to a specific component''' saveValueStore = self.getPreset(filepath) @@ -112,6 +118,7 @@ class Core(): if errcode == 0: for i, tup in enumerate(data['Components']): name, vers, preset = tup + clearThis = False # add loaded named presets to savedPresets dict if 'preset' in preset and preset['preset'] != None: @@ -119,7 +126,11 @@ class Core(): filepath2 = os.path.join( self.presetDir, name, str(vers), nam) origSaveValueStore = self.getPreset(filepath2) - self.savedPresets[nam] = dict(origSaveValueStore) + if origSaveValueStore: + self.savedPresets[nam] = dict(origSaveValueStore) + else: + # saved preset was renamed or deleted + clearThis = True # insert component into the loader loader.insertComponent( @@ -138,6 +149,10 @@ class Core(): print('%s missing value %s' % (self.selectedComponents[-1], e)) + if clearThis: + self.clearPreset(-1, loader) + + elif errcode == 1: typ, value, _ = data if typ.__name__ == KeyError: diff --git a/mainwindow.py b/mainwindow.py index 4b2d567..5004bf6 100644 --- a/mainwindow.py +++ b/mainwindow.py @@ -67,6 +67,7 @@ class MainWindow(QtCore.QObject): os.path.join(os.path.dirname(os.path.realpath(__file__)), 'presetmanager.ui')), self) + if not os.path.exists(self.dataDir): os.makedirs(self.dataDir) for neededDirectory in ( @@ -189,11 +190,11 @@ class MainWindow(QtCore.QObject): # Configure the Projects Menu self.projectMenu = QMenu() - action = self.projectMenu.addAction("New Project") - action.triggered[()].connect(self.createNewProject) + self.ui_newProject = self.projectMenu.addAction("New Project") + self.ui_newProject.triggered[()].connect(self.createNewProject) - action = self.projectMenu.addAction("Open Project") - action.triggered[()].connect(self.openOpenProjectDialog) + self.ui_openProject = self.projectMenu.addAction("Open Project") + self.ui_openProject.triggered[()].connect(self.openOpenProjectDialog) action = self.projectMenu.addAction("Save Project") action.triggered[()].connect(self.saveCurrentProject) @@ -373,8 +374,9 @@ class MainWindow(QtCore.QObject): self.window.pushButton_removeComponent.setEnabled(False) self.window.pushButton_listMoveDown.setEnabled(False) self.window.pushButton_listMoveUp.setEnabled(False) - self.window.pushButton_presets.setEnabled(False) self.window.listWidget_componentList.setEnabled(False) + self.ui_newProject.setEnabled(False) + self.ui_openProject.setEnabled(False) else: self.window.pushButton_createVideo.setEnabled(True) self.window.pushButton_Cancel.setEnabled(False) @@ -391,8 +393,9 @@ class MainWindow(QtCore.QObject): self.window.pushButton_removeComponent.setEnabled(True) self.window.pushButton_listMoveDown.setEnabled(True) self.window.pushButton_listMoveUp.setEnabled(True) - self.window.pushButton_presets.setEnabled(True) self.window.listWidget_componentList.setEnabled(True) + self.ui_newProject.setEnabled(True) + self.ui_openProject.setEnabled(True) def progressBarUpdated(self, value): self.window.progressBar_createVideo.setValue(value) @@ -604,5 +607,10 @@ class MainWindow(QtCore.QObject): except KeyError: pass + menuItem = self.menu.addAction("Clear Preset") + menuItem.triggered.connect( + self.presetManager.clearPreset + ) + self.menu.move(parentPosition + QPos) self.menu.show() diff --git a/presetmanager.py b/presetmanager.py index 2083483..49a6336 100644 --- a/presetmanager.py +++ b/presetmanager.py @@ -12,6 +12,11 @@ class PresetManager(QtGui.QDialog): self.core = parent.core self.settings = parent.settings self.presetDir = self.core.presetDir + if not self.settings.value('presetDir'): + self.settings.setValue( + "presetDir", + os.path.join(self.core.dataDir, 'projects')) + self.findPresets() # window @@ -103,10 +108,16 @@ class PresetManager(QtGui.QDialog): for component in self.presets: self.window.comboBox_filter.addItem(component) + def clearPreset(self, compI=None): + '''Functions on mainwindow level from the context menu''' + compI = self.parent.window.listWidget_componentList.currentRow() + self.core.clearPreset(compI, self) + + def openSavePresetDialog(self): '''Functions on mainwindow level from the context menu''' window = self.parent.window - selectedComponents = self.parent.core.selectedComponents + selectedComponents = self.core.selectedComponents componentList = self.parent.window.listWidget_componentList if componentList.currentRow() == -1: @@ -242,9 +253,10 @@ class PresetManager(QtGui.QDialog): def openImportDialog(self): filename = QtGui.QFileDialog.getOpenFileName( self.window, "Import Preset File", - self.settings.value("projectDir"), + self.settings.value("presetDir"), "Preset Files (*.avl)") if filename: + # get installed path & ask user to overwrite if needed path = '' while True: if path: @@ -256,15 +268,17 @@ class PresetManager(QtGui.QDialog): success, path = self.core.importPreset(filename) if success: break + self.findPresets() self.drawPresetList() + self.settings.setValue("presetDir", os.path.dirname(filename)) def openExportDialog(self): if not self.window.listWidget_presets.selectedItems(): return filename = QtGui.QFileDialog.getSaveFileName( self.window, "Export Preset", - self.settings.value("projectDir"), + self.settings.value("presetDir"), "Preset Files (*.avl)") if filename: index = self.window.listWidget_presets.currentRow() @@ -274,3 +288,4 @@ class PresetManager(QtGui.QDialog): msg='Couldn\'t export %s.' % filename, parent=self.window ) + self.settings.setValue("presetDir", os.path.dirname(filename)) |
