diff options
-rw-r--r-- | doc/installerfw.qdoc | 3 | ||||
-rw-r--r-- | src/libs/installer/component.cpp | 5 | ||||
-rw-r--r-- | src/libs/installer/component_p.cpp | 16 | ||||
-rw-r--r-- | src/libs/installer/component_p.h | 6 | ||||
-rw-r--r-- | src/libs/installer/componentmodel.cpp | 3 | ||||
-rw-r--r-- | src/libs/installer/packagemanagercore_p.cpp | 3 | ||||
-rw-r--r-- | src/libs/installer/packagemanagergui.cpp | 6 | ||||
-rw-r--r-- | src/libs/kdtools/localpackagehub.cpp | 9 | ||||
-rw-r--r-- | src/libs/kdtools/localpackagehub.h | 4 |
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(); |