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