summaryrefslogtreecommitdiffstats
path: root/src/libs
diff options
context:
space:
mode:
authorkh1 <karsten.heimrich@nokia.com>2012-06-13 16:25:47 +0200
committerNiels Weber <niels.2.weber@nokia.com>2012-08-17 12:54:59 +0200
commit92948d7ff39bae797191c9e1f8e0876aad1efe9a (patch)
treec140853c534d033e89a5fe40f323b136da4af3f7 /src/libs
parent9cad5d54cf0d78e92b4ee831299d83b657f42f2e (diff)
Add new commandline argument.
In case we run an offline installer, --create-offline-repository will dump the whole installer content into the install directory and add an extra url to the repositories pointing to the mentioned local repository. This allows an offline user to add packages without the need of a new installation. Change-Id: I3e7eb0c56f632b74f5ea41b96bf3d9be83173f41 Reviewed-by: Tim Jenssen <tim.jenssen@nokia.com> Reviewed-by: Niels Weber <niels.2.weber@nokia.com>
Diffstat (limited to 'src/libs')
-rw-r--r--src/libs/installer/packagemanagercore.cpp25
-rw-r--r--src/libs/installer/packagemanagercore.h6
-rw-r--r--src/libs/installer/packagemanagercore_p.cpp8
-rw-r--r--src/libs/installer/packagemanagercore_p.h1
4 files changed, 19 insertions, 21 deletions
diff --git a/src/libs/installer/packagemanagercore.cpp b/src/libs/installer/packagemanagercore.cpp
index 442d8bd92..2dda4205f 100644
--- a/src/libs/installer/packagemanagercore.cpp
+++ b/src/libs/installer/packagemanagercore.cpp
@@ -77,6 +77,7 @@ static QFont sVirtualComponentsFont;
static bool sNoForceInstallation = false;
static bool sVirtualComponentsVisible = false;
+static bool sCreateLocalRepositoryFromBinary = false;
static QScriptValue checkArguments(QScriptContext *context, int amin, int amax)
{
@@ -558,6 +559,18 @@ void PackageManagerCore::setNoForceInstallation(bool value)
sNoForceInstallation = value;
}
+/* static */
+bool PackageManagerCore::createLocalRepositoryFromBinary()
+{
+ return sCreateLocalRepositoryFromBinary;
+}
+
+/* static */
+void PackageManagerCore::setCreateLocalRepositoryFromBinary(bool create)
+{
+ sCreateLocalRepositoryFromBinary = create;
+}
+
RunMode PackageManagerCore::runMode() const
{
return isUpdater() ? UpdaterMode : AllMode;
@@ -1927,18 +1940,6 @@ QString PackageManagerCore::findDisplayVersion(const QString &componentName,
return findDisplayVersion(replaceWith, components, versionKey, visited);
}
-bool PackageManagerCore::createLocalRepositoryFromBinary() const
-{
- return d->m_createLocalRepositoryFromBinary;
-}
-
-void PackageManagerCore::setCreateLocalRepositoryFromBinary(bool create)
-{
- if (!isOfflineOnly())
- return;
- d->m_createLocalRepositoryFromBinary = create;
-}
-
ComponentModel *PackageManagerCore::componentModel(PackageManagerCore *core, const QString &objectName) const
{
ComponentModel *model = new ComponentModel(4, core);
diff --git a/src/libs/installer/packagemanagercore.h b/src/libs/installer/packagemanagercore.h
index c3c42fad7..f99898717 100644
--- a/src/libs/installer/packagemanagercore.h
+++ b/src/libs/installer/packagemanagercore.h
@@ -98,6 +98,9 @@ public:
static bool noForceInstallation();
static void setNoForceInstallation(bool value);
+ static bool createLocalRepositoryFromBinary();
+ static void setCreateLocalRepositoryFromBinary(bool create);
+
bool fetchLocalPackagesTree();
LocalPackagesHash localInstalledPackages();
@@ -233,9 +236,6 @@ public:
bool needsRestart() const;
bool finishedWithSuccess() const;
- Q_INVOKABLE bool createLocalRepositoryFromBinary() const;
- Q_INVOKABLE void setCreateLocalRepositoryFromBinary(bool create);
-
public Q_SLOTS:
bool runInstaller();
bool runUninstaller();
diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp
index 7b9b61e38..cf2c190af 100644
--- a/src/libs/installer/packagemanagercore_p.cpp
+++ b/src/libs/installer/packagemanagercore_p.cpp
@@ -168,7 +168,6 @@ PackageManagerCorePrivate::PackageManagerCorePrivate(PackageManagerCore *core)
, m_updateSourcesAdded(false)
, m_componentsToInstallCalculated(false)
, m_proxyFactory(0)
- , m_createLocalRepositoryFromBinary(false)
, m_defaultModel(0)
, m_updaterModel(0)
{
@@ -193,7 +192,6 @@ PackageManagerCorePrivate::PackageManagerCorePrivate(PackageManagerCore *core, q
, m_magicBinaryMarker(magicInstallerMaker)
, m_componentsToInstallCalculated(false)
, m_proxyFactory(0)
- , m_createLocalRepositoryFromBinary(false)
, m_defaultModel(0)
, m_updaterModel(0)
, m_dependsOnLocalInstallerBinary(false)
@@ -519,7 +517,6 @@ void PackageManagerCorePrivate::initialize()
{
m_coreCheckedHash.clear();
m_componentsToInstallCalculated = false;
- m_createLocalRepositoryFromBinary = false;
// first set some common variables that may used e.g. as placeholder
// in some of the settings variables or in a script or...
@@ -1433,13 +1430,14 @@ bool PackageManagerCorePrivate::runInstaller()
m_settings.applicationVersion()));
const int progressOperationCount = countProgressOperations(componentsToInstall)
- + (m_createLocalRepositoryFromBinary ? 1 : 0); // add one more operation as we support progress
+ // add one more operation as we support progress
+ + (PackageManagerCore::createLocalRepositoryFromBinary() ? 1 : 0);
double progressOperationSize = componentsInstallPartProgressSize / progressOperationCount;
foreach (Component *component, componentsToInstall)
installComponent(component, progressOperationSize, adminRightsGained);
- if (m_createLocalRepositoryFromBinary) {
+ if (m_core->isOfflineOnly() && PackageManagerCore::createLocalRepositoryFromBinary()) {
emit m_core->titleMessageChanged(tr("Creating local repository"));
ProgressCoordinator::instance()->emitLabelAndDetailTextChanged(QString());
ProgressCoordinator::instance()->emitLabelAndDetailTextChanged(tr("Creating local repository"));
diff --git a/src/libs/installer/packagemanagercore_p.h b/src/libs/installer/packagemanagercore_p.h
index d2d97e115..358b1c6e4 100644
--- a/src/libs/installer/packagemanagercore_p.h
+++ b/src/libs/installer/packagemanagercore_p.h
@@ -249,7 +249,6 @@ private:
QSet<Component*> m_componentsToUninstall;
QString m_componentsToInstallError;
FileDownloaderProxyFactory *m_proxyFactory;
- bool m_createLocalRepositoryFromBinary;
ComponentModel *m_defaultModel;
ComponentModel *m_updaterModel;