summaryrefslogtreecommitdiff
path: root/src/manager-lib/package.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/manager-lib/package.cpp')
-rw-r--r--src/manager-lib/package.cpp49
1 files changed, 28 insertions, 21 deletions
diff --git a/src/manager-lib/package.cpp b/src/manager-lib/package.cpp
index d51ed794..7ad4b1cf 100644
--- a/src/manager-lib/package.cpp
+++ b/src/manager-lib/package.cpp
@@ -1,5 +1,6 @@
/****************************************************************************
**
+** Copyright (C) 2019 The Qt Company Ltd.
** Copyright (C) 2019 Luxoft Sweden AB
** Copyright (C) 2018 Pelagicore AG
** Contact: https://www.qt.io/licensing/
@@ -60,7 +61,12 @@ QString Package::id() const
bool Package::isBuiltIn() const
{
- return info()->isBuiltIn();
+ return m_info->isBuiltIn();
+}
+
+bool Package::builtInHasRemovableUpdate() const
+{
+ return isBuiltIn() && m_updatedInfo;
}
QString Package::version() const
@@ -156,39 +162,40 @@ void Package::setProgress(qreal progress)
m_progress = progress;
}
-
-void Package::setBaseInfo(PackageInfo *info)
-{
- m_info.reset(info);
- emit bulkChange();
-}
-
-void Package::setUpdatedInfo(PackageInfo *info)
+PackageInfo *Package::info() const
{
- Q_ASSERT(!info || (m_info && info->id() == m_info->id()));
-
- m_updatedInfo.reset(info);
- emit bulkChange();
+ return m_updatedInfo ? m_updatedInfo : m_info;
}
-PackageInfo *Package::info() const
+PackageInfo *Package::baseInfo() const
{
- return m_updatedInfo ? m_updatedInfo.data() : m_info.data();
+ return m_info;
}
PackageInfo *Package::updatedInfo() const
{
- return m_updatedInfo.data();
+ return m_updatedInfo;
}
-PackageInfo *Package::takeBaseInfo()
+PackageInfo *Package::setUpdatedInfo(PackageInfo *info)
{
- return m_info.take();
+ Q_ASSERT(!info || (m_info && info->id() == m_info->id()));
+ Q_ASSERT(info != m_updatedInfo);
+
+ auto old = m_updatedInfo;
+ m_updatedInfo = info;
+ emit bulkChange();
+ return old;
}
-bool Package::canBeRevertedToBuiltIn() const
+PackageInfo *Package::setBaseInfo(PackageInfo *info)
{
- return m_info && m_updatedInfo;
+ Q_ASSERT(info != m_info);
+
+ auto old = m_info;
+ m_info = info;
+ emit bulkChange();
+ return old;
}
bool Package::isBlocked() const
@@ -200,8 +207,8 @@ bool Package::block()
{
bool blockedNow = (m_blocked.fetchAndAddOrdered(1) == 0);
if (blockedNow) {
- emit blockedChanged(true);
m_blockedApps = info()->applications();
+ emit blockedChanged(true);
}
return blockedNow;
}