diff options
Diffstat (limited to 'src/libs')
-rw-r--r-- | src/libs/installer/metadatajob.cpp | 15 | ||||
-rw-r--r-- | src/libs/installer/metadatajob.h | 1 | ||||
-rw-r--r-- | src/libs/installer/packagemanagercore.h | 1 | ||||
-rw-r--r-- | src/libs/installer/packagemanagercore_p.cpp | 1 | ||||
-rw-r--r-- | src/libs/installer/packagemanagercore_p.h | 4 | ||||
-rw-r--r-- | src/libs/installer/packagemanagergui.cpp | 11 | ||||
-rw-r--r-- | src/libs/installer/packagemanagergui.h | 1 | ||||
-rw-r--r-- | src/libs/kdtools/job.cpp | 4 | ||||
-rw-r--r-- | src/libs/kdtools/job.h | 1 |
9 files changed, 32 insertions, 7 deletions
diff --git a/src/libs/installer/metadatajob.cpp b/src/libs/installer/metadatajob.cpp index dbc7e8808..ecc66f493 100644 --- a/src/libs/installer/metadatajob.cpp +++ b/src/libs/installer/metadatajob.cpp @@ -141,10 +141,13 @@ void MetadataJob::doStart() } } } - if (!repositoriesFound) + if (!repositoriesFound) { emitFinished(); - else - emit infoMessage(this, tr("Unpacking compressed repositories...")); + } + else { + setProgressTotalAmount(0); + emit infoMessage(this, tr("Unpacking compressed repositories. This may take a while...")); + } } } @@ -326,6 +329,7 @@ void MetadataJob::xmlTaskFinished() DownloadFileTask *const metadataTask = new DownloadFileTask(m_packages); metadataTask->setProxyFactory(m_core->proxyFactory()); m_metadataTask.setFuture(QtConcurrent::run(&DownloadFileTask::doTask, metadataTask)); + setProgressTotalAmount(100); emit infoMessage(this, tr("Retrieving meta information from remote repository...")); } else if (status == XmlDownloadRetry) { QMetaObject::invokeMethod(this, "doStart", Qt::QueuedConnection); @@ -366,6 +370,11 @@ void MetadataJob::progressChanged(int progress) setProcessedAmount(progress); } +void MetadataJob::setProgressTotalAmount(int maximum) +{ + setTotalAmount(maximum); +} + void MetadataJob::metadataTaskFinished() { try { diff --git a/src/libs/installer/metadatajob.h b/src/libs/installer/metadatajob.h index dac92153f..c6d5ad353 100644 --- a/src/libs/installer/metadatajob.h +++ b/src/libs/installer/metadatajob.h @@ -74,6 +74,7 @@ private slots: void unzipTaskFinished(); void metadataTaskFinished(); void progressChanged(int progress); + void setProgressTotalAmount(int maximum); void unzipRepositoryTaskFinished(); void startXMLTask(const QList<FileTaskItem> items); diff --git a/src/libs/installer/packagemanagercore.h b/src/libs/installer/packagemanagercore.h index 59be3e9ee..2a235bd44 100644 --- a/src/libs/installer/packagemanagercore.h +++ b/src/libs/installer/packagemanagercore.h @@ -290,6 +290,7 @@ Q_SIGNALS: void finishButtonClicked(); void metaJobProgress(int progress); + void metaJobTotalProgress(int progress); void metaJobInfoMessage(const QString &message); void startAllComponentsReset(); diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp index ef5dd3d48..2cc6d298d 100644 --- a/src/libs/installer/packagemanagercore_p.cpp +++ b/src/libs/installer/packagemanagercore_p.cpp @@ -581,6 +581,7 @@ void PackageManagerCorePrivate::initialize(const QHash<QString, QString> ¶ms m_metadataJob.setPackageManagerCore(m_core); connect(&m_metadataJob, &Job::infoMessage, this, &PackageManagerCorePrivate::infoMessage); connect(&m_metadataJob, &Job::progress, this, &PackageManagerCorePrivate::infoProgress); + connect(&m_metadataJob, &Job::totalProgress, this, &PackageManagerCorePrivate::totalProgress); KDUpdater::FileDownloaderFactory::instance().setProxyFactory(m_core->proxyFactory()); } diff --git a/src/libs/installer/packagemanagercore_p.h b/src/libs/installer/packagemanagercore_p.h index 4dd0b9735..21ab3fc40 100644 --- a/src/libs/installer/packagemanagercore_p.h +++ b/src/libs/installer/packagemanagercore_p.h @@ -209,6 +209,10 @@ private slots: emit m_core->metaJobProgress(progress); } + void totalProgress(quint64 total) { + emit m_core->metaJobTotalProgress(total); + } + void handleMethodInvocationRequest(const QString &invokableMethodName); private: diff --git a/src/libs/installer/packagemanagergui.cpp b/src/libs/installer/packagemanagergui.cpp index 5e385ac36..ec0407e45 100644 --- a/src/libs/installer/packagemanagergui.cpp +++ b/src/libs/installer/packagemanagergui.cpp @@ -1323,6 +1323,7 @@ IntroductionPage::IntroductionPage(PackageManagerCore *core) core->setCompleteUninstallation(core->isUninstaller()); connect(core, &PackageManagerCore::metaJobProgress, this, &IntroductionPage::onProgressChanged); + connect(core, &PackageManagerCore::metaJobTotalProgress, this, &IntroductionPage::setTotalProgress); connect(core, &PackageManagerCore::metaJobInfoMessage, this, &IntroductionPage::setMessage); connect(core, &PackageManagerCore::coreNetworkSettingsChanged, this, &IntroductionPage::onCoreNetworkSettingsChanged); @@ -1512,11 +1513,19 @@ void IntroductionPage::setMessage(const QString &msg) */ void IntroductionPage::onProgressChanged(int progress) { - m_progressBar->setRange(0, 100); m_progressBar->setValue(progress); } /*! + Sets total \a progress value to progress bar. +*/ +void IntroductionPage::setTotalProgress(int totalProgress) +{ + if (m_progressBar) + m_progressBar->setRange(0, totalProgress); +} + +/*! Displays the error message \a error on the page. */ void IntroductionPage::setErrorMessage(const QString &error) diff --git a/src/libs/installer/packagemanagergui.h b/src/libs/installer/packagemanagergui.h index fc7440647..238e22a62 100644 --- a/src/libs/installer/packagemanagergui.h +++ b/src/libs/installer/packagemanagergui.h @@ -224,6 +224,7 @@ public Q_SLOTS: void onCoreNetworkSettingsChanged(); void setMessage(const QString &msg); void onProgressChanged(int progress); + void setTotalProgress(int totalProgress); void setErrorMessage(const QString &error); Q_SIGNALS: diff --git a/src/libs/kdtools/job.cpp b/src/libs/kdtools/job.cpp index 7e36c295c..426aa1198 100644 --- a/src/libs/kdtools/job.cpp +++ b/src/libs/kdtools/job.cpp @@ -199,10 +199,8 @@ quint64 Job::processedAmount() const void Job::setTotalAmount(quint64 amount) { - if (d->totalAmount == amount) - return; d->totalAmount = amount; - emit progress(this, d->processedAmount, d->totalAmount); + emit totalProgress(d->totalAmount); } /*! diff --git a/src/libs/kdtools/job.h b/src/libs/kdtools/job.h index 0fe496943..200650259 100644 --- a/src/libs/kdtools/job.h +++ b/src/libs/kdtools/job.h @@ -86,6 +86,7 @@ Q_SIGNALS: void infoMessage(Job *job, const QString &message); void progress(Job *job, quint64 processed, quint64 total); + void totalProgress(quint64 total); protected: virtual void doStart() = 0; |