// shown due to DolphinViewContainer::restoreView().
return;
}
-
+
DolphinViewContainer* view = activeViewContainer();
if (view != 0) {
view->setUrl(url);
{
openNewTab(m_activeViewContainer->url());
m_tabBar->setCurrentIndex(m_viewTab.count() - 1);
+
+ 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)
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()
const KFileItemList list = m_activeViewContainer->view()->selectedItems();
if ((list.count() == 1) && list[0].isDir()) {
openNewTab(m_activeViewContainer->view()->selectedUrls()[0]);
- m_tabBar->setCurrentIndex(m_viewTab.count() - 1);
}
}
void DolphinMainWindow::toggleSplitView()
{
if (m_viewTab[m_tabIndex].secondaryView == 0) {
- // create a secondary view
- QSplitter* splitter = m_viewTab[m_tabIndex].splitter;
- const int newWidth = (m_viewTab[m_tabIndex].primaryView->width() - splitter->handleWidth()) / 2;
-
- const DolphinView* view = m_viewTab[m_tabIndex].primaryView->view();
- m_viewTab[m_tabIndex].secondaryView = new DolphinViewContainer(this, 0, view->rootUrl());
- connectViewSignals(m_viewTab[m_tabIndex].secondaryView);
- splitter->addWidget(m_viewTab[m_tabIndex].secondaryView);
- splitter->setSizes(QList<int>() << newWidth << newWidth);
- m_viewTab[m_tabIndex].secondaryView->view()->reload();
- m_viewTab[m_tabIndex].secondaryView->setActive(false);
- m_viewTab[m_tabIndex].secondaryView->show();
-
+ createSecondaryView(m_tabIndex);
setActiveViewContainer(m_viewTab[m_tabIndex].secondaryView);
} else if (m_activeViewContainer == m_viewTab[m_tabIndex].secondaryView) {
// remove secondary view
}
// hide current tab content
- m_viewTab[m_tabIndex].isPrimaryViewActive = m_viewTab[m_tabIndex].primaryView->isActive();
+ ViewTab& hiddenTab = m_viewTab[m_tabIndex];
+ hiddenTab.isPrimaryViewActive = hiddenTab.primaryView->isActive();
+ hiddenTab.primaryView->setActive(false);
+ if (hiddenTab.secondaryView != 0) {
+ hiddenTab.secondaryView->setActive(false);
+ }
QSplitter* splitter = m_viewTab[m_tabIndex].splitter;
splitter->hide();
m_centralWidgetLayout->removeWidget(splitter);
openInNewTab->setText(i18nc("@action:inmenu", "Open in New Tab"));
openInNewTab->setIcon(KIcon("tab-new"));
connect(openInNewTab, SIGNAL(triggered()), this, SLOT(openInNewTab()));
-
+
KAction* openInNewWindow = actionCollection()->addAction("open_in_new_window");
openInNewWindow->setText(i18nc("@action:inmenu", "Open in New Window"));
openInNewWindow->setIcon(KIcon("window-new"));
return installed;
}
+void DolphinMainWindow::createSecondaryView(int tabIndex)
+{
+ QSplitter* splitter = m_viewTab[tabIndex].splitter;
+ const int newWidth = (m_viewTab[tabIndex].primaryView->width() - splitter->handleWidth()) / 2;
+
+ const DolphinView* view = m_viewTab[tabIndex].primaryView->view();
+ m_viewTab[tabIndex].secondaryView = new DolphinViewContainer(this, 0, view->rootUrl());
+ splitter->addWidget(m_viewTab[tabIndex].secondaryView);
+ splitter->setSizes(QList<int>() << newWidth << newWidth);
+ connectViewSignals(m_viewTab[tabIndex].secondaryView);
+ m_viewTab[tabIndex].secondaryView->view()->reload();
+ m_viewTab[tabIndex].secondaryView->setActive(false);
+ m_viewTab[tabIndex].secondaryView->show();
+}
+
DolphinMainWindow::UndoUiInterface::UndoUiInterface() :
KIO::FileUndoManager::UiInterface()
{