diff options
| author | Chris Rizzitello <[email protected]> | 2018-11-11 16:02:08 -0500 |
|---|---|---|
| committer | Chris Rizzitello <[email protected]> | 2018-11-17 08:38:39 -0500 |
| commit | c900f7d255aa8fb326cf20f598a5de1a1edbcfe9 (patch) | |
| tree | 0039c975ddacc767e86f0ed9ad464fed63751b52 /src/panels/places/placespanel.cpp | |
| parent | a4cddf7517dab5f666f1c1ede2a58900f3bc5e53 (diff) | |
Improve Ux for the places panel's hidden items
Summary:
BUG: 400860
FIXED-IN: 18.12.0
Clean up the context menu for the places panel.
- Change Text "Show All Entries" -> "Show Hidden Places"
- Use State dependent icon (like hidden files)
- Disable instead of hide if not places are hidden.
- Toggle to unchecked if last item of group is unhidden.
Create a copy of this "Show Hidden Places" entry in the main dolphin menu View->Places.
Test Plan:
With Hidden Places
{F6398756}
{F6398759}
Context Menu:
{F6398762}
{F6398761}
Without Hidden Places.
{F6414694}
{F6414696}
Reviewers: #dolphin, #vdg, elvisangelaccio, ngraham
Reviewed By: #dolphin, #vdg, elvisangelaccio, ngraham
Subscribers: cfeck, elvisangelaccio, veqz, davidc, ngraham, kfm-devel
Tags: #dolphin
Maniphest Tasks: T8349
Differential Revision: https://phabricator.kde.org/D16767
Diffstat (limited to 'src/panels/places/placespanel.cpp')
| -rw-r--r-- | src/panels/places/placespanel.cpp | 33 |
1 files changed, 26 insertions, 7 deletions
diff --git a/src/panels/places/placespanel.cpp b/src/panels/places/placespanel.cpp index 7b4900f7c..1a8b0ecd4 100644 --- a/src/panels/places/placespanel.cpp +++ b/src/panels/places/placespanel.cpp @@ -258,6 +258,9 @@ void PlacesPanel::slotItemContextMenuRequested(int index, const QPointF& pos) m_model->deleteItem(index); } else if (action == hideAction) { item->setHidden(hideAction->isChecked()); + if (!m_model->hiddenCount()) { + showHiddenEntries(false); + } } else if (action == openInNewWindowAction) { Dolphin::openNewWindow({KFilePlacesModel::convertedUrl(m_model->data(index).value("url").toUrl())}, this); } else if (action == openInNewTabAction) { @@ -287,12 +290,11 @@ void PlacesPanel::slotViewContextMenuRequested(const QPointF& pos) QAction* addAction = menu.addAction(QIcon::fromTheme(QStringLiteral("document-new")), i18nc("@item:inmenu", "Add Entry...")); - QAction* showAllAction = nullptr; - if (m_model->hiddenCount() > 0) { - showAllAction = menu.addAction(QIcon::fromTheme(QStringLiteral("visibility")), i18nc("@item:inmenu", "Show All Entries")); - showAllAction->setCheckable(true); - showAllAction->setChecked(m_model->hiddenItemsShown()); - } + QAction* showAllAction = menu.addAction(i18nc("@item:inmenu", "Show Hidden Places")); + showAllAction->setCheckable(true); + showAllAction->setChecked(m_model->hiddenItemsShown()); + showAllAction->setIcon(QIcon::fromTheme(m_model->hiddenItemsShown() ? QStringLiteral("visibility") : QStringLiteral("hint"))); + showAllAction->setEnabled(m_model->hiddenCount()); buildGroupContextMenu(&menu, m_controller->indexCloseToMousePressedPosition()); @@ -340,7 +342,7 @@ void PlacesPanel::slotViewContextMenuRequested(const QPointF& pos) if (action == addAction) { addEntry(); } else if (action == showAllAction) { - m_model->setHiddenItemsShown(showAllAction->isChecked()); + showHiddenEntries(showAllAction->isChecked()); } else if (iconSizeActionMap.contains(action)) { m_view->setIconSize(iconSizeActionMap.value(action)); } @@ -362,6 +364,9 @@ QAction *PlacesPanel::buildGroupContextMenu(QMenu *menu, int index) connect(hideGroupAction, &QAction::triggered, this, [this, groupType, hideGroupAction]{ m_model->setGroupHidden(groupType, hideGroupAction->isChecked()); + if (!m_model->hiddenCount()) { + showHiddenEntries(false); + } }); return hideGroupAction; @@ -541,3 +546,17 @@ void PlacesPanel::triggerItem(int index, Qt::MouseButton button) } } } + +void PlacesPanel::showHiddenEntries(bool shown) +{ + m_model->setHiddenItemsShown(shown); + emit showHiddenEntriesChanged(shown); +} + +int PlacesPanel::hiddenListCount() +{ + if(!m_model) { + return 0; + } + return m_model->hiddenCount(); +} |
