settings.ini now saved/loaded with projects
This commit is contained in:
parent
00f5c88584
commit
610db20606
43
main.py
43
main.py
|
@ -1,4 +1,4 @@
|
||||||
import sys, io, os, atexit, string, signal
|
import sys, io, os, shutil, atexit, string, signal
|
||||||
from os.path import expanduser
|
from os.path import expanduser
|
||||||
from queue import Queue
|
from queue import Queue
|
||||||
from importlib import import_module
|
from importlib import import_module
|
||||||
|
@ -119,22 +119,21 @@ class Main(QtCore.QObject):
|
||||||
# print('main thread id: {}'.format(QtCore.QThread.currentThreadId()))
|
# print('main thread id: {}'.format(QtCore.QThread.currentThreadId()))
|
||||||
self.window = window
|
self.window = window
|
||||||
self.core = core.Core()
|
self.core = core.Core()
|
||||||
self.settings = QSettings('settings.ini', QSettings.IniFormat)
|
|
||||||
LoadDefaultSettings(self)
|
|
||||||
self.currentProject = None
|
self.currentProject = None
|
||||||
|
self.pages = []
|
||||||
|
self.selectedComponents = []
|
||||||
|
|
||||||
# create data directory structure if needed
|
# create data directory structure if needed
|
||||||
self.dataDir = QDesktopServices.storageLocation(QDesktopServices.DataLocation)
|
self.dataDir = QDesktopServices.storageLocation(QDesktopServices.DataLocation)
|
||||||
if not os.path.exists(self.dataDir):
|
if not os.path.exists(self.dataDir):
|
||||||
os.makedirs(self.dataDir)
|
os.makedirs(self.dataDir)
|
||||||
for neededDirectory in ('projects', 'presets'):
|
for neededDirectory in ('projects', 'project-settings', 'presets'):
|
||||||
if not os.path.exists(os.path.join(self.dataDir, neededDirectory)):
|
if not os.path.exists(os.path.join(self.dataDir, neededDirectory)):
|
||||||
os.mkdir(os.path.join(self.dataDir, neededDirectory))
|
os.mkdir(os.path.join(self.dataDir, neededDirectory))
|
||||||
|
self.settings = QSettings(os.path.join(self.dataDir, 'settings.ini'), QSettings.IniFormat)
|
||||||
self.pages = []
|
LoadDefaultSettings(self)
|
||||||
|
|
||||||
self.previewQueue = Queue()
|
self.previewQueue = Queue()
|
||||||
|
|
||||||
self.previewThread = QtCore.QThread(self)
|
self.previewThread = QtCore.QThread(self)
|
||||||
self.previewWorker = preview_thread.Worker(self, self.previewQueue)
|
self.previewWorker = preview_thread.Worker(self, self.previewQueue)
|
||||||
self.previewWorker.moveToThread(self.previewThread)
|
self.previewWorker.moveToThread(self.previewThread)
|
||||||
|
@ -152,12 +151,11 @@ class Main(QtCore.QObject):
|
||||||
window.progressBar_createVideo.setValue(0)
|
window.progressBar_createVideo.setValue(0)
|
||||||
window.pushButton_createVideo.clicked.connect(self.createAudioVisualisation)
|
window.pushButton_createVideo.clicked.connect(self.createAudioVisualisation)
|
||||||
window.setWindowTitle("Audio Visualizer")
|
window.setWindowTitle("Audio Visualizer")
|
||||||
|
|
||||||
self.modules = self.findComponents()
|
self.modules = self.findComponents()
|
||||||
for component in self.modules:
|
for component in self.modules:
|
||||||
window.comboBox_componentSelection.addItem(component.Component.__doc__)
|
window.comboBox_componentSelection.addItem(component.Component.__doc__)
|
||||||
window.listWidget_componentList.clicked.connect(lambda _: self.changeComponentWidget())
|
window.listWidget_componentList.clicked.connect(lambda _: self.changeComponentWidget())
|
||||||
self.selectedComponents = []
|
|
||||||
|
|
||||||
self.window.pushButton_addComponent.clicked.connect( \
|
self.window.pushButton_addComponent.clicked.connect( \
|
||||||
lambda _: self.addComponent(self.window.comboBox_componentSelection.currentIndex())
|
lambda _: self.addComponent(self.window.comboBox_componentSelection.currentIndex())
|
||||||
|
@ -189,16 +187,11 @@ class Main(QtCore.QObject):
|
||||||
self.timer.stop()
|
self.timer.stop()
|
||||||
self.previewThread.quit()
|
self.previewThread.quit()
|
||||||
self.previewThread.wait()
|
self.previewThread.wait()
|
||||||
# TODO: replace remembered settings with presets/projects
|
backupPath = os.path.join(self.dataDir, 'settings.ini~')
|
||||||
'''
|
settingsPath = os.path.join(self.dataDir, 'settings.ini')
|
||||||
self.settings.setValue("titleFont", self.window.fontComboBox_titleFont.currentFont().toString())
|
if self.currentProject:
|
||||||
self.settings.setValue("alignment", str(self.window.comboBox_textAlign.currentIndex()))
|
os.remove(settingsPath)
|
||||||
self.settings.setValue("fontSize", str(self.window.spinBox_fontSize.value()))
|
os.rename(backupPath, settingsPath)
|
||||||
self.settings.setValue("xPosition", str(self.window.spinBox_xTextAlign.value()))
|
|
||||||
self.settings.setValue("yPosition", str(self.window.spinBox_yTextAlign.value()))
|
|
||||||
self.settings.setValue("visColor", self.window.lineEdit_visColor.text())
|
|
||||||
self.settings.setValue("textColor", self.window.lineEdit_textColor.text())
|
|
||||||
'''
|
|
||||||
|
|
||||||
def openInputFileDialog(self):
|
def openInputFileDialog(self):
|
||||||
inputDir = self.settings.value("inputDir", expanduser("~"))
|
inputDir = self.settings.value("inputDir", expanduser("~"))
|
||||||
|
@ -444,6 +437,8 @@ class Main(QtCore.QObject):
|
||||||
f.write('%s\n' % str(comp))
|
f.write('%s\n' % str(comp))
|
||||||
f.write('%s\n' % str(comp.version()))
|
f.write('%s\n' % str(comp.version()))
|
||||||
f.write('%s\n' % repr(saveValueStore))
|
f.write('%s\n' % repr(saveValueStore))
|
||||||
|
dir_ = os.path.join(self.dataDir, 'project-settings')
|
||||||
|
shutil.copyfile(self.settings.fileName(), os.path.join(dir_, os.path.basename('%s.ini' % filepath)))
|
||||||
|
|
||||||
def openOpenProjectDialog(self):
|
def openOpenProjectDialog(self):
|
||||||
inputDir = os.path.join(self.dataDir, 'projects')
|
inputDir = os.path.join(self.dataDir, 'projects')
|
||||||
|
@ -471,6 +466,15 @@ class Main(QtCore.QObject):
|
||||||
saveValueStore = eval(line.strip())
|
saveValueStore = eval(line.strip())
|
||||||
self.selectedComponents[-1].loadPreset(saveValueStore)
|
self.selectedComponents[-1].loadPreset(saveValueStore)
|
||||||
i = 0
|
i = 0
|
||||||
|
projSettingsPath = os.path.join(self.dataDir, 'project-settings', '%s.ini' % os.path.basename(filepath))
|
||||||
|
backupPath = os.path.join(self.dataDir, 'settings.ini~')
|
||||||
|
settingsPath = os.path.join(self.dataDir, 'settings.ini')
|
||||||
|
if os.path.exists(backupPath):
|
||||||
|
os.remove(backupPath)
|
||||||
|
os.rename(settingsPath, backupPath)
|
||||||
|
#os.remove(settingsPath)
|
||||||
|
shutil.copyfile(projSettingsPath, settingsPath)
|
||||||
|
self.settings.sync()
|
||||||
|
|
||||||
def showMessage(self, string, icon=QtGui.QMessageBox.Information, showCancel=False):
|
def showMessage(self, string, icon=QtGui.QMessageBox.Information, showCancel=False):
|
||||||
msg = QtGui.QMessageBox()
|
msg = QtGui.QMessageBox()
|
||||||
|
@ -510,7 +514,6 @@ def LoadDefaultSettings(self):
|
||||||
"outputVideoFormat": "yuv420p",
|
"outputVideoFormat": "yuv420p",
|
||||||
"outputPreset": "medium",
|
"outputPreset": "medium",
|
||||||
"outputFormat": "mp4",
|
"outputFormat": "mp4",
|
||||||
"visLayout": 0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for parm, value in default.items():
|
for parm, value in default.items():
|
||||||
|
|
Reference in New Issue