fix: Wayland XCB force, AB-loop clamp, folder textChanged, drop validation

This commit is contained in:
2026-04-06 12:26:08 +02:00
parent 73abd5429a
commit 1fb69b10fb
+9 -1
View File
@@ -163,7 +163,8 @@ class MpvWidget(QFrame):
def play_loop(self, a: float, b: float): def play_loop(self, a: float, b: float):
if self._player: if self._player:
self._player["ab-loop-a"] = a self._player["ab-loop-a"] = a
self._player["ab-loop-b"] = b # Clamp b to duration so AB loop fires even on clips shorter than 8s.
self._player["ab-loop-b"] = min(b, self._player.duration or b)
self._player.pause = False self._player.pause = False
def stop_loop(self): def stop_loop(self):
@@ -186,6 +187,9 @@ class MpvWidget(QFrame):
def main(): def main():
# Force X11/XCB mode so mpv can embed via wid — Wayland uses a different
# surface handle that mpv's wid parameter cannot accept.
os.environ.setdefault("QT_QPA_PLATFORM", "xcb")
app = QApplication(sys.argv) app = QApplication(sys.argv)
app.setStyle("Fusion") app.setStyle("Fusion")
app.setStyleSheet(""" app.setStyleSheet("""
@@ -241,6 +245,7 @@ class MainWindow(QMainWindow):
self._txt_name.textChanged.connect(self._reset_counter) self._txt_name.textChanged.connect(self._reset_counter)
self._txt_folder = QLineEdit(str(Path.home())) self._txt_folder = QLineEdit(str(Path.home()))
self._txt_folder.textChanged.connect(self._reset_counter)
self._btn_folder = QPushButton("Browse") self._btn_folder = QPushButton("Browse")
self._btn_folder.clicked.connect(self._pick_folder) self._btn_folder.clicked.connect(self._pick_folder)
@@ -296,6 +301,9 @@ class MainWindow(QMainWindow):
self._load_file(path) self._load_file(path)
def _load_file(self, path: str): def _load_file(self, path: str):
if not os.path.isfile(path):
self.statusBar().showMessage(f"Not a file: {os.path.basename(path)}")
return
self._file_path = path self._file_path = path
self._lbl_file.setText(os.path.basename(path)) self._lbl_file.setText(os.path.basename(path))
self._mpv.load(path) self._mpv.load(path)