aboutsummaryrefslogtreecommitdiff
path: root/components
diff options
context:
space:
mode:
authortassaron2017-06-12 22:34:37 -0400
committertassaron2017-06-12 22:34:37 -0400
commit307d499f9ae2729c790fe9258d88aca72331cdf6 (patch)
tree105dedf7aa84c1841d8a87f304f43d7a616fa32a /components
parentdbbefbf70ec9fad1735ee7199992ca6123bd54be (diff)
adding an asterisk to modified, unsaved presets
flags for unsaved changes saved in project files
Diffstat (limited to 'components')
-rw-r--r--components/__base__.py38
-rw-r--r--components/color.py7
-rw-r--r--components/image.py6
-rw-r--r--components/original.py10
-rw-r--r--components/text.py11
-rw-r--r--components/video.py6
6 files changed, 57 insertions, 21 deletions
diff --git a/components/__base__.py b/components/__base__.py
index 3ccb5dc..b32c120 100644
--- a/components/__base__.py
+++ b/components/__base__.py
@@ -1,9 +1,15 @@
-from PyQt4 import QtGui
+from PyQt4 import QtGui, QtCore
+class Component(QtCore.QObject):
+ '''A base class for components to inherit from'''
-class Component:
- def __init__(self):
+ # modified = QtCore.pyqtSignal(int, bool)
+
+ def __init__(self, moduleIndex, compPos):
+ super().__init__()
self.currentPreset = None
+ self.moduleIndex = moduleIndex
+ self.compPos = compPos
def __str__(self):
return self.__doc__
@@ -13,12 +19,27 @@ class Component:
return 1
def cancel(self):
- # make sure your component responds to these variables in frameRender()
+ # please stop any lengthy process in response to this variable
self.canceled = True
def reset(self):
self.canceled = False
+ def update(self):
+ self.modified.emit(self.compPos, True)
+ # use super().update() then read your widget values here
+
+ def loadPreset(self, presetDict, presetName):
+ '''Children should take (presetDict, presetName=None) as args'''
+
+ # Use super().loadPreset(presetDict, presetName)
+ # Then update your widgets using the preset dict
+ self.currentPreset = presetName \
+ if presetName != None else presetDict['preset']
+
+ def savePreset(self):
+ return {}
+
def preFrameRender(self, **kwargs):
for var, value in kwargs.items():
exec('self.%s = value' % var)
@@ -62,7 +83,7 @@ class Component:
return page
def update(self):
- # read widget values
+ super().update()
self.parent.drawPreview()
def previewRender(self, previewWorker):
@@ -77,13 +98,6 @@ class Component:
image = Image.new("RGBA", (width, height), (0,0,0,0))
return image
- def loadPreset(self, presetDict, presetName=None):
- self.currentPreset = presetName
- # update widgets using a preset dict
-
- def savePreset(self):
- return {}
-
def cancel(self):
self.canceled = True
diff --git a/components/color.py b/components/color.py
index 11c1b19..b6105c8 100644
--- a/components/color.py
+++ b/components/color.py
@@ -7,6 +7,9 @@ from . import __base__
class Component(__base__.Component):
'''Color'''
+
+ modified = QtCore.pyqtSignal(int, bool)
+
def widget(self, parent):
self.parent = parent
page = uic.loadUi(os.path.join(
@@ -45,6 +48,7 @@ class Component(__base__.Component):
return page
def update(self):
+ super().update()
self.color1 = self.RGBFromString(self.page.lineEdit_color1.text())
self.color2 = self.RGBFromString(self.page.lineEdit_color2.text())
self.x = self.page.spinBox_x.value()
@@ -70,7 +74,8 @@ class Component(__base__.Component):
return Image.new("RGBA", (width, height), (r, g, b, 255))
def loadPreset(self, pr, presetName=None):
- self.currentPreset = presetName if presetName else pr['preset']
+ super().loadPreset(pr, presetName)
+
self.page.lineEdit_color1.setText('%s,%s,%s' % pr['color1'])
self.page.lineEdit_color2.setText('%s,%s,%s' % pr['color2'])
diff --git a/components/image.py b/components/image.py
index 441e0e1..ed5f243 100644
--- a/components/image.py
+++ b/components/image.py
@@ -6,6 +6,9 @@ from . import __base__
class Component(__base__.Component):
'''Image'''
+
+ modified = QtCore.pyqtSignal(int, bool)
+
def widget(self, parent):
self.parent = parent
self.settings = parent.settings
@@ -22,6 +25,7 @@ class Component(__base__.Component):
return page
def update(self):
+ super().update()
self.imagePath = self.page.lineEdit_image.text()
self.parent.drawPreview()
@@ -49,7 +53,7 @@ class Component(__base__.Component):
return frame
def loadPreset(self, pr, presetName=None):
- self.currentPreset = presetName if presetName else pr['preset']
+ super().loadPreset(pr, presetName)
self.page.lineEdit_image.setText(pr['image'])
def savePreset(self):
diff --git a/components/original.py b/components/original.py
index 7873f43..f3f578d 100644
--- a/components/original.py
+++ b/components/original.py
@@ -1,9 +1,8 @@
import numpy
from PIL import Image, ImageDraw
-from PyQt4 import uic, QtGui
+from PyQt4 import uic, QtGui, QtCore
from PyQt4.QtGui import QColor
import os
-import random
from . import __base__
import time
from copy import copy
@@ -11,6 +10,9 @@ from copy import copy
class Component(__base__.Component):
'''Original Audio Visualization'''
+
+ modified = QtCore.pyqtSignal(int, bool)
+
def widget(self, parent):
self.parent = parent
self.visColor = (255, 255, 255)
@@ -33,12 +35,14 @@ class Component(__base__.Component):
return page
def update(self):
+ super().update()
self.layout = self.page.comboBox_visLayout.currentIndex()
self.visColor = self.RGBFromString(self.page.lineEdit_visColor.text())
self.parent.drawPreview()
def loadPreset(self, pr, presetName=None):
- self.currentPreset = presetName if presetName else pr['preset']
+ super().loadPreset(pr, presetName)
+
self.page.lineEdit_visColor.setText('%s,%s,%s' % pr['visColor'])
btnStyle = "QPushButton { background-color : %s; outline: none; }" \
% QColor(*pr['visColor']).name()
diff --git a/components/text.py b/components/text.py
index e8fb3d5..a40e2a9 100644
--- a/components/text.py
+++ b/components/text.py
@@ -9,8 +9,11 @@ from . import __base__
class Component(__base__.Component):
'''Title Text'''
- def __init__(self):
- super().__init__()
+
+ modified = QtCore.pyqtSignal(int, bool)
+
+ def __init__(self, *args):
+ super().__init__(*args)
self.titleFont = QFont()
def widget(self, parent):
@@ -53,6 +56,7 @@ class Component(__base__.Component):
return page
def update(self):
+ super().update()
self.title = self.page.lineEdit_title.text()
self.alignment = self.page.comboBox_textAlign.currentIndex()
self.titleFont = self.page.fontComboBox_titleFont.currentFont()
@@ -79,7 +83,8 @@ class Component(__base__.Component):
return x, self.yPosition
def loadPreset(self, pr, presetName=None):
- self.currentPreset = presetName if presetName else pr['preset']
+ super().loadPreset(pr, presetName)
+
self.page.lineEdit_title.setText(pr['title'])
font = QFont()
font.fromString(pr['titleFont'])
diff --git a/components/video.py b/components/video.py
index bd1bf96..ff06329 100644
--- a/components/video.py
+++ b/components/video.py
@@ -86,6 +86,9 @@ class Video:
class Component(__base__.Component):
'''Video'''
+
+ modified = QtCore.pyqtSignal(int, bool)
+
def widget(self, parent):
self.parent = parent
self.settings = parent.settings
@@ -106,6 +109,7 @@ class Component(__base__.Component):
return page
def update(self):
+ super().update()
self.videoPath = self.page.lineEdit_video.text()
self.loopVideo = self.page.checkBox_loop.isChecked()
self.parent.drawPreview()
@@ -136,7 +140,7 @@ class Component(__base__.Component):
return self.video.frame(frameNo)
def loadPreset(self, pr, presetName=None):
- self.currentPreset = presetName if presetName else pr['preset']
+ super().loadPreset(pr, presetName)
self.page.lineEdit_video.setText(pr['video'])
self.page.checkBox_loop.setChecked(pr['loop'])