From 825b7af6e30deaf85646ce93507d8cb5a0b426ae Mon Sep 17 00:00:00 2001
From: tassaron
Date: Sat, 3 Jun 2017 20:39:32 -0400
Subject: start of background replacement components
---
components/__base__.py | 6 +
components/color.py | 82 +++++++++++++
components/color.ui | 306 +++++++++++++++++++++++++++++++++++++++++++++++++
components/image.py | 42 +++++++
components/image.ui | 200 ++++++++++++++++++++++++++++++++
components/text.py | 3 -
components/video.py | 42 +++++++
components/video.ui | 227 ++++++++++++++++++++++++++++++++++++
8 files changed, 905 insertions(+), 3 deletions(-)
create mode 100644 components/color.py
create mode 100644 components/color.ui
create mode 100644 components/image.py
create mode 100644 components/image.ui
create mode 100644 components/video.py
create mode 100644 components/video.ui
(limited to 'components')
diff --git a/components/__base__.py b/components/__base__.py
index 45512ce..45c148d 100644
--- a/components/__base__.py
+++ b/components/__base__.py
@@ -66,4 +66,10 @@ class Component:
def savePreset(self):
return {}
+
+ def cancel(self):
+ self.canceled = True
+
+ def reset(self):
+ self.canceled = False
'''
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
diff --git a/components/color.ui b/components/color.ui
new file mode 100644
index 0000000..fd427e6
--- /dev/null
+++ b/components/color.ui
@@ -0,0 +1,306 @@
+
+
+ Form
+
+
+
+ 0
+ 0
+ 586
+ 197
+
+
+
+ Form
+
+
+ -
+
+
+ 4
+
+
-
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+
+ 31
+ 0
+
+
+
+ Color #1
+
+
+
+ -
+
+
+
+ 32
+ 32
+
+
+
+
+
+
+
+ 32
+ 32
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 1
+ 0
+
+
+
+ 12
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Fixed
+
+
+
+ 5
+ 20
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 31
+ 0
+
+
+
+ Color #2
+
+
+
+ -
+
+
+
+ 32
+ 32
+
+
+
+
+
+
+
+ 32
+ 32
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 1
+ 0
+
+
+
+ 12
+
+
+
+
+
+ -
+
+
+ 0
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Fill
+
+
+
+ -
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Fixed
+
+
+
+ 5
+ 20
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ X
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 80
+ 16777215
+
+
+
+
+ 0
+ 0
+
+
+
+ 0
+
+
+ 999999999
+
+
+ 0
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Fixed
+
+
+
+ 5
+ 20
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ Y
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 80
+ 16777215
+
+
+
+ 999999999
+
+
+
+
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 40
+
+
+
+
+
+
+
+
+
diff --git a/components/image.py b/components/image.py
new file mode 100644
index 0000000..3176d7c
--- /dev/null
+++ b/components/image.py
@@ -0,0 +1,42 @@
+from PIL import Image, ImageDraw
+from PyQt4 import uic, QtGui, QtCore
+import os
+from . import __base__
+
+class Component(__base__.Component):
+ '''Image'''
+ def widget(self, parent):
+ self.parent = parent
+ page = uic.loadUi(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'image.ui'))
+ self.page = page
+ return page
+
+ def update(self):
+ # read widget values
+ 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):
+ return Image.new("RGBA", (width, height), (0,0,0,255))
+
+ def loadPreset(self, presetDict):
+ # update widgets using a preset dict
+ pass
+
+ def savePreset(self):
+ return {}
+
+ def cancel(self):
+ self.canceled = True
+
+ def reset(self):
+ self.canceled = False
diff --git a/components/image.ui b/components/image.ui
new file mode 100644
index 0000000..6a24370
--- /dev/null
+++ b/components/image.ui
@@ -0,0 +1,200 @@
+
+
+ Form
+
+
+
+ 0
+ 0
+ 586
+ 197
+
+
+
+ Form
+
+
+ -
+
+
+ 4
+
+
-
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+
+ 31
+ 0
+
+
+
+ Image
+
+
+
+ -
+
+
+
+ 1
+ 0
+
+
+
+ 12
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 1
+ 0
+
+
+
+
+ 32
+ 32
+
+
+
+ ...
+
+
+
+ 32
+ 32
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Fixed
+
+
+
+ 5
+ 20
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ X
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 80
+ 16777215
+
+
+
+ 999999999
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ Y
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 80
+ 16777215
+
+
+
+
+ 0
+ 0
+
+
+
+ 0
+
+
+ 999999999
+
+
+ 0
+
+
+
+
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 40
+
+
+
+
+
+
+
+
+
diff --git a/components/text.py b/components/text.py
index 7efde39..d2e009d 100644
--- a/components/text.py
+++ b/components/text.py
@@ -18,7 +18,6 @@ class Component(__base__.Component):
self.parent = parent
self.textColor = (255,255,255)
self.title = 'Text'
- self.titleFont = None
self.alignment = 1
self.fontSize = height / 13.5
self.xPosition = width / 2
@@ -35,8 +34,6 @@ class Component(__base__.Component):
page.pushButton_textColor.setStyleSheet(btnStyle)
page.lineEdit_title.setText(self.title)
- #if self.titleFont:
- # page.fontComboBox_titleFont.setCurrentFont(QFont(self.titleFont))
page.comboBox_textAlign.setCurrentIndex(int(self.alignment))
page.spinBox_fontSize.setValue(int(self.fontSize))
page.spinBox_xTextAlign.setValue(int(self.xPosition))
diff --git a/components/video.py b/components/video.py
new file mode 100644
index 0000000..1365f34
--- /dev/null
+++ b/components/video.py
@@ -0,0 +1,42 @@
+from PIL import Image, ImageDraw
+from PyQt4 import uic, QtGui, QtCore
+import os
+from . import __base__
+
+class Component(__base__.Component):
+ '''Video'''
+ def widget(self, parent):
+ self.parent = parent
+ page = uic.loadUi(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'video.ui'))
+ self.page = page
+ return page
+
+ def update(self):
+ # read widget values
+ 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):
+ return Image.new("RGBA", (width, height), (0,0,0,255))
+
+ def loadPreset(self, presetDict):
+ # update widgets using a preset dict
+ pass
+
+ def savePreset(self):
+ return {}
+
+ def cancel(self):
+ self.canceled = True
+
+ def reset(self):
+ self.canceled = False
diff --git a/components/video.ui b/components/video.ui
new file mode 100644
index 0000000..73697f3
--- /dev/null
+++ b/components/video.ui
@@ -0,0 +1,227 @@
+
+
+ Form
+
+
+
+ 0
+ 0
+ 586
+ 197
+
+
+
+ Form
+
+
+ -
+
+
+ 4
+
+
-
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+
+ 31
+ 0
+
+
+
+ Video
+
+
+
+ -
+
+
+
+ 1
+ 0
+
+
+
+ 12
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 1
+ 0
+
+
+
+
+ 32
+ 32
+
+
+
+ ...
+
+
+
+ 32
+ 32
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Fixed
+
+
+
+ 5
+ 20
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ X
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 80
+ 16777215
+
+
+
+ 999999999
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ Y
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 80
+ 16777215
+
+
+
+
+ 0
+ 0
+
+
+
+ 0
+
+
+ 999999999
+
+
+ 0
+
+
+
+
+
+
+
+ -
+
+
-
+
+
+ Loop
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Fixed
+
+
+
+ 5
+ 20
+
+
+
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 40
+
+
+
+
+
+
+
+
+
--
cgit v1.2.3