summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/installerfw.qdoc3
-rw-r--r--src/libs/installer/component.cpp5
-rw-r--r--src/libs/installer/component_p.cpp16
-rw-r--r--src/libs/installer/component_p.h6
-rw-r--r--src/libs/installer/componentmodel.cpp3
-rw-r--r--src/libs/installer/packagemanagercore_p.cpp3
-rw-r--r--src/libs/installer/packagemanagergui.cpp6
-rw-r--r--src/libs/kdtools/localpackagehub.cpp9
-rw-r--r--src/libs/kdtools/localpackagehub.h4
9 files changed, 51 insertions, 4 deletions
diff --git a/doc/installerfw.qdoc b/doc/installerfw.qdoc
index 2edd4358c..e65deb055 100644
--- a/doc/installerfw.qdoc
+++ b/doc/installerfw.qdoc
@@ -691,6 +691,9 @@
\li Checkable
\li Set to \c false if you want to hide the checkbox for an item. This is useful
when only a few subcomponents should be selected instead of all. Optional.
+ \row
+ \li ExpandedByDefault
+ \li Set to \c true if you want this item to be expanded by default. Optional.
\endtable
diff --git a/src/libs/installer/component.cpp b/src/libs/installer/component.cpp
index 5f2fe9fbc..9be2357cd 100644
--- a/src/libs/installer/component.cpp
+++ b/src/libs/installer/component.cpp
@@ -66,6 +66,7 @@ static const QLatin1String scUninstalled("Uninstalled");
static const QLatin1String scCurrentState("CurrentState");
static const QLatin1String scForcedInstallation("ForcedInstallation");
static const QLatin1String scCheckable("Checkable");
+static const QLatin1String scExpandedByDefault("ExpandedByDefault");
/*!
\inmodule QtInstallerFramework
@@ -262,6 +263,7 @@ void Component::loadDataFromPackage(const KDUpdater::LocalPackage &package)
setValue(scVirtual, package.virtualComp ? scTrue : scFalse);
setValue(scCurrentState, scInstalled);
setValue(scCheckable, package.checkable ? scTrue : scFalse);
+ setValue(scExpandedByDefault, package.expandedByDefault ? scTrue : scFalse);
}
/*!
@@ -295,6 +297,7 @@ void Component::loadDataFromPackage(const Package &package)
setValue(scReplaces, package.data(scReplaces).toString());
setValue(scReleaseDate, package.data(scReleaseDate).toString());
setValue(scCheckable, package.data(scCheckable).toString());
+ setValue(scExpandedByDefault, package.data(scExpandedByDefault).toString());
QString forced = package.data(scForcedInstallation, scFalse).toString().toLower();
if (PackageManagerCore::noForceInstallation())
@@ -388,6 +391,8 @@ void Component::setValue(const QString &key, const QString &value)
d->m_componentName = normalizedValue;
if (key == scCheckable)
this->setCheckable(normalizedValue.toLower() == scTrue);
+ if (key == scExpandedByDefault)
+ this->setExpandedByDefault(normalizedValue.toLower() == scTrue);
d->m_vars[key] = normalizedValue;
emit valueChanged(key, normalizedValue);
diff --git a/src/libs/installer/component_p.cpp b/src/libs/installer/component_p.cpp
index 4bf2a4754..5f44f83a4 100644
--- a/src/libs/installer/component_p.cpp
+++ b/src/libs/installer/component_p.cpp
@@ -198,6 +198,22 @@ void ComponentModelHelper::setSelectable(bool selectable)
changeFlags(selectable, Qt::ItemIsSelectable);
}
+/*!
+ Returns whether the component is expanded by default. The default value is \c false.
+*/
+bool ComponentModelHelper::isExpandedByDefault() const
+{
+ return data(ComponentModelHelper::ExpandedByDefault).value<bool>();
+}
+
+/*!
+ Sets whether the component is expanded by default. The default value is \c false.
+*/
+void ComponentModelHelper::setExpandedByDefault(bool expandedByDefault)
+{
+ setData(QVariant::fromValue<bool>(expandedByDefault), ComponentModelHelper::ExpandedByDefault);
+}
+
ComponentModelHelper::InstallAction ComponentModelHelper::installAction() const
{
return data(ComponentModelHelper::Action).value<ComponentModelHelper::InstallAction>();
diff --git a/src/libs/installer/component_p.h b/src/libs/installer/component_p.h
index 9a5d0fd20..60cbd8075 100644
--- a/src/libs/installer/component_p.h
+++ b/src/libs/installer/component_p.h
@@ -91,7 +91,8 @@ public:
LocalDisplayVersion,
RemoteDisplayVersion,
ReleaseDate,
- UncompressedSize
+ UncompressedSize,
+ ExpandedByDefault
};
enum InstallAction {
@@ -129,6 +130,9 @@ public:
bool isSelectable() const;
void setSelectable(bool selectable);
+ bool isExpandedByDefault() const;
+ void setExpandedByDefault(bool expandedByDefault);
+
InstallAction installAction() const;
void setInstallAction(InstallAction action);
diff --git a/src/libs/installer/componentmodel.cpp b/src/libs/installer/componentmodel.cpp
index e0cc3fcd8..0f8a47c38 100644
--- a/src/libs/installer/componentmodel.cpp
+++ b/src/libs/installer/componentmodel.cpp
@@ -227,6 +227,9 @@ QVariant ComponentModel::data(const QModelIndex &index, int role) const
if (!component->autoDependencies().isEmpty())
return QVariant();
}
+ if (role == ComponentModelHelper::ExpandedByDefault) {
+ return component->isExpandedByDefault();
+ }
return component->data(role);
}
return QVariant();
diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp
index ef288c1f2..fb1082294 100644
--- a/src/libs/installer/packagemanagercore_p.cpp
+++ b/src/libs/installer/packagemanagercore_p.cpp
@@ -1931,7 +1931,8 @@ void PackageManagerCorePrivate::installComponent(Component *component, double pr
component->isVirtual(),
component->value(scUncompressedSize).toULongLong(),
component->value(scInheritVersion),
- component->isCheckable());
+ component->isCheckable(),
+ component->isExpandedByDefault());
m_localPackageHub->writeToDisk();
component->setInstalled();
diff --git a/src/libs/installer/packagemanagergui.cpp b/src/libs/installer/packagemanagergui.cpp
index 27bf91dc6..287bf7d38 100644
--- a/src/libs/installer/packagemanagergui.cpp
+++ b/src/libs/installer/packagemanagergui.cpp
@@ -1981,6 +1981,12 @@ public:
m_currentModel = m_core->isUpdater() ? m_updaterModel : m_allModel;
m_treeView->setModel(m_currentModel);
m_treeView->setExpanded(m_currentModel->index(0, 0), true);
+ foreach (Component *component, m_core->components(PackageManagerCore::ComponentType::All)) {
+ if (component->isExpandedByDefault()) {
+ const QModelIndex index = m_currentModel->indexFromComponentName(component->name());
+ m_treeView->setExpanded(index, true);
+ }
+ }
const bool installActionColumnVisible = m_core->settings().installActionColumnVisible();
if (!installActionColumnVisible)
diff --git a/src/libs/kdtools/localpackagehub.cpp b/src/libs/kdtools/localpackagehub.cpp
index 6ac3da803..11ff36a88 100644
--- a/src/libs/kdtools/localpackagehub.cpp
+++ b/src/libs/kdtools/localpackagehub.cpp
@@ -322,7 +322,8 @@ void LocalPackageHub::addPackage(const QString &name,
bool virtualComp,
quint64 uncompressedSize,
const QString &inheritVersionFrom,
- bool checkable)
+ bool checkable,
+ bool expandedByDefault)
{
// TODO: This somewhat unexpected, remove?
if (d->m_packageInfoMap.contains(name)) {
@@ -343,6 +344,7 @@ void LocalPackageHub::addPackage(const QString &name,
info.virtualComp = virtualComp;
info.uncompressedSize = uncompressedSize;
info.checkable = checkable;
+ info.expandedByDefault = expandedByDefault;
d->m_packageInfoMap.insert(name, info);
}
d->modified = true;
@@ -416,6 +418,8 @@ void LocalPackageHub::writeToDisk()
addTextChildHelper(&package, QLatin1String("Virtual"), QLatin1String("true"));
if (info.checkable)
addTextChildHelper(&package, QLatin1String("Checkable"), QLatin1String("true"));
+ if (info.expandedByDefault)
+ addTextChildHelper(&package, QLatin1String("ExpandedByDefault"), QLatin1String("true"));
root.appendChild(package);
}
@@ -444,6 +448,7 @@ void LocalPackageHub::PackagesInfoData::addPackageFrom(const QDomElement &packag
info.forcedInstallation = false;
info.virtualComp = false;
info.checkable = false;
+ info.expandedByDefault = false;
for (int i = 0; i < childNodes.count(); i++) {
QDomNode childNode = childNodes.item(i);
QDomElement childNodeE = childNode.toElement();
@@ -478,6 +483,8 @@ void LocalPackageHub::PackagesInfoData::addPackageFrom(const QDomElement &packag
info.installDate = QDate::fromString(childNodeE.text(), Qt::ISODate);
else if (childNodeE.tagName() == QLatin1String("Checkable"))
info.checkable = childNodeE.text().toLower() == QLatin1String("true") ? true : false;
+ else if (childNodeE.tagName() == QLatin1String("ExpandedByDefault"))
+ info.expandedByDefault = childNodeE.text().toLower() == QLatin1String("true") ? true : false;
}
m_packageInfoMap.insert(info.name, info);
}
diff --git a/src/libs/kdtools/localpackagehub.h b/src/libs/kdtools/localpackagehub.h
index f5c7b7623..7a067e73e 100644
--- a/src/libs/kdtools/localpackagehub.h
+++ b/src/libs/kdtools/localpackagehub.h
@@ -53,6 +53,7 @@ struct KDTOOLS_EXPORT LocalPackage
bool virtualComp;
quint64 uncompressedSize;
bool checkable;
+ bool expandedByDefault;
};
class KDTOOLS_EXPORT LocalPackageHub
@@ -104,7 +105,8 @@ public:
bool virtualComp,
quint64 uncompressedSize,
const QString &inheritVersionFrom,
- bool checkable);
+ bool checkable,
+ bool expandedByDefault);
bool removePackage(const QString &pkgName);
void refresh();