X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/fa24cc8e115e785cc02d0d3d3bf0c1574c783f63..87cd992e85effd14938f67c0671ef2e7cb93a8a7:/src/dolphinmainwindow.cpp diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index da4cab597..5f44249b7 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -52,6 +52,7 @@ #include #include +#include #include #include #include @@ -387,12 +388,18 @@ void DolphinMainWindow::openNewMainWindow() void DolphinMainWindow::openNewTab() { + const bool isUrlEditable = m_activeViewContainer->urlNavigator()->isUrlEditable(); + openNewTab(m_activeViewContainer->url()); m_tabBar->setCurrentIndex(m_viewTab.count() - 1); + // The URL navigator of the new tab should have the same editable state + // as the current tab KUrlNavigator* navigator = m_activeViewContainer->urlNavigator(); - if (navigator->isUrlEditable()) { - // if a new tab is opened and the URL is editable, assure that + navigator->setUrlEditable(isUrlEditable); + + if (isUrlEditable) { + // If a new tab is opened and the URL is editable, assure that // the user can edit the URL without manually setting the focus navigator->setFocus(); } @@ -1495,17 +1502,23 @@ void DolphinMainWindow::setupActions() KStandardAction::preferences(this, SLOT(editSettings()), actionCollection()); // not in menu actions + QList nextTabKeys; + nextTabKeys.append(KStandardShortcut::tabNext().primary()); + nextTabKeys.append(QKeySequence(Qt::CTRL + Qt::Key_Tab)); + + QList prevTabKeys; + prevTabKeys.append(KStandardShortcut::tabPrev().primary()); + prevTabKeys.append(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_Tab)); + KAction* activateNextTab = actionCollection()->addAction("activate_next_tab"); activateNextTab->setText(i18nc("@action:inmenu", "Activate Next Tab")); connect(activateNextTab, SIGNAL(triggered()), SLOT(activateNextTab())); - activateNextTab->setShortcuts(QApplication::isRightToLeft() ? KStandardShortcut::tabPrev() : - KStandardShortcut::tabNext()); + activateNextTab->setShortcuts(QApplication::isRightToLeft() ? prevTabKeys : nextTabKeys); KAction* activatePrevTab = actionCollection()->addAction("activate_prev_tab"); activatePrevTab->setText(i18nc("@action:inmenu", "Activate Previous Tab")); connect(activatePrevTab, SIGNAL(triggered()), SLOT(activatePrevTab())); - activatePrevTab->setShortcuts(QApplication::isRightToLeft() ? KStandardShortcut::tabNext() : - KStandardShortcut::tabPrev()); + activatePrevTab->setShortcuts(QApplication::isRightToLeft() ? nextTabKeys : prevTabKeys); // for context menu KAction* openInNewTab = actionCollection()->addAction("open_in_new_tab"); @@ -1539,12 +1552,9 @@ void DolphinMainWindow::setupDockWidgets() connect(infoPanel, SIGNAL(urlActivated(KUrl)), this, SLOT(handleUrl(KUrl))); infoDock->setWidget(infoPanel); - KAction* infoAction = new KAction(this); - infoAction->setText(i18nc("@title:window", "Information")); - infoAction->setShortcut(Qt::Key_F11); + QAction* infoAction = infoDock->toggleViewAction(); infoAction->setIcon(KIcon("dialog-information")); - actionCollection()->addAction("show_info_panel", infoAction); - connect(infoAction, SIGNAL(triggered()), infoDock->toggleViewAction(), SLOT(trigger())); + infoAction->setShortcut(Qt::Key_F11); addDockWidget(Qt::RightDockWidgetArea, infoDock); connect(this, SIGNAL(urlChanged(KUrl)), @@ -1561,12 +1571,9 @@ void DolphinMainWindow::setupDockWidgets() FoldersPanel* foldersPanel = new FoldersPanel(foldersDock); foldersDock->setWidget(foldersPanel); - KAction* foldersAction = new KAction(this); - foldersAction->setText(i18nc("@title:window", "Folders")); + QAction* foldersAction = foldersDock->toggleViewAction(); foldersAction->setShortcut(Qt::Key_F7); foldersAction->setIcon(KIcon("folder")); - actionCollection()->addAction("show_folders_panel", foldersAction); - connect(foldersAction, SIGNAL(triggered()), foldersDock->toggleViewAction(), SLOT(trigger())); addDockWidget(Qt::LeftDockWidgetArea, foldersDock); connect(this, SIGNAL(urlChanged(KUrl)), @@ -1584,12 +1591,9 @@ void DolphinMainWindow::setupDockWidgets() connect(terminalPanel, SIGNAL(hideTerminalPanel()), terminalDock, SLOT(hide())); - KAction* terminalAction = new KAction(this); - terminalAction->setText(i18nc("@title:window Shell terminal", "Terminal")); + QAction* terminalAction = terminalDock->toggleViewAction(); terminalAction->setShortcut(Qt::Key_F4); terminalAction->setIcon(KIcon("utilities-terminal")); - actionCollection()->addAction("show_terminal_panel", terminalAction); - connect(terminalAction, SIGNAL(triggered()), terminalDock->toggleViewAction(), SLOT(trigger())); addDockWidget(Qt::BottomDockWidgetArea, terminalDock); connect(this, SIGNAL(urlChanged(KUrl)), @@ -1614,18 +1618,25 @@ void DolphinMainWindow::setupDockWidgets() placesPanel->setModel(DolphinSettings::instance().placesModel()); placesPanel->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - KAction* placesAction = new KAction(this); - placesAction->setText(i18nc("@title:window", "Places")); + QAction* placesAction = placesDock->toggleViewAction(); placesAction->setShortcut(Qt::Key_F9); placesAction->setIcon(KIcon("bookmarks")); - actionCollection()->addAction("show_places_panel", placesAction); - connect(placesAction, SIGNAL(triggered()), placesDock->toggleViewAction(), SLOT(trigger())); addDockWidget(Qt::LeftDockWidgetArea, placesDock); connect(placesPanel, SIGNAL(urlChanged(KUrl, Qt::MouseButtons)), this, SLOT(handlePlacesClick(KUrl, Qt::MouseButtons))); connect(this, SIGNAL(urlChanged(KUrl)), placesPanel, SLOT(setUrl(KUrl))); + + KActionMenu* panelsMenu = new KActionMenu(i18nc("@action:inmenu File", "Panels"), this); + actionCollection()->addAction("panels", panelsMenu); + panelsMenu->setDelayed(false); + panelsMenu->addAction(placesAction); + panelsMenu->addAction(infoAction); + panelsMenu->addAction(foldersAction); +#ifndef Q_OS_WIN + panelsMenu->addAction(terminalAction); +#endif } void DolphinMainWindow::updateEditActions()