Audacity 3.2.0
ProjectCloudUIExtension.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: GPL-2.0-or-later */
2/*!********************************************************************
3
4 Audacity: A Digital Audio Editor
5
6 ProjectCloudUIExtension.h
7
8 Dmitry Vedenko
9
10**********************************************************************/
11#pragma once
12
13#include <atomic>
14
15#include "ClientData.h"
16#include "Observer.h"
17
18class AudacityProject;
19
20namespace BasicUI
21{
22class ProgressDialog;
23}
24
26{
27struct CloudStatusChangedMessage;
28
30{
31public:
34
37
38 bool AllowClosing();
39
40private:
41 void SetUploadProgress(double progress);
43
45
46 std::unique_ptr<BasicUI::ProgressDialog> mProgressDialog;
47
48 double mProgress { 0.0 };
49
50 std::atomic<bool> mInSync { false };
51 bool mClosingCancelled { false };
52
54};
55} // namespace audacity::cloud::audiocom::sync
Utility ClientData::Site to register hooks into a host class that attach client data.
const auto project
The top-level handle to an Audacity project. It serves as a source of events that other objects can b...
Definition: Project.h:90
A move-only handle representing a connection to a Publisher.
Definition: Observer.h:70
ProgressDialog Class.
static ProjectCloudUIExtension & Get(AudacityProject &project)
std::unique_ptr< BasicUI::ProgressDialog > mProgressDialog
void OnCloudStatusChanged(const CloudStatusChangedMessage &message)
A convenient default parameter for class template Site.
Definition: ClientData.h:29