D8367: Hidding place groups implementation in KFilePlacesModel
Milian Wolff
noreply at phabricator.kde.org
Wed Nov 15 10:56:36 UTC 2017
mwolff requested changes to this revision.
mwolff added inline comments.
This revision now requires changes to proceed.
INLINE COMMENTS
> kfileplacesmodel.cpp:70
> + {
> + { KFilePlacesModel::PlacesType, QStringLiteral("GroupState-Places-IsHidden") },
> + { KFilePlacesModel::RecentlySavedType, QStringLiteral("GroupState-RecentlySaved-IsHidden") },
instead of a global static and hash, why not simply do the mapping in a function with a simple switch statement?
namespace {
QString stateNameForGroupType(KFilePlacesModel::GroupType type)
{
switch (type) {
case KFilePlacesModel::PlacesType:
return QStringLiteral("GroupState-Places-IsHidden");
...
}
Q_UNREACHABLE();
}
}
> kfileplacesmodel.cpp:127
>
> + const bool areGroupsHiddenByDefault = false;
> +
why not hardcode this below? we will never hide them by default, will we?
> kfileplacesmodel.cpp:164
>
> + root.setMetaDataItem(s_groupTypeToStateName->value(PlacesType), (areGroupsHiddenByDefault ? QStringLiteral("true") : QStringLiteral("false")));
> + root.setMetaDataItem(s_groupTypeToStateName->value(DevicesType), (areGroupsHiddenByDefault ? QStringLiteral("true") : QStringLiteral("false")));
introduce a helper lambda for this to share duplicate code
> kfileplacesmodel.cpp:532
>
> +static const QHash<KFilePlacesModel::GroupType, bool> groupStateHidden(const KBookmark rootBookmark)
> +{
misnomer? I'd rename this function to `hiddenGroups`
also, take the rootBookmark by `const &`?
actually, remove this whole function and instead introduce a `bool isGroupHidden(KFilePlacesModel::GroupType)` helper function, see also below
> kfileplacesmodel.cpp:596
> }
> + // we make sure an item within a hidden group remains hidden too
> + const QHash<GroupType, bool> groupStates = groupStateHidden(root);
why is this needed? i.e. doesn't this mean that once I unhide the group, all child items are still hidden? or what happens when I hide an item, then its group, and then unhide its group - will the item remain hidden or not?
is this b/c the file items don't build a tree with their groups, but rather just a list? a comment would be useful
> kfileplacesmodel.cpp:878
>
> - bookmark.setMetaDataItem(QStringLiteral("IsHidden"), (hidden ? QStringLiteral("true") : QStringLiteral("false")));
> + const QHash<GroupType, bool> gpStateHidden = groupStateHidden(d->bookmarkManager->root());
> + const bool hidingChildOnShownParent = hidden && !gpStateHidden.value(item->groupType());
this is overkill, what you want is only a
const bool isGroupHidden = ::isGrouphidden(item->groupType());
const bool hidingChildOnShownParent = hidden && !isGroupHidden;
const bool showingChildOnShownParent = !hidden && !isGroupHidden;
REVISION DETAIL
https://phabricator.kde.org/D8367
To: mlaurent, renatoo, ngraham, franckarrecot, ervin, mwolff
Cc: mwolff, ngraham, mlaurent, #frameworks
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20171115/2d9d0d6a/attachment-0001.html>
More information about the Kde-frameworks-devel
mailing list