1
0
mirror of https://invent.kde.org/system/dolphin synced 2024-07-04 17:30:55 +00:00

Fix: closing split view doesn't update tab name

BUG: 469316
This commit is contained in:
Jin Liu 2024-01-12 12:56:43 +08:00
parent 348a36439e
commit 3619e74eb1
3 changed files with 15 additions and 5 deletions

View File

@ -920,6 +920,7 @@ void DolphinMainWindow::toggleSplitView()
{
DolphinTabPage *tabPage = m_tabWidget->currentTabPage();
tabPage->setSplitViewEnabled(!tabPage->splitViewEnabled(), WithAnimation);
m_tabWidget->updateTabName(m_tabWidget->indexOf(tabPage));
updateViewActions();
}

View File

@ -104,11 +104,17 @@ void DolphinTabWidget::refreshViews()
const int tabCount = count();
for (int i = 0; i < tabCount; ++i) {
tabBar()->setTabText(i, tabName(tabPageAt(i)));
updateTabName(i);
tabPageAt(i)->refreshViews();
}
}
void DolphinTabWidget::updateTabName(int index)
{
Q_ASSERT(index >= 0);
tabBar()->setTabText(index, tabName(tabPageAt(index)));
}
bool DolphinTabWidget::isUrlOpen(const QUrl &url) const
{
return viewOpenAtDirectory(url).has_value();
@ -163,9 +169,7 @@ void DolphinTabWidget::openNewTab(const QUrl &primaryUrl, const QUrl &secondaryU
connect(tabPage, &DolphinTabPage::activeViewChanged, this, &DolphinTabWidget::activeViewChanged);
connect(tabPage, &DolphinTabPage::activeViewUrlChanged, this, &DolphinTabWidget::tabUrlChanged);
connect(tabPage->activeViewContainer(), &DolphinViewContainer::captionChanged, this, [this, tabPage]() {
const int tabIndex = indexOf(tabPage);
Q_ASSERT(tabIndex >= 0);
tabBar()->setTabText(tabIndex, tabName(tabPage));
updateTabName(indexOf(tabPage));
});
if (position == NewTabPosition::FollowSetting) {
@ -407,7 +411,7 @@ void DolphinTabWidget::tabUrlChanged(const QUrl &url)
{
const int index = indexOf(qobject_cast<QWidget *>(sender()));
if (index >= 0) {
tabBar()->setTabText(index, tabName(tabPageAt(index)));
updateTabName(index);
tabBar()->setTabToolTip(index, url.toDisplayString(QUrl::PreferLocalFile));
if (tabBar()->isVisible()) {
// ensure the path url ends with a slash to have proper folder icon for remote folders

View File

@ -69,6 +69,11 @@ public:
*/
void refreshViews();
/**
* Update the name of the tab with the index \a index.
*/
void updateTabName(int index);
/**
* @return Whether any of the tab pages has @p url opened
* in their primary or secondary view.