summaryrefslogtreecommitdiffstats
path: root/src/libs/installer
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/installer')
-rw-r--r--src/libs/installer/component.cpp6
-rw-r--r--src/libs/installer/component_p.h6
-rw-r--r--src/libs/installer/constants.h2
-rw-r--r--src/libs/installer/packagemanagercore.cpp12
4 files changed, 17 insertions, 9 deletions
diff --git a/src/libs/installer/component.cpp b/src/libs/installer/component.cpp
index 963dd55c6..4aa3c3400 100644
--- a/src/libs/installer/component.cpp
+++ b/src/libs/installer/component.cpp
@@ -113,7 +113,7 @@ void Component::loadDataFromPackage(const LocalPackage &package)
setValue(QLatin1String("LastUpdateDate"), package.lastUpdateDate.toString());
setValue(QLatin1String("InstallDate"), package.installDate.toString());
setValue(scUncompressedSize, QString::number(package.uncompressedSize));
-
+ setValue(scPackageStatus, QLatin1String("Installed"));
QString dependstr;
foreach (const QString &val, package.dependencies)
dependstr += val + QLatin1String(",");
@@ -150,7 +150,7 @@ void Component::loadDataFromPackage(const Package &package)
setValue(scDownloadableArchives, package.data(scDownloadableArchives).toString());
setValue(scVirtual, package.data(scVirtual).toString());
setValue(scSortingPriority, package.data(scSortingPriority).toString());
-
+ setValue(scPackageStatus, QLatin1String("Installed"));
setValue(scEssential, package.data(scEssential).toString());
setValue(scUpdateText, package.data(scUpdateText).toString());
setValue(scNewComponent, package.data(scNewComponent).toString());
@@ -1198,6 +1198,8 @@ void Component::updateModelData(const QString &key, const QString &data)
quint64 size = value(scUncompressedSizeSum).toLongLong();
setData(humanReadableSize(size), UncompressedSize);
}
+ if (key == scPackageStatus)
+ setData(data, PackageStatus);
const QString &updateInfo = value(scUpdateText);
if (!d->m_core->isUpdater() || updateInfo.isEmpty()) {
diff --git a/src/libs/installer/component_p.h b/src/libs/installer/component_p.h
index 0c58288f9..8d2ab8e2a 100644
--- a/src/libs/installer/component_p.h
+++ b/src/libs/installer/component_p.h
@@ -101,14 +101,16 @@ public:
enum Roles {
LocalDisplayVersion = Qt::UserRole + 1,
RemoteDisplayVersion = LocalDisplayVersion + 1,
- UncompressedSize = RemoteDisplayVersion + 1
+ UncompressedSize = RemoteDisplayVersion + 1,
+ PackageStatus = UncompressedSize + 1
};
enum Column {
NameColumn = 0,
InstalledVersionColumn,
NewVersionColumn,
- UncompressedSizeColumn
+ UncompressedSizeColumn,
+ ComponentStatus
};
explicit ComponentModelHelper();
diff --git a/src/libs/installer/constants.h b/src/libs/installer/constants.h
index ea512ed76..6a5037ff4 100644
--- a/src/libs/installer/constants.h
+++ b/src/libs/installer/constants.h
@@ -76,7 +76,7 @@ static const QLatin1String scRemoveTargetDir("RemoveTargetDir");
static const QLatin1String scRunProgramDescription("RunProgramDescription");
static const QLatin1String scTargetConfigurationFile("TargetConfigurationFile");
static const QLatin1String scAllowNonAsciiCharacters("AllowNonAsciiCharacters");
-
+static const QLatin1String scPackageStatus("PackageStatus");
}
#endif // CONSTANTS_H
diff --git a/src/libs/installer/packagemanagercore.cpp b/src/libs/installer/packagemanagercore.cpp
index 2dda4205f..c0879f7eb 100644
--- a/src/libs/installer/packagemanagercore.cpp
+++ b/src/libs/installer/packagemanagercore.cpp
@@ -1917,8 +1917,11 @@ void PackageManagerCore::updateDisplayVersions(const QString &displayKey)
const QString displayVersionRemote = findDisplayVersion(key, components, scRemoteVersion, visited);
if (displayVersionRemote.isEmpty())
components.value(key)->setValue(displayKey, tr("invalid"));
- else
- components.value(key)->setValue(displayKey, displayVersionRemote);
+ else {
+ components.value(key)->setValue(displayKey, displayVersionRemote);
+ if (displayVersionRemote > findDisplayVersion(key, components, scVersion, visited ) )
+ components.value(key)->setValue(scPackageStatus, tr("Updates available"));
+ }
}
}
@@ -1942,8 +1945,7 @@ QString PackageManagerCore::findDisplayVersion(const QString &componentName,
ComponentModel *PackageManagerCore::componentModel(PackageManagerCore *core, const QString &objectName) const
{
- ComponentModel *model = new ComponentModel(4, core);
-
+ ComponentModel *model = new ComponentModel(5, core);
model->setObjectName(objectName);
model->setHeaderData(ComponentModelHelper::NameColumn, Qt::Horizontal,
ComponentModel::tr("Component Name"));
@@ -1953,6 +1955,8 @@ ComponentModel *PackageManagerCore::componentModel(PackageManagerCore *core, con
ComponentModel::tr("New Version"));
model->setHeaderData(ComponentModelHelper::UncompressedSizeColumn, Qt::Horizontal,
ComponentModel::tr("Size"));
+ model->setHeaderData(ComponentModelHelper::ComponentStatus, Qt::Horizontal,
+ ComponentModel::tr("Status"));
connect(this, SIGNAL(setRootComponents(QList<QInstaller::Component*>)), model,
SLOT(setRootComponents(QList<QInstaller::Component*>)));
connect(model, SIGNAL(defaultCheckStateChanged(bool)), this, SLOT(componentsToInstallNeedsRecalculation()));