X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/4d9ea4261a1f24e299595b897ea790eab1748fe9..bb67def173f31819bb9a696627f9af71c7037dcd:/src/views/dolphinview.cpp diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp index ce77dd325..f5c21a2c5 100644 --- a/src/views/dolphinview.cpp +++ b/src/views/dolphinview.cpp @@ -88,7 +88,8 @@ DolphinView::DolphinView(const QUrl& url, QWidget* parent) : m_markFirstNewlySelectedItemAsCurrent(false), m_versionControlObserver(nullptr), m_twoClicksRenamingTimer(nullptr), - m_placeholderLabel(nullptr) + m_placeholderLabel(nullptr), + m_showLoadingPlaceholderTimer(nullptr) { m_topLayout = new QVBoxLayout(this); m_topLayout->setSpacing(0); @@ -126,6 +127,11 @@ DolphinView::DolphinView(const QUrl& url, QWidget* parent) : connect(m_container->horizontalScrollBar(), &QScrollBar::valueChanged, this, [=] { hideToolTip(); }); connect(m_container->verticalScrollBar(), &QScrollBar::valueChanged, this, [=] { hideToolTip(); }); + m_showLoadingPlaceholderTimer = new QTimer(this); + m_showLoadingPlaceholderTimer->setInterval(500); + m_showLoadingPlaceholderTimer->setSingleShot(true); + connect(m_showLoadingPlaceholderTimer, &QTimer::timeout, this, &DolphinView::showLoadingPlaceholder); + // Show some placeholder text for empty folders // This is made using a heavily-modified QLabel rather than a KTitleWidget // because KTitleWidget can't be told to turn off mouse-selectable text @@ -2064,10 +2070,23 @@ void DolphinView::slotSwipeUp() Q_EMIT goUpRequested(); } +void DolphinView::showLoadingPlaceholder() +{ + m_placeholderLabel->setText(i18n("Loading...")); + m_placeholderLabel->setVisible(true); +} + void DolphinView::updatePlaceholderLabel() { - if (m_loading || itemsCount() > 0) { + m_showLoadingPlaceholderTimer->stop(); + if (itemsCount() > 0) { + m_placeholderLabel->setVisible(false); + return; + } + + if (m_loading) { m_placeholderLabel->setVisible(false); + m_showLoadingPlaceholderTimer->start(); return; } @@ -2075,7 +2094,7 @@ void DolphinView::updatePlaceholderLabel() 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")); - } else if (m_url.scheme() == QLatin1String("trash")) { + } else if (m_url.scheme() == QLatin1String("trash") && m_url.path() == QLatin1String("/")) { m_placeholderLabel->setText(i18n("Trash is empty")); } else if (m_url.scheme() == QLatin1String("tags")) { m_placeholderLabel->setText(i18n("No tags")); @@ -2085,7 +2104,7 @@ void DolphinView::updatePlaceholderLabel() m_placeholderLabel->setText(i18n("No shared folders found")); } else if (m_url.scheme() == QLatin1String("network")) { m_placeholderLabel->setText(i18n("No relevant network resources found")); - } else if (m_url.scheme() == QLatin1String("mtp")) { + } else if (m_url.scheme() == QLatin1String("mtp") && m_url.path() == QLatin1String("/")) { m_placeholderLabel->setText(i18n("No MTP-compatible devices found")); } else if (m_url.scheme() == QLatin1String("bluetooth")) { m_placeholderLabel->setText(i18n("No Bluetooth devices found"));