From 74ae8478acd0da7619dd5a0f969aa3f479074413 Mon Sep 17 00:00:00 2001 From: Kai Uwe Broulik Date: Tue, 5 Jul 2022 13:00:34 +0200 Subject: [PATCH] Show "Loading canceled" placeholder when loading was canceled Rather than "Folder empty", which is misleading as we didn't actually load anything. --- src/views/dolphinview.cpp | 13 +++++++------ src/views/dolphinview.h | 9 ++++++++- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp index a6c90e9907..ccff1256ae 100644 --- a/src/views/dolphinview.cpp +++ b/src/views/dolphinview.cpp @@ -70,7 +70,6 @@ DolphinView::DolphinView(const QUrl& url, QWidget* parent) : m_assureVisibleCurrentIndex(false), m_isFolderWritable(true), m_dragging(false), - m_loading(false), m_url(url), m_viewPropertiesContext(), m_mode(DolphinView::IconsView), @@ -1728,7 +1727,7 @@ void DolphinView::slotRenamingResult(KJob* job) void DolphinView::slotDirectoryLoadingStarted() { - m_loading = true; + m_loadingState = LoadingState::Loading; updatePlaceholderLabel(); // Disable the writestate temporary until it can be determined in a fast way @@ -1743,7 +1742,7 @@ void DolphinView::slotDirectoryLoadingStarted() void DolphinView::slotDirectoryLoadingCompleted() { - m_loading = false; + m_loadingState = LoadingState::Completed; // Update the view-state. This has to be done asynchronously // because the view might not be in its final state yet. @@ -1760,7 +1759,7 @@ void DolphinView::slotDirectoryLoadingCompleted() void DolphinView::slotDirectoryLoadingCanceled() { - m_loading = false; + m_loadingState = LoadingState::Canceled; updatePlaceholderLabel(); @@ -2159,13 +2158,15 @@ void DolphinView::updatePlaceholderLabel() return; } - if (m_loading) { + if (m_loadingState == LoadingState::Loading) { m_placeholderLabel->setVisible(false); m_showLoadingPlaceholderTimer->start(); return; } - if (!nameFilter().isEmpty()) { + if (m_loadingState == LoadingState::Canceled) { + m_placeholderLabel->setText(i18n("Loading canceled")); + } else if (!nameFilter().isEmpty()) { m_placeholderLabel->setText(i18n("No items matching the filter")); } else if (m_url.scheme() == QLatin1String("baloosearch") || m_url.scheme() == QLatin1String("filenamesearch")) { m_placeholderLabel->setText(i18n("No items matching the search")); diff --git a/src/views/dolphinview.h b/src/views/dolphinview.h index 62ced31acd..f3ba9445f2 100644 --- a/src/views/dolphinview.h +++ b/src/views/dolphinview.h @@ -875,7 +875,14 @@ private: bool m_isFolderWritable; bool m_dragging; // True if a dragging is done. Required to be able to decide whether a // tooltip may be shown when hovering an item. - bool m_loading; + + enum class LoadingState { + Idle, + Loading, + Canceled, + Completed + }; + LoadingState m_loadingState = LoadingState::Idle; QUrl m_url; QString m_viewPropertiesContext;