summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/packagemanagercore.cpp
diff options
context:
space:
mode:
authorkh1 <karsten.heimrich@nokia.com>2012-04-23 17:27:46 +0200
committerKarsten Heimrich <karsten.heimrich@nokia.com>2012-04-25 14:23:56 +0200
commit3eb3be2e042a6c93007f8bf4a1b6079b4961d919 (patch)
tree98d9b55d91bdfe65718e5dc9506e9a75e9a0df72 /src/libs/installer/packagemanagercore.cpp
parentc6821e8dc0b1c4724f158d4714b7b25e60bd6638 (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.cpp46
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;
+}