diff options
author | kh1 <karsten.heimrich@nokia.com> | 2012-04-23 17:27:46 +0200 |
---|---|---|
committer | Karsten Heimrich <karsten.heimrich@nokia.com> | 2012-04-25 14:23:56 +0200 |
commit | 3eb3be2e042a6c93007f8bf4a1b6079b4961d919 (patch) | |
tree | 98d9b55d91bdfe65718e5dc9506e9a75e9a0df72 /src/libs/installer/packagemanagercore.cpp | |
parent | c6821e8dc0b1c4724f158d4714b7b25e60bd6638 (diff) |
Move the models inside core engine.
Improves the situation for qml based installer.
Change-Id: Ia7198f0720a1268c7918517228c13255cccce4ea
Reviewed-by: Niels Weber <niels.2.weber@nokia.com>
Reviewed-by: Tim Jenssen <tim.jenssen@nokia.com>
Diffstat (limited to 'src/libs/installer/packagemanagercore.cpp')
-rw-r--r-- | src/libs/installer/packagemanagercore.cpp | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/libs/installer/packagemanagercore.cpp b/src/libs/installer/packagemanagercore.cpp index c81987f39..52713f50f 100644 --- a/src/libs/installer/packagemanagercore.cpp +++ b/src/libs/installer/packagemanagercore.cpp @@ -34,6 +34,7 @@ #include "adminauthorization.h" #include "binaryformat.h" #include "component.h" +#include "componentmodel.h" #include "downloadarchivesjob.h" #include "errors.h" #include "fsengineclient.h" @@ -48,6 +49,7 @@ #include "settings.h" #include "utils.h" +#include <QtCore/QMutex> #include <QtCore/QSettings> #include <QtCore/QTemporaryFile> @@ -66,6 +68,7 @@ using namespace QInstaller; +static QMutex sModelMutex; static QFont sVirtualComponentsFont; static bool sNoForceInstallation = false; @@ -614,6 +617,7 @@ bool PackageManagerCore::fetchLocalPackagesTree() emit finishAllComponentsReset(); d->setStatus(Success); + emit setRootComponents(d->m_rootComponents); return true; } @@ -1029,6 +1033,26 @@ QList<Component*> PackageManagerCore::dependencies(const Component *component, Q return result; } +ComponentModel *PackageManagerCore::defaultComponentModel() const +{ + QMutexLocker _(&sModelMutex); + if (!d->m_defaultModel) { + d->m_defaultModel = componentModel(const_cast<PackageManagerCore*> (this), + QLatin1String("AllComponentsModel")); + } + return d->m_defaultModel; +} + +ComponentModel *PackageManagerCore::updaterComponentModel() const +{ + QMutexLocker _(&sModelMutex); + if (!d->m_updaterModel) { + d->m_updaterModel = componentModel(const_cast<PackageManagerCore*> (this), + QLatin1String("UpdaterComponentsModel")); + } + return d->m_updaterModel; +} + Settings &PackageManagerCore::settings() const { return d->m_settings; @@ -1669,6 +1693,7 @@ bool PackageManagerCore::fetchAllPackages(const PackagesList &remotes, const Loc return false; emit finishAllComponentsReset(); + emit setRootComponents(d->m_rootComponents); return true; } @@ -1813,6 +1838,7 @@ bool PackageManagerCore::fetchUpdaterPackages(const PackagesList &remotes, const } emit finishUpdaterComponentsReset(); + emit setRootComponents(d->m_updaterComponents); return true; } @@ -1874,3 +1900,23 @@ void PackageManagerCore::setCreateLocalRepositoryFromBinary(bool create) return; d->m_createLocalRepositoryFromBinary = create; } + +ComponentModel *PackageManagerCore::componentModel(PackageManagerCore *core, const QString &objectName) const +{ + ComponentModel *model = new ComponentModel(4, core); + + model->setObjectName(objectName); + model->setHeaderData(ComponentModelHelper::NameColumn, Qt::Horizontal, + ComponentModel::tr("Component Name")); + model->setHeaderData(ComponentModelHelper::InstalledVersionColumn, Qt::Horizontal, + ComponentModel::tr("Installed Version")); + model->setHeaderData(ComponentModelHelper::NewVersionColumn, Qt::Horizontal, + ComponentModel::tr("New Version")); + model->setHeaderData(ComponentModelHelper::UncompressedSizeColumn, Qt::Horizontal, + ComponentModel::tr("Size")); + connect(this, SIGNAL(setRootComponents(QList<QInstaller::Component*>)), model, + SLOT(setRootComponents(QList<QInstaller::Component*>)), Qt::QueuedConnection); + connect(model, SIGNAL(defaultCheckStateChanged(bool)), this, SLOT(componentsToInstallNeedsRecalculation())); + + return model; +} |