]> cloud.milkyroute.net Git - dolphin.git/blob - src/statusbar/mountpointobserver.cpp
Output of licensedigger + manual cleanup afterwards.
[dolphin.git] / src / statusbar / mountpointobserver.cpp
1 /*
2 * SPDX-FileCopyrightText: 2014 Frank Reininghaus <frank78ac@googlemail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7 #include "mountpointobserver.h"
8
9 #include "mountpointobservercache.h"
10
11 #include <KIO/FileSystemFreeSpaceJob>
12
13 MountPointObserver::MountPointObserver(const QUrl& url, QObject* parent) :
14 QObject(parent),
15 m_url(url),
16 m_referenceCount(0)
17 {
18 }
19
20 MountPointObserver* MountPointObserver::observerForUrl(const QUrl& url)
21 {
22 MountPointObserver* observer = MountPointObserverCache::instance()->observerForUrl(url);
23 return observer;
24 }
25
26 void MountPointObserver::update()
27 {
28 if (m_referenceCount == 0) {
29 delete this;
30 } else {
31 KIO::FileSystemFreeSpaceJob* job = KIO::fileSystemFreeSpace(m_url);
32 connect(job, &KIO::FileSystemFreeSpaceJob::result, this, &MountPointObserver::freeSpaceResult);
33 }
34 }
35
36 void MountPointObserver::freeSpaceResult(KIO::Job* job, KIO::filesize_t size, KIO::filesize_t available)
37 {
38 if (!job->error()) {
39 emit spaceInfoChanged(size, available);
40 } else {
41 emit spaceInfoChanged(0, 0);
42 }
43 }