┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/dolphintabwidget.cpp
diff options
context:
space:
mode:
authorFelix Ernst <[email protected]>2022-08-26 12:29:35 +0200
committerFelix Ernst <[email protected]>2022-10-11 15:26:31 +0200
commit37a98417cd64008b63b95b80ecbedc84d487bd25 (patch)
tree014f4d28ef87d57872f0f37d90a39264298cfed3 /src/dolphintabwidget.cpp
parent4d81aabd1ee78c2fca61452ef3a866cfad0c88a5 (diff)
Add helper methods to tab widget for view containers
This commit introduces the private getter DolphinTabWidget::viewContainerAt(ViewIndex) and another private method DolphinTabWidget::activateViewContainerAt(ViewIndex). Both methods return nullptr if there is no valid DolphinViewContainer at the specified ViewIndex.
Diffstat (limited to 'src/dolphintabwidget.cpp')
-rw-r--r--src/dolphintabwidget.cpp38
1 files changed, 23 insertions, 15 deletions
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<QUrl>& 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<QUrl>& 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<const DolphinTabWidget::ViewIndex> DolphinTabWidget::viewOpenAtDirectory(const QUrl& directory) const
{
int i = currentIndex();