diff --git a/src/modules/tracking/CMakeLists.txt b/src/modules/tracking/CMakeLists.txt index 270866933..24e020af4 100644 --- a/src/modules/tracking/CMakeLists.txt +++ b/src/modules/tracking/CMakeLists.txt @@ -2,8 +2,9 @@ calamares_add_plugin( tracking TYPE viewmodule EXPORT_MACRO PLUGINDLLEXPORT_PRO SOURCES - TrackingViewStep.cpp + TrackingJobs.cpp TrackingPage.cpp + TrackingViewStep.cpp UI page_trackingstep.ui RESOURCES diff --git a/src/modules/tracking/TrackingJobs.cpp b/src/modules/tracking/TrackingJobs.cpp index 8fa70f242..425f0d165 100644 --- a/src/modules/tracking/TrackingJobs.cpp +++ b/src/modules/tracking/TrackingJobs.cpp @@ -26,11 +26,18 @@ TrackingInstallJob::TrackingInstallJob( const QString& url ) : m_url( url ) - , m_networkManager( new QNetworkAccessManager( this ) ) + , m_networkManager( nullptr ) , m_semaphore( new QSemaphore( 1 ) ) { } +TrackingInstallJob::~TrackingInstallJob() +{ + Q_ASSERT( m_semaphore->available() == 1 ); + delete m_semaphore; + delete m_networkManager; +} + QString TrackingInstallJob::prettyName() const { return tr( "Install-tracking" ); @@ -48,6 +55,8 @@ QString TrackingInstallJob::prettyStatusMessage() const Calamares::JobResult TrackingInstallJob::exec() { + m_networkManager = new QNetworkAccessManager(); + QNetworkRequest request; request.setUrl( QUrl( m_url ) ); // Follows all redirects except unsafe ones (https to http). diff --git a/src/modules/tracking/TrackingViewStep.cpp b/src/modules/tracking/TrackingViewStep.cpp index 8c153fa22..18a42f776 100644 --- a/src/modules/tracking/TrackingViewStep.cpp +++ b/src/modules/tracking/TrackingViewStep.cpp @@ -132,6 +132,8 @@ TrackingViewStep::jobs() const .replace( "$DISK", disk ); cDebug() << " .. install-tracking URL" << installUrl; + + l.append( Calamares::job_ptr( new TrackingInstallJob( installUrl ) ) ); } return l; }