]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/statusbar/statusbarspaceinfo.h
Minor code improvement
[dolphin.git] / src / statusbar / statusbarspaceinfo.h
index 9744548ca596dedbd4cbb0c3af02d5ee76d1133a..932f09b7b7b878dcc7871b64fbb38479aac9822d 100644 (file)
@@ -1,35 +1,20 @@
-/***************************************************************************
- *   Copyright (C) 2006 by Peter Penz (peter.penz@gmx.at) and              *
- *   and Patrice Tremblay                                                  *
- *                                                                         *
- *   This program is free software; you can redistribute it and/or modify  *
- *   it under the terms of the GNU General Public License as published by  *
- *   the Free Software Foundation; either version 2 of the License, or     *
- *   (at your option) any later version.                                   *
- *                                                                         *
- *   This program is distributed in the hope that it will be useful,       *
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
- *   GNU General Public License for more details.                          *
- *                                                                         *
- *   You should have received a copy of the GNU General Public License     *
- *   along with this program; if not, write to the                         *
- *   Free Software Foundation, Inc.,                                       *
- *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA          *
- ***************************************************************************/
+/*
+ * SPDX-FileCopyrightText: 2006 Peter Penz (peter.penz@gmx.at) and Patrice Tremblay
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
 #ifndef STATUSBARSPACEINFO_H
 #define STATUSBARSPACEINFO_H
 
-#include <kurl.h>
-
-#include <QColor>
-#include <QKeyEvent>
-#include <QString>
+#include <KCapacityBar>
 
-#include <kcapacitybar.h>
+#include <QUrl>
 
 class QHideEvent;
 class QShowEvent;
+class QMouseEvent;
+
+class SpaceInfoObserver;
 
 /**
  * @short Shows the available space for the volume represented
@@ -40,29 +25,31 @@ class StatusBarSpaceInfo : public KCapacityBar
     Q_OBJECT
 
 public:
-    explicit StatusBarSpaceInfo(QWidget* parent);
-    virtual ~StatusBarSpaceInfo();
+    explicit StatusBarSpaceInfo(QWidget *parent = nullptr);
+    ~StatusBarSpaceInfo() override;
 
-    void setUrl(const KUrl& url);
-    const KUrl& url() const;
+    /**
+     * Use this to set the widget visibility as it can hide itself
+     */
+    void setShown(bool);
+    void setUrl(const QUrl &url);
+    QUrl url() const;
+
+    void update();
 
 protected:
-    void showEvent(QShowEvent* event);
-    void hideEvent(QHideEvent* event);
+    void showEvent(QShowEvent *event) override;
+    void hideEvent(QHideEvent *event) override;
+    void mousePressEvent(QMouseEvent *event) override;
 
-private slots:
-    /** Refreshes the space information for the current set URL. */
-    void refresh();
+private Q_SLOTS:
+    void slotValuesChanged();
 
 private:
-    quint64 m_kBSize;
-    KUrl m_url;
-    QTimer* m_timer;
+    QScopedPointer<SpaceInfoObserver> m_observer;
+    QUrl m_url;
+    bool m_ready;
+    bool m_shown;
 };
 
-inline const KUrl& StatusBarSpaceInfo::url() const
-{
-    return m_url;
-}
-
 #endif