]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Changes the tabName function to return the name of a specific tab
authorDavid Hallas <david@davidhallas.dk>
Tue, 28 Aug 2018 07:00:13 +0000 (09:00 +0200)
committerDavid Hallas <david@davidhallas.dk>
Sun, 2 Sep 2018 09:08:15 +0000 (11:08 +0200)
Summary:
Changes the tabName function to return the name of the passed in
DolphinTabPage. Previously it would return the name of the active tab,
which causes in-active tabs to get the wrong name.

Test Plan:
Open Dolphin
Right click a folder and select 'Open in new tab'
Notice that the new tab has the wrong title

BUG: 397910

Reviewers: #dolphin, ngraham, elvisangelaccio

Reviewed By: #dolphin, ngraham, elvisangelaccio

Subscribers: kfm-devel

Tags: #dolphin

Differential Revision: https://phabricator.kde.org/D15112

src/dolphintabwidget.cpp
src/dolphintabwidget.h

index 600974f561ce8272d2fbb7065fc61e398a609a8b..ab2f42c62943b5b78e6ce07d5f444691be289d85 100644 (file)
@@ -116,7 +116,7 @@ void DolphinTabWidget::refreshViews()
 {
     const int tabCount = count();
     for (int i = 0; i < tabCount; ++i) {
-        tabBar()->setTabText(i, tabName());
+        tabBar()->setTabText(i, tabName(tabPageAt(i)));
         tabPageAt(i)->refreshViews();
     }
 }
@@ -161,7 +161,7 @@ void DolphinTabWidget::openNewTab(const QUrl& primaryUrl, const QUrl& secondaryU
             this, &DolphinTabWidget::activeViewChanged);
     connect(tabPage, &DolphinTabPage::activeViewUrlChanged,
             this, &DolphinTabWidget::tabUrlChanged);
-    addTab(tabPage, QIcon::fromTheme(KIO::iconNameForUrl(primaryUrl)), tabName());
+    addTab(tabPage, QIcon::fromTheme(KIO::iconNameForUrl(primaryUrl)), tabName(tabPage));
 
     if (focusWidget) {
         // The DolphinViewContainer grabbed the keyboard focus. As the tab is opened
@@ -306,7 +306,7 @@ void DolphinTabWidget::tabUrlChanged(const QUrl& url)
 {
     const int index = indexOf(qobject_cast<QWidget*>(sender()));
     if (index >= 0) {
-        tabBar()->setTabText(index, tabName());
+        tabBar()->setTabText(index, tabName(tabPageAt(index)));
         tabBar()->setTabIcon(index, QIcon::fromTheme(KIO::iconNameForUrl(url)));
 
         // Emit the currentUrlChanged signal if the url of the current tab has been changed.
@@ -354,12 +354,12 @@ void DolphinTabWidget::tabRemoved(int index)
     emit tabCountChanged(count());
 }
 
-QString DolphinTabWidget::tabName() const
+QString DolphinTabWidget::tabName(DolphinTabPage* tabPage) const
 {
-    if (currentTabPage() == nullptr) {
+    if (!tabPage) {
         return QString();
     }
-    QString name = currentTabPage()->activeViewContainer()->getCaption();
+    QString name = tabPage->activeViewContainer()->getCaption();
     // Make sure that a '&' inside the directory name is displayed correctly
     // and not misinterpreted as a keyboard shortcut in QTabBar::setTabText()
     return name.replace('&', QLatin1String("&&"));
index d781953ddb9f96f0e0604b52a43c401f30ca5a64..0cb662966a76a4a07b45da950edb811a6ee54f22 100644 (file)
@@ -191,9 +191,10 @@ protected:
 
 private:
     /**
-     * Returns the name of the tab for the URL \a url.
+     * @param tabPage The tab page to get the name of
+     * @return The name of the tab page
      */
-    QString tabName() const;
+    QString tabName(DolphinTabPage* tabPage) const;
 
 private:
     /** Caches the (negated) places panel visibility */