diff options
author | kh1 <karsten.heimrich@nokia.com> | 2012-06-13 16:25:47 +0200 |
---|---|---|
committer | Niels Weber <niels.2.weber@nokia.com> | 2012-08-17 12:54:59 +0200 |
commit | 92948d7ff39bae797191c9e1f8e0876aad1efe9a (patch) | |
tree | c140853c534d033e89a5fe40f323b136da4af3f7 /src/libs/installer | |
parent | 9cad5d54cf0d78e92b4ee831299d83b657f42f2e (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/installer')
-rw-r--r-- | src/libs/installer/packagemanagercore.cpp | 25 | ||||
-rw-r--r-- | src/libs/installer/packagemanagercore.h | 6 | ||||
-rw-r--r-- | src/libs/installer/packagemanagercore_p.cpp | 8 | ||||
-rw-r--r-- | src/libs/installer/packagemanagercore_p.h | 1 |
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; |