From c0920da4ffa0a78bac3eec7fdadba3a4183a8fed Mon Sep 17 00:00:00 2001 From: tassaron Date: Sun, 28 May 2017 21:24:51 -0400 Subject: [PATCH] savePreset creates a file --- components/original.py | 3 +++ components/text.py | 3 +++ main.py | 32 ++++++++++++++++++++++++++------ 3 files changed, 32 insertions(+), 6 deletions(-) diff --git a/components/original.py b/components/original.py index e901c21..5655867 100644 --- a/components/original.py +++ b/components/original.py @@ -34,6 +34,9 @@ class Component: self.visColor = RGBFromString(self.page.lineEdit_visColor.text()) self.parent.drawPreview() + def savePreset(self): + return {} + def previewRender(self, previewWorker): spectrum = numpy.fromfunction(lambda x: 0.008*(x-128)**2, (255,), dtype="int16") width = int(previewWorker.core.settings.value('outputWidth')) diff --git a/components/text.py b/components/text.py index eab33b2..e900994 100644 --- a/components/text.py +++ b/components/text.py @@ -73,6 +73,9 @@ class Component: self.parent.drawPreview() + def savePreset(self): + return {} + def previewRender(self, previewWorker): width = int(previewWorker.core.settings.value('outputWidth')) height = int(previewWorker.core.settings.value('outputHeight')) diff --git a/main.py b/main.py index d4c12d8..fe76e2c 100644 --- a/main.py +++ b/main.py @@ -125,12 +125,12 @@ class Main(QtCore.QObject): LoadDefaultSettings(self) # create data directory structure if needed - dataDir = QDesktopServices.storageLocation(QDesktopServices.DataLocation) - if not os.path.exists(dataDir): - os.makedirs(dataDir) + self.dataDir = QDesktopServices.storageLocation(QDesktopServices.DataLocation) + if not os.path.exists(self.dataDir): + os.makedirs(self.dataDir) for neededDirectory in ('projects', 'presets'): - if not os.path.exists(os.path.join(dataDir, neededDirectory)): - os.mkdir(os.path.join(dataDir, neededDirectory)) + if not os.path.exists(os.path.join(self.dataDir, neededDirectory)): + os.mkdir(os.path.join(self.dataDir, neededDirectory)) self.pages = [] @@ -352,7 +352,27 @@ class Main(QtCore.QObject): self.window.stackedWidget.setCurrentIndex(row + 1) def openSavePresetDialog(self): - pass + if self.window.listWidget_componentList.currentRow() == -1: + return + newName, OK = QtGui.QInputDialog.getText(QtGui.QWidget(), 'Audio Visualizer', 'New Preset Name:') + if OK and newName: + index = self.window.listWidget_componentList.currentRow() + if index != -1: + saveValueStore = self.selectedComponents[index].savePreset() + componentName = str(self.selectedComponents[index]).strip() + if hasattr(self.selectedComponents[index], 'version'): + vers = self.selectedComponents[index].version() + else: + vers = 1 + self.createPresetFile(componentName, vers, saveValueStore, newName) + + def createPresetFile(self, componentName, version, saveValueStore, filename): + dirname = os.path.join(self.dataDir, 'presets', componentName, str(version)) + if not os.path.exists(dirname): + os.makedirs(dirname) + with open(os.path.join(dirname, filename), 'w') as f: + for itemset in saveValueStore.items(): + f.write('%s=%s' % itemset) def openPreset(self, comboBoxIndex): pass