X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/139c729b4ab5d0611469f1725468276adcf21f78..b19b50fff1a17cca0443a6b09bd9caedca19f403:/src/statusbar/statusbarspaceinfo.h diff --git a/src/statusbar/statusbarspaceinfo.h b/src/statusbar/statusbarspaceinfo.h index 23a77d045..c384c3b2f 100644 --- a/src/statusbar/statusbarspaceinfo.h +++ b/src/statusbar/statusbarspaceinfo.h @@ -6,6 +6,8 @@ #ifndef STATUSBARSPACEINFO_H #define STATUSBARSPACEINFO_H +#include + #include #include @@ -14,6 +16,7 @@ class QShowEvent; class QMenu; class QMouseEvent; class QToolButton; +class QWidgetAction; class KCapacityBar; @@ -32,31 +35,51 @@ public: ~StatusBarSpaceInfo() override; /** - * Use this to set the widget visibility as it can hide itself + * Works similar to QWidget::setVisible() except that this will postpone showing the widget until space info has been retrieved. Hiding happens instantly. + * + * @param shown Whether this widget is supposed to be visible long-term */ - void setShown(bool); + void setShown(bool shown); void setUrl(const QUrl &url); QUrl url() const; 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; QSize minimumSizeHint() const override; - void updateMenu(); - private Q_SLOTS: void slotValuesChanged(); +private: + // The following three methods are only for private use. + using QWidget::hide; // Use StatusBarSpaceInfo::setShown() instead. + using QWidget::setVisible; // Use StatusBarSpaceInfo::setShown() instead. + using QWidget::show; // Use StatusBarSpaceInfo::setShown() instead. + private: QScopedPointer m_observer; KCapacityBar *m_capacityBar; QToolButton *m_textInfoButton; - QMenu *m_buttonMenu; QUrl m_url; - bool m_ready; + /** Whether m_observer has already retrieved space information for the current url. */ + bool m_hasSpaceInfo; + /** Whether this widget is supposed to be visible long-term. @see StatusBarSpaceInfo::setShown(). */ bool m_shown; };