]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/statusbar/statusbarspaceinfo.h
Avoid wrapping text in the status bar
[dolphin.git] / src / statusbar / statusbarspaceinfo.h
index 326c419ab3dc709f5bc4ab23f73e727d1106b3a4..23a77d045e4ce3d1f46c4c97ec6af17c1cbab6a0 100644 (file)
@@ -1,33 +1,21 @@
-/***************************************************************************
- *   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 <QUrl>
-
-
-#include <KCapacityBar>
+#include <QWidget>
 
 class QHideEvent;
 class QShowEvent;
+class QMenu;
 class QMouseEvent;
+class QToolButton;
+
+class KCapacityBar;
 
 class SpaceInfoObserver;
 
@@ -35,28 +23,41 @@ class SpaceInfoObserver;
  * @short Shows the available space for the volume represented
  *        by the given URL as part of the status bar.
  */
-class StatusBarSpaceInfo : public KCapacityBar
+class StatusBarSpaceInfo : public QWidget
 {
     Q_OBJECT
 
 public:
-    explicit StatusBarSpaceInfo(QWidget* parent = 0);
-    virtual ~StatusBarSpaceInfo();
-
-    void setUrl(const QUrl& url);
+    explicit StatusBarSpaceInfo(QWidget *parent = nullptr);
+    ~StatusBarSpaceInfo() override;
+
+    /**
+     * 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) Q_DECL_OVERRIDE;
-    void hideEvent(QHideEvent* event) Q_DECL_OVERRIDE;
-    void mousePressEvent(QMouseEvent* event) Q_DECL_OVERRIDE;
+    void showEvent(QShowEvent *event) override;
+    void hideEvent(QHideEvent *event) override;
+    QSize minimumSizeHint() const override;
+
+    void updateMenu();
 
-private slots:
+private Q_SLOTS:
     void slotValuesChanged();
 
 private:
     QScopedPointer<SpaceInfoObserver> m_observer;
+    KCapacityBar *m_capacityBar;
+    QToolButton *m_textInfoButton;
+    QMenu *m_buttonMenu;
     QUrl m_url;
+    bool m_ready;
+    bool m_shown;
 };
 
 #endif