From 8efac1e7f187a4465f1f32021b347e8188126f34 Mon Sep 17 00:00:00 2001 From: Zach Fox Date: Thu, 18 May 2017 14:30:08 -0700 Subject: [PATCH] Prevent another GIF from being captured while one is processing --- interface/src/Application.cpp | 2 +- interface/src/ui/SnapshotAnimated.h | 1 + scripts/system/html/js/SnapshotReview.js | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 1d31a84ed4..c39f7294c0 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -6428,7 +6428,7 @@ void Application::takeSnapshot(bool notify, bool includeAnimated, float aspectRa if (!includeAnimated) { // Tell the dependency manager that the capture of the still snapshot has taken place. emit DependencyManager::get()->stillSnapshotTaken(path, notify); - } else { + } else if (!SnapshotAnimated::isAlreadyTakingSnapshotAnimated()) { // Get an animated GIF snapshot and save it SnapshotAnimated::saveSnapshotAnimated(path, aspectRatio, qApp, DependencyManager::get()); } diff --git a/interface/src/ui/SnapshotAnimated.h b/interface/src/ui/SnapshotAnimated.h index 1cf21edfb8..dd32e4893d 100644 --- a/interface/src/ui/SnapshotAnimated.h +++ b/interface/src/ui/SnapshotAnimated.h @@ -51,6 +51,7 @@ private: static void processFrames(); public: static void saveSnapshotAnimated(QString pathStill, float aspectRatio, Application* app, QSharedPointer dm); + static bool isAlreadyTakingSnapshotAnimated() { return snapshotAnimatedFirstFrameTimestamp != 0; }; static Setting::Handle alsoTakeAnimatedSnapshot; static Setting::Handle snapshotAnimatedDuration; }; diff --git a/scripts/system/html/js/SnapshotReview.js b/scripts/system/html/js/SnapshotReview.js index f962c7b624..d52ff3d4a6 100644 --- a/scripts/system/html/js/SnapshotReview.js +++ b/scripts/system/html/js/SnapshotReview.js @@ -44,6 +44,7 @@ function showSetupComplete() { '

Snapshot location set.

' + '

Press the big red button to take a snap!

' + ''; + document.getElementById("snap-button").disabled = false; } function showSnapshotInstructions() { var snapshotImagesDiv = document.getElementById("snapshot-images"); @@ -69,7 +70,6 @@ function login() { })); } function clearImages() { - document.getElementById("snap-button").disabled = false; var snapshotImagesDiv = document.getElementById("snapshot-images"); snapshotImagesDiv.classList.remove("snapshotInstructions"); while (snapshotImagesDiv.hasChildNodes()) { @@ -650,6 +650,7 @@ window.onload = function () { shareForUrl("p1"); appendShareBar("p1", messageOptions.isLoggedIn, messageOptions.canShare, true, false, false, messageOptions.canBlast); document.getElementById("p1").classList.remove("processingGif"); + document.getElementById("snap-button").disabled = false; } } else { imageCount = message.image_data.length; @@ -688,6 +689,9 @@ function takeSnapshot() { type: "snapshot", action: "takeSnapshot" })); + if (document.getElementById('stillAndGif').checked === true) { + document.getElementById("snap-button").disabled = true; + } } function testInBrowser(test) {