X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/4d81aabd1ee78c2fca61452ef3a866cfad0c88a5..37a98417cd64008b63b95b80ecbedc84d487bd25:/src/dolphintabwidget.cpp diff --git a/src/dolphintabwidget.cpp b/src/dolphintabwidget.cpp index 5a9007012..04653f33c 100644 --- a/src/dolphintabwidget.cpp +++ b/src/dolphintabwidget.cpp @@ -210,13 +210,7 @@ void DolphinTabWidget::openDirectories(const QList& dirs, bool splitView) // activate it instead of opening a new tab if (alreadyOpenDirectory.has_value()) { somethingWasAlreadyOpen = true; - activateTab(alreadyOpenDirectory->tabIndex); - const auto tabPage = tabPageAt(alreadyOpenDirectory->tabIndex); - if (alreadyOpenDirectory->isInPrimaryView) { - tabPage->primaryViewContainer()->setActive(true); - } else { - tabPage->secondaryViewContainer()->setActive(true); - } + activateViewContainerAt(alreadyOpenDirectory.value()); } else if (splitView && (it != dirs.constEnd())) { const QUrl& secondaryUrl = *(it++); if (somethingWasAlreadyOpen) { @@ -252,14 +246,8 @@ void DolphinTabWidget::openFiles(const QList& files, bool splitView) // We also make sure the view will be activated. auto viewIndex = viewShowingItem(file); if (viewIndex.has_value()) { - activateTab(viewIndex->tabIndex); - if (viewIndex->isInPrimaryView) { - tabPageAt(viewIndex->tabIndex)->primaryViewContainer()->view()->clearSelection(); - tabPageAt(viewIndex->tabIndex)->primaryViewContainer()->setActive(true); - } else { - tabPageAt(viewIndex->tabIndex)->secondaryViewContainer()->view()->clearSelection(); - tabPageAt(viewIndex->tabIndex)->secondaryViewContainer()->setActive(true); - } + viewContainerAt(viewIndex.value())->view()->clearSelection(); + activateViewContainerAt(viewIndex.value()); dirsThatWereAlreadyOpen.append(dir); } else { dirsThatNeedToBeOpened.append(dir); @@ -514,6 +502,26 @@ QString DolphinTabWidget::tabName(DolphinTabPage* tabPage) const return name.replace('&', QLatin1String("&&")); } +DolphinViewContainer *DolphinTabWidget::viewContainerAt(DolphinTabWidget::ViewIndex viewIndex) const +{ + const auto tabPage = tabPageAt(viewIndex.tabIndex); + if (!tabPage) { + return nullptr; + } + return viewIndex.isInPrimaryView ? tabPage->primaryViewContainer() : tabPage->secondaryViewContainer(); +} + +DolphinViewContainer *DolphinTabWidget::activateViewContainerAt(DolphinTabWidget::ViewIndex viewIndex) +{ + activateTab(viewIndex.tabIndex); + auto viewContainer = viewContainerAt(viewIndex); + if (!viewContainer) { + return nullptr; + } + viewContainer->setActive(true); + return viewContainer; +} + const std::optional DolphinTabWidget::viewOpenAtDirectory(const QUrl& directory) const { int i = currentIndex();