+
+ KUrlNavigator* navigator = m_activeViewContainer->urlNavigator();
+ if (navigator->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();
+ }
+}
+
+void DolphinMainWindow::openNewTab(const KUrl& url)
+{
+ if (m_viewTab.count() == 1) {
+ // Only one view is open currently and hence no tab is shown at
+ // all. Before creating a tab for 'url', provide a tab for the current URL.
+ m_tabBar->addTab(KIcon("folder"), tabName(m_activeViewContainer->url()));
+ m_tabBar->blockSignals(false);
+ }
+
+ m_tabBar->addTab(KIcon("folder"), tabName(url));
+
+ ViewTab viewTab;
+ viewTab.splitter = new QSplitter(this);
+ viewTab.primaryView = new DolphinViewContainer(this, viewTab.splitter, url);
+ viewTab.primaryView->setActive(false);
+ connectViewSignals(viewTab.primaryView);
+ viewTab.primaryView->view()->reload();
+
+ m_viewTab.append(viewTab);
+
+ actionCollection()->action("close_tab")->setEnabled(true);
+
+ // provide a split view, if the startup settings are set this way
+ const GeneralSettings* generalSettings = DolphinSettings::instance().generalSettings();
+ if (generalSettings->splitView()) {
+ const int tabIndex = m_viewTab.count() - 1;
+ createSecondaryView(tabIndex);
+ m_viewTab[tabIndex].secondaryView->setActive(true);
+ m_viewTab[tabIndex].isPrimaryViewActive = false;
+ }
+}
+
+void DolphinMainWindow::activateNextTab()
+{
+ if (m_viewTab.count() == 1 || m_tabBar->count() < 2) {
+ return;
+ }
+
+ const int tabIndex = (m_tabBar->currentIndex() + 1) % m_tabBar->count();
+ m_tabBar->setCurrentIndex(tabIndex);
+}
+
+void DolphinMainWindow::activatePrevTab()
+{
+ if (m_viewTab.count() == 1 || m_tabBar->count() < 2) {
+ return;
+ }
+
+ int tabIndex = m_tabBar->currentIndex() - 1;
+ if (tabIndex == -1) {
+ tabIndex = m_tabBar->count() - 1;
+ }
+ m_tabBar->setCurrentIndex(tabIndex);
+}
+
+void DolphinMainWindow::openInNewTab()
+{
+ const KFileItemList list = m_activeViewContainer->view()->selectedItems();
+ if ((list.count() == 1) && list[0].isDir()) {
+ openNewTab(m_activeViewContainer->view()->selectedUrls()[0]);
+ }
+}
+
+void DolphinMainWindow::openInNewWindow()
+{
+ const KFileItemList list = m_activeViewContainer->view()->selectedItems();
+ if ((list.count() == 1) && list[0].isDir()) {
+ DolphinMainWindow* window = DolphinApplication::app()->createMainWindow();
+ window->changeUrl(m_activeViewContainer->view()->selectedUrls()[0]);
+ window->show();
+ }