From: Amol Godbole Date: Wed, 11 Oct 2023 03:39:03 +0000 (-0500) Subject: DolphinView: get rid of writeStateChanged signal in setActive() X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/2f39eb51b6d92172905a4c39f3c1bcd8053f593b?ds=sidebyside DolphinView: get rid of writeStateChanged signal in setActive() The signal writeStateChanged() was not working because it is not connected to slotWriteStateChanged() slots when the active view changes. Replace the signal with direct calls to the slots. Also, do not delay openRequest signal in DolphinSearchBox::slotSearchTextChanged. It's no longer required. BUG: 440366 --- diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index 744ad8f0a..ca0038586 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -2387,6 +2387,7 @@ void DolphinMainWindow::connectViewSignals(DolphinViewContainer *container) { connect(container, &DolphinViewContainer::showFilterBarChanged, this, &DolphinMainWindow::updateFilterBarAction); connect(container, &DolphinViewContainer::writeStateChanged, this, &DolphinMainWindow::slotWriteStateChanged); + slotWriteStateChanged(container->view()->isFolderWritable()); connect(container, &DolphinViewContainer::searchModeEnabledChanged, this, &DolphinMainWindow::updateSearchAction); connect(container, &DolphinViewContainer::captionChanged, this, &DolphinMainWindow::updateWindowTitle); connect(container, &DolphinViewContainer::tabRequested, this, &DolphinMainWindow::openNewTab); diff --git a/src/search/dolphinsearchbox.cpp b/src/search/dolphinsearchbox.cpp index a09f25293..a3cec6fe7 100644 --- a/src/search/dolphinsearchbox.cpp +++ b/src/search/dolphinsearchbox.cpp @@ -265,9 +265,7 @@ void DolphinSearchBox::slotSearchTextChanged(const QString &text) if (text.isEmpty()) { // Restore URL when search box is cleared by closing and reopening the box. emitCloseRequest(); - QTimer::singleShot(0, this, [this] { - Q_EMIT openRequest(); - }); + Q_EMIT openRequest(); } else { m_startSearchTimer->start(); } diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp index d8eab142d..ace763b15 100644 --- a/src/views/dolphinview.cpp +++ b/src/views/dolphinview.cpp @@ -270,7 +270,6 @@ void DolphinView::setActive(bool active) if (active) { m_container->setFocus(); Q_EMIT activated(); - Q_EMIT writeStateChanged(m_isFolderWritable); } } @@ -2246,6 +2245,11 @@ void DolphinView::updateWritableState() } } +bool DolphinView::isFolderWritable() const +{ + return m_isFolderWritable; +} + QUrl DolphinView::viewPropertiesUrl() const { if (m_viewPropertiesContext.isEmpty()) { diff --git a/src/views/dolphinview.h b/src/views/dolphinview.h index 05b9e009c..0b0c83487 100644 --- a/src/views/dolphinview.h +++ b/src/views/dolphinview.h @@ -344,6 +344,11 @@ public: /** Activates the view if the item list container gets focus. */ bool eventFilter(QObject *watched, QEvent *event) override; + /** + * Returns whether the folder represented by the current URL is writable. + */ + bool isFolderWritable() const; + public Q_SLOTS: void reload(); @@ -880,7 +885,7 @@ private: /** * Updates m_isFolderWritable dependent on whether the folder represented by * the current URL is writable. If the state has changed, the signal - * writeableStateChanged() will be emitted. + * writeStateChanged() will be emitted. */ void updateWritableState(); diff --git a/src/views/dolphinviewactionhandler.cpp b/src/views/dolphinviewactionhandler.cpp index 7117e9e1b..f73c613e0 100644 --- a/src/views/dolphinviewactionhandler.cpp +++ b/src/views/dolphinviewactionhandler.cpp @@ -60,6 +60,7 @@ void DolphinViewActionHandler::setCurrentView(DolphinView *view) connect(view, &DolphinView::sortRoleChanged, this, &DolphinViewActionHandler::slotSortRoleChanged); connect(view, &DolphinView::zoomLevelChanged, this, &DolphinViewActionHandler::slotZoomLevelChanged); connect(view, &DolphinView::writeStateChanged, this, &DolphinViewActionHandler::slotWriteStateChanged); + slotWriteStateChanged(view->isFolderWritable()); connect(view, &DolphinView::selectionModeChangeRequested, this, [this](bool enabled) { Q_EMIT selectionModeChangeTriggered(enabled); });