#include "spaceinfoobserver.h"
#include <KLocalizedString>
-#include <KIO/Job>
+#include <KNS3/KMoreToolsMenuFactory>
+#include <QMouseEvent>
StatusBarSpaceInfo::StatusBarSpaceInfo(QWidget* parent) :
KCapacityBar(KCapacityBar::DrawTextInline, parent),
- m_observer(0)
+ m_observer(nullptr)
{
+ setCursor(Qt::PointingHandCursor);
}
StatusBarSpaceInfo::~StatusBarSpaceInfo()
return m_url;
}
+void StatusBarSpaceInfo::update()
+{
+ if (m_observer) {
+ m_observer->update();
+ }
+}
+
void StatusBarSpaceInfo::showEvent(QShowEvent* event)
{
KCapacityBar::showEvent(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);