Commit 152a7b4f authored by Mufeed Ali's avatar Mufeed Ali Committed by Nate Graham
Browse files

Show a "Loading..." placeholder text

Since a placeholder text is being used when the folder is empty, it
also makes sense to show a similar placeholder text when the view is
still loading, especially now that the status bar which previously
contained a loading indicator now disappears when a folder is loading.
parent a3559a19
Pipeline #67957 passed with stage
in 4 minutes and 32 seconds
......@@ -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;
}
......@@ -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"));
......
......@@ -839,6 +839,7 @@ private:
private:
void updatePalette();
void showLoadingPlaceholder();
bool m_active;
bool m_tabsForFiles;
......@@ -878,6 +879,7 @@ private:
QTimer* m_twoClicksRenamingTimer;
QUrl m_twoClicksRenamingItemUrl;
QLabel* m_placeholderLabel;
QTimer* m_showLoadingPlaceholderTimer;
// For unit tests
friend class TestBase;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment