diff options
| author | Elvis Angelaccio <[email protected]> | 2018-04-25 12:50:12 +0200 |
|---|---|---|
| committer | Elvis Angelaccio <[email protected]> | 2018-04-25 12:50:12 +0200 |
| commit | 9ec813597430db05326c24a8e0e07c5539387e27 (patch) | |
| tree | a02b023a5fbc13283de6d0e853a3c3dec9a6ab49 | |
| parent | b9143a55a7eae5d8c084080150ddc9e2dca7afde (diff) | |
| parent | 78c8b36dd84a94916835d702ea4a9e8eda65e8ef (diff) | |
Merge branch 'Applications/18.04'
| -rw-r--r-- | src/dolphintabpage.cpp | 1 | ||||
| -rw-r--r-- | src/tests/dolphinmainwindowtest.cpp | 44 |
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" |
