]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/statusbar/statusbarspaceinfo.h
GIT_SILENT Sync po/docbooks with svn
[dolphin.git] / src / statusbar / statusbarspaceinfo.h
index 9048bd10cfa2e08f2e8a11f114ca7ba17c3b2b72..c384c3b2f869f823d751a627dd609950b735cbb9 100644 (file)
@@ -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;
 
@@ -32,30 +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 &currentlyRunningTaskTitle, int installationProgressPercent);
+
 protected:
     void showEvent(QShowEvent *event) override;
     void hideEvent(QHideEvent *event) override;
-
-    void updateMenu();
+    QSize minimumSizeHint() const override;
 
 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<SpaceInfoObserver> 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;
 };