X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/2e6450da1cc62c0c8ad6f868becf0fa4a1f32022..09a0a44a073cf6396f0a28dc3847d081c4dab24e:/src/statusbar/spaceinfoobserver.cpp diff --git a/src/statusbar/spaceinfoobserver.cpp b/src/statusbar/spaceinfoobserver.cpp index 8f45c18f8..ae56137d1 100644 --- a/src/statusbar/spaceinfoobserver.cpp +++ b/src/statusbar/spaceinfoobserver.cpp @@ -1,38 +1,23 @@ -/*************************************************************************** - * 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 QUrl& url, QObject* parent) : - QObject(parent), - m_mountPointObserver(nullptr), - 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() @@ -53,9 +38,9 @@ quint64 SpaceInfoObserver::available() const return m_dataAvailable; } -void SpaceInfoObserver::setUrl(const QUrl& 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); @@ -67,19 +52,29 @@ void SpaceInfoObserver::setUrl(const QUrl& url) 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"