X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/fa988586bc923b33497cbc97aaac07fc93a4ca83..c72fdaa77380ef811dfef626a4edadbb824ed252:/src/statusbar/statusbarspaceinfo.cpp diff --git a/src/statusbar/statusbarspaceinfo.cpp b/src/statusbar/statusbarspaceinfo.cpp index 046cbbb23..3ac87925f 100644 --- a/src/statusbar/statusbarspaceinfo.cpp +++ b/src/statusbar/statusbarspaceinfo.cpp @@ -23,13 +23,15 @@ #include "spaceinfoobserver.h" #include -#include +#include +#include StatusBarSpaceInfo::StatusBarSpaceInfo(QWidget* parent) : KCapacityBar(KCapacityBar::DrawTextInline, parent), - m_observer(0) + m_observer(nullptr) { + setCursor(Qt::PointingHandCursor); } StatusBarSpaceInfo::~StatusBarSpaceInfo() @@ -51,6 +53,13 @@ QUrl StatusBarSpaceInfo::url() const return m_url; } +void StatusBarSpaceInfo::update() +{ + if (m_observer) { + m_observer->update(); + } +} + void StatusBarSpaceInfo::showEvent(QShowEvent* event) { KCapacityBar::showEvent(event); @@ -65,6 +74,23 @@ void StatusBarSpaceInfo::hideEvent(QHideEvent* event) KCapacityBar::hideEvent(event); } +void StatusBarSpaceInfo::mousePressEvent(QMouseEvent* event) +{ + if (event->button() == Qt::LeftButton) { + // Creates a menu with tools that help to find out more about free + // disk space for the given url. + + // Note that this object must live long enough in case the user opens + // the "Configure..." dialog + KMoreToolsMenuFactory menuFactory(QStringLiteral("dolphin/statusbar-diskspace-menu")); + menuFactory.setParentWidget(this); + auto menu = menuFactory.createMenuFromGroupingNames( + { "disk-usage", "more:", "disk-partitions" }, m_url); + + menu->exec(QCursor::pos()); + } +} + void StatusBarSpaceInfo::slotValuesChanged() { Q_ASSERT(m_observer);