┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/statusbar/statusbarspaceinfo.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/statusbar/statusbarspaceinfo.h')
-rw-r--r--src/statusbar/statusbarspaceinfo.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/statusbar/statusbarspaceinfo.h b/src/statusbar/statusbarspaceinfo.h
index 23a77d045..237192c9c 100644
--- a/src/statusbar/statusbarspaceinfo.h
+++ b/src/statusbar/statusbarspaceinfo.h
@@ -6,6 +6,8 @@
#ifndef STATUSBARSPACEINFO_H
#define STATUSBARSPACEINFO_H
+#include <KMessageWidget>
+
#include <QUrl>
#include <QWidget>
@@ -14,6 +16,7 @@ class QShowEvent;
class QMenu;
class QMouseEvent;
class QToolButton;
+class QWidgetAction;
class KCapacityBar;
@@ -40,6 +43,19 @@ public:
void update();
+Q_SIGNALS:
+ /**
+ * Requests for @p message with the given @p messageType to be shown to the user in a non-modal way.
+ */
+ void showMessage(const QString &message, KMessageWidget::MessageType messageType);
+
+ /**
+ * Requests for a progress update to be shown to the user in a non-modal way.
+ * @param currentlyRunningTaskTitle The task that is currently progressing.
+ * @param installationProgressPercent The current percentage of completion.
+ */
+ void showInstallationProgress(const QString &currentlyRunningTaskTitle, int installationProgressPercent);
+
protected:
void showEvent(QShowEvent *event) override;
void hideEvent(QHideEvent *event) override;
@@ -48,13 +64,29 @@ protected:
void updateMenu();
private Q_SLOTS:
+ /**
+ * Asynchronously starts a Filelight installation using DolphinPackageInstaller. @see DolphinPackageInstaller.
+ * Installation success or failure is reported through showMessage(). @see StatusBarSpaceInfo::showMessage().
+ * Installation progress is reported through showInstallationProgress(). @see StatusBarSpaceInfo::showInstallationProgress().
+ */
+ void slotInstallFilelightButtonClicked();
+
void slotValuesChanged();
private:
+ /**
+ * Creates a new QWidgetAction that contains a UI to install Filelight.
+ * m_installFilelightWidgetAction is initialised after calling this method once.
+ */
+ void initialiseInstallFilelightWidgetAction();
+
+private:
QScopedPointer<SpaceInfoObserver> m_observer;
KCapacityBar *m_capacityBar;
QToolButton *m_textInfoButton;
QMenu *m_buttonMenu;
+ /** An action containing a UI to install Filelight. */
+ QWidgetAction *m_installFilelightWidgetAction;
QUrl m_url;
bool m_ready;
bool m_shown;