aboutsummaryrefslogtreecommitdiff
path: root/src/avp/gui
diff options
context:
space:
mode:
Diffstat (limited to 'src/avp/gui')
-rw-r--r--src/avp/gui/actions.py10
-rw-r--r--src/avp/gui/mainwindow.py46
-rw-r--r--src/avp/gui/presetmanager.py4
-rw-r--r--src/avp/gui/preview_thread.py16
4 files changed, 41 insertions, 35 deletions
diff --git a/src/avp/gui/actions.py b/src/avp/gui/actions.py
index 654b2a0..6a01bdd 100644
--- a/src/avp/gui/actions.py
+++ b/src/avp/gui/actions.py
@@ -1,5 +1,5 @@
"""
-QCommand classes for every undoable user action performed in the MainWindow
+QUndoCommand classes for every undoable user action performed in the MainWindow
"""
from PyQt6.QtGui import QUndoCommand
@@ -13,9 +13,9 @@ from ..core import Core
log = logging.getLogger("AVP.Gui.Actions")
-# =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~==~=~=~=~=~=~=~=~=~=~=~=~=~=~
+# =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
# COMPONENT ACTIONS
-# =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~==~=~=~=~=~=~=~=~=~=~=~=~=~=~
+# =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
class AddComponent(QUndoCommand):
@@ -107,9 +107,9 @@ class MoveComponent(QUndoCommand):
self.do(self.newRow, self.row)
-# =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~==~=~=~=~=~=~=~=~=~=~=~=~=~=~
+# =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
# PRESET ACTIONS
-# =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~==~=~=~=~=~=~=~=~=~=~=~=~=~=~
+# =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
class ClearPreset(QUndoCommand):
diff --git a/src/avp/gui/mainwindow.py b/src/avp/gui/mainwindow.py
index 3221783..fac1e41 100644
--- a/src/avp/gui/mainwindow.py
+++ b/src/avp/gui/mainwindow.py
@@ -25,7 +25,7 @@ from . import preview_thread
from .preview_win import PreviewWindow
from .presetmanager import PresetManager
from .actions import *
-from ..toolkit.ffmpeg import createFfmpegCommand
+from ..toolkit.ffmpeg import createFfmpegCommand, checkFfmpegVersion
from ..toolkit import (
disableWhenEncoding,
disableWhenOpeningProject,
@@ -330,26 +330,13 @@ class MainWindow(QtWidgets.QMainWindow):
)
else:
if not self.settings.value("ffmpegMsgShown"):
- try:
- with open(os.devnull, "w") as f:
- ffmpegVers = checkOutput(
- [self.core.FFMPEG_BIN, "-version"], stderr=f
- )
- ffmpegVers = str(ffmpegVers).split()[2].split(".", 1)[0]
- if ffmpegVers.startswith("n"):
- ffmpegVers = ffmpegVers[1:]
- goodVersion = int(ffmpegVers) > 3
- except Exception:
- goodVersion = False
- else:
- goodVersion = True
-
- if not goodVersion:
- self.showMessage(
- msg="You're using an old version of Ffmpeg. "
- "Some features may not work as expected."
- )
- self.settings.setValue("ffmpegMsgShown", True)
+ ffmpegGoodVersion, ffmpegVersionNum = checkFfmpegVersion()
+ if not ffmpegGoodVersion:
+ self.showMessage(
+ msg="The version of FFmpeg ({ffmpegVersionNum}) is "
+ "not recognized. Some features may not work as expected."
+ )
+ self.settings.setValue("ffmpegMsgShown", True)
# Hotkeys for projects
@@ -734,6 +721,23 @@ class MainWindow(QtWidgets.QMainWindow):
self.progressLabel.setText(value)
else:
self.progressBar_createVideo.setFormat(value)
+ if log.getEffectiveLevel() > logging.INFO:
+ # if ffmpeg is quiet, print progress ourselves
+ if any(
+ [
+ value.startswith("Export C"),
+ value.startswith("Analyzing"),
+ value.startswith("Loading"),
+ ]
+ ):
+ # Don't duplicate completion/failure messages or send too many messages
+ return
+ elif not value.startswith("Exporting"):
+ print(value)
+ else:
+ # overwrite previous message with next one
+ # if the text is our main export progress
+ print(f"\r{value}", end="")
def updateResolution(self):
resIndex = int(self.comboBox_resolution.currentIndex())
diff --git a/src/avp/gui/presetmanager.py b/src/avp/gui/presetmanager.py
index ca0029d..bdcff91 100644
--- a/src/avp/gui/presetmanager.py
+++ b/src/avp/gui/presetmanager.py
@@ -25,9 +25,7 @@ class PresetManager(QtWidgets.QDialog):
self.settings = parent.settings
self.presetDir = parent.presetDir
if not self.settings.value("presetDir"):
- self.settings.setValue(
- "presetDir", os.path.join(parent.dataDir, "projects")
- )
+ self.settings.setValue("presetDir", os.path.join(parent.dataDir, "presets"))
self.findPresets()
diff --git a/src/avp/gui/preview_thread.py b/src/avp/gui/preview_thread.py
index a59652a..8507f45 100644
--- a/src/avp/gui/preview_thread.py
+++ b/src/avp/gui/preview_thread.py
@@ -61,7 +61,10 @@ class Worker(QtCore.QObject):
for component in reversed(components):
try:
component.lockSize(width, height)
- newFrame = component.previewRender()
+ if "composite" in component.properties():
+ newFrame = component.previewRender(frame)
+ else:
+ newFrame = component.previewRender()
component.unlockSize()
frame = Image.alpha_composite(frame, newFrame)
@@ -72,11 +75,12 @@ class Worker(QtCore.QObject):
% (
str(component),
str(e).capitalize(),
- "is None" if newFrame is None else "size was %s*%s; should be %s*%s" % (
- newFrame.width,
- newFrame.height,
- width,
- height),
+ (
+ "is None"
+ if newFrame is None
+ else "size was %s*%s; should be %s*%s"
+ % (newFrame.width, newFrame.height, width, height)
+ ),
)
)
log.critical(errMsg)