summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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
-rw-r--r--src/sdk/installerbase.cpp2
-rw-r--r--src/sdk/installerbase_p.cpp3
6 files changed, 24 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;
diff --git a/src/sdk/installerbase.cpp b/src/sdk/installerbase.cpp
index 0509f9cab..03b87bbb2 100644
--- a/src/sdk/installerbase.cpp
+++ b/src/sdk/installerbase.cpp
@@ -322,6 +322,8 @@ int main(int argc, char *argv[])
core.addUserRepositories(repoList);
} else if (argument == QLatin1String("--no-force-installations")) {
PackageManagerCore::setNoForceInstallation(true);
+ } else if (argument == QLatin1String("--create-offline-repository")) {
+ PackageManagerCore::setCreateLocalRepositoryFromBinary(true);
} else {
std::cerr << "Unknown option: " << argument << std::endl;
}
diff --git a/src/sdk/installerbase_p.cpp b/src/sdk/installerbase_p.cpp
index 611e491bf..bf96a797a 100644
--- a/src/sdk/installerbase_p.cpp
+++ b/src/sdk/installerbase_p.cpp
@@ -303,6 +303,9 @@ void InstallerBase::showUsage()
<< "Set system proxy on Win and Mac. This option has no effect on Linux." << std::endl;
std::cout << std::setw(55) << std::setiosflags(std::ios::left) << " --verbose" << std::setw(40)
<< "Show debug output on the console" << std::endl;
+ std::cout << std::setw(55) << std::setiosflags(std::ios::left) << " --create-offline-repository"
+ << std::setw(40) << "Offline installer only: Create a local repository inside the installation "
+ "directory based on the offline installer's content" << std::endl;
std::cout << "\nDeveloper:"<< std::endl;
std::cout << std::setw(55) << std::setiosflags(std::ios::left)