┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorElvis Angelaccio <[email protected]>2018-04-25 12:50:12 +0200
committerElvis Angelaccio <[email protected]>2018-04-25 12:50:12 +0200
commit9ec813597430db05326c24a8e0e07c5539387e27 (patch)
treea02b023a5fbc13283de6d0e853a3c3dec9a6ab49 /src
parentb9143a55a7eae5d8c084080150ddc9e2dca7afde (diff)
parent78c8b36dd84a94916835d702ea4a9e8eda65e8ef (diff)
Merge branch 'Applications/18.04'
Diffstat (limited to 'src')
-rw-r--r--src/dolphintabpage.cpp1
-rw-r--r--src/tests/dolphinmainwindowtest.cpp44
2 files changed, 45 insertions, 0 deletions
diff --git a/src/dolphintabpage.cpp b/src/dolphintabpage.cpp
index 342d6f6de..a96c8b6a3 100644
--- a/src/dolphintabpage.cpp
+++ b/src/dolphintabpage.cpp
@@ -94,6 +94,7 @@ void DolphinTabPage::setSplitViewEnabled(bool enabled, const QUrl &secondaryUrl)
// If the primary view is active, we have to swap the pointers
// because the secondary view will be the new primary view.
qSwap(m_primaryViewContainer, m_secondaryViewContainer);
+ m_primaryViewActive = false;
}
m_primaryViewContainer->setActive(true);
view->close();
diff --git a/src/tests/dolphinmainwindowtest.cpp b/src/tests/dolphinmainwindowtest.cpp
index 26036c9af..a31237f3c 100644
--- a/src/tests/dolphinmainwindowtest.cpp
+++ b/src/tests/dolphinmainwindowtest.cpp
@@ -22,6 +22,9 @@
#include "dolphintabwidget.h"
#include "dolphinviewcontainer.h"
+#include <KActionCollection>
+
+#include <QSignalSpy>
#include <QTest>
class DolphinMainWindowTest : public QObject
@@ -31,6 +34,7 @@ class DolphinMainWindowTest : public QObject
private slots:
void init();
void testClosingTabsWithSearchBoxVisible();
+ void testUpdateWindowTitleAfterClosingSplitView();
private:
QScopedPointer<DolphinMainWindow> m_mainWindow;
@@ -64,6 +68,46 @@ void DolphinMainWindowTest::testClosingTabsWithSearchBoxVisible()
QCOMPARE(tabWidget->count(), 1);
}
+// Test case for bug #385111
+void DolphinMainWindowTest::testUpdateWindowTitleAfterClosingSplitView()
+{
+ m_mainWindow->openDirectories({ QUrl::fromLocalFile(QDir::homePath()) }, false);
+ m_mainWindow->show();
+ QVERIFY(QTest::qWaitForWindowExposed(m_mainWindow.data()));
+ QVERIFY(m_mainWindow->isVisible());
+
+ auto tabWidget = m_mainWindow->findChild<DolphinTabWidget*>("tabWidget");
+ QVERIFY(tabWidget);
+ QVERIFY(tabWidget->currentTabPage()->primaryViewContainer());
+ QVERIFY(!tabWidget->currentTabPage()->secondaryViewContainer());
+
+ // Open split view.
+ m_mainWindow->actionCollection()->action(QStringLiteral("split_view"))->trigger();
+ QVERIFY(tabWidget->currentTabPage()->splitViewEnabled());
+ QVERIFY(tabWidget->currentTabPage()->secondaryViewContainer());
+
+ // Make sure the right view is the active one.
+ auto leftViewContainer = tabWidget->currentTabPage()->primaryViewContainer();
+ auto rightViewContainer = tabWidget->currentTabPage()->secondaryViewContainer();
+ QVERIFY(!leftViewContainer->isActive());
+ QVERIFY(rightViewContainer->isActive());
+
+ // Activate left view.
+ leftViewContainer->setActive(true);
+ QVERIFY(leftViewContainer->isActive());
+ QVERIFY(!rightViewContainer->isActive());
+
+ // Close split view. The secondary view (which was on the right) will become the primary one and must be active.
+ m_mainWindow->actionCollection()->action(QStringLiteral("split_view"))->trigger();
+ QVERIFY(rightViewContainer->isActive());
+ QCOMPARE(rightViewContainer, tabWidget->currentTabPage()->activeViewContainer());
+
+ // Change URL and make sure we emit the currentUrlChanged signal (which triggers the window title update).
+ QSignalSpy currentUrlChangedSpy(tabWidget, &DolphinTabWidget::currentUrlChanged);
+ tabWidget->currentTabPage()->activeViewContainer()->setUrl(QUrl::fromLocalFile(QDir::rootPath()));
+ QCOMPARE(currentUrlChangedSpy.count(), 1);
+}
+
QTEST_MAIN(DolphinMainWindowTest)
#include "dolphinmainwindowtest.moc"