┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/dolphintabwidget.cpp10
-rw-r--r--src/views/dolphinview.h12
2 files changed, 15 insertions, 7 deletions
diff --git a/src/dolphintabwidget.cpp b/src/dolphintabwidget.cpp
index 9ecc14427..39a734b17 100644
--- a/src/dolphintabwidget.cpp
+++ b/src/dolphintabwidget.cpp
@@ -206,6 +206,10 @@ void DolphinTabWidget::openDirectories(const QList<QUrl>& dirs, bool splitView)
} else {
tabPage->secondaryViewContainer()->setActive(true);
}
+ // BUG: 147230
+ // Required for updateViewState() call in openFiles() to work as expected
+ // If there is a selection, updateViewState() calls are effectively a no-op
+ tabPage->activeViewContainer()->view()->clearSelection();
continue;
}
if (splitView && (it != dirs.constEnd())) {
@@ -239,10 +243,14 @@ void DolphinTabWidget::openFiles(const QList<QUrl>& files, bool splitView)
// Select the files. Although the files can be split between several
// tabs, there is no need to split 'files' accordingly, as
// the DolphinView will just ignore invalid selections.
- for (int i = oldTabCount; i < tabCount; ++i) {
+ for (int i = 0; i < tabCount; ++i) {
DolphinTabPage* tabPage = tabPageAt(i);
tabPage->markUrlsAsSelected(files);
tabPage->markUrlAsCurrent(files.first());
+ if (i < oldTabCount) {
+ // Force selection of file if directory was already open, BUG: 417230
+ tabPage->activeViewContainer()->view()->updateViewState();
+ }
}
}
diff --git a/src/views/dolphinview.h b/src/views/dolphinview.h
index 538e00e83..60ecb2a95 100644
--- a/src/views/dolphinview.h
+++ b/src/views/dolphinview.h
@@ -381,6 +381,12 @@ public slots:
void stopLoading();
+ /**
+ * Applies the state that has been restored by restoreViewState()
+ * to the view.
+ */
+ void updateViewState();
+
/** Activates the view if the item list container gets focus. */
bool eventFilter(QObject* watched, QEvent* event) override;
@@ -703,12 +709,6 @@ private slots:
void slotDirectoryRedirection(const QUrl& oldUrl, const QUrl& newUrl);
/**
- * Applies the state that has been restored by restoreViewState()
- * to the view.
- */
- void updateViewState();
-
- /**
* Calculates the number of currently shown files into
* \a fileCount and the number of folders into \a folderCount.
* The size of all files is written into \a totalFileSize.