summaryrefslogtreecommitdiffstats
path: root/src/libs
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs')
-rw-r--r--src/libs/installer/metadatajob.cpp15
-rw-r--r--src/libs/installer/metadatajob.h1
-rw-r--r--src/libs/installer/packagemanagercore.h1
-rw-r--r--src/libs/installer/packagemanagercore_p.cpp1
-rw-r--r--src/libs/installer/packagemanagercore_p.h4
-rw-r--r--src/libs/installer/packagemanagergui.cpp11
-rw-r--r--src/libs/installer/packagemanagergui.h1
-rw-r--r--src/libs/kdtools/job.cpp4
-rw-r--r--src/libs/kdtools/job.h1
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> &params
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;