aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core.py17
-rw-r--r--mainwindow.py20
-rw-r--r--presetmanager.py21
3 files changed, 48 insertions, 10 deletions
diff --git a/core.py b/core.py
index 9276f4a..8eb7d16 100644
--- a/core.py
+++ b/core.py
@@ -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))