X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/01e4f60a0931aba506b184d384a4e2f926b2233c..0aadb8cf849fcab8ee8e8108a19e1ff4830054b1:/src/statusbar/spaceinfoobserver.cpp diff --git a/src/statusbar/spaceinfoobserver.cpp b/src/statusbar/spaceinfoobserver.cpp index 10efdd7fb..ae56137d1 100644 --- a/src/statusbar/spaceinfoobserver.cpp +++ b/src/statusbar/spaceinfoobserver.cpp @@ -1,45 +1,30 @@ -/*************************************************************************** - * Copyright (C) 2014 by Frank Reininghaus * - * * - * 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: 2014 Frank Reininghaus + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ #include "spaceinfoobserver.h" #include "mountpointobserver.h" -#include - -SpaceInfoObserver::SpaceInfoObserver(const KUrl& url, QObject* parent) : - QObject(parent), - m_mountPointObserver(0), - m_dataSize(0), - m_dataAvailable(0) +SpaceInfoObserver::SpaceInfoObserver(const QUrl &url, QObject *parent) + : QObject(parent) + , m_mountPointObserver(nullptr) + , m_hasData(false) + , m_dataSize(0) + , m_dataAvailable(0) { - m_mountPointObserver = MountPointObserver::observerForUrl(url); - m_mountPointObserver->ref(); - connect(m_mountPointObserver, &MountPointObserver::spaceInfoChanged, this, &SpaceInfoObserver::spaceInfoChanged); - m_mountPointObserver->update(); + if (!url.isEmpty()) { + setUrl(url); + } } SpaceInfoObserver::~SpaceInfoObserver() { if (m_mountPointObserver) { m_mountPointObserver->deref(); - m_mountPointObserver = 0; + m_mountPointObserver = nullptr; } } @@ -53,33 +38,43 @@ quint64 SpaceInfoObserver::available() const return m_dataAvailable; } -void SpaceInfoObserver::setUrl(const KUrl& url) +void SpaceInfoObserver::setUrl(const QUrl &url) { - MountPointObserver* newObserver = MountPointObserver::observerForUrl(url); + MountPointObserver *newObserver = MountPointObserver::observerForUrl(url); if (newObserver != m_mountPointObserver) { if (m_mountPointObserver) { disconnect(m_mountPointObserver, &MountPointObserver::spaceInfoChanged, this, &SpaceInfoObserver::spaceInfoChanged); m_mountPointObserver->deref(); - m_mountPointObserver = 0; + m_mountPointObserver = nullptr; } m_mountPointObserver = newObserver; m_mountPointObserver->ref(); connect(m_mountPointObserver, &MountPointObserver::spaceInfoChanged, this, &SpaceInfoObserver::spaceInfoChanged); - // If newObserver is cached it won't call update until the next timer update, + // If newObserver is cached it won't call update until the next timer update, // so update the observer now. m_mountPointObserver->update(); } } +void SpaceInfoObserver::update() +{ + if (m_mountPointObserver) { + m_mountPointObserver->update(); + } +} + void SpaceInfoObserver::spaceInfoChanged(quint64 size, quint64 available) { // Make sure that the size has actually changed - if (m_dataSize != size || m_dataAvailable != available) { + if (m_dataSize != size || m_dataAvailable != available || !m_hasData) { + m_hasData = true; m_dataSize = size; m_dataAvailable = available; - emit valuesChanged(); + Q_EMIT valuesChanged(); } } + +#include "moc_spaceinfoobserver.cpp"