infoDock->setWidget(infoPanel);
QAction* infoAction = infoDock->toggleViewAction();
- infoAction->setIcon(KIcon("dialog-information"));
- infoAction->setShortcut(Qt::Key_F11);
- addActionCloneToCollection(infoAction, "show_information_panel");
+ createPanelAction(KIcon("dialog-information"), Qt::Key_F11, infoAction, "show_information_panel");
addDockWidget(Qt::RightDockWidgetArea, infoDock);
connect(this, SIGNAL(urlChanged(KUrl)),
foldersDock->setWidget(foldersPanel);
QAction* foldersAction = foldersDock->toggleViewAction();
- foldersAction->setShortcut(Qt::Key_F7);
- foldersAction->setIcon(KIcon("folder"));
- addActionCloneToCollection(foldersAction, "show_folders_panel");
+ createPanelAction(KIcon("folder"), Qt::Key_F7, foldersAction, "show_folders_panel");
addDockWidget(Qt::LeftDockWidgetArea, foldersDock);
connect(this, SIGNAL(urlChanged(KUrl)),
terminalPanel, SLOT(dockVisibilityChanged()));
QAction* terminalAction = terminalDock->toggleViewAction();
- terminalAction->setShortcut(Qt::Key_F4);
- terminalAction->setIcon(KIcon("utilities-terminal"));
- addActionCloneToCollection(terminalAction, "show_terminal_panel");
+ createPanelAction(KIcon("utilities-terminal"), Qt::Key_F4, terminalAction, "show_terminal_panel");
addDockWidget(Qt::BottomDockWidgetArea, terminalDock);
connect(this, SIGNAL(urlChanged(KUrl)),
searchDock->setWidget(searchPanel);
QAction* searchAction = searchDock->toggleViewAction();
- searchAction->setShortcut(Qt::Key_F12);
- searchAction->setIcon(KIcon("system-search"));
- addActionCloneToCollection(searchAction, "show_search_panel");
+ createPanelAction(KIcon("system-search"), Qt::Key_F12, searchAction, "show_search_panel");
addDockWidget(Qt::RightDockWidgetArea, searchDock);
connect(this, SIGNAL(urlChanged(KUrl)),
searchPanel, SLOT(setUrl(KUrl)));
placesDock->setWidget(placesPanel);
QAction* placesAction = placesDock->toggleViewAction();
- placesAction->setShortcut(Qt::Key_F9);
- placesAction->setIcon(KIcon("bookmarks"));
- addActionCloneToCollection(placesAction, "show_places_panel");
+ createPanelAction(KIcon("bookmarks"), Qt::Key_F9, placesAction, "show_places_panel");
addDockWidget(Qt::LeftDockWidgetArea, placesDock);
connect(placesPanel, SIGNAL(urlChanged(KUrl,Qt::MouseButtons)),
return fm.elidedText(text, Qt::ElideMiddle, fm.maxWidth() * 10);
}
-void DolphinMainWindow::addActionCloneToCollection(QAction* action, const QString& actionName)
+void DolphinMainWindow::createPanelAction(const KIcon& icon,
+ const QKeySequence& shortcut,
+ QAction* dockAction,
+ const QString& actionName)
{
- KAction* actionClone = actionCollection()->addAction(actionName);
- actionClone->setText(action->text());
- actionClone->setIcon(action->icon());
- connect(actionClone, SIGNAL(triggered()), action, SLOT(trigger()));
+ KAction* panelAction = actionCollection()->addAction(actionName);
+ panelAction->setText(dockAction->text());
+ panelAction->setIcon(icon);
+ panelAction->setShortcut(shortcut);
+
+ dockAction->setIcon(icon);
+ connect(panelAction, SIGNAL(triggered()), dockAction, SLOT(trigger()));
}
DolphinMainWindow::UndoUiInterface::UndoUiInterface() :
QString squeezedText(const QString& text) const;
/**
- * Adds a clone of the action \a action to the action-collection with
- * the name \a actionName, so that the action \a action also can be
- * added to the toolbar by the user. This is useful if the creation of
- * \a action is e.g. done in Qt and hence cannot be added directly
- * to the action-collection.
- */
- void addActionCloneToCollection(QAction* action, const QString& actionName);
+ * 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.
+ */
+ void createPanelAction(const KIcon& icon,
+ const QKeySequence& shortcut,
+ QAction* dockAction,
+ const QString& actionName);
private:
/**