Bug 59498

Summary: Сигнал recordingSaved может отправляться до создания временного файла
Product: Sisyphus Reporter: Vladislav Glinkin <glinkinvd>
Component: spectacleAssignee: Sergey V Turchin <zerg>
Status: NEW --- QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: zerg
Version: unstable   
Hardware: x86_64   
OS: Linux   

Description Vladislav Glinkin 2026-06-10 17:34:35 MSK
Версия пакета: spectacle-6.6.5-alt2

Если очень быстро записать, сохранить, а потом снова записать и сохранить видео - может возникнуть ситуация, когда сигнал `recordingSaved` отправляется раньше, чем создаётся временный файл.

Предположительные решения:
1) Добавление задержки перед вызовом exportVideo
```
--- a/spectacle/src/SpectacleCore.cpp  
+++ b/spectacle/src/SpectacleCore.cpp  
@@ -414,7 +414,9 @@ SpectacleCore::SpectacleCore(QObject *parent)  
    });  
    connect(videoPlatform, &VideoPlatform::recordingSaved, this, [this](const QUrl &fileUrl) {  
        // Always try to save. Needed to move recordings out of temp dir.  
-        ExportManager::instance()->exportVideo(autoExportActions() | ExportManager::Save, fileUrl, videoOutputUrl());  
+        QTimer::singleShot(100, this, [this, fileUrl]() {  
+            ExportManager::instance()->exportVideo(autoExportActions() | ExportManager::Save, fileUrl, videoOutputUrl());  
+        });  
    });  
    connect(videoPlatform, &VideoPlatform::recordingCanceled, this, [this] {  
        if (m_startMode != StartMode::Gui || !m_returnToViewer || isGuiNull()) {
```
2) Где-то в исходном коде отслеживать состояние файла, перед отправкой сигнала `recordingSaved` - https://git.altlinux.org/gears/s/spectacle.git?p=spectacle.git;a=blob;f=spectacle/src/Platforms/VideoPlatformWayland.cpp;hb=42b71504528f324b539b8d3c3bceef3103f4dc1e#l311
Comment 1 Vladislav Glinkin 2026-06-10 17:40:55 MSK
(Ответ для Vladislav Glinkin на комментарий #0)
> Если очень быстро записать, сохранить, а потом снова записать и сохранить
> видео - может возникнуть ситуация, когда сигнал `recordingSaved`
> отправляется раньше, чем создаётся временный файл.

Для пользователя проявляется как сообщение об ошибке:
"Не удалось экспортировать видео: адресом временного файла должен быть существующий временный файл"