diff options
| -rw-r--r-- | src/components/image.py | 9 | ||||
| -rw-r--r-- | src/components/image.ui | 51 | ||||
| -rw-r--r-- | src/toolkit.py | 6 |
3 files changed, 63 insertions, 3 deletions
diff --git a/src/components/image.py b/src/components/image.py index 1aae51b..4ccfc80 100644 --- a/src/components/image.py +++ b/src/components/image.py @@ -15,13 +15,11 @@ class Component(Component): self.parent = parent self.settings = parent.settings page = self.loadUi('image.ui') - self.imagePath = '' - self.x = 0 - self.y = 0 page.lineEdit_image.textChanged.connect(self.update) page.pushButton_image.clicked.connect(self.pickImage) page.spinBox_scale.valueChanged.connect(self.update) + page.spinBox_rotate.valueChanged.connect(self.update) page.checkBox_stretch.stateChanged.connect(self.update) page.spinBox_x.valueChanged.connect(self.update) page.spinBox_y.valueChanged.connect(self.update) @@ -32,6 +30,7 @@ class Component(Component): def update(self): self.imagePath = self.page.lineEdit_image.text() self.scale = self.page.spinBox_scale.value() + self.rotate = self.page.spinBox_rotate.value() self.xPosition = self.page.spinBox_x.value() self.yPosition = self.page.spinBox_y.value() self.stretched = self.page.checkBox_stretch.isChecked() @@ -64,12 +63,15 @@ class Component(Component): newWidth = int((image.width / 100) * self.scale) image = image.resize((newWidth, newHeight), Image.ANTIALIAS) frame.paste(image, box=(self.xPosition, self.yPosition)) + if self.rotate != 0: + frame = frame.rotate(self.rotate) return frame def loadPreset(self, pr, presetName=None): super().loadPreset(pr, presetName) self.page.lineEdit_image.setText(pr['image']) self.page.spinBox_scale.setValue(pr['scale']) + self.page.spinBox_rotate.setValue(pr['rotate']) self.page.spinBox_x.setValue(pr['x']) self.page.spinBox_y.setValue(pr['y']) self.page.checkBox_stretch.setChecked(pr['stretched']) @@ -79,6 +81,7 @@ class Component(Component): 'preset': self.currentPreset, 'image': self.imagePath, 'scale': self.scale, + 'rotate': self.rotate, 'stretched': self.stretched, 'x': self.xPosition, 'y': self.yPosition, diff --git a/src/components/image.ui b/src/components/image.ui index 6df03a5..33488f8 100644 --- a/src/components/image.ui +++ b/src/components/image.ui @@ -209,7 +209,58 @@ </spacer> </item> <item> + <widget class="QLabel" name="label_2"> + <property name="text"> + <string>Rotation</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QSpinBox" name="spinBox_rotate"> + <property name="buttonSymbols"> + <enum>QAbstractSpinBox::UpDownArrows</enum> + </property> + <property name="suffix"> + <string notr="true">°</string> + </property> + <property name="minimum"> + <number>0</number> + </property> + <property name="maximum"> + <number>359</number> + </property> + <property name="value"> + <number>0</number> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Fixed</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>10</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> <widget class="QLabel" name="label"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> <property name="text"> <string>Scale</string> </property> diff --git a/src/toolkit.py b/src/toolkit.py index 798a5b5..589d8e6 100644 --- a/src/toolkit.py +++ b/src/toolkit.py @@ -55,6 +55,9 @@ def openPipe(commandList, **kwargs): def disableWhenEncoding(func): + ''' Blocks calls to a function while the video is being exported + in MainWindow. + ''' def decorator(*args, **kwargs): if args[0].encoding: return @@ -64,6 +67,9 @@ def disableWhenEncoding(func): def LoadDefaultSettings(self): + ''' Runs once at each program start-up. Fills in default settings + for any settings not found in settings.ini + ''' self.resolutions = [ '1920x1080', '1280x720', |
