┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Popov <[email protected]>2021-09-13 18:34:40 +0300
committerEugene Popov <[email protected]>2021-11-13 18:20:59 +0200
commit1657216474020b9b345409f423d75ee34156e1d3 (patch)
treeedd78b5ca93e62fd847d235e3d65b1cfd189ea96
parent4b4f9880785cef91fc97fa94c7ad82a1f95e35e5 (diff)
Fix updating window and tab titles
This MR fixes an issue where the window and tab titles don't properly handle creating/deleting/renaming items in the places bar, as well as switching to the Search mode.
-rw-r--r--src/dolphinmainwindow.cpp2
-rw-r--r--src/dolphintabwidget.cpp7
-rw-r--r--src/dolphinviewcontainer.cpp18
-rw-r--r--src/dolphinviewcontainer.h12
4 files changed, 39 insertions, 0 deletions
diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp
index bb05fef08..cdbeba172 100644
--- a/src/dolphinmainwindow.cpp
+++ b/src/dolphinmainwindow.cpp
@@ -2134,6 +2134,8 @@ void DolphinMainWindow::connectViewSignals(DolphinViewContainer* container)
this, &DolphinMainWindow::slotWriteStateChanged);
connect(container, &DolphinViewContainer::searchModeEnabledChanged,
this, &DolphinMainWindow::updateSearchAction);
+ connect(container, &DolphinViewContainer::captionChanged,
+ this, &DolphinMainWindow::updateWindowTitle);
const QAction* toggleSearchAction = actionCollection()->action(QStringLiteral("toggle_search"));
connect(toggleSearchAction, &QAction::triggered, container, &DolphinViewContainer::setSearchModeEnabled);
diff --git a/src/dolphintabwidget.cpp b/src/dolphintabwidget.cpp
index 0e7012d3b..254e654a7 100644
--- a/src/dolphintabwidget.cpp
+++ b/src/dolphintabwidget.cpp
@@ -162,10 +162,17 @@ void DolphinTabWidget::openNewTab(const QUrl& primaryUrl, const QUrl& secondaryU
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));
+ });
+
int newTabIndex = -1;
if (!GeneralSettings::openNewTabAfterLastTab()) {
newTabIndex = currentIndex() + 1;
}
+
insertTab(newTabIndex, tabPage, QIcon() /* loaded in tabInserted */, tabName(tabPage));
if (focusWidget) {
diff --git a/src/dolphinviewcontainer.cpp b/src/dolphinviewcontainer.cpp
index 194fd774b..5520bf794 100644
--- a/src/dolphinviewcontainer.cpp
+++ b/src/dolphinviewcontainer.cpp
@@ -196,6 +196,17 @@ DolphinViewContainer::DolphinViewContainer(const QUrl& url, QWidget* parent) :
}
});
+ KFilePlacesModel *placesModel = DolphinPlacesModelSingleton::instance().placesModel();
+ connect(placesModel, &KFilePlacesModel::dataChanged,
+ this, &DolphinViewContainer::slotPlacesModelChanged);
+ connect(placesModel, &KFilePlacesModel::rowsInserted,
+ this, &DolphinViewContainer::slotPlacesModelChanged);
+ connect(placesModel, &KFilePlacesModel::rowsRemoved,
+ this, &DolphinViewContainer::slotPlacesModelChanged);
+
+ connect(this, &DolphinViewContainer::searchModeEnabledChanged,
+ this, &DolphinViewContainer::captionChanged);
+
// Initialize kactivities resource instance
#ifdef HAVE_KACTIVITIES
@@ -791,6 +802,13 @@ void DolphinViewContainer::showErrorMessage(const QString& msg)
showMessage(msg, Error);
}
+void DolphinViewContainer::slotPlacesModelChanged()
+{
+ if (!GeneralSettings::showFullPathInTitlebar() && !isSearchModeEnabled()) {
+ Q_EMIT captionChanged();
+ }
+}
+
bool DolphinViewContainer::isSearchUrl(const QUrl& url) const
{
return url.scheme().contains(QLatin1String("search"));
diff --git a/src/dolphinviewcontainer.h b/src/dolphinviewcontainer.h
index 1a92e1fa6..304c9958d 100644
--- a/src/dolphinviewcontainer.h
+++ b/src/dolphinviewcontainer.h
@@ -223,6 +223,12 @@ Q_SIGNALS:
*/
void writeStateChanged(bool isFolderWritable);
+ /**
+ * Is emitted when the Caption has been changed.
+ * @see DolphinViewContainer::caption()
+ */
+ void captionChanged();
+
private Q_SLOTS:
/**
* Updates the number of items (= number of files + number of
@@ -349,6 +355,12 @@ private Q_SLOTS:
*/
void showErrorMessage(const QString& msg);
+ /**
+ * Is invoked when a KFilePlacesModel has been changed
+ * @see DolphinPlacesModelSingleton::instance().placesModel()
+ */
+ void slotPlacesModelChanged();
+
private:
/**
* @return True if the URL protocol is a search URL (e. g. baloosearch:// or filenamesearch://).