aboutsummaryrefslogtreecommitdiff
path: root/components/color.py
diff options
context:
space:
mode:
authortassaron2017-06-03 20:39:32 -0400
committertassaron2017-06-03 20:39:32 -0400
commit825b7af6e30deaf85646ce93507d8cb5a0b426ae (patch)
treeafc27ab315d955ec0ff5185cbeaa6eb7fed8af2f /components/color.py
parentcf197904b82d6f5769f23c15d047d22a2bd46644 (diff)
start of background replacement components
Diffstat (limited to 'components/color.py')
-rw-r--r--components/color.py82
1 files changed, 82 insertions, 0 deletions
diff --git a/components/color.py b/components/color.py
new file mode 100644
index 0000000..d86470c
--- /dev/null
+++ b/components/color.py
@@ -0,0 +1,82 @@
+from PIL import Image, ImageDraw
+from PyQt4 import uic, QtGui, QtCore
+from PyQt4.QtGui import QColor
+import os
+from . import __base__
+
+class Component(__base__.Component):
+ '''Color'''
+ def widget(self, parent):
+ self.parent = parent
+ page = uic.loadUi(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'color.ui'))
+
+ self.color1 = (0,0,0)
+ self.color2 = (133,133,133)
+ self.x = 0
+ self.y = 0
+
+ page.lineEdit_color1.setText('%s,%s,%s' % self.color1)
+ page.lineEdit_color2.setText('%s,%s,%s' % self.color2)
+ page.pushButton_color1.clicked.connect(lambda: self.pickColor(1))
+ btnStyle = "QPushButton { background-color : %s; outline: none; }" % QColor(*self.color1).name()
+ page.pushButton_color1.setStyleSheet(btnStyle)
+ page.pushButton_color2.clicked.connect(lambda: self.pickColor(2))
+ btnStyle = "QPushButton { background-color : %s; outline: none; }" % QColor(*self.color2).name()
+ page.pushButton_color2.setStyleSheet(btnStyle)
+ # disable color #2 until non-default 'fill' option gets changed
+ page.lineEdit_color2.setDisabled(True)
+ page.pushButton_color2.setDisabled(True)
+ page.spinBox_x.setValue(self.x)
+ page.spinBox_x.setValue(self.y)
+
+ page.lineEdit_color1.textChanged.connect(self.update)
+ page.lineEdit_color2.textChanged.connect(self.update)
+ page.spinBox_x.valueChanged.connect(self.update)
+ page.spinBox_y.valueChanged.connect(self.update)
+ self.page = page
+ return page
+
+ def update(self):
+ 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()
+ self.y = self.page.spinBox_y.value()
+ self.parent.drawPreview()
+
+ def previewRender(self, previewWorker):
+ width = int(previewWorker.core.settings.value('outputWidth'))
+ height = int(previewWorker.core.settings.value('outputHeight'))
+ return self.drawFrame(width, height)
+
+ def frameRender(self, moduleNo, frameNo):
+ width = int(self.worker.core.settings.value('outputWidth'))
+ height = int(self.worker.core.settings.value('outputHeight'))
+ return self.drawFrame(width, height)
+
+ def drawFrame(self, width, height):
+ r,g,b = self.color1
+ return Image.new("RGBA", (width, height), (r, g, b, 255))
+
+ def loadPreset(self, presetDict):
+ # update widgets using a preset dict
+ pass
+
+ def savePreset(self):
+ return {}
+
+ def pickColor(self, num):
+ RGBstring, btnStyle = super().pickColor()
+ if not RGBstring:
+ return
+ if num == 1:
+ self.page.lineEdit_color1.setText(RGBstring)
+ self.page.pushButton_color1.setStyleSheet(btnStyle)
+ else:
+ self.page.lineEdit_color2.setText(RGBstring)
+ self.page.pushButton_color2.setStyleSheet(btnStyle)
+
+ def cancel(self):
+ self.canceled = True
+
+ def reset(self):
+ self.canceled = False