┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMéven Car <[email protected]>2023-10-24 13:44:49 +0200
committerMéven Car <[email protected]>2023-10-25 10:05:20 +0000
commit12162850ff9f794e14e07ade3f28bfb0dc50d6d6 (patch)
treee1d5b02829304ec67772fa033345f9cf57f8e3db /src
parent1826f905d706925456763394de17294bcb6d1c35 (diff)
Panel: fix actions and shortcuts to toggle their visibility
Diffstat (limited to 'src')
-rw-r--r--src/dolphinmainwindow.cpp25
-rw-r--r--src/dolphinmainwindow.h6
2 files changed, 11 insertions, 20 deletions
diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp
index 27e4d2381..0d31df2da 100644
--- a/src/dolphinmainwindow.cpp
+++ b/src/dolphinmainwindow.cpp
@@ -2062,8 +2062,7 @@ void DolphinMainWindow::setupDockWidgets()
connect(infoPanel, &InformationPanel::urlActivated, this, &DolphinMainWindow::handleUrl);
infoDock->setWidget(infoPanel);
- QAction *infoAction = infoDock->toggleViewAction();
- createPanelAction(QIcon::fromTheme(QStringLiteral("dialog-information")), Qt::Key_F11, infoAction, QStringLiteral("show_information_panel"));
+ createPanelAction(QIcon::fromTheme(QStringLiteral("dialog-information")), Qt::Key_F11, infoDock, QStringLiteral("show_information_panel"));
addDockWidget(Qt::RightDockWidgetArea, infoDock);
connect(this, &DolphinMainWindow::urlChanged, infoPanel, &InformationPanel::setUrl);
@@ -2106,8 +2105,7 @@ void DolphinMainWindow::setupDockWidgets()
foldersPanel->setCustomContextMenuActions({lockLayoutAction});
foldersDock->setWidget(foldersPanel);
- QAction *foldersAction = foldersDock->toggleViewAction();
- createPanelAction(QIcon::fromTheme(QStringLiteral("folder")), Qt::Key_F7, foldersAction, QStringLiteral("show_folders_panel"));
+ createPanelAction(QIcon::fromTheme(QStringLiteral("folder")), Qt::Key_F7, foldersDock, QStringLiteral("show_folders_panel"));
addDockWidget(Qt::LeftDockWidgetArea, foldersDock);
connect(this, &DolphinMainWindow::urlChanged, foldersPanel, &FoldersPanel::setUrl);
@@ -2146,8 +2144,7 @@ void DolphinMainWindow::setupDockWidgets()
connect(terminalDock, &DolphinDockWidget::visibilityChanged, m_terminalPanel, &TerminalPanel::dockVisibilityChanged);
connect(terminalDock, &DolphinDockWidget::visibilityChanged, this, &DolphinMainWindow::slotTerminalPanelVisibilityChanged);
- QAction *terminalAction = terminalDock->toggleViewAction();
- createPanelAction(QIcon::fromTheme(QStringLiteral("dialog-scripts")), Qt::Key_F4, terminalAction, QStringLiteral("show_terminal_panel"));
+ createPanelAction(QIcon::fromTheme(QStringLiteral("dialog-scripts")), Qt::Key_F4, terminalDock, QStringLiteral("show_terminal_panel"));
addDockWidget(Qt::BottomDockWidgetArea, terminalDock);
connect(this, &DolphinMainWindow::urlChanged, m_terminalPanel, &TerminalPanel::setUrl);
@@ -2193,8 +2190,7 @@ void DolphinMainWindow::setupDockWidgets()
m_placesPanel->setCustomContextMenuActions({lockLayoutAction});
placesDock->setWidget(m_placesPanel);
- QAction *placesAction = placesDock->toggleViewAction();
- createPanelAction(QIcon::fromTheme(QStringLiteral("compass")), Qt::Key_F9, placesAction, QStringLiteral("show_places_panel"));
+ createPanelAction(QIcon::fromTheme(QStringLiteral("compass")), Qt::Key_F9, placesDock, QStringLiteral("show_places_panel"));
addDockWidget(Qt::LeftDockWidgetArea, placesDock);
connect(m_placesPanel, &PlacesPanel::placeActivated, this, &DolphinMainWindow::slotPlaceActivated);
@@ -2490,19 +2486,16 @@ bool DolphinMainWindow::isKompareInstalled() const
return installed;
}
-void DolphinMainWindow::createPanelAction(const QIcon &icon, const QKeySequence &shortcut, QAction *dockAction, const QString &actionName)
+void DolphinMainWindow::createPanelAction(const QIcon &icon, const QKeySequence &shortcut, QDockWidget *dockWidget, const QString &actionName)
{
- QAction *panelAction = actionCollection()->addAction(actionName);
- panelAction->setCheckable(true);
- panelAction->setChecked(dockAction->isChecked());
- panelAction->setText(dockAction->text());
- panelAction->setIcon(icon);
+ auto dockAction = dockWidget->toggleViewAction();
dockAction->setIcon(icon);
dockAction->setEnabled(true);
+
+ QAction *panelAction = actionCollection()->addAction(actionName, dockAction);
actionCollection()->setDefaultShortcut(panelAction, shortcut);
- connect(panelAction, &QAction::triggered, dockAction, &QAction::trigger);
- connect(dockAction, &QAction::toggled, panelAction, &QAction::setChecked);
+ connect(panelAction, &QAction::toggled, dockWidget, &QWidget::setVisible);
}
// clang-format off
void DolphinMainWindow::setupWhatsThis()
diff --git a/src/dolphinmainwindow.h b/src/dolphinmainwindow.h
index b45c846b8..551e28192 100644
--- a/src/dolphinmainwindow.h
+++ b/src/dolphinmainwindow.h
@@ -659,11 +659,9 @@ private:
/**
* Creates an action for showing/hiding a panel, that is accessible
- * in "Configure toolbars..." and "Configure shortcuts...". This is necessary
- * as the action for toggling the dock visibility is done by Qt which
- * is no KAction instance.
+ * in "Configure toolbars..." and "Configure shortcuts...".
*/
- void createPanelAction(const QIcon &icon, const QKeySequence &shortcut, QAction *dockAction, const QString &actionName);
+ void createPanelAction(const QIcon &icon, const QKeySequence &shortcut, QDockWidget *dockAction, const QString &actionName);
/** Adds "What's This?" texts to many widgets and StandardActions. */
void setupWhatsThis();