From c900f7d255aa8fb326cf20f598a5de1a1edbcfe9 Mon Sep 17 00:00:00 2001 From: Chris Rizzitello Date: Sun, 11 Nov 2018 16:02:08 -0500 Subject: 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 --- src/dolphinmainwindow.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/dolphinmainwindow.cpp') diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index b14f5289c..3ff2ad1e9 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -1335,6 +1335,20 @@ void DolphinMainWindow::setupDockWidgets() this, &DolphinMainWindow::slotStorageTearDownExternallyRequested); m_tabWidget->slotPlacesPanelVisibilityChanged(m_placesPanel->isVisible()); + auto actionShowAllPlaces = new QAction(QIcon::fromTheme(QStringLiteral("hint")), i18nc("@item:inmenu", "Show Hidden Places"), this); + actionShowAllPlaces->setCheckable(true); + actionShowAllPlaces->setDisabled(true); + + connect(actionShowAllPlaces, &QAction::triggered, this, [actionShowAllPlaces, this](bool checked){ + actionShowAllPlaces->setIcon(QIcon::fromTheme(checked ? QStringLiteral("visibility") : QStringLiteral("hint"))); + m_placesPanel->showHiddenEntries(checked); + }); + + connect(m_placesPanel, &PlacesPanel::showHiddenEntriesChanged, this, [actionShowAllPlaces] (bool checked){ + actionShowAllPlaces->setChecked(checked); + actionShowAllPlaces->setIcon(QIcon::fromTheme(checked ? QStringLiteral("visibility") : QStringLiteral("hint"))); + }); + // Add actions into the "Panels" menu KActionMenu* panelsMenu = new KActionMenu(i18nc("@action:inmenu View", "Panels"), this); actionCollection()->addAction(QStringLiteral("panels"), panelsMenu); @@ -1347,7 +1361,12 @@ void DolphinMainWindow::setupDockWidgets() panelsMenu->addAction(ac->action(QStringLiteral("show_folders_panel"))); panelsMenu->addAction(ac->action(QStringLiteral("show_terminal_panel"))); panelsMenu->addSeparator(); + panelsMenu->addAction(actionShowAllPlaces); panelsMenu->addAction(lockLayoutAction); + + connect(panelsMenu->menu(), &QMenu::aboutToShow, this, [actionShowAllPlaces, this]{ + actionShowAllPlaces->setEnabled(m_placesPanel->hiddenListCount()); + }); } void DolphinMainWindow::updateEditActions() -- cgit v1.3