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
This commit is contained in:
Amol Godbole 2023-10-10 22:39:03 -05:00 committed by Felix Ernst
parent 9e6891deaa
commit 2f39eb51b6
5 changed files with 14 additions and 5 deletions

View file

@ -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);

View file

@ -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();
}

View file

@ -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()) {

View file

@ -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();

View file

@ -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);
});