diff --git a/src/AutoRecovery.cpp b/src/AutoRecovery.cpp index 5ec2f08f7..1da13d7cb 100644 --- a/src/AutoRecovery.cpp +++ b/src/AutoRecovery.cpp @@ -26,6 +26,7 @@ text or binary format to a file. #include "Sequence.h" #include "ShuttleGui.h" +#include #include #include #include diff --git a/src/Dependencies.cpp b/src/Dependencies.cpp index ada464421..f05177555 100644 --- a/src/Dependencies.cpp +++ b/src/Dependencies.cpp @@ -59,6 +59,7 @@ AliasedFile s. #include "WaveTrack.h" #include "WaveClip.h" #include "widgets/ErrorDialog.h" +#include "widgets/ProgressDialog.h" #include diff --git a/src/FFmpeg.h b/src/FFmpeg.h index b1c4fabf9..56611cffc 100644 --- a/src/FFmpeg.h +++ b/src/FFmpeg.h @@ -22,6 +22,8 @@ Describes shared object that is used to access FFmpeg libraries. #include "Internat.h" +#include "widgets/wxPanelWrapper.h" // to inherit + #if defined(__WXMSW__) #include // for wxRegKey #endif diff --git a/src/Mix.cpp b/src/Mix.cpp index f02a918ab..0519fdce6 100644 --- a/src/Mix.cpp +++ b/src/Mix.cpp @@ -40,6 +40,8 @@ #include "TimeTrack.h" #include "float_cast.h" +#include "widgets/ProgressDialog.h" + //TODO-MB: wouldn't it make more sense to DELETE the time track after 'mix and render'? void MixAndRender(TrackList *tracks, TrackFactory *trackFactory, double rate, sampleFormat format, diff --git a/src/TimerRecordDialog.cpp b/src/TimerRecordDialog.cpp index 67915bbda..2fe6d89ce 100644 --- a/src/TimerRecordDialog.cpp +++ b/src/TimerRecordDialog.cpp @@ -51,6 +51,7 @@ #include "widgets/NumericTextCtrl.h" #include "widgets/HelpSystem.h" #include "widgets/ErrorDialog.h" +#include "widgets/ProgressDialog.h" #include "commands/CommandContext.h" #if wxUSE_ACCESSIBILITY diff --git a/src/WaveClip.cpp b/src/WaveClip.cpp index 4c73c61ce..192423541 100644 --- a/src/WaveClip.cpp +++ b/src/WaveClip.cpp @@ -42,6 +42,7 @@ #include "UserException.h" #include "prefs/SpectrogramSettings.h" +#include "widgets/ProgressDialog.h" #ifdef _OPENMP #include diff --git a/src/WaveClip.h b/src/WaveClip.h index 1329c1182..1bdc414c4 100644 --- a/src/WaveClip.h +++ b/src/WaveClip.h @@ -16,7 +16,6 @@ #include "MemoryX.h" #include "SampleFormat.h" -#include "widgets/ProgressDialog.h" #include "ondemand/ODTaskThread.h" #include "xml/XMLTagHandler.h" @@ -29,6 +28,7 @@ class BlockArray; class DirManager; class Envelope; +class ProgressDialog; class Sequence; class SpectrogramSettings; class WaveCache; diff --git a/src/WaveTrack.h b/src/WaveTrack.h index 88b9492b8..def340ebe 100644 --- a/src/WaveTrack.h +++ b/src/WaveTrack.h @@ -13,13 +13,14 @@ #include "Track.h" #include "SampleFormat.h" -#include "widgets/ProgressDialog.h" #include #include #include "WaveTrackLocation.h" +class ProgressDialog; + class SpectrogramSettings; class WaveformSettings; class TimeWarper; diff --git a/src/commands/AudacityCommand.h b/src/commands/AudacityCommand.h index fccebb127..0a7f27dac 100644 --- a/src/commands/AudacityCommand.h +++ b/src/commands/AudacityCommand.h @@ -24,7 +24,6 @@ class wxWindow; #include "../SampleFormat.h" #include "../SelectedRegion.h" #include "../Internat.h" -#include "../widgets/ProgressDialog.h" #include "../include/audacity/ComponentInterface.h" #include "../include/audacity/EffectAutomationParameters.h" // for command automation diff --git a/src/commands/CommandTargets.h b/src/commands/CommandTargets.h index a21a15f7c..a4ea97f04 100644 --- a/src/commands/CommandTargets.h +++ b/src/commands/CommandTargets.h @@ -58,7 +58,6 @@ and sends it to that message target. #include "../MemoryX.h" #include //#include "../src/Project.h" -#include "../widgets/ProgressDialog.h" #include "../commands/ResponseQueue.h" class wxStatusBar; @@ -155,6 +154,10 @@ public: void Update(double WXUNUSED(completed)) override {} }; +#if 0 + +#include "../widgets/ProgressDialog.h" // Member variable + /// Sends command progress information to a ProgressDialog class GUIProgressTarget final : public CommandProgressTarget { @@ -170,6 +173,7 @@ public: mProgress.Update(completed); } }; +#endif /// diff --git a/src/effects/Effect.h b/src/effects/Effect.h index b1c493116..1f5382792 100644 --- a/src/effects/Effect.h +++ b/src/effects/Effect.h @@ -34,10 +34,11 @@ class wxWindow; #include "../SampleFormat.h" #include "../SelectedRegion.h" #include "../Internat.h" -#include "../widgets/ProgressDialog.h" #include "../Track.h" +#include "../widgets/wxPanelWrapper.h" // to inherit + class wxArrayString; class ShuttleGui; class AudacityCommand; @@ -46,6 +47,7 @@ class AudacityCommand; class AudacityProject; class LabelTrack; +class ProgressDialog; class SelectedRegion; class EffectUIHost; class Track; diff --git a/src/effects/Normalize.cpp b/src/effects/Normalize.cpp index 2688b7c58..b28c72125 100644 --- a/src/effects/Normalize.cpp +++ b/src/effects/Normalize.cpp @@ -34,6 +34,7 @@ #include "../ShuttleGui.h" #include "../WaveTrack.h" #include "../widgets/valnum.h" +#include "../widgets/ProgressDialog.h" // Define keys, defaults, minimums, and maximums for the effect parameters // diff --git a/src/effects/nyquist/Nyquist.cpp b/src/effects/nyquist/Nyquist.cpp index 0fb4307a0..75db3670d 100644 --- a/src/effects/nyquist/Nyquist.cpp +++ b/src/effects/nyquist/Nyquist.cpp @@ -74,6 +74,7 @@ effects from this one class. #include "../../wxFileNameWrapper.h" #include "../../prefs/WaveformSettings.h" #include "../../widgets/NumericTextCtrl.h" +#include "../../widgets/ProgressDialog.h" #include "../lib-src/FileDialog/FileDialog.h" diff --git a/src/export/Export.cpp b/src/export/Export.cpp index 7db7946f1..fdc791df9 100644 --- a/src/export/Export.cpp +++ b/src/export/Export.cpp @@ -75,6 +75,7 @@ #include "../Dependencies.h" #include "../FileNames.h" #include "../widgets/HelpSystem.h" +#include "../widgets/ProgressDialog.h" //---------------------------------------------------------------------------- // ExportPlugin diff --git a/src/export/ExportCL.cpp b/src/export/ExportCL.cpp index b6bfa381f..4b95e0f5b 100644 --- a/src/export/ExportCL.cpp +++ b/src/export/ExportCL.cpp @@ -38,6 +38,7 @@ #include "../float_cast.h" #include "../widgets/FileHistory.h" #include "../widgets/ErrorDialog.h" +#include "../widgets/ProgressDialog.h" #include "../Track.h" diff --git a/src/export/ExportFFmpeg.cpp b/src/export/ExportFFmpeg.cpp index f65f8ba90..981c89b6b 100644 --- a/src/export/ExportFFmpeg.cpp +++ b/src/export/ExportFFmpeg.cpp @@ -43,6 +43,7 @@ function. #include "../Tags.h" #include "../Track.h" #include "../widgets/ErrorDialog.h" +#include "../widgets/ProgressDialog.h" #include "Export.h" diff --git a/src/export/ExportFLAC.cpp b/src/export/ExportFLAC.cpp index c7303c657..5a69c654c 100644 --- a/src/export/ExportFLAC.cpp +++ b/src/export/ExportFLAC.cpp @@ -42,6 +42,7 @@ and libvorbis examples, Monty #include "../Track.h" #include "../widgets/ErrorDialog.h" +#include "../widgets/ProgressDialog.h" //---------------------------------------------------------------------------- // ExportFLACOptions Class diff --git a/src/export/ExportMP2.cpp b/src/export/ExportMP2.cpp index bc315ba25..a7b9ab8bb 100644 --- a/src/export/ExportMP2.cpp +++ b/src/export/ExportMP2.cpp @@ -56,6 +56,7 @@ #include "../Tags.h" #include "../Track.h" #include "../widgets/ErrorDialog.h" +#include "../widgets/ProgressDialog.h" #define LIBTWOLAME_STATIC #include "twolame.h" diff --git a/src/export/ExportMP3.cpp b/src/export/ExportMP3.cpp index ec1875b6f..780e91b48 100644 --- a/src/export/ExportMP3.cpp +++ b/src/export/ExportMP3.cpp @@ -92,6 +92,7 @@ #include "../widgets/HelpSystem.h" #include "../widgets/LinkingHtmlWindow.h" #include "../widgets/ErrorDialog.h" +#include "../widgets/ProgressDialog.h" #include "Export.h" diff --git a/src/export/ExportMultiple.cpp b/src/export/ExportMultiple.cpp index 079f6a58b..faba04fef 100644 --- a/src/export/ExportMultiple.cpp +++ b/src/export/ExportMultiple.cpp @@ -52,6 +52,7 @@ #include "../WaveTrack.h" #include "../widgets/HelpSystem.h" #include "../widgets/ErrorDialog.h" +#include "../widgets/ProgressDialog.h" namespace { diff --git a/src/export/ExportOGG.cpp b/src/export/ExportOGG.cpp index f9c3de1bf..273ba84e5 100644 --- a/src/export/ExportOGG.cpp +++ b/src/export/ExportOGG.cpp @@ -37,6 +37,7 @@ #include "../Tags.h" #include "../Track.h" #include "../widgets/ErrorDialog.h" +#include "../widgets/ProgressDialog.h" //---------------------------------------------------------------------------- // ExportOGGOptions diff --git a/src/export/ExportPCM.cpp b/src/export/ExportPCM.cpp index 1fada0a70..41ffdf3ef 100644 --- a/src/export/ExportPCM.cpp +++ b/src/export/ExportPCM.cpp @@ -36,6 +36,7 @@ #include "../Track.h" #include "../ondemand/ODManager.h" #include "../widgets/ErrorDialog.h" +#include "../widgets/ProgressDialog.h" #include "Export.h" diff --git a/src/import/Import.cpp b/src/import/Import.cpp index 1b50c27d9..d772d32b0 100644 --- a/src/import/Import.cpp +++ b/src/import/Import.cpp @@ -37,9 +37,9 @@ and ImportLOF.cpp. #include "../Audacity.h" // for USE_* macros #include "Import.h" +#include "ImportPlugin.h" #include -#include "ImportPlugin.h" #include #include @@ -62,6 +62,8 @@ and ImportLOF.cpp. #include "ImportGStreamer.h" #include "../Prefs.h" +#include "../widgets/ProgressDialog.h" + // ============================================================================ // // Return reference to singleton @@ -747,6 +749,11 @@ void ImportStreamDialog::OnCancel(wxCommandEvent & WXUNUSED(event)) EndModal( wxID_CANCEL ); } +ImportFileHandle::ImportFileHandle(const FilePath & filename) +: mFilename(filename) +{ +} + ImportFileHandle::~ImportFileHandle() { } @@ -757,6 +764,6 @@ void ImportFileHandle::CreateProgress() wxString title; title.Printf(_("Importing %s"), GetFileDescription()); - mProgress.create(title, ff.GetFullName()); + mProgress = std::make_unique< ProgressDialog >( title, ff.GetFullName() ); } diff --git a/src/import/ImportFFmpeg.cpp b/src/import/ImportFFmpeg.cpp index a22acf0f9..ee6c2c486 100644 --- a/src/import/ImportFFmpeg.cpp +++ b/src/import/ImportFFmpeg.cpp @@ -36,6 +36,7 @@ Licensed under the GNU General Public License v2 or later #endif #include "../MemoryX.h" +#include "../widgets/ProgressDialog.h" #define DESC _("FFmpeg-compatible files") diff --git a/src/import/ImportFLAC.cpp b/src/import/ImportFLAC.cpp index 618ef37e9..0d847fc7b 100644 --- a/src/import/ImportFLAC.cpp +++ b/src/import/ImportFLAC.cpp @@ -45,6 +45,7 @@ #include "../Tags.h" #include "../prefs/QualityPrefs.h" +#include "../widgets/ProgressDialog.h" #define FLAC_HEADER "fLaC" diff --git a/src/import/ImportLOF.cpp b/src/import/ImportLOF.cpp index c3ee58e59..846af737d 100644 --- a/src/import/ImportLOF.cpp +++ b/src/import/ImportLOF.cpp @@ -91,6 +91,7 @@ #include "../Prefs.h" #include "../Internat.h" #include "../widgets/ErrorDialog.h" +#include "../widgets/ProgressDialog.h" #define BINARY_FILE_CHECK_BUFFER_SIZE 1024 diff --git a/src/import/ImportMP3.cpp b/src/import/ImportMP3.cpp index 46ba4de8e..5788280b1 100644 --- a/src/import/ImportMP3.cpp +++ b/src/import/ImportMP3.cpp @@ -46,6 +46,7 @@ #include "../Internat.h" #include "../Tags.h" #include "../prefs/QualityPrefs.h" +#include "../widgets/ProgressDialog.h" #define DESC _("MP3 files") diff --git a/src/import/ImportOGG.cpp b/src/import/ImportOGG.cpp index 496fc8f26..1e7c41c89 100644 --- a/src/import/ImportOGG.cpp +++ b/src/import/ImportOGG.cpp @@ -43,6 +43,7 @@ #include "../Internat.h" #include "../Tags.h" #include "../prefs/QualityPrefs.h" +#include "../widgets/ProgressDialog.h" #define DESC _("Ogg Vorbis files") diff --git a/src/import/ImportPCM.cpp b/src/import/ImportPCM.cpp index 234477b3c..7b85213a4 100644 --- a/src/import/ImportPCM.cpp +++ b/src/import/ImportPCM.cpp @@ -40,6 +40,7 @@ #include "../ondemand/ODManager.h" #include "../ondemand/ODComputeSummaryTask.h" #include "../prefs/QualityPrefs.h" +#include "../widgets/ProgressDialog.h" //If OD is enabled, he minimum number of samples a file has to use it. //Otherwise, we use the older PCMAliasBlockFile method since it should be fast enough. diff --git a/src/import/ImportPlugin.h b/src/import/ImportPlugin.h index f6d5e0982..559844acf 100644 --- a/src/import/ImportPlugin.h +++ b/src/import/ImportPlugin.h @@ -61,11 +61,11 @@ but little else. #include "../Internat.h" #include "../MemoryX.h" -#include "../widgets/ProgressDialog.h" - #include "ImportRaw.h" // defines TrackHolders class wxArrayString; +class ProgressDialog; +enum class ProgressResult : unsigned; class TrackFactory; class Track; class Tags; @@ -121,11 +121,7 @@ protected: class ImportFileHandle /* not final */ { public: - ImportFileHandle(const FilePath & filename) - : mFilename(filename), - mProgress{} - { - } + ImportFileHandle(const FilePath & filename); virtual ~ImportFileHandle(); @@ -166,7 +162,7 @@ public: protected: FilePath mFilename; - Maybe mProgress; + std::unique_ptr mProgress; }; diff --git a/src/import/ImportQT.cpp b/src/import/ImportQT.cpp index 9f7a37ff1..a1c9e516c 100644 --- a/src/import/ImportQT.cpp +++ b/src/import/ImportQT.cpp @@ -18,6 +18,7 @@ #include "ImportPlugin.h" #include "../widgets/ErrorDialog.h" +#include "../widgets/ProgressDialog.h" #define DESC _("QuickTime files") diff --git a/src/import/ImportRaw.cpp b/src/import/ImportRaw.cpp index 88bef5727..d5a2ad426 100644 --- a/src/import/ImportRaw.cpp +++ b/src/import/ImportRaw.cpp @@ -35,6 +35,7 @@ and sample size to help you importing data of an unknown format. #include "../UserException.h" #include "../WaveTrack.h" #include "../prefs/QualityPrefs.h" +#include "../widgets/ProgressDialog.h" #include #include diff --git a/src/menus/TrackMenus.cpp b/src/menus/TrackMenus.cpp index 75f1cc468..b4c59d19c 100644 --- a/src/menus/TrackMenus.cpp +++ b/src/menus/TrackMenus.cpp @@ -20,6 +20,7 @@ #include "../effects/EffectManager.h" #include "../widgets/ASlider.h" #include "../widgets/ErrorDialog.h" +#include "../widgets/ProgressDialog.h" #include