]> cloud.milkyroute.net Git - dolphin.git/blob - src/statusbar/mountpointobserver.cpp
KItemListView: Don't allow starting role editing when animation is running
[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, &KJob::result, this, &MountPointObserver::freeSpaceResult);
33 }
34 }
35
36 void MountPointObserver::freeSpaceResult(KJob *job)
37 {
38 if (!job->error()) {
39 KIO::FileSystemFreeSpaceJob *freeSpaceJob = qobject_cast<KIO::FileSystemFreeSpaceJob *>(job);
40 Q_ASSERT(freeSpaceJob);
41 Q_EMIT spaceInfoChanged(freeSpaceJob->size(), freeSpaceJob->availableSize());
42 } else {
43 Q_EMIT spaceInfoChanged(0, 0);
44 }
45 }
46
47 #include "moc_mountpointobserver.cpp"