summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/installerfw.qdoc5
-rw-r--r--examples/dependencies/config/config.xml1
-rw-r--r--src/libs/installer/componentmodel.cpp4
-rw-r--r--src/libs/installer/packagemanagergui.cpp2
-rw-r--r--src/libs/installer/resources/install.pngbin0 -> 268 bytes
-rw-r--r--src/libs/installer/resources/installer.qrc4
-rw-r--r--src/libs/installer/resources/keepinstalled.pngbin0 -> 239 bytes
-rw-r--r--src/libs/installer/resources/keepuninstalled.pngbin0 -> 203 bytes
-rw-r--r--src/libs/installer/resources/uninstall.pngbin0 -> 240 bytes
-rw-r--r--src/libs/installer/settings.cpp10
-rw-r--r--src/libs/installer/settings.h1
-rw-r--r--tests/auto/installer/settings/tst_settings.cpp1
12 files changed, 26 insertions, 2 deletions
diff --git a/doc/installerfw.qdoc b/doc/installerfw.qdoc
index 187686a9c..79c4d7962 100644
--- a/doc/installerfw.qdoc
+++ b/doc/installerfw.qdoc
@@ -307,6 +307,11 @@
\li Set to \c true if you want to create a local repository inside the installation directory.
This option has no effect on online installers. The repository will be automatically added
to the list of default repositories.
+ \row
+ \li InstallActionColumnVisible
+ \li Set to \c true if you want to add an extra column into component tree showing install actions.
+ This extra column indicates whether a component is going to be installed or uninstalled,
+ or just stay installed or uninstalled.
\endtable
diff --git a/examples/dependencies/config/config.xml b/examples/dependencies/config/config.xml
index 72a127f19..d7a0723dd 100644
--- a/examples/dependencies/config/config.xml
+++ b/examples/dependencies/config/config.xml
@@ -7,4 +7,5 @@
<StartMenuDir>Qt IFW Examples</StartMenuDir>
<TargetDir>@HomeDir@/IfwExamples/dependencies</TargetDir>
<CreateLocalRepository>true</CreateLocalRepository>
+ <InstallActionColumnVisible>true</InstallActionColumnVisible>
</Installer>
diff --git a/src/libs/installer/componentmodel.cpp b/src/libs/installer/componentmodel.cpp
index 0c249e8e6..682bc02c5 100644
--- a/src/libs/installer/componentmodel.cpp
+++ b/src/libs/installer/componentmodel.cpp
@@ -83,6 +83,10 @@ class IconCache
{
public:
IconCache() {
+ m_icons.insert(ComponentModelHelper::Install, QIcon(QLatin1String(":/install.png")));
+ m_icons.insert(ComponentModelHelper::Uninstall, QIcon(QLatin1String(":/uninstall.png")));
+ m_icons.insert(ComponentModelHelper::KeepInstalled, QIcon(QLatin1String(":/keepinstalled.png")));
+ m_icons.insert(ComponentModelHelper::KeepUninstalled, QIcon(QLatin1String(":/keepuninstalled.png")));
}
QIcon icon(ComponentModelHelper::InstallAction action) const {
diff --git a/src/libs/installer/packagemanagergui.cpp b/src/libs/installer/packagemanagergui.cpp
index 4e4190fd5..5f7dc1295 100644
--- a/src/libs/installer/packagemanagergui.cpp
+++ b/src/libs/installer/packagemanagergui.cpp
@@ -1853,7 +1853,7 @@ public:
m_treeView->setModel(m_currentModel);
m_treeView->setExpanded(m_currentModel->index(0, 0), true);
- const bool installActionColumnVisible = false;
+ const bool installActionColumnVisible = m_core->settings().installActionColumnVisible();
if (!installActionColumnVisible)
m_treeView->hideColumn(ComponentModelHelper::ActionColumn);
diff --git a/src/libs/installer/resources/install.png b/src/libs/installer/resources/install.png
new file mode 100644
index 000000000..8e3309c9f
--- /dev/null
+++ b/src/libs/installer/resources/install.png
Binary files differ
diff --git a/src/libs/installer/resources/installer.qrc b/src/libs/installer/resources/installer.qrc
index 77bf00f65..48a7c65bd 100644
--- a/src/libs/installer/resources/installer.qrc
+++ b/src/libs/installer/resources/installer.qrc
@@ -3,5 +3,9 @@
<file>installer.png</file>
<file>installer.ico</file>
<file>installer.icns</file>
+ <file>install.png</file>
+ <file>uninstall.png</file>
+ <file>keepinstalled.png</file>
+ <file>keepuninstalled.png</file>
</qresource>
</RCC>
diff --git a/src/libs/installer/resources/keepinstalled.png b/src/libs/installer/resources/keepinstalled.png
new file mode 100644
index 000000000..7f8489e28
--- /dev/null
+++ b/src/libs/installer/resources/keepinstalled.png
Binary files differ
diff --git a/src/libs/installer/resources/keepuninstalled.png b/src/libs/installer/resources/keepuninstalled.png
new file mode 100644
index 000000000..2753092cc
--- /dev/null
+++ b/src/libs/installer/resources/keepuninstalled.png
Binary files differ
diff --git a/src/libs/installer/resources/uninstall.png b/src/libs/installer/resources/uninstall.png
new file mode 100644
index 000000000..5646770da
--- /dev/null
+++ b/src/libs/installer/resources/uninstall.png
Binary files differ
diff --git a/src/libs/installer/settings.cpp b/src/libs/installer/settings.cpp
index bb6f9f1fb..bf13a22d8 100644
--- a/src/libs/installer/settings.cpp
+++ b/src/libs/installer/settings.cpp
@@ -62,6 +62,7 @@ static const QLatin1String scRemoteRepositories("RemoteRepositories");
static const QLatin1String scDependsOnLocalInstallerBinary("DependsOnLocalInstallerBinary");
static const QLatin1String scTranslations("Translations");
static const QLatin1String scCreateLocalRepository("CreateLocalRepository");
+static const QLatin1String scInstallActionColumnVisible("InstallActionColumnVisible");
static const QLatin1String scFtpProxy("FtpProxy");
static const QLatin1String scHttpProxy("HttpProxy");
@@ -257,7 +258,7 @@ Settings Settings::fromFileAndPrefix(const QString &path, const QString &prefix,
<< scWizardDefaultWidth << scWizardDefaultHeight
<< scRepositorySettingsPageVisible << scTargetConfigurationFile
<< scRemoteRepositories << scTranslations << QLatin1String(scControlScript)
- << scCreateLocalRepository;
+ << scCreateLocalRepository << scInstallActionColumnVisible;
Settings s;
s.d->m_data.insert(scPrefix, prefix);
@@ -324,6 +325,8 @@ Settings Settings::fromFileAndPrefix(const QString &path, const QString &prefix,
s.d->m_data.insert(scRepositorySettingsPageVisible, true);
if (!s.d->m_data.contains(scCreateLocalRepository))
s.d->m_data.insert(scCreateLocalRepository, false);
+ if (!s.d->m_data.contains(scInstallActionColumnVisible))
+ s.d->m_data.insert(scInstallActionColumnVisible, false);
return s;
}
@@ -478,6 +481,11 @@ bool Settings::createLocalRepository() const
return d->m_data.value(scCreateLocalRepository).toBool();
}
+bool Settings::installActionColumnVisible() const
+{
+ return d->m_data.value(scInstallActionColumnVisible, false).toBool();
+}
+
bool Settings::allowSpaceInPath() const
{
return d->m_data.value(scAllowSpaceInPath, true).toBool();
diff --git a/src/libs/installer/settings.h b/src/libs/installer/settings.h
index 7a2bb1f59..96c2ba450 100644
--- a/src/libs/installer/settings.h
+++ b/src/libs/installer/settings.h
@@ -112,6 +112,7 @@ public:
QString configurationFileName() const;
bool createLocalRepository() const;
+ bool installActionColumnVisible() const;
bool dependsOnLocalInstallerBinary() const;
bool hasReplacementRepos() const;
diff --git a/tests/auto/installer/settings/tst_settings.cpp b/tests/auto/installer/settings/tst_settings.cpp
index 6deea6093..ef1ef5e3b 100644
--- a/tests/auto/installer/settings/tst_settings.cpp
+++ b/tests/auto/installer/settings/tst_settings.cpp
@@ -73,6 +73,7 @@ void tst_Settings::loadTutorialConfig()
QCOMPARE(settings.allowSpaceInPath(), true);
QCOMPARE(settings.allowNonAsciiCharacters(), false);
QCOMPARE(settings.createLocalRepository(), false);
+ QCOMPARE(settings.installActionColumnVisible(), false);
QCOMPARE(settings.hasReplacementRepos(), false);
QCOMPARE(settings.repositories(), QSet<Repository>());