diff options
Diffstat (limited to 'src/statusbar/statusbarspaceinfo.h')
| -rw-r--r-- | src/statusbar/statusbarspaceinfo.h | 32 |
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 ¤tlyRunningTaskTitle, 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; |
