X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/fa36c3fd1f53a223f43bb57d7c28e431a889a7c2..09a0a44a073cf6396f0a28dc3847d081c4dab24e:/src/statusbar/mountpointobserver.cpp diff --git a/src/statusbar/mountpointobserver.cpp b/src/statusbar/mountpointobserver.cpp index 4a23be6b6..67d341b3d 100644 --- a/src/statusbar/mountpointobserver.cpp +++ b/src/statusbar/mountpointobserver.cpp @@ -1,36 +1,25 @@ -/*************************************************************************** - * 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 "mountpointobserver.h" + #include "mountpointobservercache.h" -MountPointObserver::MountPointObserver(const QString& mountPoint, QObject* parent) : - QObject(parent), - m_mountPoint(mountPoint), - m_referenceCount(0), - m_spaceInfo(KDiskFreeSpaceInfo::freeSpaceInfo(mountPoint)) +#include + +MountPointObserver::MountPointObserver(const QUrl &url, QObject *parent) + : QObject(parent) + , m_url(url) + , m_referenceCount(0) { } -MountPointObserver* MountPointObserver::observerForPath(const QString& path) +MountPointObserver *MountPointObserver::observerForUrl(const QUrl &url) { - MountPointObserver* observer = MountPointObserverCache::instance()->observerForPath(path); + MountPointObserver *observer = MountPointObserverCache::instance()->observerForUrl(url); return observer; } @@ -39,10 +28,20 @@ void MountPointObserver::update() if (m_referenceCount == 0) { delete this; } else { - const KDiskFreeSpaceInfo spaceInfo = KDiskFreeSpaceInfo::freeSpaceInfo(m_mountPoint); - if (spaceInfo.size() != m_spaceInfo.size() || spaceInfo.available() != m_spaceInfo.available()) { - m_spaceInfo = spaceInfo; - emit spaceInfoChanged(); - } + KIO::FileSystemFreeSpaceJob *job = KIO::fileSystemFreeSpace(m_url); + connect(job, &KJob::result, this, &MountPointObserver::freeSpaceResult); + } +} + +void MountPointObserver::freeSpaceResult(KJob *job) +{ + if (!job->error()) { + KIO::FileSystemFreeSpaceJob *freeSpaceJob = qobject_cast(job); + Q_ASSERT(freeSpaceJob); + Q_EMIT spaceInfoChanged(freeSpaceJob->size(), freeSpaceJob->availableSize()); + } else { + Q_EMIT spaceInfoChanged(0, 0); } } + +#include "moc_mountpointobserver.cpp"